First, thank you for this program! It's been very helpful and a lot of fun.
I put together a very primitive 'computer' and I'd be grateful if anyone would be willing to look it over and help me. I'd like to fix any obvious issues and (possibly) solidify the timing. I didn't follow any textbook or formula and tried to keep things as basic as possible.
Cheers.
Details
I wanted to build the RAM from scratch but I used a ROM component for commands and a sensor to cycle through the bytes.
There are six commands:
Pass (no operation)
LoadX #v (with 4-bit value v)
LoadY #v (with 4-bit value v)
Mul (Multiply X and Y, result in A)
Add (Add X and Y, result in A)
Store v (A to 2-bit address v)
The connected ROM has this list of instructions:
Code: Select all
0000 00: Pass
0001 18: LoadX #8
0002 95: LoadY #5
0003 20: Add
0004 30: Store 0
0005 60: Mul
0006 00: Pass
0007 31: Store 1
0008 17: LoadX #7
0009 92: LoadY #2
000A 20: Add
000B 32: Store 2
000C 60: Mul
000D 00: Pass
000E 33: Store 3
000F 10: LoadX #0
0010 90: LoadY #0
0011 20: Add
0012 30: Store 0
0013 31: Store 1
0014 32: Store 2
0015 33: Store 3
0016 11: LoadX #1
0017 92: LoadY #2
0018 20: Add
0019 00: Pass
001A 00: Pass
001B 00: Pass
001C 00: Pass
001D 00: Pass
001E 00: Pass
001F 00: Pass