/PDP8-X

PDP-8/X - The PDP that newer was, but might become

Primary LanguageCMIT LicenseMIT

PDP-8/X

A new TTL-based PDP-8

Ths is currently a work-in-progress, with the end goal of actually build one in real hardware some day. But right now I'm just aiming for a simulation which currently is very un-optimized both speed-wise and in regards of the chip count.

Step one is to get the simulation fully working with the built-in non-standard components. Then I'll convert the simulation design to use 74-series chips that still can be purchased - I expect some changes will be requred in regards of triggering at rising or falling edges and whether 3'rd-state outputs are available in the parts. Finally I'll spend some time optimizing the design, with a focus on the total chip count.

Diagnostic tests

Test tape Description Status Run time
MAINDEC-8E-D0AB-InstTest-1 Instruction test 1 OK
MAINDEC-8E-D0BB-InstTest-2 Instruction test 2 OK
MAINDEC-8E-D0IB-Basic-JMP-JMS Basic JMP-JMS OK
MAINDEC-8E-D0JB-Random-JMP-JMS Random JMP-JMS OK
MAINDEC-8E-D0DB-Random-AND Random AND OK
MAINDEC-8E-D0EB-Random-TAD Random TAD OK
MAINDEC-8E-D0FC-Random-ISZ Random ISZ OK
MAINDEC-8E-D0GC-Random-DCA Random DCA OK
MAINDEC-8E-D0CC-AddTest Adder tests ok? >30 hrs
MAINDEC-8E-D1AA-Memory-Checkerboard Memory testing
MAINDEC-8E-D1EA-Memory-Address Memory testing

The run time show how long it took running the test on a Late 2013 MacBookPro until the first output on the TTY console (signifying that X number of passes have succeeded). On a real PDP-8/E the times are between five and ten seconds for most tests.

Other PDP-8 softwares

Tape Description Status
FOCAL-8 Focal interpreter Print welcome message, crashes before questions about trig functions

Some screenshots

Overall view

Front panel

Data paths

AC/L/MQ registers

Folder structure

  • /asm/ - Assembly source files. By using the assembler tools/pal these are made into tape binaries (.bin/.rim) and put in the bin folder
  • /asm/slyngstad/ - Original interrupt test files from Vince Slyngstad
  • /bin/ - Tape files in .bin or .rim format. These are converted into loadable files by the tools/tape2bin.sh utility
  • /doc/ - Pdf's and textfiles with info about the PDP-8 architecture
  • /img/ - ROM/RAM images to be loaded into the simulated RAM
  • /sim/ - The .dig files for the PDP-8/X simulation
  • /tools/ - Executables like the simulator, compilers and converters
  • /pictures/ - Screenshots and other images

Simulation requirements

I'm using Helmut Neemans 'Digital' for the simulation. It is required to use a pre-release version of it - v0.23-065 or higher. The standard v0.23 release lacks octal setttings that I use.

The prereleases are available from https://infdigital.dhbw-mosbach.de

The main repo of the Digital project is at https://github.com/hneemann/Digital

Versions

  • 2019-10-07 v0.4 - MAINDECs ok, FOCAL-69 runs successfully
  • 2019-09-27 v0.3 - Mostly ok, FOCAL fails
  • 2019-09-23 v0.2 - Runs MAINDEC-8E-D0BB (Instruction test 2) successfully
  • 2019-09-19 v0.2PA - Runs MAINDEC-8E-D0BB (Instruction test 2) until *2677. Uses 8-slot banked memory to ease changing of test images.
  • 2019-09-19 v0.1 - Runs MAINDEC-8E-D0AB (Instruction test 1) successfully

Copyrights

Parts of this repo was written by others.

The MAINDECs and FOCAL is/was of course written and owned by Digital Equipment

The Interrupt tests in /asm/slyngstad/ was written and owned by Vince Slyngstad

In /tools/ there's a copy of Digital written by Helmut Neeman

In /tools/palbart there's the palbart assembler written by Gary A. Messenbrink