Since I was a boy, I've been interested in computers. I even made plans to build one myself, because they were not for sale at that time. However I had to wait almost 40 years before that plan would become reality.
Me in October 1979 behind an old X1 from Electrologica, the first commercial computer in the Netherlands. It shows my early interest for computers.
A relay computer…
In January 2014 I visited Bletchley Park and the computer museum on the premises. That visit and the reconstruction of the EDSAC computer was the inducement to pick up this old idea. I choose to build a relay computer, because a relay is the most basic switching element there is. So this project started at the beginning of june 2014.
MERCIA means “Mijn Eenvoudige RelaisComputer In Aanbouw” or “my simple relay computer under construction”. My relay computer is called MERCIA for a number of reasons. It is in line with a Dutch tradition to use acronyms for the early computers:
Ø ZEBRA Zeer Eenvoudige Binaire Reken Automaat (Very simple Binary Calculation Automat)
Ø PASCAL Philips Akelig Snelle CALculator (Philips Creepy Quick Calculator)
Ø STEVIN Snel Tel En Vermenigvuldig Instrument. (Quick Count and Multiply Instrument)
Furthermore the name contains the French word “Merci”. This expresses the many pleasant hours I spend and will spend in developing and building MERCIA. And last but not least Mercia is a female name. She is demanding, costs lots of money and does not do what I want her to do. What else is new…
The main purpose of MERCIA is to educate people (children) about the way a computer works.
Most modern computers are black boxes. One can see the in- and output, but everything between that is hidden for the user. I intended to make the data, control signals and addresses flow visible for the user. I used colors to recognize those flows: address flows are marked yellow, dat flows red and control signals blue.
This principle makes is also important to see each and every memory bit. This gives an indication of the sheer size of modern memory. Especially when you realize this computer only has 1k memory and needed approx. 27500 components to build just that.
In order to facilitate educational purposes, the MERCIA is mounted on a number of foldable panels. Every panel folds together like a book and can be carried like a suitcase. In total there will be nine panels or modules. So it can be easily transported and also presents the MERCIA in an attractive way.
The design is completely standardized. Only Single Pole Double Throw relays are used. Using a mix of relays makes the design more complex and adds the slack because not every pole is used. However it does increase the number of used relays, since every pole is also a relay.
Five basic PCB’s are used:
1. The relay PCB with 10 relays and LED indicators.
2. The DIP-switch ROM memory PCB with 16*4*10bit or 64 words or 640 bit.
3. The capacitor RAM memory PCB with 16*2*10bit or 32 words or 320 bit.
4. A diode matrix PCB for a 8*16 diode matrix
5. A connector PCB for a 50 pins IDC Box header
The design of the computer is implemented by means of the connection wires between the standard PCB’s.
No IC’s, no tubes and no transistors
No integrated circuits, no tubes and no transistors are used. Only relays, diodes, resistors, capacitors and LED’s. The intention was not to build a historically correct relay computer. It is a relay computer based on the computer knowledge of today.
Minimal number of relays is no goal in its self
The use of a minimal number of relays was not a goal in itself. For each and every function a careful consideration was made if the number of relays justifies the functionality. A good design appears the most important step to reduce the number of relays.
Design, document, test and build
Four steps are used for every module:
1. Make a design, look at the holistic implications and adjust if necessary.
2. Document the design, because the computer is too large and complex to remember everything
3. Test every circuit diagram to make sure it works.
4. Build the relay computer panel/module.
This approach resulted in two very elegant solutions. First, by placing the logic of the ALU in front of the adder, subtraction, incrementing and decrementing could be implemented with barely any extra relays. Secondly the ALU could also be used for address incrementing and even relative addressing. This saves a large number of relays and adds the luxury of (much easier programmable) relative addressing.
No tweaking with relay ground
The relay ground is always kept as relay ground. So every relay ground stays always connected and will not be switched.
I/O part of design
For the intended educational purpose, I/O is essential. This I/O is user-friendly and incorporated in the design and instructions.
April 2015, Jeroen Brinkman