In Part 1
of this mini- series we introduced the concept of a Heath Robinson Rube Goldberg (HRRG) Steampunk computer project; in Part 2
we pondered the system clock; now let’s consider switches and relays…
One thing we are going to need for our HRRG Steampunk computer is some form of read-only memory (ROM) in which to store a simple boot (start-up) program. One way to achieve this would be to have a cabinet containing a number of banks of up/down on/off switches (preferably really uber-cool-looking antique ones).
Assuming an 8-bit data bus (and remembering that we may decide to go for a 4-bit machine for the sake of simplicity), each bank of eight switches would represent an 8-bit byte in the ROM. A switch in the up position could represent a logic 1, while a switch in the down position could represent a logic 0 (or vice versa).
An additional thought is that we need some way to specify the range of memory addresses represented by this type of memory cabinet. For example, suppose the cabinet contained 32 banks of switches (just to pick a number out of the air). In this case, we need to be able to specify whether these 32 banks equate to addresses $0000 through $001F, or addresses $0020 through $003F, or addresses $0040 through $005F, and so forth (where the dollar '$' characters represent hexadecimal values). This will allow us to (a) have as many of these cabinets as we wish and (b) to mix-and-match different ROM technologies [see also the ROM (Plug Panel)
With regards to the idea of forming a portion of our ROM from switches, Paul from New Boston, NH, emailed me to say: "An arrangement of switches makes perfect sense. You can point to the example set by no less than Seymour Cray in the CDC 6600's Deadstart Panel (what we'd call a Boot ROM these days)."
Paul was also kind enough to facilitate my getting hold of the above photo taken by Dave Redell showing the Deadstart Panel of the CDC 6600 serial number #1 (this machine currently resides at the Computer History Museum
in Mountain View, Califonia). As we see, in addition to some control switches at the bottom, this panel comprises 12 words, each containing 12 bits.
As a point of interest, the CDC 6000 was a mainframe computer that was designed by the legendary Seymour Roger Cray (1925-1996) and his colleague Jim Thornton. Created by the Control Data Corporation – and considered by many to be the world's first supercomputer – the first CDC 6600 was manufactured in 1964. The CDC 6600 remained the fastest computer in the world until 1969, at which time it was surpassed by its successor, the CDC 7600. For around 30 years, there used to be a joke that if anyone asked "Which company makes the fastest computer?"
the answer was "Wherever Seymour Cray is working now!"
ROM (Plug Panel)
Another form of ROM could be a cabinet containing a big "plug board" – something like the panel a human telephone operator used to use in ye olden days (the sort of thing you see in old black-and-white films).
In reality, this would be simply a giant plug board. Each 8-bit location would have eight sockets and eight corresponding plugs, where each of the plugs would look a bit like an audio jack and would be on the end of a spring-loaded retractable wire. A plug in its socket could represent a logic 1, while a socket without its corresponding plug could represent a logic 0 (or vice versa).
Towards the end of the nineteenth century – when Queen Victoria still held sway over all she surveyed – the most sophisticated form of control for electrical systems was the electromechanical relay.
For the uninitiated, a relay is an electromechanical switch that consists of a coil of wire wrapped around a rod of iron or some other ferromagnetic material. When an electrical potential is applied to the coil, it generates a magnetic field that is used to close/activate a switch [see (a) in the figure below); when the electrical potential is subsequently removed from the coil, a spring is used to return the switch to its open/inactive state [see (b) in the figure below].
The point is that the output from one relay – or from a number of relays – can be used to control other relays, and the output from these other relays can be used to control yet more relays, and so forth. Thus, by connecting relays together in different ways, it's possible to create all sorts of things, such as the first automatic telephone switching exchange. This little scamp was invented in 1888 by the American undertaker Almon B. Strowger (1839-1902).
I know this sounds a bit weird, but the local telephone operator was married to a competing undertaker. Strowger became somewhat disgruntled when he discovered that she was redirecting calls from his potential clients to her husband, so he invented the automatic telephone exchange to get her out of the loop!
Perhaps the most ambitious use of relays was in the construction of electromechanical computers, such as the first large-scale automatic digital relay-based machine – the Harvard Mark 1 – which was constructed between 1939 and 1944. This beast was 50 feet long, 8 feet tall, and contained over 750,000 individual components.
Returning to the HRRG Steampunk computer, our next cabinet (or several cabinets) could contain a portion of the CPU (maybe some or all of the ALU) implemented using relays. Or maybe we could create a RAM cabinet using relays. One consideration is that every technology has cunning tricks associated with it. I personally have never actually designed arithmetic and control logic using relays before.
One alternative would be to try to work everything out from first principles. This could be fun, but it would certainly be time-consuming. Fortunately, Paul from New Boston, NH, pointed me in the direction of a book on relay logic called The Design of Switching Circuits
by Keister, Ritchie, and Washburn (apparently, the Ritchie who wrote this book is the father of Dennis Ritchie, who was the co-creator of Unix).
There used to be a number of used copies of this book available from Amazon.com
. Now there is one copy less, because I ordered one of them!
I also heard from Mike, Carlisle, MA, who said: "As far as a text for designing relay logic, the reference that comes to mind is
Switching Circuits and Logic Design by Samuel H. Caldwell, published by John Wiley and Sons. The third printing appeared in November 1960 (its first printing was 1958) and its Library of Congress catalog card number is 58-7896."
Sadly, I haven't been able to track one of these little rapscallions down, so if you know of one that's available, please drop me a line at max@CliveMaxfield.com
and let me know.
Until next time, please keep those ideas coming in…