Relay Computer

My journey in constructing an 8 bit relay computer from scratch ... made from of a ton of solder, wires, lights, relays, sweat, tears, swearing and money.

Register Design: A and D 8-bit Registers

20 Apr 2014     design , registers

In the last post I introduced the design for a general purpose 8-bit register. This post covers taking two of those registers along with status LEDs and gating relays to implement the full A and D registers.

So, diving straight in, here is what the main bit relays look like for the two 8-bit registers when placed on the usual 55 x 40 hole pad board (excluding wire links):

2 x 8 bit register relays
2 x 8 bit register relays (larger)

Each of the relays above stores a single 1-bit value so there’s 16-bits worth in total (which could all be used together if we were making a 16-bit register) or two lots of 8-bits (for our two 8-bit registers). Each of the 1-bit register relays need gating to and from the data bus so that the values stored don’t conflict with any other value on the data bus. With these additional control and gating relays added we get the following (this time including internal wire links in the 1-bit register relays and result links between the 1-bit register relays and the gating relays):

2 x 8 bit register relays + gating relays
2 x 8 bit register relays + gating relays (larger)

So, that’s it for relays on this card. As with previous cards I’d like to be able to display the current value being stored in the registers regardless of the whether that value is being gated on to the data bus or not. This allows me to confirm correct operation and test/debug the card independently. For this 20 LEDs are needed … 8 for each of the two 8-bit register values, 2 to show when each register is being loaded and finally 2 for when each register is being gated on to the data bus (selected). Fortunately there’s just enough room down the front of the card to fit in the 20 LEDs required in single row LED holders and so this also simplifies the wiring behind the LEDs. The LEDs are, as always, the same 12V ones used in all the previous cards (with an integral resister). Colour wise I’m continuing with the theme of red for a bit value, yellow for inputs or control signals and green for output control signals or state. Diagram wise then it looks like this:

AD Register LEDs
AD Register LEDs (larger)

Each block in the diagram represents a single 3mm LED in a plastic holder. Each LEDs is pushed into the holder from the front and the pair of LED legs are bent at 90 degrees.

Next up is the connections to other parts of the computer. There is the 8-bit data bus, power connections and finally the control signals to load/select the A and D registers. This isn’t too far away from the layout used by the ALU cards and so by keeping with the same connector lines a ribbon cable can be passed through all the sockets (or rather I can use the backplane card) to connect several cards together. The diagram of the connectors look like this:

AD Register Connectors
AD Register Connectors (larger)

This shows the four right angled boxed headers (identical to the ones used on all the ALU cards) - from left to right these are: 8+8 B/C input, 8+8 data bus plus control lines, 10+10 control lines and finally 5+5 power lines. The pins used by the ALU on the control bus are not shown here but effectively take up the second row of pins shown with dashes above. There are also some values here that will be used by other cards in the computer that share the same ribbon cable / back plane slots but for the sake of completeness each of the pins are as follows:

So, finally, wiring everything together we get the following:

Complete AD Register
Complete AD Register (larger)

This diagram includes everything mentioned so far along with the power supply and ground lines and all other internal wiring. As with previous cards, the completed AD Register design can be found here in PDF format (so you can zoom in and out as you wish). Hopefully the diagram reads OK but if not let me know in the comments.

In the next post, assuming my laser cut enclosure parts don’t arrive first in which case I’ll post about those next, I’ll cover the design of the BC register which is very similar to this one but has the additional complexity of directly feeding the ALU via the B/C bus.