Hey PDP-8, meet Raspberry Pi! Feb 2016
If you would like to experience for yourself how a computer such as a PDP-8 looks and feels, there are several possible avenues to choose from:
- get in touch with a museum, friend, or hobbyist who has “The Real Thing”, and see if you can get a demo or schedule a session
- look for old equipment dumps, maybe some company, university, or individual wants to give, sell, or lend such a machine to you
- get hold of schematics, spare parts, and go try and build one yourself, possibly re-using any original parts available to you
- download a software simulator for the computer model you’re interested in, and have a go at running this virtual environment
- design your own emulation, possibly adding some fancy lights and switches to make it more realistic and tangible than a software-only emulation
- look for a kit and build it yourself, knowing that others have done the same, with support from the kit maker and/or other builders who went before you
This article is about that last option. Oscar Vermeulen has a site with the wonderful name of Obsolescence Guaranteed where he has collected a lot of information and offers a kit for what he calls the PiDP-8/i (note the “Pi” in there!). Here’s his PiDP-8/i kit in front of a real PDP-8/i:
The PiDP-8/i looks like a 2:3 scale model of the real thing, but inside is a Raspberry Pi, running SIMH, as an extremely elaborate and complete emulation of the PDP-8 (and others) as well as tons of peripherals. So you can make the machine think it has a paper tape reader, or a few DECtape drives, or some RK05 diskpacks, or all of them at the same time. Storage media will then be emulated as files on the Raspberry Pi’s SD card or on USB sticks.
The Obsolescence Guaranteed site is a joy to read, and has tons of details - about the kit, the assembly process, the original hardware, as well as things you can try out with it.
As noted, the PiDP is completely different inside - it has nothing to do with the original clunky, energy slurping machines of 50 years ago. It just looks the same and it behaves very much like an original PDP (if you imagine the paper tape, teletype, and other peripherals yourself, that is).
Here’s the PiDP, with a Raspberry Pi A+ on the left, and running off a blue (18650-based) LiPo battery pack from eBay - there’s not much behind that front panel, as you can see:
Construction of this kit is very straightforward. It’s all very nicely documented on the website. You have to solder in 89 LEDs, a dozen or so resistors, and the most unusual part: a series of 22 switches (some toggle, some spring-action), carefully mounted and positioned to give the whole thing a nice well-spaced appearance. It took an afternoon - it’s not hard, it just takes patience …
For this build, the goal was to create a completely self-contained unit (hence the battery pack), and to control it entirely via a network connection over WiFi. To that end, an FTDI interface had to be brought out, both to charge the battery pack and to create a serial connection for adjusting WiFi settings. Nothing a bit of Dremel-cutting and hot glue can’t handle:
Wifi is a matter of inserting a WiFi dongle in the A+’s only USB port, but because this was a few millimeters too large to fit inside the box, its plastic cover has been removed - revealing a WiFi board which is even smaller than an ESP8266:
The last puzzle to solve was how to turn power on and off to this thing. The battery pack has a very convenient button, but it would require making another ugly hole in the box. The solution was to place the battery holder right behind the front panel (with a bit of cardboard behind it):
This way, if you know where to push on the front panel, you can bring this PiDP-8/i to life!
Based on a quick measurement, the PiDP-8/i draws about 230 mA, so it ought to last about a day on the LiPo battery before needing to be plugged in. How’s that for mobile computing?
That front panel is quite extraordinary, by the way: not only can you see (and change) the contents of memory and the accumulator, and of course single-step the whole beast - you can even single-cycle it, i.e. go through each of the different phases of an instruction, and see the instruction decoder in action on the right hand side of the panel.
See that vertical set of 8 lights? That’s the instruction type: the PDP-8 has only eight different opcodes! Although one of them has a sub-division for additional “micro” operations. Since only the Jmp and Iot instructions are lit here, the program must be idling, waiting for some I/O.
The PiDP-8/i comes with 32 Kwords of memory, the maximum supported in this architecture, and the simulator is able to connect every possible type of hardware to it, in a virtual sense that is. These options are part of SIMH and can be adjusted through a serial or SSH connection.
So what can you do with 8 banks of 4,096 words of memory, organised as 128-word pages?