I have made a 32-bit computer processor in star wars. It uses a von Neumann architecture (which seems to be kinda rare among such computers from what I've seen) and is NOT an OISC. It uses self-modifying code for achieving jumps and loops. It also supports a practically infinite amount of RAM.
I have written more about it and given demos in the github repo https://github.com/Aaron-d-k/droid-logica .
Every instruction is between 2 and 5 words long and compulsorily contains the address of the next instruction and an opcode. For more details about it, see here .
The components used all need a timing bit to function, and are all asynchronous in nature. For example, here is a really compact binary increment circuit I made which supports arbitrary size input, with 64 spaces between consecutive bits. (here showing 1011+1=1100)
Code: Select all
x = 320, y = 96, rule = 345/2/4
265.A$264.3A$265.A2$195.3B.B2.B.3B54.A$196.B2.2B.B.B.B40.A12.3A$196.B
2.B.2B.3B39.3A12.A$196.B2.B2.B.B42.A$195.3B.B2.B.B42.A$246.3A$247.A$
247.A$246.3A10.A$218.A28.A10.3A$207.C9.3A5.A21.A11.A$CBA125.CBA61.CBA
23.A5.3A7.A2.A8.3A$CBA125.CBA61.CBA30.A7.6A8.A61.3B.B.B.3B$207.C26.A
3.2A7.A61.B.B.B.B2.B$234.A4.2A5.3A11.A48.B.B.B.B2.B$233.2A5.2A5.A11.
3A47.3B.3B2.B$234.A5.A6.A12.A$234.A5.A5.3A$233.9A5.A$234.A2.A2.A24.A$
264.3A4.A34.C$258.A6.A4.3A$257.3A11.A$258.A47.C2$247.A6.A$246.3A4.3A$
247.A6.A5$246.A2.A2.A$245.9A$246.A5.A$246.A5.A$245.2A5.2A$246.2A4.A$
247.2A3.A$248.6A$249.A2.A7$247.A$246.3A$247.A2$235.A7.A$234.3A5.3A$
235.A7.A4$243.A$242.3A$243.A$234.A2.A$233.6A8.A$234.A2.A8.3A35.A$247.
A35.3A5.A$245.2A.2A34.A5.3A$201.5B38.7A33.A6.A$203.B31.A9.A3.A33.3A5.
A$203.B30.3A47.A5.3A$203.B31.A48.A6.A$203.B79.3A5.A$203.B27.A42.A9.A
5.3A$230.3A40.3A8.A6.A$231.A42.A8.3A5.A$284.A5.3A$207.C50.A2.A2.A5.A
13.A6.A$192.CBA50.A11.9A3.3A11.3A5.A$192.CBA49.3A11.A5.A5.A13.A5.3A
15.5B$207.C37.A12.A5.A19.A6.A18.B$257.2A5.2A17.3A5.A18.B$249.A8.2A4.A
19.A5.3A17.B$248.3A8.2A3.A19.A6.A18.B$249.A10.6A17.3A5.A18.B$261.A2.A
19.A5.3A$284.A6.A$283.3A5.A14.C$269.A14.A5.3A$268.3A20.A$269.A36.C2$
265.A$264.3A$265.A!
I didn’t focus much on optimizing its size or speed, so it turned out to be quite large and slow to run. The display is currently very basic and only supports binary output. I plan to add a proper BCD converter and improve the display when I get time.
The largest program I’ve written so far is a prime number calculator, which outputs in binary. You can see the compiled program in action if you wait until generation 12,000,000, where ‘101’ (ie 5) will be displayed. 7 appears at around generation 70,000,000