Saturday, February 2, 2008

Emulating the PDP-8

Mentioning the PDP-8 yesterday set me thinking about building a PDP-8 replica using modern day TTL. The PDP-8 had a particularly simple architecture with only a few registers and eight basic op-codes. The early machines in the family, like the ancient one I used at University, was build from individual transistors and core memory. Later on DEC switched to TTL chips and RAM, so to build a replica would certainly be possible.

There was also a PDP-8 on a chip - the Intersil 6100. We used to have some prototyping boards for this low-power chip. The memory was backed by a single AA battery - at the end of the day you could just pull the memory board out. Next morning you could plug it back in and carry on working. It was used for ultra-low power application like satellite on-board systems.

A wander around the Web turned up Henk Gooijen's great looking 6809-based hardware emulation, and links to a number of software emulations, most of which ended in an HTTP 404 page. However there were some gems - for example Tim Gorton's Java Applet PDP-8 emulator that interactively runs a PDP-8 Lisp.

There was also Brian Shelburne's MS-DOS PDP-8 emulator which comes with a built in assembler and a lot of fascinating documentation. Apparently it used as part of a course on computer architectures - which is a little surprising because, although its a simple, elegant architecture, it doesn't use a stack which is a little unusual these days...

After spending an evening reading those sites and playing with some of the emulators I had a very restless night - I kept waking up with bits of Java code for emulating PDP-8 instructions running through my head. I had been looking for a little Java programming project to try out Swing (its all Web development at work) and this seems to have chosen itself.

So my next few commutes are going to be with the PDP-8 Programmer's Reference and a big pad of paper.

4 comments:

Wim said...

Look at my emulator:
http://www.vandermark.ch/pdp8/index.php

frogplate said...

That is very, very impressive, and goes way beyond what I'm planning to do. I love the implementation of the TU56 DECtape drive. For those not familiar with ancient DEC hardware this was a tape drive that thought it was a floppy disk - it held a massive 184 K words (quarter of a Mbyte) that were accessible on a block-by-block basis just like a disk drive.

João Silva said...

Hello,
building one of these is also on my long list of to-do projects.
A book that can help is "The art of digital design" by Prosser and Winkel. It describes in great detail the design of such machine.
Good luck.

frogplate said...

Thanks for that. I vaguely remember having a copy of Prosser and Winkel on a project in the early 90's. Don't know what happened to it. I'll have to see if I can find a copy.

Been a really busy year but may actually get the time to get this project moving at long last.