This proposed HRRG computer project is named in honor of British cartoonist and illustrator William Heath Robinson (1872-1944) and his
American counterpart Reuben Lucius Goldberg (1883-1970). Robinson and Goldberg were both famous for creating illustrations of machines
that were intended to perform relatively simple tasks, but whose implementations were incredibly complex such that they performed their
tasks in exceedingly convoluted and indirect ways.
Note that this project is a "work in progress" and this paper is constantly being updated. Also note that we are writing
a series of articles on the building of the HRRG computer on IBM's DeveloperWorks website (Click Here to see the current articles).
Example Relay-Based Computer
Just to set the scene, take a look at the photo below. This shows a relay-based computer created by Professor Harry Porter III,
who is a lecturer at Portland State University. (You can find out more about this little rapscallion on Harry's Website
Isn't this ultra-cool? Can't you just imagine the relays clattering away in the background while this little rascal (the computer, not Harry) performs
its cunning calculations? In particular, observe the way in which Harry has split his computer across a collection of handsome, wall-mounted,
glass-faced wooden cabinets (we'll be returning to this point in a little while). "A thing of beauty is a joy for ever," as the old saying goes.
Our Cunning Plan
Our cunning plan is to design – and hopefully one day build – what we are calling the Heath Robinson Rube Goldberg (HRRG)
computer. This would be a (possibly cut-down) version of our DIY Calculator
. However, we don't intend to simply replicate
Harry's work – where would be the fun in that? Instead, we wish to create something even more on the "Cool Beans" side (if that's possible).
What we're pondering is a beast that combines multiple technologies (relays, vacuum tubes, transistors, silicon chips, etc.). Imagine a row of glass-fronted
wooden cabinets on the wall. Each is implemented in a different technology, and each contains some portion of the computer, such as the system clock, the ROM,
the RAM, the ALU, the CPU's status and control logic, the CPU's addressing logic, and so forth.
We will elaborate on this core concept in the following topics – what we're trying to do here is to convey our "vision." The idea is to first come
up with a specification for the functionality to be represented by each of the cabinets along with a well-defined interface into – and out of –
each function/cabinet. This would facilitate different design teams tackling the different cabinets.
Furthermore, as opposed to having the cabinets linked by bunches of cables, we were thinking of providing each cabinet with a wireless
communications system (or maybe they could communicate via the building's power cables, since each cabinet will require a power supply anyway).
This would (a) make things look nice and (b) allow the various cabinets to be located at arbitrary distances from each other. Note that this project
could grow to such a size that we'd need a big facility to host the final machine and display it to its fullest effect (possibly a museum or an airport or ...
Contact Us if you have any ideas ... all suggestions will be very gratefully received).
The System Clock
The first cabinet will contain the system clock. There are many ways in which this could be implemented, but we think it would be
appropriate to use an antique clock – clockwork of course – with a swinging pendulum that could be used to trigger an optical sensor.
Also, we would probably want to include a sound system to amplify and present the tick-tock, tick-tock
sound of the clock.
Things would be arranged such that one could select between running the machine directly at this sub-Hertz frequency, or – by means of some
frequency multiplication and/or division circuits – one could speed things up or slow them down as required.
One rather "Cool-Beans" alternative to the above might be to use a cabinet containing a Jacob's Ladder as the system clock.
You know what we're talking about – you see them in the mad scientists' labs in every black-and-white Frankenstein-type
horror film (it's alive... it's alive..."). That is, the two metal rods with a series of electric "lightning" arcs rising
up between them.
In this case, we could use some sort of photo-detector to sense the arcs as they reach the top of the wires. Each arc would
equate to a single beat of the system clock (once again, it would be nice to have a sound system to slightly amplify the
buzz-hiss-crackle effect of the electric arcs). (Note that the above images came from the Mike's Electric Stuff
website and are provided courtesy of that site's owner, Mike Harrison.)
We're going to need some form of read-only memory (ROM) in which to store a (very) 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 cool-looking antique ones). 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 following topic).
With regards to the idea of forming a portion of our ROM from switches, Paul from New Boston, NH, emailed us to say: "Sure, 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 our 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.
Manufactured 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 short 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).
We 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 our HRRG computer, our next cabinet (or several cabinets) could contain a portion of the CPU (maybe some or all of the ALU) implemented
using relays. One consideration is that every technology has cunning tricks associated with it. We (the authors of this paper) have never actually
designed arithmetic and control logic using relays before. Thus, as an alternative to our trying to work everything out from first principles
(which could be fun, but which would certainly be time-consuming), if anyone has any expertise in this area and/or can recommend any good books,
please feel free to Contact Us because we'd love to hear your thoughts.
Further to the above plea, Paul from New Boston, NH, pointed us 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). A few moments ago (as I pen these words), there were three
used copies available from www.Amazon.com. Now there are only two,
because I [Max] just ordered one of them!
Furthermore, we also heard from Mike, Carlisle, MA, who told us: "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, we haven't been able to track one of these little rapscallions down, so if you know of one that's available,
please Contact Us us and let us know.
ALU/CPU (Vacuum Tubes)
In 1879, the legendary American inventor Thomas Alva Edison (1847-1931) publicly demonstrated his incandescent electric light bulb for
the first time. This was based on a filament mounted inside a glass bulb, from which all of the air was removed leaving a vacuum. When electricity was
passed through the filament, it began to glow brightly (the vacuum stopped it from bursting into flames).
A few years later in 1883, one of Edison's assistants discovered that he could detect electrons flowing through the vacuum from the lighted filament
to a metal plate mounted inside the bulb. Unfortunately, Edison didn't develop this so-called Edison Effect any further. In fact, it wasn't until
1904 that the English physicist Sir John Ambrose Flemming (1849-1945) used this phenomenon to create the first vacuum tube. (Vacuum tubes are
known as valves in England. This is based on the fact that they can be used to control the flow of electricity, similar in concept to
the way in which their mechanical namesakes are used to control the flow of fluids.) Flemming's device, which was known as a diode, had
two terminals and conducted electricity in only one direction (a feat that isn't as easy to achieve as you might think).
In 1906, the American inventor Lee de Forest (1873-1961) introduced a third electrode into his version of a vacuum tube. The resulting triode could
be used as both an amplifier and a switch. De Forest's triodes revolutionized the broadcasting industry (he presented the first live opera broadcast and the
first news report on radio). Furthermore, their ability to act as switches was to have a tremendous impact on digital computing.
One of the most famous early electronic digital computers was the Electronic Numerical Integrator and Calculator (ENIAC), which was constructed at the
University of Pennsylvania between 1943 and 1946. Occupying 1,000 square feet, weighing in at 30 tons, and employing 18,000 vacuum tubes, ENIAC was a
monster ... but it was a monster that could perform fourteen multiplications or 5,000 additions a second, which was way faster than the relay-based Harvard Mark 1.
Returning to our HRRG computer, the next cabinet (or several cabinets) could contain a portion of the CPU (maybe some or all of the status and
control logic) implemented using vacuum tubes. The sort of tubes we're thinking of here are the little dinky ones (about 1 cm in diameter and around
3 or 4 cm tall).
Once again, we (the authors of this paper) have never actually designed arithmetic and control logic using vacuum tubes before. So, once again, if anyone
has any expertise in this area and/or can recommend any good books, please feel free to Contact Us;
we'd very much appreciate hearing from you.
The next cabinet could contain a portion of the CPU (maybe some or all of the addressing logic) implemented as circuit boards
populated with logic gates formed from individual transistors.
Depending on the number of transistors and circuit boards, it may be that this cabinet is combined with the next cabinet; that is, the top portion
of the cabinet could contain circuit boards populated with individual transistors, while the bottom portion of the cabinet could contain
circuit boards populated by simple (jelly-bean) silicon chips.
ALU/CPU (Silicon Chips)
The next cabinet could contain a portion of the CPU (maybe some or all of the addressing logic) implemented as circuit boards
populated with logic gates in the form of simple (jelly-bean) silicon chips. For those who remember this sort of thing, we're thinking about something like
the old 74-series TTL logic from Texas Instruments; for example, a 16-pin dual-in-line (DIL) plastic package containing four 2-input AND gates.
As was noted above, depending on the number of silicon chips and circuit boards, it may be that this cabinet is combined with the previous cabinet;
that is, the top portion of the cabinet could contain circuit boards populated with individual transistors, while the bottom portion of the cabinet
could contain circuit boards populated by simple silicon chips.
And what about the main random access memory (RAM)? It would – of course – be easy to throw a modern semiconductor memory chip
into the fray, but surely we're made of sterner stuff than this!
Actually, the memory is where we can let our imaginations soar. Consider a cabinet employing some form of pneumatic system, for example, that uses a
small metal ball bearing and two adjacent cone-shaped receptacles to represent each bit. A ball bearing in its associated left-hand receptacle could represent
a logic 0, while the right-hand receptacle could represent a logic 1 (or vice versa).
When the system writes an 8-bit byte of data to one of these memory locations, the pneumatics could "puff" the bearings associated with that byte into
their appropriate receptacles. Each non-conducting (plastic) cone could have two bare conducting wires inside it; these wires (which are not shown
in the above illustration for simplicity) would be close to each other,
but not touching. When a (metal) ball bearing is inside a cone, it shorts the wires and completes that circuit. When the system reads a byte from
one of these memory locations, it would actually be determining the location of the ball bearings.
As we discussed in the ROM (Switches) topic earlier in this paper, we need some way to specify the range of addresses represented by each
memory cabinet. This will allow us to (a) have as many of these cabinets as we wished and (b) to mix-and-match different memory technologies (see
also the following topics).
As we noted a little earlier, the memory is where we can really let ourselves run wild and free. Suppose, for example, we had a cabinet in
which each bit was represented by a small fountain of colored water; red water could represent a logic 1 and green water could represent a logic 0 (or vice versa).
When we store a byte of data into one of these memory locations, the different colored fountains could be activated. By comparison, when we come to read
a byte of data from one of these locations, we could use light-emitting diodes and photo-transistors (and maybe colored filters) to detect the
different colored fountains.
As an added frill, when we write to – or read from – a memory location, the system could present us with some audible indication. Perhaps
one tone for a write and another tone for a read; or perhaps we could divide the 256 different combinations of 0s and 1s that can be represented by a
byte into some number of sub-groups, each of which is associated with a different semitone.
Of course, this could quickly start to wear on the nerves, so there would have to be a "mute" switch. On reflection, maybe we should relegate any audio
output to the I/O ports as discussed later in this paper.
RAM (Delay Line)
Some of the early computers stored data in mercury delay lines. These delay lines were constructed using a thin tube containing mercury
and sealed with quartz (piezoelectric) crystals at each end. Applying an electric current to a quartz crystal causes it to vibrate. Similarly,
vibrating a quartz crystal causes it to generate an electric current. Thus, the principle behind the mercury delay line was to briefly apply a
current to the crystal at one end of the tube, which generated a pulse that propagated through the mercury at a known speed. When the pulse reached
the far end of the delay line, it caused the crystal at that end to generate a corresponding current.
By amplifying the output from the second crystal and feeding it back to the first crystal, a continuous loop could be established. Moreover, a number of
individual pulses could be maintained in a single delay line, similar in concept to a column of people marching down a corridor in single file. In fact 1000 bits
could be stored in a delay line five feet long.
Now mercury is expensive (and dangerous), but maybe we could construct a cabinet containing a number of shorter delay lines filled with some other
substance (preferably something that wouldn't kill the operator – or any visitors – if it leaked out). Also, each of the delay lines could
have some sort of display associated with it to reflect its contents and to provide some "eye candy" – maybe a white plastic tube containing colored
light-emitting diodes (LEDs) arranged such that the pulses of light seem to race through the tube. (See also the related suggestions in the
More Ideas topic later in this paper.)
RAM (Core Store)
Another form of memory used by early computers was something called magnetic core memory
(also known as core store
). Invented in 1950 by Jay Forrester at MIT, this was based on an array of ferromagnetic beads shaped like miniature donuts.
First, let's consider the case where such a bead has a single wire threaded through it [see (a) in the illustration below]. If a small current is passed
through the wire then nothing happens. But if a current of sufficient magnitude, which we will call Ia, is passed through the wire, it causes the
bead to be magnetized in the direction Ma. Similarly, if the first current is removed and a new current of equal magnitude called Ib is
passed through the wire in the opposite direction, the bead will be magnetized in the direction Mb. A bead magnetized in direction Ma can
be used to represent a logic 0, while a bead magnetized in direction Mb can be used to represent a logic 1 (or vice versa).
The point is that a magnetized bead will remain magnetized after the current is removed, and will therefore "remember" the logic value it is being used
to represent. (In this respect a core store is similar to a ROM, because it is non-volatile and any stored data is retained even after power has been
removed from the system.) In reality, this single-wire scheme is not particularly useful to us, because if we were to string a number of beads on the
wire, then every time we applied a current to the wire they would all be magnetized in the same direction.
In order to solve this problem, consider the case in which a bead has two wires threaded through it [see (b) in the above illustration]. If a current
of ˝Ia is passed through each wire, the total effect is identical to that of a single wire carrying a current of Ia, and the bead is again
magnetized in the direction Ma (similarly, if each wire were used to carry a current of ˝Ib, the bead would be magnetized in direction Mb).
This dual-wire scheme is of use, because it allows us to construct an array of such beads [see (c) in the following illustration, each of which can be
individually magnetized by applying signals to its associated row and column wires.
The ability to individually magnetize each bead in direction Ma or Mb is only part of the story, because it is also necessary to be able
to "read" a bead to determine the direction in which it was magnetized; that is, to see whether it is currently storing a logic 0 or a logic 1. This is
where the sense wire comes into play [see (d) in the above illustration].
Let's assume that a bead magnetized in direction Ma represents a logic 0, while a bead magnetized in direction Mb represents a
logic 1. Now, let's suppose that we want to detect which logic value is currently being represented by the bead in the middle of our array (the one
located in row 1, column 1). One technique is to apply signals of ˝Ia to the wires Row-1 and Col-1 which, irrespective of the
bead's current state, will cause it to be magnetized in direction Ma. However, there is a cunning trick here, because if the bead was
already magnetized in direction Ma then nothing will happen, but if the bead was initially magnetized in direction Mb, then causing
it to reverse its state results in a pulse of current appearing on the sense wire.
Thus, by detecting the absence or presence of a pulse on the sense wire, we can determine whether the bead was originally storing a logic 0 or a logic 1,
respectively. The only problem with this technique is that if the bead was initially storing a logic 1, then we've just overwritten it with a logic 0
(that is, if the bead was originally magnetized in direction Mb, then it's now magnetized in direction Ma). This is referred to as a
destructive read, which means that each read operation in a core store is normally followed by a write cycle to restore the original data.
Note that the previous illustration showed only a small portion of a core store array being served by a single sense wire. In order to represent
an 8-bit wide memory, we would divide a much larger array into eight sections, each with its own sense wire. Also, the core store itself would
be surrounded by the electronics circuits used to write data into the store and read it back out again (in the days of yore, these circuits would
have been implemented using circuit boards populated with lots of individual transistors, resistors, capacitors, and so forth.
The invention of the core store meant that, for the first time, a reasonably useful form of memory was available to computer designers.
Although the idea of core stores seems rather strange today … they worked. If you think that these are bad, you ought to have seen what
designers were obliged to use before! Many of the early techniques – such as the mercury delay lines discussed in the previous topic –
were sequential in nature (you typically had to read a lot of unwanted data out before you reached the data in which you were interested).
Thus, in order to differentiate core stores from these sequential techniques, the term random access memory (RAM) was coined to
emphasize the fact that data could be written to and read from any part of the core's array. This is why we use the term RAM to this day,
as opposed to the possibly more meaningful appellation read-write memory (RWM) that no one actually uses.
In addition to being a lot slower than today's semiconductor memory devices (but faster and much more convenient to use than mercury delay lines), core
stores were physically much larger and they could only hold a relatively small amount of data. The first core stores were effectively "knitted" together by teams of ladies with the appropriate skills,
although automated techniques soon took over. The outer diameter of the original beads was around 2 mm (which is actually quite small), and
they eventually shrank to around 0.2 mm (which is really, really small), but it still took a whole bunch of them to make a memory that could
hold a reasonable amount of data.
But we digress... The point is that (in tribute to the early pioneers) at least one of our cabinets should contain a home-made core store,
even if it only contains say eight bytes of memory. Of course we could "tart" things up a bit; for example, we could have a green and red LED associated
(both logically and physically) with each core; the appropriate LED would be activated to reflect the contents of its corresponding core.
Further to the above, I recently took delivery of 50,000 antique ferromagnetic cores. I purchased them on eBay from a company in Bulgaria.
Truth to tell, I thought the 50,000 quantity was a misprint until they arrived. I only want 64 cores to build a small 8 × 8 array for use
in a magnetic core store memory cabinet for the HRRG, so I would have been more than happy with a hundred or so cores. The last cores I recall
seeing "in the flesh" were maybe a couple of millimeters in diameter, so that was sort of what I was expecting. But these things are absolutely
tiny – so small in fact that it's difficult to see that they are indeed donut-shaped and have holes in the middle with the naked eye:
I've also received messages from a number of folks who are all generally in agreement when they tell me that I haven't got a clue as to how
tricky it will be to construct the drive and sense amplifiers that will be required to write data into my array and read it back out again.
This is because creating the analog circuits to do all of this is something of a black art (see also the Interesting Books topic).
But I remain undaunted, largely because I have no intention whatsoever of implementing my drivers and sensors using analog circuits.
Instead, I think I'll use simple digital microcontrollers containing D/A and A/D converters that can generate and monitor analog signals
under digital control. On the other hand ... it would be interesting to see an 8 × 8 array whose drivers and sensors were implemented
using the techniques of yesteryear. Does anyone out there still have the expertise to do this? If so, I'd love to hear from you.
On a related topic, a few weeks ago as I pen these words I received an email from a guy called Steve Marum who said:
I just read an article on your HRRG Mixed Technology Computer and your purchase of 50,000 ferromagnetic cores.
Many years ago, about 30, I was planning to build a core memory since back then it was "do it yourself" or "do without". I never did
(technology got ahead of me and I bought a surplus mini), but in preparation I stockpiled some vintage 1974 core sense amps (TI part SN7528).
As you can imagine, I was all aquiver with excitement. Maybe Steve could be persuaded to build a core store for "The Beast"? I immediately emailed
him back with promises of fame beyond his wildest dreams and awaited his response in dread anticipation. Before long, I was eagerly perusing his answer:
In answer to your "big question", sorry, but no, I'm not interested in restarting that project. I'm heavily involved in a high school robotics
competition (www.bestinc.org), I'm one of the founders so I just don't
have the time. As they say, sometimes you have to learn to say "no".
But ... I hate to see all my good scrounging go for naught :-) I would be delighted if someone else could use the SN7528 chips. They are dual-channel so
you would only need four for your eight word × 8-bit core store. How about I send you eight so you will have some spares? They have been obsolete
for so long now I'm sure they are hard to obtain.
Wow! How cool. I love the smell of a fresh silicon chip in the morning (who amongst us doesn't?), but I also love vintage chips from yesteryear
(it won't be long before we're calling them "antique"). I of course answered with a resounding YES PLEASE. About a week later, a small
package meandered its way through the office and arrived on my desk. In addition to photocopies of the original datasheets from an old
TI Integrated Circuits Catalog, the package contained nine devices – eight were intact while one had its top stripped off.
When I queried Steve, he explained that when he had come to look more closely at his bag of core sense amps, he found they were symbolized as
"10125". Also, there was a 30-year old note he'd written to himself saying: "7528, not 10125". (This note probably appeared less cryptic
when Steve originally penned it, but at the time he didn't anticipate a delay of 30 years before he opened the bag again.)
Not recalling how he knew to write the note, Steve took one of the devices into work and – with the help of his friend, Rick Watson – opened
it up to look inside. Below is the photo taken by Rick:
Steve explained that back in the 70's he was designing ECL circuits, specifically the "10K" series, of which the 10125 was one. They sent some
chips off to be assembled and they must have gotten mixed up with another order in the assembly process.
As we see, the die is marked 7528. Steve even went so far as to trace out part of the circuit and compare it to the schematics in the datasheet to
ensure that the devices are indeed 7528s. As Steve says:
I thought you might get a kick out of the chip photo and even the decapped chip so I included it. It might still work if the bond wires are all intact,
but I wouldn't rely on it.
These chips are a real "blast from the past". The input NPN transistors of the sense amps are huge – about 2/3 the size of a bond pad!
What a difference 30 years makes. It kind of snuck up on me, happening a little at a time (kind of like watching kids grow up).
I know just what he means ...
Input/Output (I/O) Ports
Let's consider the output ports first. One idea would be to have a cabinet with some number of rows, where each row – corresponding
to an output port – contained eight small puppets. Each puppet could be holding a flag saying '0' in one hand and a flag saying '1' in the other.
When we write a value to one of these output ports, the eight puppets on that row each raise (and wave) the appropriate flags.
Another idea would be to take the colored water fountains discussed in the RAM (Fluidic) topic earlier in this paper and used that concept to
implement a cabinet of output ports.
Yet another idea would be to divide the 256 different combinations of 0s and 1s that can be represented by a byte on an output port into some number
of sub-groups, each of which is associated with a different semitone (a value of all zeros would correspond to no tone at all), and to then play that semitone.
Alternatively, maybe we could use five bits from each port to represent one of 32 different semitones (corresponding to a little under three full octaves)
while the remaining three bits from each port are used to control the volume of that semitone. By writing different values to a number of these ports,
we could build chords and suchlike.
Maybe the previous two ideas could be combined. That is, each of these output ports could have both the colored fountains and a
And what of the input ports? Well, what do you think? As I [Max] pen these words I'm on a plane flying at 30,000 feet, I've been up since 3:00 am, and
my brain is "fluffy." So I'll leave you to come up with something cunning here (perhaps some random element, or a biological component involving
trained hamsters juggling with miniature chainsaws ... ?)
Settle down, the hamster scenario mentioned in the previous topic was a joke (I've never met a hamster who could juggle, although I
once saw a man juggling with hamsters, but that's another story). Having said this, we have been contemplating employing a biological element somewhere
in the system (see the discussions on aquariums later in this topic).
The point is that "the world is our lobster!" We can have lots of fun coming up with a variety of wild and wacky ideas ... and maybe we'll even
get around to building some of them (or persuading someone else to do so). So, if something pops into your mind, write it down
and Send It to us, and we'll include it in this paper (along with your name
and general location – for example, Prof. Cuthbert Dribble from Armpit, Arkansas – so that everyone knows
exactly who to blame).
Good Grief! We'd no sooner penned the above words when the floodgates opened as follows:
Larry, Berkeley, CA: "It sounds like you will need a lot of DC power, so you might consider using mercury vapor
rectifiers in the power supplies. They will definitely give you the mad scientist vibe.
Max: Great idea. The following image provides an example of what Larry is talking about. This image came from
the Mike's Electric Stuff website and is provided
courtesy of the site's owner, Mike Harrison.
Joe, Alconbury Weston, UK: "How about building a software emulator once the design is settled on. This emulator
would run on a PC. The idea is that each group could take the emulator, switch off the bit they are physically building, and
replace it with their hardware cabinet, which would be connected to the PC via a USB interface (for example)."
Max: I think this is a brilliant idea. This would allow folks to prove that everything in their particular cabinet interacts correctly and
works as planned without being obliged to truck their portion of "The Beast" around the world. It would also allow folks to maybe implement just one
or two cabinets to hang on their own wall rather than having to build the whole thing (hopefully they would make copies of these cabinets for
the main project/installation ... or at least provide photos and plans).
Actually, taking this one step further, if this whole thing really takes off (and I'm becoming more optimistic by the minute), I can imagine us one-day
organizing a huge get-together somewhere. Everyone could bring their cabinet(s), and we could spend a happy few days connecting them together in different
combinations and permutations. We might even get around to quaffing a few beers! (For those for whom the mother tongue is a second language – Americans,
for example – "quaffing" is just like regular drinking, except that you tend to be more exuberant and spill more down your chest.)
Max: Several folks emailed me asking if I'd seen the Difference Engine created out of LEGOŽ by a guy called Andy Carol.
I immediately bounced over to Andy's Website to take a look. Wow! What a cool idea. It would
be great if we could incorporate something like this into our system; maybe as an add-on coprocessing unit that talks to our main system via our
input/output (I/O) ports.
For more information on mechanical computers in general and diifference engines in particular, check out the
First Mechanical Computers paper on our More Cool Stuff page.
Tom, Boston, MA: "With regard to your delay-line memory idea [Max: see the RAM (Delay Line) topic], if you want a non-toxic delay
line, hunt down a Wurlitzer organ circa 1965. The reverb effect was implemented by sending a signal down a spring, something like 50-75cm long and 7-10mm diameter,
loosely strung between the input and output transducers. It's the same basic technology as kids talking over a string and two tin cans, but used for data
storage rather than communication."
Max: What a good idea. Of course we could use any old spring, but it would be way-cool to actually employ an original Wurlitzer reverb unit with
the transducers and associated circuitry (does anyone have one they would like to contribute to the cause?). We could also use an oscilloscope to reflect
the sounds in the spring; maybe even amplify them and play them back (but, as with all of the audio features discussed here, there should be a mute switch).
Erik, Cardiff, CA: "How about using some magnetic logic of the type found in the Univac SS-80 and SS-90 computers?"
Max: Truth to tell, I'd never even heard about this, but Erik found an interesting reference for
this Magnetic Logic concept.
Apparently, this form of logic is virtually indestructible and it draws no power when not in use. Erik also informed us
that McGraw-Hill published a book called Digital Magnetic Logic by Crane, Dave Bennion, and David Nitzan in
1969 (the year man first walked on the moon). As I pen these words, there was one used copy available
from www.Amazon.com ... and I just ordered it!
Don, Lake Arrowhead, CA: "Don't forget 'neon bulb' logic. Awards in simplicity have been won by this technology,
which is rarely used."
Erik, Cardiff, CA: "Back in the mid-60's, either Electronics Illustrated magazine or Popular Electronics
magazine had a cover article on using neon bulbs to make an adding machine. If I recall correctly, the neon bulbs were fed
through a resistor from a voltage source lower than the ignition voltage but higher than the sustain voltage – a positive
voltage pulse would cause them to turn on and a negative pulse would cause them to turn off. In the adding machine from
the article, the bulbs were both the logic elements and indicators. It seems to me that this would be a good technology
for one of the RAM cabinets for your proposed machine, being both retro and giving a visual indication of the
Max: Hmmm, interesting. Here's something else I know nothing about (the list grows daily). Does anyone have any
reference to this sort of thing on the web, or even a copy of the magazine mentioned above that they would be prepared
to donate to the cause?
Joe, Alconbury Weston, UK: "I was thinking about the cabinet sizes. As you say, an ALU even built from
transistors is probably going to be smaller than 64 bytes of RAM built using fluidic (hydraulic) technology. I'd probably
take a leaf out of the 19-inch rack people or – perhaps being more up to date – from the PC Server people. The
idea is that they have a standard width and different heights; in your case, I think you should settle on a standard
height but have several different widths available."
Max: I think this is a great idea – sold! (Although actually coming up with the specifications will take a little time,
because there's so much else to do at the moment.)
Larry, Berkeley, CA: "I don't know if you're familiar with telephone stepping relays ... they might be useful
in your computer and make a very satisfying chatter when indexing. They have about the same function as a CD4017
Walter, Roseburg, OR: "There might still be some telco (telecommunications) selector relays available in
junk bins somewhere. They would be nice for memory and register stuff as they would be directly adaptable to decimal
rather than binary."
Ken, Bloomingdale, IL: "It has been claimed that the telephone network is the world's largest computer. So it would make sense to
include one or two Strowger stepping switches. They would be great for both visual and audible effects. There's an article about them
on the PrivateLine.com website. Also, there are articles
that include the recorded sounds of Strowger and other telephone relays at the SEG Communications
and The Strowger Appreciation website. And if you include Strowger switches,
you could have an antique telephone dial for one of your inputs."
Max: I remember purchasing lots of these from the "scrap box" at my local electronics parts supplier in
Sheffield, England, 30 years ago when I was a lad (I wish I knew where they were now – lost somewhere in the
mists of time along with my youth, no doubt). I agree that we should use some Strowger switches somewhere in the system, and I really
like the idea of using an antique telephone dial as one of the inputs.
Jay, Nashua, NH: "For ROM you could use a Lite-Brite panel and a color digital camera, each color would
be a different bit level so you could have more than binary logic (I don't know how many colors come in a Lite-Brite set).
The color camera could digitize each Lite-Brite location and given an X/Y address could return the multilevel logic.
It would look cool too. Furthermore, having seen the new cube version [Max: see image below], you could have
four different programs, put it on a Lazy Susan, and rotate which side faces the camera so as to select
from them. I know that one of the most interesting computers to watch was a Thinking Machines Cube; this
was a huge array of 8086 CPUs, and when one of them was active its led would be on (the patterns were very cool)."
Max: This is a very cunning idea. It would make for a very interesting form of ROM. I will have to ponder this
some more – especially the fact that the different colors could be used to represent more than binary values.
Ken, Bloomingdale, IL: "The old pipe organs had a lot of primitive logic in them. There were banks of either electrical or pneumatic relays
for connecting the keys to various ranks of pipes as controlled by the stop tablets. Sometimes they filled whole rooms in the basement. The larger organs
also had a non-volatile "RAM" for storing the preset combinations. The organist could save his combination of stops by pressing a button called a "piston".
The organ had many of these buttons. The actual memory was a mechanical contraption that consisted of pneumatic bellows or solenoids controlling
sliding rods with movable levers on them. This could be part of the console, or for a large organ it would be in its own room in the basement. The
world's Largest Organ was so massive, it was never totally operational.
And the 'remote combination action' was so complicated it possibly never worked right – and then it was flooded.
Max: Now you have me visualizing Dracula in an old black-and-white horror film manically playing the organ whilst looking over his shoulder. I'm also
thinking of the lead-in sequence to the old Monty Python shows. But I agree that it would be really cool to use something like the organ's mechanical
memory as part of our system.
Jay, Nashua, NH: "When I was a kid we use to play with a game called Mousetrap.
We didn't play the game itself – we just put it together and made it do its thing. You could use it to trigger a power switch for your computer since
it is the ultimate in Rube Goldberg."
Max: Hmmm, not a bad idea. However, when it comes to the main power switch, I was thinking more along the lines of the original black-and-white
Flash Gordon films starring Buster Crabbe. You know, when someone said something like Quick, turn the light on!"
and it took two guards straining their muscles to rotate a 5-foot diameter switch that looked like a giant ship's (steering) wheel.
Paul, New Boston, NH: "If you don't mind some mechanism building, here's a notion. The University
of Illinois PLATO system had terminals with plasma panel display screens, and an option to rear-project microfiche
slide images. The projector took a 16 by 16 grid microfiche. The projector mechanism has an X/Y carriage, driven
by two sets of 4 pistons, with 1/2/4/8 stroke ratios (compressed air drive). So the eight bits of slide address would
go to solenoid valves for the 8 pistons, and in a modest fraction of a second the slide would be in place. You could take
something like that, with either one bit or several bits worth of mechanical storage – say, the balls you mentioned, or
something similar. Do the addressing this way, to position the "bits" under the read/write mechanism. 256 bytes per slide
should be quite doable; possibly more."
Tom, Boston, MA: "With regard to Paul's PLATO terminals, which were also examples of Don's "Neon bulb" memory (check out the
corresponding Wikipedia Entry): these were neon-orange plasma panels
made for the education market. Each pixel was a memory element, based on the fact (as another submitter described) that the voltage
needed to sustain a pixel was less than the voltage needed to light one. Pulse-on, negative-pulse-off. The panels themselves were
translucent, so they also acted as rear-projection screens for 35 mm slides etc."
Max: This sounds like a really cool idea. I'd love to get a photo of this type of mechanism if anyone has one
available so we can all better visualize what Paul and Tom are talking about.
Jay, Nashua, NH: "For your system clock, you could use an all-wooden clock like the ones
at www.woodenclocks.co.uk and a photo-interrupter
that works with the pendulum."
Max: I really like this idea, because it means that the first part of the system is as non-electronic as one can
get. On the other hand, I also really like my idea [go figure] of using the Jacob's ladder as discussed in the
System Clock topic earlier in this paper. Maybe we could end up with several clock cabinets
and swap (switch) them in and out of the system as required...
Joe, Alconbury Weston, UK: "There's one thing that everybody seems to have steered clear off thus far – organics. I have no idea,
at the moment, how you would incorporate an organic element into the beast, but it would make it truly unique if you could. Perhaps it could form
part of a truly random number generator. I know, I know, this sounds very much like the Hitch Hikers Guide to the Galaxy, but would be
so 'kewl' if it could be done ... I'm sorry my dear, I just need to pop out and water the computer, back in a moment..."
Tom, Boston, MA: "There's probably some amusement to be had in a genuine Turing machine – robotically walking back and forth
along a row of coded beads. Also, I wouldn't turn down any inspiration available in Terry Pratchett's computer, currently operating
at the Unseen University.
Max: By the time we've finished, the "Beast" will probably look very similar to the machine Terry Pratchett had in mind. [For those
who haven't read Terry's incredibly funny Diskworld series, amongst myriad other elements, Unseen University's computing machine – which is called Hex –
features ants as a biological element, a "wobbly thing with a cuckoo that acts as an unreal time clock," "a ram's skull in the middle (for occult
transformations)," and "some cogwheels and springs because the ants aren't very good at differential analysis"]. Actually, we have been toying with the
idea of some biological component. I don't think we'd go as far as ants and a ram's skull, but mayhap an aquarium cabinet containing fish with some way
to detect their movement – this could be used to provide a random number generation capability, for example.
Doug, Bethel, CT: "How about using black balls ('0') for memory in a vertical tube with a white background ('1').
A light-emitting diode (LED) beam and photocell would detect the presence or absence of the black ball ('0'). If light passed
through, then the data would read as '1'. A relay operated trapdoor at the bottom could allow the '0' to roll out; an open
top could allow the balls the roll in. Clock times would be long enough to allow the balls to settle into place before
their states were read."
Max: I think this would look really interesting. Maybe we could go one better and have different colored
balls – sort of like the ones used in the lotto. I'll have to ponder this some more.
Ken, Bloomingdale, IL: "Don't forget to include lots of tungsten and neon lights, and maybe some RCA numitrons
(tungsten filament display), and Nixie tubes, plus a few actual 'bells and whistles.' If you have vacuum tubes,
you also need a few 'magic eye' tuning indicators, and – of course – some analog meters."
Max: I love all of this stuff. For those "youngsters" who don’t remember this sort of thing, Nixie tubes (also known
as "numicators") are neon-filled numeric displays that consist of an outer mesh anode and ten cathodes shaped so as to form
numbers (there might be an additional cathode for a decimal point). These displays were very popular in the 1960s and the
early 1970s when the first digital logic silicon chips became available. The image below came from
the Mike's Electric Stuff website and is provided
courtesy of that site's owner, Mike Harrison. There are loads more mega-cool images on Mike's site. Also, Mike can
custom-build Nixie Tube-based displays for TV and Film projects.
Dan, Merriam, Kansas: "I have a suggestion that may be applicable to your project. I had a clock many years ago
that was made of plastic and marbles. An arm would rotate and scoop up a marble once a minute and – when the arm reached
the top of its arc – it would deposit the marble onto an inclined channel. The marble would then roll down the channel
until it bumped into the previous marble. When 60 marbles had accumulated, one would progress to the hour's channel
and the rest would be released to the bottom of the system to be recycled. Perhaps this could be used as an
accumulator/timer in the system you are considering?"
Max: I've seen these before and they do look cool. This is a really good suggestion for implementing a counter/timer.
One of the computer's output ports could be used to reset this timer, and then one or more input ports could be used to
read the time in terms of minutes and hours (and days?).
Ken, Bloomingdale, IL: "Do you remember fluidic computers? Your ball bearings and air jets are similar to those."
Ron, Ottawa, Canada: "I remember fluid logic being discussed in the 60's. It was proposed as radiation resistant for space use and
reliable for simple appliances such as washing machines. A bistable was a Y with the fluid being switched by a 'puff' of
fluid at the base of the junction of the top tubes. The fluid would then flow down the other side of the junction until another
'puff' from the opposite side to the original 'puff' flipped it over. If this logic was made from clear
plastic and used a colored fluid, the operation of the machine would be visible from a distance unlike relays where the
operation is mainly heard."
Max: Looking back, my original suggestions for using fluidics were a little simplistic. Now that you mention it, I do
recall this fluidic logic. In fact, you used to be able to purchase devices that looked like large integrated circuits,
but the legs were narrow tubes. Different devices provided different primitive logic functions, and the output(s) from each
device could be fed as input(s) to downstream devices (actually, I can’t remember if these were fluidic and/or pneumatic).
I very much like the idea of building a "chunk" of logic using transparent tubes with different colored fluids running
through them – maybe also have "sprinkles" of silver foil in the fluid to aid the observer see what is happening.
Greg, Palo Alto, CA: "With regard to your suggestion for pneumatic RAM, the bearings could be 'huffed'
from one side to the other through check valves. This would allow drawing a vacuum on the funnels to test for which
funnel currently carries the bearing (vacuum = ball present = 1; no vacuum = no ball present = 0). A weighted
bellows could retract a flag from an optical interrupter. If a funnel were not covered by a ball, the bellows
would never retract under vacuum. Of course, an independent weighted bellows with its own interrupter and calibrated
vacuum leak would act as a valid data signal; it would fully retract well after all the others to indicate the complete
travel of any of the other bellows."
Max: This is a great suggestion. First, it makes both the writing and the reading pneumatic,
which is much more in keeping with what we're trying to do in this cabinet. Second, by removing the need to
test for the presence of the ball bearings electrically, we remove the need to use metal balls, which means
that we could use larger, brightly-colored ping-pong balls, for example.
Douglas, Lansing, MI: "I don't know what they call it, but that Drinking Bird science toy would make a great clock. This is the bird-looking thing that pivots in the middle. You start
off by setting its beak in a small glass of water. Once it's absorbed a certain amount of water it stands up straight. Then the internal fluids condense
and it falls face first back into the water. And it cycles forever. The bird bobbing up and down regularly could be detected as a clock. Plus, I suspect
one could add some alcohol or other contaminant to the water to alter the evaporation rate to adjust the clock speed."
Max: This is a cool suggestion, but at the moment I think I have my heart set on a Jacob's Ladder-based clocking system as discussed in the
main System Clock topic.
Patrick, Xenia, Ohio: "Why not make your computer decimal based? I worked my way through college writing assembly programs
for the IBM 1620 computer. As far as I know, the IBM 1620 was the only decimal based computer commercially produced.
The machine I programmed on had 60,000 memory locations, each capable of storing one 6-bit digit (each memory location had
6 bits of magnetic core memory)."
Joe, Fort Lawn, SC: "Is it really necessary to limit yourself to the binary system when reinventing the computer? There must be a
huge supply of now unused telephone stepping relays which used the decimal system, being capable of stepping from 0-9 in response to the pulses
generated by a telephone dial. Can you envision the great advantage of memory cells which could store such a comparatively huge amount of data?
Or circuits which could manipulate decimal numbers? Think of the simplification of readout! One of the regrets I have in life is never
visiting a telephone exchange and actually seeing banks of those marvelous devices doing their job."
Max: Generally speaking this isn't a bad idea (making computers work in decimal is underrated by a lot of folks).
However, our plan is to make this a (drastically) cut-down version of the 8-bit CPU powering our virtual
DIY Calculator, because (a) we own the rights to this little rascal (see also the
Specification topic below) and (b) this will allow us to leverage existing tools like our
assembler and simulation environment. However, we might consider creating a special block of memory based on telephone stepping relays
that stores values in decimal.
Douglas, Lansing, MI: "Juke boxes used a variety of memory schemes. Some actually did have a magnetic core memory under the row of records,
while others used mechanical levers. The popular Rockola had a large circular mechanism called the 'wobble plate' with dual rows of little levers – they
stuck out each side. A mechanical carriage (the 'read-out carriage') scanned one side until it felt a raised lever. It then stopped, fired a small solenoid to push
the lever back down, and the rest of the system took it from there. On the opposite side of the plate was a similar 'write-in carriage' that scanned around
until a series of feelers on a printed circuit board felt livened contacts. It then stopped and a solenoid tripped a lever for the read-out to find. (No one
ever took you seriously when you told them that the problem with their juke box was 'dirt on the wobble plate!')"
Max: I know what you mean; no one takes me seriously when I say things like that either. But I love the idea of incorporating the memory
from an old juke box as part of our system, especially this 'wobble plate' version.
Joe, Alconbury Weston, UK: "I'd avoid inter-cabinet communications by radio or over the mains wiring. The mains
can be a very noisy place, and if you ever build this beast you can't be sure what environment it will be housed in. If it
were a science museum for example, with all their exhibits running, I'd have to wonder how dirty the mains supply would be.
You also get problems with voltage difference in different countries. The electronics would have to change if a cabinet
was moved from Europe to the USA for example instead of just changing a jumper on the transformer (you will also get
into issues such as capacitor max-rated voltages and approval issues for mains-rated electronics). Safety is probably the
biggest issue here. Radio is nice, but again you may have several problems. One is that what's legal in the USA isn't in
say the UK or any other country for that matter. There are limited bands available so congestion is a problem, but – perhaps
more importantly – if you have relays chattering in the background, the RF kicked out by them is terrible. It could seriously
affect the comms range and data integrity. If it were me, I'd link everything with a single optical fibre. New meets old….
ODN (optical data networks) provided a foolproof level of voltage isolation between each cabinet which makes everything
very safe (for the people and the hardware) – it's also proven technology, immune to outside interference/RFI, doesn't
give off any interference/RFI and is cheap. Cabinets can be 1, 10, 100, 1000 feet apart with no real loss in signal,
all of which may be important as you don't know where the beast is going to live. Also, if you designed the protocol
correctly, groups could connect each of their cabinets (hundreds or thousands of miles apart) to a PC via a fairly simple
ODN to USB converter (it's not like you're going to get to the teraflops speed with this beast). This would allow different
groups' cabinets to communicate with each other over the internet whilst in development. Hmmm... an antique distributed
computer... just a thought..."
Max: I'll have to ponder this. The problem with optical fibre is that you still have to physically trail it around
the place; by comparison, using wireless connections makes each cabinet totally standalone. (Alternatively, we could use line-of-sight
infrared links.) Also, I think trying to connect remote cabinets via the Internet is getting a bit ambitious; how would we mediate
between different folks trying to do different things at the same time (see also Joe's Emulator
idea earlier in this topic).
Lucien, London, UK: "Here's a novel kind of electromechanical dynamic RAM for your calculator. Each bit could be stored in a flywheel attached to the shaft of a small, low cost, permanent-magnet DC motor. To set the bit, apply a current pulse of one polarity to spin the flywheel one way. To clear it, apply the opposite polarity to spin it the other way. To read the bit, simply test the polarity being generated by the motor as it continues to spin. Depending on your choice of motor it would be practical to achieve refresh times as long as perhaps 10 seconds, with write-pulses in the order of 1/4 second. If you attach a paper disc printed with a spiral to each flywheel, it becomes human-readable by watching the spiral progress inward or outward. If there is enough shaft projecting to be spun between the fingers it becomes human-writeable. This would be very handy during code development. I suspect that a rack of these would make an interesting buzzing noise like a hive of bees. To avoid the need to refresh, the flywheels could be replaced by a miniature 2-cycle gasoline engines such as you find powering small model planes. These will run in either direction and could be direct-coupled to the electric motors. The latter would need to provide enough peak torque to stop and reverse the engines (which would be set at minimum possible throttle), but then you would have a dynamic memory capable of retaining its contents even during an electrical power outage. In this case the sound would be that of a hive of big, vicious, angry bees. Incidentally I do not know of any other memory technology that incorporates carburetors."
Max: Yet another interesting idea for me to ponder. I love where Lucien says: "This would be very handy during code development" (grin).
It might not surprise you to discover that designing with a lot of technologies we intend to use on the HRRG is
rapidly becoming a forgotten art. Most of the digital logic designers I know are as clueless as I am in this arena. So I started rooting
around secondhand bookstores on the Internet, and I've come up with some real gems (there are still copies out there if you look hard enough).
- In the case of relay-based logic circuits, I've acquired two tomes: Switching Circuits and Logical Design, by Samuel H Caldwell (I have
the 1960 edition published by John Wiley and Son; Library of Congress Catalog Card Number 58-7896) and The Design of Switching Circuits,
by William Keister, Alistair Ritchie, and Seth Washburn (I have the 1951 edition published by Van Nostrand). (As a point of interest, Alistair
Richie was the father of Dennis Ritchie, who is famous for co-creating UNIX and developing the C programming language.)
- With regard to logic implemented using vacuum tubes, I think we'd be hard-pushed to find anything that could beat Pulse and Digital Circuits,
by Jacob Millman ad Herbert Taub (I have the 1956 edition published by McGraw-Hill; Library of Congress Catalog Card Number 55-11930). This
little scamp covers everything from nonlinear wave shaping to electromagnetic delay lines to digital logic circuits and registers (and much,
much more). It even has a section entitled Magnetic Core Binary Elements. Now, I know what you're thinking, but we aren't talking about
magnetic core memory stores; instead, the book shows how the same ferromagnetic cores can be used to realize logical functions like shift
registers and binary counters.
- Further to the last point in the previous topic, have you ever heard of this form of magnetic logic? I certainly hadn't until several readers
suggested that we implement one of the HRRG cabinets using these techniques. This is how I came to find myself in the possession of Digital Magnetic Logic,
by David Bennion, Hewitt Crane, and David Nitzan (I have the 1969 edition published by McGraw-Hill; Library of Congress Catalog Card Number 68-28411).
This stuff is just so amazing; the book describes how to use ferromagnetic cores to realize all types of functions, including combinational
(or combinatorial if you prefer) and sequential logic.
Our first task (if we decide to go ahead with this) will be to come up with the specification. This will include the dimensions
of – and materials to be used for – the cabinets; the inter-cabinet communications mechanism (wireless, other?; the way in which we
specify the address ranges covered by the various memory and I/O cabinets; the definition of the CPU; and the partitioning of the CPU functions
across the various cabinets and implementation technologies.
With regard to the definition of the CPU, we already have a full definition of the DIY Calculator's 8-bit CPU broken out into excruciating detail
in The Official DIY Calculator Data Book that's supplied on the CD ROM accompanying our book How Computers Do Math. Ideally,
we would implement this machine (or a sub-set thereof), because this way we already have a lot of support tools (like our assembler) already available.
One big consideration to keep in mind is to partition the CPU portion of the design such that the same amount of logic is contained in each
cabinet (by "same amount," we mean in terms of physical size/volume, because we don’t want one cabinet to be jam-packed full while another is half empty).
Further to the above, in fact the specification is now well underway. It's being defined as part of a series of articles on the building of the
HRRG computer on IBM's DeveloperWorks website (Click Here to see the current articles).
When we come to look back on the above, its obvious that this is going to be a HUGE amount of work. We could do it on our own, but it
will probably take the next 20 years (if we're lucky).
Alternatively, if we get a team together (over the internet) and come up with a good specification, different groups could tackle different
cabinets. In this case, we would need to agree on a home for the final product as discussed in the next, and final (hurray!) topic.
Yet another thought would be to find some entity like a museum or a big corporation that would be interested in funding such a project. This way
we could create the specification, and then pay someone else to do the grunt work. If you have any thoughts as to anyone who would be interested
in funding such an effort, please Contact Us and let us know (or if you're Bill Gates, feel free to
contribute anonymously by sending us a big crate of $100 bills – just to make it fair, we'll pay for the shipping).
A Home for the Beast!
Last but not least, we're going to need a home for the beast (we know for sure that our wives aren’t going to let
us display it at home).
How about a museum, or an airport concourse, or a hotel lobby? Once again, we'd be very interested to hear any ideas you may
have in this direction, so Contact Us us if you have any thoughts.
Homebuilt CPUs WebRing
Join the ring?
The Homebuilt CPUs WebRing
is maintained by David Brooks. If you wish to join the ring, use your browser to view this page's
source, scroll to the bottom of the page, copy the code fragment between the "Start" and "End of WebRing" comments, and paste this code into
your page. Once you've done this, Email David
mentioning your page's URL and he'll check it
out and add it to the ring.