-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.xml
More file actions
100 lines (82 loc) · 7.76 KB
/
index.xml
File metadata and controls
100 lines (82 loc) · 7.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Home on Alexander Symons's Portfolio</title>
<link>http://FlyingFish800.github.io/</link>
<description>Recent content in Home on Alexander Symons's Portfolio</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Sun, 23 Jul 2023 15:25:12 -0800</lastBuildDate><atom:link href="http://FlyingFish800.github.io/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>CPU Architecture changes</title>
<link>http://FlyingFish800.github.io/emulators/homebrew_cpu_changes/</link>
<pubDate>Sun, 23 Jul 2023 15:25:12 -0800</pubDate>
<guid>http://FlyingFish800.github.io/emulators/homebrew_cpu_changes/</guid>
<description>During my winter quarter last year I took a class on the RISC-V architecture and learned about the concept of pseudo-instructions, essentially assembler macros that expand to multiple machine code instructions that do one thing. I was inspired by this idea to implement it in my emulator and assembler since it would fix one of the main things I was unhappy with in the current design: the microsteps. The architecture previously had 32 microsteps which were completely unnecessary except for 2 instructions that used a few extra steps for stack operations.</description>
</item>
<item>
<title>Chip 8 Interpreter demo</title>
<link>http://FlyingFish800.github.io/emulators/chip8demo/</link>
<pubDate>Wed, 15 Mar 2023 23:53:59 -0700</pubDate>
<guid>http://FlyingFish800.github.io/emulators/chip8demo/</guid>
<description>Above is a demo of my light_cycle game running in my Chip 8 interpreter modified to work with the Cheerpj runtime. I had to modify the code to embed the game code as Cheerpj didn&rsquo;t want to load the raw file on its own, and it didn&rsquo;t support 2D arrays or function calls with expressions in them. I packed this modified code into a jar which Cheerpj loads and runs in a javascript environment, providing all the operating system features which are required.</description>
</item>
<item>
<title>My first PCBs</title>
<link>http://FlyingFish800.github.io/pcbs/firstpcbs/</link>
<pubDate>Sun, 12 Mar 2023 21:45:12 -0700</pubDate>
<guid>http://FlyingFish800.github.io/pcbs/firstpcbs/</guid>
<description>From my highschool&rsquo;s maker club I got an old ATI Radeon HD3450 GPU from broken school computers that were being salvaged for their power supplies. I wanted to learn how the graphics card worked electrically, and try modifying it to understand the power delivery circuit worked. Sadly I didn&rsquo;t get a chance to try modifying the circuit at the time because this HD3450 only has an S-Video port and a DMS-59 port to output video, neither of which I have a cable for.</description>
</item>
<item>
<title>MicroPython Macropad Firmware Post Mortem</title>
<link>http://FlyingFish800.github.io/macropad/micropython_macropad/</link>
<pubDate>Thu, 09 Mar 2023 23:53:46 -0800</pubDate>
<guid>http://FlyingFish800.github.io/macropad/micropython_macropad/</guid>
<description>While writing the macropad firmware in CircuitPython I ran into some of its limitations, especially in regards to speed and IO. While trying to find solutions I discovered that there was another embedded python project: MicroPython. A basic display test showed that MicroPython was significantly faster than CircuitPython when driving the I2C OLED on the macropad, as well as handling the logic when a key is released. The only problem with MicroPython was that it didn&rsquo;t have a USB HID library to implement the core functionality of the macropad.</description>
</item>
<item>
<title>Chip 8 Interpreter & Assembler</title>
<link>http://FlyingFish800.github.io/emulators/chip_8/</link>
<pubDate>Wed, 08 Mar 2023 21:12:17 -0800</pubDate>
<guid>http://FlyingFish800.github.io/emulators/chip_8/</guid>
<description>Link to the my Chip 8 toolchain repository: https://github.com/FlyingFish800/Chip-8-Interpreter-Java
Link to a demo
Back in 2021 I discovered the Chip 8 instruction set from a video on youtube of someone writing their own interpreter for it. It looked like a really cool project to spend some on my extra quarantine freetime on, so I went to the technical reference they used and started to work on my own interpreter.
Chip 8 is a great first introduction to computer systems and architecture, especially if you go down the route of writing your own interpreter.</description>
</item>
<item>
<title>Homebrew CPU Emulator</title>
<link>http://FlyingFish800.github.io/emulators/homebrew_cpu/</link>
<pubDate>Wed, 08 Mar 2023 10:55:12 -0800</pubDate>
<guid>http://FlyingFish800.github.io/emulators/homebrew_cpu/</guid>
<description>Link to my UMI 8 toolchain repository: https://github.com/FlyingFish800/UMI8
After watching videos by Ben Eater and SLU-4 on their custom 8-bit CPUs implemented in 7400 series TTL logic chips, I became interested in CPU architecture design and decided to make my own. I started with designing the architecture and instruction set, and I set the following goals in mind:
The hardware should be as simple as possible It must be achievable with TTL Logic gates It should have stack/subroutine operations My first revision of this architecture was a 16 bit design using a full 16 bit data bus, a write only memory offset register to hack in a virtual address space, and a similarly hacky interrupt system.</description>
</item>
<item>
<title>Macropad Firmware V1.0</title>
<link>http://FlyingFish800.github.io/macropad/firmware_v1/</link>
<pubDate>Tue, 07 Mar 2023 12:11:42 -0800</pubDate>
<guid>http://FlyingFish800.github.io/macropad/firmware_v1/</guid>
<description>Link to Macropad firmware repository: https://github.com/2004Island/macropad-circuitpython
After working on the firmware for a while, I have got the macropad to work! Progress was pretty quick getting the lighting to work on the board. I had all the neopixels responding to keypresses according to the kdl config file after less than a week of work, and it was really motivating to see the description language I hacked together actually work surprisingly well.</description>
</item>
<item>
<title>Keyboard Description Language</title>
<link>http://FlyingFish800.github.io/macropad/kdl/</link>
<pubDate>Mon, 06 Mar 2023 21:20:18 -0800</pubDate>
<guid>http://FlyingFish800.github.io/macropad/kdl/</guid>
<description>Link to Macropad firmware containing KDL: https://github.com/2004Island/macropad-circuitpython
Three or four months ago, my friend (Varun Sreedharan) approached me about writing firmware for a macropad he had created. It uses a custom PCB, a Raspberry Pi PICO, low profile switches, an oled I2C display, and a few 3D printed parts to create a surprisingly satisfying to use piece of hardware.
I started by writing a parser for a language I named Keyboard Description Language, or KDL.</description>
</item>
<item>
<title>About me</title>
<link>http://FlyingFish800.github.io/about/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>http://FlyingFish800.github.io/about/</guid>
<description>My name is Alexander Symons, and I&rsquo;m a Computer Engineering major and Electrical Engineering minor at UC Santa Cruz. I created this website to show off whatever projects I am currently working on, and share what I have learned while making them.</description>
</item>
</channel>
</rss>