This short paper is a supplement to the series of articles appearing on the IBM developerWorks website describing the creation of a computing engine called "The Heath Robinson Rube Goldberg (HRRG) Multifarious Technology Computer." As described in these articles, this machine is to be formed using a variety of implementation technologies, including (but not limited to) relays, vacuum tubes, transistors, and simple integrated circuits – also mechanical, magnetic, pneumatic, and fluidic logic – and possibly some even more esoteric technologies.

Main Topics



 
Who are all of the players (and who is to blame)?
Before we proceed, let me briefly introduce you to the people shown in Figure 1. As our tale unfolds, we'll discover more about these guys, I'll explain how everyone fits into the big picture, and – most importantly – we will learn to whom we should attribute any blame in the future.

The folks to blame for the HRRG
Figure 1. Some people whose lives are inexplicably linked by the HRRG project.

I'm Max (the name of every dog and every robot in every science fiction film since time began). I'm an electronics and computer engineer who became a writer by mistake. Most of this is my fault. I'm very sorry and I won’t do it again. My compatriots are my friends Alvin Brown, Helmut Zulus, Johannes Hausensteiner, and Joe Farr, all of whom – I'm sure – are wondering how they came to be sucked into this morass of confusion.

I'm originally from the UK, but I now find myself living in Huntsville, Alabama, USA (I moved here for the nightlife – that's a little Alabama joke). My best friend Alvin, who was born in India where his father was the manager of a tea plantation, also lives here in Huntsville. Helmut and Johannes are based in Austria, while Joe still lives in the UK (as you will soon come to appreciate, we've all been blessed with very understanding wives and girlfriends).




 
The Virtual DIY Calculator
Let's start at the beginning, work our way through the middle, fight our way to the end... and stop. Alvin (who also is an engineer) and I have been writing books together as a hobby for the last ten years or so (where did the time go?). Our latest work, which was published toward the end of 2005, is How Computers Do Math. This little scamp comes with a CD-ROM containing a virtual computer-calculator called the DIY Calculator for use on an IBM-compatible PC running Microsoft® Windows® XP.

The virtual DIY calculator is a simple 8-bit microprocessor of our own devising. When you launch this little rascal, you are presented with a calculator front panel on your screen. As shown in Figure 2, this panel contains buttons (which are connected to the DIY Calculator via one of its input ports) and an alpha-numeric display (which the DIY Calculator controls via one of its output ports).

The virtual DIY Calculator's main interface.
Figure 2. The virtual DIY Calculator's main interface.

Actually, the virtual DIY Calculator is a complete development environment that comes equipped with an assembler-editor, a Central Processing Unit (CPU) register display, a memory display, and a variety of other tools. Once you've created a program (written in our simple assembly language), you can run it, or single-step through it, or set breakpoints in the memory map and run to those breakpoints, and so forth.

The book and DIY Calculator are intended for anyone who wants to know more about how computers perform their magic. The book guides readers through a series of step-by-step interactive laboratories in the creation of a program that makes the DIY Calculator act as a simple four-function calculator (add, subtract, multiple, and divide). Along the way, we discover how computers work in general and how they perform math in particular. (The book considers only simple math functions and describes routines that work only with 16-bit signed integers. We are going to extend this to more sophisticated functions and floating-point representations via the DIY Calculator's supporting website at www.DIYCalculator.com.)




 
The Physical DIY Calculator
Next, we turn our attention to Helmut and Johannes in Austria. Just to give you an idea as to the type of person we're dealing with, Helmut tells the following story:

When I was only 5 years old, I 'urgently needed' a piece of electric cable for a project I was constructing in my parent's garden hut. I tried to remove the power supply cable from our laundry machine using a pair of scissors, but I did not have enough power in my fingers, so I left it half cut and went looking for other 'possibilities' – I think there is no need to explain what happened when my mother switched the machine on in that humid environment the next time she wanted to do some laundry...

Ah, a man after my own heart (my mother could tell you some stories). Anyway, to cut a long story short, Helmut and Johannes are both experienced engineers who have constructed everything from simple circuit boards to full-fledged computers.

In March 2006, Helmut bought our book How Computers Do Math. He had originally intended to use this book to awaken his 12-year old son's interest in computers and to improve his son's English reading skills. However, having first read the book himself, Helmut quickly became enthused by the idea of creating a physical version of the virtual DIY Calculator, and it wasn't long before he and Johannes were hard at work.

Their idea is to create a low-cost implementation that will be affordable to individuals, high schools, and colleges. The heart of the physical DIY Calculator is a silicon chip called a Field Programmable Gate Array (FPGA), which can be configured to perform any logical function one requires. In this case, a powerful, low-cost FPGA (which is supplied by Lattice Semiconductor) is configured to act as the DIY Calculator's 8-bit microprocessor, memory, input/output ports, and so forth. A picture of the prototype circuit board prior to being populated by components is shown in Figure 3.

The physical DIY Calculator
Figure 3. A prototype circuit board for the physical DIY Calculator.

What this means is that users will be able to create, run, and debug programs using the virtual DIY Calculator running on a PC. When they are ready, they can then download their programs into the physical DIY Calculator sitting on their desk. (Once a program has been loaded into the physical DIY Calculator, it can be powered-down, disconnected from the PC, and powered up again – and the program will still work.)

Of particular interest is the fact that Helmut and Johannes are planning on making all of their design files for the circuit board and FPGA – along with the software monitor routines written in the DIY Calculator's assembly language – available for anyone to access and experiment with. To this end, they've created a DIY Calculator Wiki website. However, interesting as this all is, you are probably wondering how this physical DIY Calculator relates to the HRRG computer project? Well, we're just about to come to that...




 
The HRRG Computer
And so we return to the HRRG multifarious technology computer. The brain of any computer is its CPU, but which CPU should we use as the basis for "The Beast"? It would simply not be practical to implement one of today's state-of-the-art processors designed by companies like AMD, IBM, Intel, or Sun out of a technology like relays. Quite apart from anything else, these processor designs are copyrighted by their respective owners.

By comparison, the CPU powering the DIY Calculator is a rudimentary machine with a simple instruction set that is very easy to understand and relatively easy to implement. Furthermore, we (Alvin and I) designed this little scamp and we own the copyright to it, so we can do what we want with it. And the "cream on the cake" is that – a few years ago – we wrote a 200-page data book for the DIY Calculator's CPU that explains its architecture in excruciating detail; enough detail, in fact, for someone to actually build one (this data book is provided on the CD-ROM accompanying How Computers Do Math).

Now, if the truth be told, I'd always regarded the HRRG computer as being a project for the dim and distant future; something to look forward to building in my retirement years, perhaps. And then Nora from IBM contacted me to say that a series of articles describing the building of "The Beast" would be interesting to a wide audience; especially for software developers who were interested in knowing more about the way in which the underlying hardware was realized.

This is where Joe Farr from the UK leaps into the center of the stage with a fanfare of trumpets Joe built his first 6502-based microcomputer at the ripe old age of 14. These days, he acts as a free-lance consultant, splitting his time between developing custom software and hardware solutions for his clients. As we will discover, Joe is really the hero of this story, because he is the one who is going to "make it happen" (you will be hearing a lot more about Joe in the various articles).

As it happens, Joe had already created his own physical DIY Calculator (including designing and fabricating his own circuit boards) using a PIC microcontroller. For some time I'd been chatting to Joe about "The Beast" and he had thrown some ideas into the pot, but this had always been on a "Wouldn’t it be fun one day…" type basis. So you can only imagine Joe's surprise when I called him up and proclaimed: "We're going to build the HRRG!" Of course, he was even more surprised when I quickly followed this up with the question: "So, how are you going to do it?" How indeed...

And, of course, this is the point where we return you to the articles appearing on on the IBM developerWorks website describing the construction of "The Beast"...