This is a part of my main project to build a homebrew computer.
I decided to make it its own project as it is already built and is a programmable computer in its own right, just very limited. Also to have info about it in one place and not buried among other posts on main project.
The overall schematic:
The only part that is specific and dedicated to the Pilot-1 machine is the Provisional Control Unit.
The instruction ROM is a programmable-by-hand switch bank/diode ROM board I built a while ago.
The machine is very limited in how much data it can operate on and how many instructions (max 16) could fit into instruction ROM.
There is no proper RAM, so the only places where data could be held and operated upon are the eight General Purpose Registers.
There is also a lack of I/O capabilities: aside from Reset button and clock adjustments, there are no way to influence the operation at runtime (no inputs). Only way to change behaviour is to reprogram the ROM by hand. As for the output, one can see the contents of registers via the Register Display, and that is all.
Aside from the rich set of ALU instructions, this machine also features an instruction to move data between registers, the unconditional jump, two conditional jumps (on Not Carry and on Not Zero), and Halt instruction, which is kind of jump, but always to its own address.
With these conditional jumps there are many possibilities which can be realised with max of just 16 instructions in a program.