I'm very excited to have this done, so I want to share it with comp-sci peoples. It's an 8 bit computer! Besides the obvious hex displays, it has 16 RAM addresses (each 8 bits wide) and an ALU capable of addition, bitwise [font=Courier New, Compacta, Chicago, sans-serif]or[/font], [font=Courier New, Compacta, Chicago, sans-serif]&[/font], and [font=Courier New, Compacta, Chicago, sans-serif]xor[/font], as well as their inversions. The ALU also supports bitshifting and storage for two constants. The program counter is capable of conditional branching based on how the values in the A and B registers are related.
ROM is organized as follows: [font=Courier New, Compacta, Chicago, sans-serif]rrrrrr|wwwwww|jjj[/font]. Where the [font=Courier New, Compacta, Chicago, sans-serif]r[/font]s are read address bits, [font=Courier New, Compacta, Chicago, sans-serif]w[/font]s are write address bits, and the [font=Courier New, Compacta, Chicago, sans-serif]j[/font]s control jumping conditions and turning off the machine. When any [font=Courier New, Compacta, Chicago, sans-serif]j[/font] bit is a 1 [font=Courier New, Compacta, Chicago, sans-serif]r[/font] becomes the ROM address to go to when false and [font=Courier New, Compacta, Chicago, sans-serif]w[/font] becomes the ROM address to go to when true. As an example here is the first program I wrote for it which does [font=Courier New, Compacta, Chicago, sans-serif]input1+input2 → display1[/font].
[center]
0: 010011|000001|000
1: 010100|000010|000
2: 000001|010001|000
3: 000010|010010|000
4: 011000|000011|000
5: 000011|010011|000
6: 000000|000000|111
[/center]
The code reads:
[center]
0: save input1 to RAM1
1: save input2 to RAM2
2: save RAM1 to regA
3: save RAM2 to regB
4: save A+B to RAM3
5: save RAM3 to dsp1
6: shutdown
[/center]
Edit: Something is super wrong with the timing controls and I don't have the patience to fix it today. The program I posted here works, but it stops working when it's modified to save A+B to a RAM addressed by a number >3.* And the computer derps up really bad with jumping for some reason.
*Sadly, this may be an issue with the game itself and not an issue with my construction...
Edit 2: How hard would it be to implement something like typing Ctrl+q makes [font=Courier New, Compacta, Chicago, sans-serif][quote?][/quote?][/font] appear in the text entry box? Same with Ctrl+i → img, Ctrl+s → strikethrough, etc.