If you really think hard about it, a CPU is just a very general-purpose state machine. Well, most CPUs are, anyway. The MC14500 is a one-bit computer that has only 16 instructions and was meant to serve in simple tasks where a big CPU wouldn’t work for space, power, or budget reasons. However, [Laughton] took the idea one step further and created a single-bit computer with no real instructions to control a printing press. The finished machine uses a clever format in an EEPROM to drive an endless program.
Honestly, we’d say this is more of a state machine, but we like the idea of it being a minimal CPU which is also true. The design uses the EEPROM in an odd way. Each CPU address really addresses a block of four bytes. The byte that gets processed depends on the current phase and the status of the one-bit flag register.
Each four-byte block has two sections. There are two instructions that read inputs and sets outputs. The first instruction executes if the flag register is false and the second executes if the flag register is true. All of the inputs and outputs are, of course, single bits. The second pair of bytes are two addresses for the next instruction. Again, the first instruction is for a false flag register and the second is for a true flag register.
The I/O is a bit peculiar. Each phase 1 instruction selects an input to store in the flag register and can set or clear one of 7 output bits. Of course, you might not want to write an output on each instruction, so there is an eighth bit that isn’t connected. Writing to it has no effect.
There’s no actual RAM memory, but the design loops back two output bits to the input bits so that you can store two bits and read them back later. Really, sort of an EEPROM-based state machine but still a fun idea. We’ve seen a few MC14500 builds, too, if you want to find out more about what inspired this machine.