6. March 2023: Version 2.5.1
A small optimization update: the Memory Content and the VC8-E plug-ins now use CALayer based updates, significantly
reducing the CPU load of the simulator. The RK05 drives are now able to mount SIMH DECpack images (with each 12-bit
word stored in two bytes) directly; the images no longer need to be converted with the s2p and p2s tools.
The Music Player plug-in no longer causes occasional skips of the music and avoids a deadlock in the AVAudioEngine
when the simulator plays music while running at full speed. The OS/8 System Disk now contains the
Popcorn piece arranged by Kyle Owen (RKB0:POPCRN.MU)
(Kyle, many thanks for this great fun).
The indicator panel and drive select lights of the TC08 are now more consistent when restarting, resetting or
clearing the simulator or the PDP-8/E or when the user manually changes Status Register A.
Additionally other minor bug fixes and adjustments esp. for macOS 13 “Ventura”.
3. October 2022: Version 2.5
A VC8-E Point Plot Display System plug-in with two VR20 oscilloscopes was added (actually there are two versions of
the plug-in with the default I/O address 05 and the alternative I/O address 15).
The I/O flags bit array (pdp8→IOFLAGS) is now an atomic variable to avoid sporadic loss of done flags when
they are set simultaneously by two devices from different threads, e. g. the VC8-E and the RTC.
Small adjustments for macOS 13 “Ventura” (esp. the Preferences window no longer grows with every switch
of a preferences pane) and other minor bug fixes. The Help menu items now open more reliable in Help Viewer with current
macOS versions. Added Don Baccus’s os8pip to the Tools folder.
22. February 2022: Version 2.4
A Music Player plug-in was added that enables the PDP-8/E Simulator to make audible the music played with the
PDP-8 Music Playing Program (DECUS 8-804).
The simulator now runs with correct real time speed on Macs with Apple silicon
(before, it was a little bit too fast, caused by rounding errors converting Mach absolute time to nanoseconds, causing the audio buffer to overflow and the music to skip).
An UI update notification of the TC08 was fixed that was posted too often when the PDP-8 executed CAF in high frequency,
causing a lockdown of the UI.
And a thirty year old bug with the rarely used microprogrammed operate instructions 7264 (CLA CMA CML RAL), 7266 (CLA CMA CML RTL), 7270 (CLA CMA CML RAR) and 7272 (CLA CMA CML RTR) was fixed: until now they didn’t perform the CML.
A half-dozen other minor bugs were eliminated, and some pixel alignments in the UI were optimised.
14. December 2021: Version 2.3.1
Due to improved emulation of the TC08, the PDP-8/E Simulator now runs POLY BASIC (DECUS 8-195): the DECtape stops when an error (except parity) occurs and writing to the tape is inhibited when the DECtape flag is still set at the beginning of a block.
Additionally small adjustments for macOS 12 “Monterey”, Xcode 13 and the macOS 12 SDK and some minor bug fixes and optimizations.
6. June 2021: Version 2.3
The PDP-8/E Simulator now runs natively on Macs with Apple silicon.
The KC8-EA and TC08 lights no longer flicker so much, they now glow more like real bulbs.
Nicer TC08 indicator panel (thanks to Volker Herrmann for the picture).
Improved timing for the TU55 drives lets the DECtape formatter DEC-08-EUFB-PB run more reliably on fast Macs and speeds up the DECtape in normal operation.
Improved simulation of the memory address for the KC8-EA esp. to better indicate extended memory access.
Some minor adjustments for the macOS 11 SDK, esp. the CPU window now has a unified toolbar that can’t be hidden.
The Memory Content plug-in now avoids high CPU load with macOS 11 “Big Sur” by setting a proper layer content format.
A deadlock was fixed that occured when single stepping TC08 instructions.
Finally the PDP-8/E Simulator now is signed and notarized by Apple.
9. November 2020: Version 2.3.b
The PDP-8/E Simulator now has a TC08 DECtape System with eight TU55 drives.
The user interface is slightly renewed and all graphics now have Retina resolution, esp. the KC8-EA Programmer’s Console.
The simulator no longer supports PowerPC Macs, 32-bit and Mac OS X 10.4 “Tiger” to OS X 10.10 “Yosemite”.
All deprecated API calls have been removed.
Improved compatibility with macOS 11 “Big Sur”.
Improved precision of the KC8-EA Programmer’s Console lights, esp. for the EMA.
The Dock tiles of minimized windows are now animated (on quadcore Macs or better).
Holding the mouse button down no longer blocks updates of the user interface.
Zoom All in the Window menu is available again.
The control area of the ASR 33 Teletype windows now can be hidden.
Typing Cmd-G Cmd-. Cmd-G very fast no longer causes the PDP-8/E to run with expanded CPU window.
When editing an AND 0 = 0200 in page 0, the memory word no longer changes to AND 0 = 0000.
Optimized drawing of the Memory Content window because [NSView setNeedsDisplayInRect:] and [NSView getRectsBeingDrawn:count:] no longer work as expected with macOS 10.14 “Mojave” and newer.
Improved plug-in API, amongst others it now has abstract classes for a Drive and a DriveController that are the base of the RK05 and TU55 drives.
Many minor bugs, visual glitches and typographic errors fixed.
The OS/8 System Disk (originally based on Bill Haygood’s disk image, but modified in the last 25 years) now has a functioning BUILD.SV taken from the ETOS demo disk and device handlers for the TC08 devices DTA0: and DTA1:. Added an EduSystem 25 DECtape and some DECtape tools.
8. December 2019: Version 2.2 and 25th Anniversary of the PDP-8/E Simulator
Added a Real Time Clock plug-in with various clock models and frequencies.
Improved real time performance (finally without any busy waiting) enables the simulator to pass the MAINDEC-8E-D8AC-PB DK8-E Clocks Diagnostics for all clock frequencies.
Improved plug-in API.
Added a Swift version of the Memory Content plug-in.
For the RK05 disk drives, now a gauge indicates the last accessed track of the disk and the kind of access (Read, Write or Seek).
The ASR-33 no longer replaces “--” with “-” when “Use smart quotes and dashes” is enabled in the “Keyboard” System Preferences.
Fixed a very rare situation that could cause two PDP-8 run threads to run simultaneously, causing total confusion.
Many minor bugs fixed, including typographic errors and visual glitches with Dark Mode.
Improved compatibility with macOS 10.14 “Mojave” and macOS 10.15 “Catalina”.
22. September 2018: Version 2.1
A big maintenance release: the PDP-8/E Simulator now is a 64-bit application fully supporting macOS 10.14 “Mojave” Dark Mode and still retaining compatibility to old Macs with Intel or PowerPC CPUs running Mac OS X 10.4 “Tiger” or newer.
Many adjustments for 64-bit mode, macOS 10.12 SDK and Xcode 8.2.1; esp. the memory inspector drawer is now a panel (NSDrawer is deprecated and has no black appearance in “Mojave” Dark Mode) and all registers are now text fields (the formerly used NSForm and NSFormCell are deprecated and do not draw the register content reliably with “Mojave”).
App Nap is now disabled when the PDP-8/E runs to avoid massive slowdown when the simulated machine works for a while without user interaction.
More robust ASR 33 thread synchronisation now avoids sporadic stops of the input when OS/8 BASIC reads source code from taper tape or via Copy & Paste.
When pasting multi-line text in the ASR 33, the line feeds are now handled correctly; before, the pasted text was handled as one long line.
ASR 33 toolbar removed, the controls are now at the top of the window.
Position of the progress bar and the file label in the ASR 33 and PC8-E paper tape reader and punch exchanged.
The RK05 drives now avoid file I/O for unmounted disks; before, the MAINDEC-08-DHRKA-B-PB RK8-E Diskless Control Test was able to cause this in rare cases, resulting in an immediate crash of the simulator.
The RK05 drives are now correctly initialized and the devices implemented by plug-ins are correctly reset when no preference file for the simulator exists, i. e. at the very first launch of the app.
The EAE instructions SHL 37, ASR 37 and LSR 37 now correctly clear AC and MQ when executed on Intel CPUs in 32-bit mode and EAE mode A: these 32-bit shifts were ignored by Intel CPUs in 32-bit mode (detected with MAINDEC-8E-D0LB-PB KE8-E EAE Instruction Test Part 1).
Improved performance of the Memory Content plug-in.
6. November 2015: Version 2.0.2
Some visual adjustments for OS X 10.11 “El Capitan”, especially for the memory view and the memory inspector of the CPU window.
Added “Scroll to Program Counter” to the context menu of the memory view.
2. March 2015: Version 2.0.1
The ASR 33 Teletype now correctly recognizes the ESC key as ALTMODE.
Additionally, three very minor visual glitches were fixed.
8. December 2014: Version 2.0
Exactly 20 years after the initial beta release 1.0, the final version 2.0 of PDP-8/E Simulator is available. It adds a PC8-E Paper Tape Reader and Punch and a lot of fine tuning for OS X 10.10 “Yosemite”.
The download contains a set of PDP-8 software and the source code for the simulator.
25. July 2014: Version 2.0.d3
Update of the Developer Preview with bug fixes and OS X 10.9 “Mavericks” and OS X 10.10 “Yosemite” support. New application icon. Example project for third party plug-ins added. The ASR 33 now successfully loads EduSystem 20 BASIC due to improved timing in the tape reader.
22. January 2013: Version 2.0.d2
Update of the Developer Preview with bug fixes and Mac OS X 10.8
“Mountain Lion” support.
8. August 2011: Version 2.0.d1
Update of the Developer Preview with bug fixes and Mac OS X 10.7
5. April 2010: Version 2.0.d0
Developer Preview of the Cocoa based reimplementation of the PDP-8/E Simulator running on PowerPC and Intel Macs with Mac OS X 10.4 “Tiger” and newer.
30. April 2006: Version 1.5.1
The (probably never used) opcode 7233 (CLA CML IAC RTR) now correctly set
L'AC to 0'6000 with L=0 and to 0'4000 with L=1 (before, L'AC was wrongly
set to 0'3000 resp. 0'1000 due to missing parenthesis around the shift in
In file dialogs, now Mac OS X application bundles are recognized, and the
user can choose a Mac OS X application in the preferences for viewing
text and log files.
The keyboard shortcut command-option-M for the
“Minimize All Windows” item in the Windows menu is now functional.
To conform to Apples Scripting Interface Guidelines (Technote 2106),
the names of the real time clock types in the AppleScript terminology of the
Real Time Clock plug-in were changed, e. g. now “DK8EA 100 Hz”
instead of “DK8EA_100Hz”.
To avoid scrolling anomalies in memory inspectors, the inspector window
now can only be resized to an even number of content lines when it displays
a two line format.
In the online help, the homepage URL of the PDP-8/E Simulator was updated.
6. June 2005: Decision for a Cocoa based reimplementation of the PDP-8/E Simulator
After Steve Jobs announced the switch to Intel CPUs for the Macintosh at the WWDC 2005, start of the Cocoa based reimplementation of the PDP-8/E Simulator.
7. February 2004: Version 1.5
Minor user interface and compatiblity improvements for Mac OS X,
esp. 10.3 “Panther”. The bulbs of the KC8-EA Programmer’s
Console are now light-colored, no longer LED like orange.
30. October 2003: Version 1.5.b1
Fixes a crash of the simulator that occurs with Mac OS X 10.3 “Panther”.
10. October 2003: Version 1.5.b
TSC8-75 Board implemented to enable the
simulated PDP-8/E to run ETOS.
Improved emulation of the time sharing capabilities of the KM8-E.
CAF (6007) now clears all interrupt mask flip flops but no longer clears
UF and UB. When the KM8-E is present, the user mode interrupt mask is
always set. JMP and JMS load UB to UF only when the newly added time sharing
option (a jumper on the KM8-E hardware board) is enabled. Fixed a bug in
opcode 261x (indirectly addressed ISZ on autoincrementing memory locations).
Improved precision of the skip indicator when the CPU runs in user mode.
Improved exactness of the display lights of the KC8-EA Programmer’s
Console. Break opcodes now can be activated for user and system mode
separately. Plug-in API version 7 (source and binary compatible to version 6).
A large number of small modifications for improved compatibility with
Mac OS X 10.1 and 10.2, Mac OS 9.2, System 2.0 and earlier and the
Mac 128K and 512K (the simulator no longer crashs these old Macs, but gives
an apropriate “Mac too old” alert). Help tags implemented as a
replacement for the old Balloon Help. Fixed a bug that caused a crash
when the compressed PDP-8 memory content does not fit in 32 kB in a save
operation, e. g. when quitting the simulator.
3. December 2002: PC8-E Plug-in 1.2.1
Fixes a bug of the Carbon version 1.2 of PC8-E Paper Tape Device that crashs
the PDP-8/E Simulator when reading in a paper tape with the speed option set
to 300 characters per second.
1. December 2002: Version 1.4.3
Patch for the Carbon version of the simulator for improved compatibility
with Mac OS 10.1 and 10.2 and CarbonLib 1.5 and 1.6.
2. July 2001: Version 1.4.2
Patch to fix a crash of the Carbon version of the simulator that occurs when
the simulator receives a “set” or “get” AppleEvent
while a dialog box is displayed.
18. June 2001: Version 1.4.1
Patch to fix a crash of the Carbon version of the simulator that occurs
when the user clicks in the background of an alert sheet.
24. May 2001: Version 1.4
Minor modifications for improved compatibility with
Mac OS 9.1 and Mac OS X 10.0.
23. December 2000: Version 1.4.b1
Carbonized version of the simulator and the PAL-8 assembler that
run on Mac OS X Public Beta. Many minor modifications to adapt the
Aqua user interface of Mac OS X. Improved timing of the simulator
when running in real time mode on fast G4 Macs. Plug-in API version 6
(source and binary compatible to version 5). Many minor bugs fixed.
New e-mail address of the author.
24. July 2000: Version 1.4.b
Carbonized version of the simulator. (It probably it will not run on
Mac OS X because it was not tested on that platform.)
MPW now can be used to build the simulator and plug-ins. Plug-in API
version 5 (binary compatible to previous versions, but due to the
Carbonization not source code compatible to previous API versions).
The cursor keys are now functional in all scrollable windows.
Minor bug fixes and modifications in the user interface. A sign error
in the delay tasks of the 68K version of the RK8-E was fixed that
sometimes caused the DLAG instruction to complete after some minutes
instead of some milliseconds when the device runs with the real time
speed option turned on.
25. February 2000: Version 1.3
Minor bug fixes in the user interface. The simulator now is published
under the GNU General Public License, and the sources are available.
Plug-in API version 4 (source and binary compatible to version 3).
20. December 1999: Version 1.3.b1
Patch to fix an unimplemented trap crash on Macs with 128K ROMs
running System 7.
26. November 1999: Version 1.3.b
Plug-in API version 3 (source and binary compatible to version 2).
Options for the CPU and the I/O devices to run with the speed of
the original DEC hardware. The CPU and the I/O devices now pass nearly all
MAINDEC hardware diagnostics.
KC8-EA Programmer’s Console rolled into the simulator distribution.
Navigation Services used for file dialogs. Improved compatibility with
Mac OS 8.6 and 9. Started to port the simulator to the Mac OS X Carbon
runtime environment. Live scrolling in all windows.
All custom CDEFs are now PowerPC native. Shift-clicking in an MRI
opcode in the CPU window now displays a balloon with the operands
of the MRI. When quitting the simulator, the current configuration is
now saved in the preferences file; the “Do you want to save...?”
question now only appears when a saved configuration is active. The
RK05 disks are now dismountable while the PDP-8 runs. Improved
AppleScriptability. A bug with the skip indicator and a lot of other
minor bugs and typographic errors corrected.
3. January 1999: Version 1.2
Plug-in API version 2 (minor modifications to support the KC8-EA
Programmer’s Console plug-in; source and binary compatible to API
version 1). ISZ now reads the (incremented) value back from memory
before it performs the skip check (different behaviour when the
operand is on a non-existing memory field). Minor inconsistencies
with the display of the operands of the current instruction
concerning autoindexing memory locations and field boundaries
corrected. When the user inputs a FORTRAN II floating point 0.0
in a memory inspector, a wrong bit pattern was deposit in the PDP-8
memory. Clicking the “Clear all” button in the Fill Memory
dialog box caused a crash when the PDP-8 had 32K words of memory. When
the user drags the PC indicator arrow of the CPU window too far
away from the arrows area, the PC now returns to its old value
(“undo” option, like scroll bars). “Clear All Flags”
and “Reset” no longer turns off the reader or punch of the
ASR 33 Teletype. The Memory Extension renamed from MC8-E to KC8-E.
Logo in the About box slightly modified. Many minor bugs in the user
interface corrected. Improved compatibility with Mac OS 8.1 and 8.5.
Many typographic errors corrected.
13. February 1998: Version 1.2.b
I/O devices are now plug-in modules. This required an overall rework
and a slight modification of the user interface, but no principal
redesign of the simulator. AppleScript support for the PDP-8/E and
the I/O devices added. Skip and interrupt indicator in the CPU
window added. Some minor improvements of the user interface and
improved compatibility with Mac OS 8. Some other minor improvements.
Three remarkable and a lot of minor bugs of version 1.1 fixed.
No error was detected in the actual PDP-8/E emulating
code since version 1.1. The PAL-8 Assembler no longer loops when
assembling invalid expressions like “/ 4”. Expressions like
“MYTAD=TAD” no longer define a 13-bit value with the MSB set,
but a 12-bit value. The checksum of BIN format output is now calculated
correctly (with the previous version, the field settings were
included in the checksum, but they are ignored by the PDP-8 BIN
reader when loading the paper tape). The cursor now spins clockwise
while pass 1 and anticlockwise while pass 2 of the assembly. New
e-mail address of the author.
25. January 1996: Version 1.1.1, PAL-8 Assembler 1.0.1
Patches to fix a bug in the runtime libraries of the simulator and the
PAL-8 assembler that causes the applications to crash on Macs with
16. December 1995: Version 1.1
6004 (GTF) now does not load the inhibit flag into AC(3) (the PDP-8/E
was designed to load GTF into AC(3), but the hardware actually
ignores this flag). 7417 (LSR) corrected: L is cleared in mode A, too.
A bug of the 68K version with the GTF handling of 7415 (ASR) and
7417 (LSR) corrected. A bug with the activation of memory inspector
windoids and the CPU window fixed. Look and feel of the zoom box
of memory inspector windoids slightly modified. Improved
compatibility with System 2, System 5, Copland and the Macintosh
emulator Executor (version 1.99o or better required). Typographic
errors fixed. The “Change to...” utilities now accept the usual
keystrokes as shortcuts for clicking the buttons of the dialog box.
22. July 1995: Version 1.1.b
PowerPC accelerated. Improved PDP-8/E speed (about 25 percent on fast
68K Macintoshs) and real time performance of the ASR 33 teletypes
due to better timer handling. Assembler keyboard input for the PDP-8
memory. Memory inspector windoids. Menu items “Load Paper Tape”
and “Clear All Flags”. Apple Events for “Reset” and
“Load Paper Tape” (open the PDP-8/E Simulator with the
AppleScript Script Editor to find out more about this). PC indicator
arrow draggable. Improved handling of moveable modal dialog boxes.
Improved scrolling of the help window. Bug with EAE instruction 7445
fixed (PC was incremented twice). Systematic bug with EAE instructions
7447, 7467, 7547, 7567, 7647, 7667, 7747, 7767 (combinations
with SCA DVI (mode A) or SWBA (mode B)) fixed (in mode A, now
SCA DVI is executed, in mode B, SWBA is ignored when
microprogrammed with other EAE OPRs). Bug fixed which prevented
the “Bootstrap Loader” dialog from loading the BIN loader into a
field other than field 0. TTY input now sets the 8th bit (by ORing
with 0200) of keyboard and pasted input (some PDP-8 software, e. g.
paper tape SABR, checks for 8-bit ASCII). Bug fixed which
caused the high speed paper tape reader to set L'AC to 1'7600 when
0200 was read (the paper tape SABR linkage loader complained about
checksums errors). A memory leak with Drag & Drop fixed
which caused memory of the size of text dragged away from TTY windows
to be lost. Typographic errors in balloons and help items fixed. Help
window texts slightly improved. PAL-8 Assembler, Pascal-S compiler
(on the Pascal-S DECpack), FORTRAN IV math library (FORLIB.RL on the
OS/8 System Disk) added. Documentation extended.
16. February 1995: Version 1.0
First final release of the PDP-8/E Simulator.
Minor errors fixed. Problems with Macintoshs without Color
QuickDraw fixed (thanks to Helge Horch, Berlin, for remote
debugging support). ASCII table and paper tape format description
added to the help items. Help window resizeable.
8. December 1994: Version 1.0.b
Initial beta release of the PDP-8/E Simulator.
Start of the development on a Mac Colour Classic based on
Bill Haygood’s PDP-8/E emulator.