Do you know how a computer works? Like...
really how a computer works? Do you want to?
Turing Complete is an early access game which gets you to build a computer. From the ground up. Starting with NAND gates.
It's early access but the Campaign takes you all the way through to a Turing Complete computer and beyond. This game will export your designs in
Verilog.
Start with building basic gates:
Build decoders:
Build a Turing Complete computer:
Implement your own assembly code:
Develop your own custom components:
The campaign will guide you through building up the OVERTURE computer system. The campaign also doesn't care at all if you find that too limiting. I did. 8 bit instructions are finicky so when it came to programming I redesigned the system so it has a 32-bit instruction format. Behold...the WOX machine:
...I also wrote a manual for it
# Wox Machine
My Turing Machine computer implementation. Implements a 32-bit instruction format to allow for easier assembly writing
and potential expandability.
## Instruction Format
`OPCODE SRC_A SRC_B DST`
## ALU
Input 1 Operates on Input 2
Input 1 is `SRC_A`. Input 2 is `SRC_B`
### ALU Instructions
```
0 OR
1 NAND
2 NOR
3 AND
4 ADD B + A
5 SUB B - A
6 XOR
```
Implementation Note: the ALU repurposes gates to implement XOR.
## Condition Engine
### Condition Instructions
Lower 3 bits
```
0 NEVER
1 < 0
2 <= 0
3 =0
4 !=0
5 >= 0
6 > 0
7 ALWAYS
```
### Condition Setup
`SRC_A` is the parameter.
`SRC_B` is the output (to `DST`) on match.
## Operating Modes
Upper 3 bits of op-code
```
0 0 CONDITION SRC_A is register address SRC_B is register address
32 1 CONDITION SRC_A is register address SRC_B is literal
64 2 CALCULATE SRC_A is register address SRC_B is register address
96 3 CALCULATE SRC_A is register address SRC_B is literal
This game is pretty much the definition of nerd sniping. The campaign is quite accessible although I'd say there's one or two places the difficulty spikes unexpectedly. But if you've wondered how a computer
really works, or want to know, then I can't recommend it enough: this is the least bullshit way I've ever seen it implemented, to the point that you almost (but not yet) could take a design here and burn it to real hardware.
Which is something I haven't done....yet.
Posts