A PDP-8/E Simulator for the Apple Macintosh

This is the homepage of the PDP-8/E Simulator, an emulator for the DEC PDP-8/E minicomputer running on the Apple Macintosh. PDP-8/E Simulator LogoThe simulated machine is a PDP-8/E with 4K words of memory and optionally a KM8-E Memory Extension (with up to 32K words of memory) and a KE8-E Extended Arithmetic Element. I/O devices are implemented as plugin modules, and plugins for an ASR 33 Console Teletype, an ASR 33 Auxiliary Teletype, a PC8-E High Speed Paper Tape Reader and Punch, a RK8-E Disk Cartridge System, a LP8-E Line Printer and various types of Real Time Clocks are included in the distribution of the simulator. There is also a KC8-EA Programmer's Console plugin enabling the user to operate the simulator (nearly) like a hardware PDP-8/E, including single step execution on memory cycle level.

Version 1.5 of the PDP-8/E Simulator contains support for the TSC8-75 board so that the emulated PDP-8/E can run the ETOS time sharing operating system.

The simulator is based on the PDP-8/E emulator (out-dated version from 1993) of Bill Haygood. It runs on 68K-, PowerPC- and Intel-based Macs with System 2.0.1 to Mac OS X 10.6 “Snow Leopard” and on various Macintosh emulators. (It does not run with Mac OS X 10.7 “Lion” (and newer) because that versions no longer support PowerPC applications.) Here you can see the PDP-8/E Simulator simultaneously running on Mac OS X 10.2 “Jaguar” and on a Mac Plus with System 2.0.1. The Mac Plus “Mr. T” is emulated by Mini vMac.

Currently work is in progress for a “Cocoa” reimplementation of the PDP-8/E Simulator, as you can see on this screenshot. A developer preview of PDP-8/E Simulator 2.0 is available in the download area, below.

Benchmarks show that the PDP-8/E Simulator outperforms a hardware PDP-8/E in orders of magnitude when running on reasonable current Macs. There are options to slow down the CPU and the I/O devices to the speed of the real hardware. The simulator passes about 20 of the most important MAINDEC hardware diagnostics for the PDP-8/E.

The simulator provides a comfortable user interface for running, writing and debugging PDP-8 software. For each device, there is a separate window which displays the internal state of the device. The user can view and edit the PDP-8 memory content as octal dump, assembler instructions and typed data (ASCII, integer, floating point,...). Other features of the simulator are breakpoints, break opcodes, single step execution, a trace mode for the PDP-8/E and much more. The emulated ASR 33 teletypes provide all comfort of Macintosh text editor windows.

The PDP-8/E Simulator has full Balloon Help or Help Tags support, and there is a help window which gives detailed information about the PDP-8 instruction set implemented by the simulator and hints for operating the simulator. There are tutorials for a quick start with the PDP-8/E Simulator and for operating the KC8-EA Programmer’s Console.

A Macintosh version of the PAL-8 compatible cross-assembler of Douglas Jones is included in the simulator package, which makes writing of PDP-8 software easier than ever before. The assembler can be configured so that it, when a PAL-8 source file is dropped onto its Finder icon, assembles it, loads the error listing into an editor and the binary program into the simulators PDP-8.

The simulator package includes some PDP-8 software, e. g. a complete OS/8 system, FOCAL-8 and Pascal-S.

The PDP-8/E and the I/O devices can completely be controlled using AppleScript.

The documented API for the I/O device plugin modules is included in the source code distribution of the simulator. Using this API, it is possible to implement additional PDP-8/E I/O devices for the PDP-8/E Simulator without modifying the simulator application itself. The API is based on the C programming language and it supports 68K, PowerPC (“fat”) and Carbon versions of the I/O device plugins.

Read the history of the PDP-8/E Simulator and some user feedback.

Some Links to other PDP-8 related resources.


The PDP-8/E Simulator is published under the conditions of the GNU General Public License.