This relay computer project is based on the designs of Dr. Harry Porter, who designed and built a multi-wall sized fully functional relay computer at Portland State university. Dr. Porter was gracious enough to share much of his designs which can still be found on the internet. I've also been leveraging the work of Paul Law, who built a relay computer based on Dr. Porter's design, and he shared much of his design in detail. Most of the popular relay computer designs owe a debt of gratitude to Konrad Zuse who built the first relay-based computer (with 2600 relays) by 1941.
When we say relay "computer" - it's more like relay "central processing unit". The architecture is as follows:
The A - D registers are 8 bits, and then we others like M1 + M2 that can be combined to a 16-bit M register. These 16-bit ones are used to leverage addresses for jumping or returning to specific memory locations.
So to make a working clickity unit, we'll need:
- A 16-bit incrementer
- 16-bit Program Counter
- Some sort of memory to hold the code
- An Arithmetic Logic Unit (ALU) to do some math stuff
- A whole bunch of registers
- An 8-bit data and 16-bit address bus to tie it all together