Skip to content
Willem van der Mark edited this page Jul 30, 2018 · 1 revision

PDP-8/E Simulator in Java

The emulator can be started by clicking on http://www.vandermark.ch/pdp8/local/emulator/PDP8.jnlp which is a Java Web start JNLP application. If you have not yet used JNLP before, you must install it first (or use a recent release of Java). When you have done this successfully, an icon should appear on your desktop, which can be used to start the emulator afterwards. The other possibility is to download the http://www.vandermark.ch/pdp8/local/emulator/PDP8.jar to some convenient location. The JAR file is a self executable file that can by started by double clicking on it.

If you have problems accessing these programs, read the following instructions: Emulator/Access

%lframe height=200px% Attach:emulator-components.png | '''View of emulator'''

The PDP8 will appear with the Main Panel and other devices. For the moment the available devices cannot be switched off but can be minimized.

When using the JNLP interface for starting my PDP8, you will have to trust my application. This is so that I can store local properties of the emulator (mainly locations of mounted devices) on your PC. The PDP8.properties file is stored in the user directory of your PC or Mac.(In order to allow executing the JNLP you will have to add the URL to the exception list in the Java Control panel)

I can assure that my application does not contain any malware or viruses. I will regenerate the PDP8 every 3 months or so, assuring that you will always get a relatively fresh application.

Formatters for the http://www.vandermark.ch/pdp8/local/emulator/ConvertTape.jnlp and the http://www.vandermark.ch/pdp8/local/emulator/ConvertDisk.jnlp are also available. Alternatively http://www.vandermark.ch/pdp8/local/emulator/ConvertTape.jar and the http://www.vandermark.ch/pdp8/local/emulator/ConvertDisk.jar in the aforementioned JAR format can be used.

As the title says, the emulator was written in Java, as a Java application. I tried to keep as close to the hardware implementation, and will publish the source at a later time (when the documentation has been done...). It was implemented with the Java Web Start (JNLP) extension, for easier deployment.

%lframe height=400px% Attach:pdp8-latest.png | '''Emulator logic'''

A PDP8 with 32K memory, memory extension and time-share, EAE, Papertape Reader/Punch, LE8 Line printer, System Industries 4043 disk, TD8E Dectape and TTY have been implemented up to now. Also implemented are the DK8EP clock (non visual component) and a virtual timer called VirQueue. The memory extension was expanded with the Multi8 instructions and support for 128K memory. The flow chart on the left shows the relationships of these various components. There are two threads competing for the PC resources: one is the Panel thread that runs in a slow-down mode with sleep(20), the other, the processor thread, runs at full speed (or real PDP8 speed) when the PDP8 is running. Some other threads (not shown on flow chart) are used when requested by the various devices.

Clone this wiki locally