PDP-11 Diagnostics - Introduction
Digital Equipment Corporation (DEC) made diagnostic programs for every PDP-11 component they ever made (of course also for other computers lines, as PDP-8 and VAX ... here we focus only PDP-11's).
Over several months I collected all diagnostic files I could find. Most are already on bitsavers.
In daily work you need to answer questions like "What diagnostics are there for device xxxx?", "Where can I find executables for diagnostic module yyyy?", "Did I read all available documentation for module zzzz?", and so on.
When I observed how much time I spend navigating through the existing documents, the time to build up this database seemed well invested.
The DEC diagnostics are well documented, but access is difficult: Many documents are old high-peed printer printouts, which have been micro filmed, and scanned again. So readability is poor. And the interesting "user guide" chapters are often burried between 100+ pages of some cross-references or assembler listings.
In many cases I spilt off big manuals into separated PDF pages and linked every manual page with the related diagnostic module.
Types of diagnostics
There are far far more different diagnostics than there are devices to test. These factors cause multiple diagnostic variants:
A diagnostic will not only test a specfic device, it also has to run on a specfic PDP-11 system just as a regular program.
So there are variants for different PDP-11 system, depending on CPU types, and memory size. Some devices can also be tested for different platforms: disk and tape drives can be connected to PDP-8's or VAXes, and then there are diagnostics for these platforms too.
Run time environment
Diagnostics come in different formats, depending on the environment they run in.
The same diagnostic may appear as
- paper tape binariy
- assembler source code to be included in program builders
- binary module to be loaded under the XXDP monitor
Level of test
- A diagnostic can be very generic (for example, just testing the standard PDP-11 instruction set on any machine, or checking any memory with standard patterns).
(These should run on simulators like SimH)
- Diagnostics can be very specific to the tested version of a piece of hardware, using all built-in self test features (for example, using the parity error registers of different versions of MS11 memory cards, or working with loop-back mode of communication devices). For example, there are individual diagnostics for RQDX1, RQDX2 and RQDX3 controllers.
(Those diagnostics will never run on simulators)
- There are "acceptance tests" to check wether a system will run at the customer's site as intended (and so the customer finally has to pay) For example, a simple read/write test on a disk drive tests CPU, memory, UNIBUS, controller, cables, disk drives and disk medium all at once..
These (should run on simulators)
- There are "repair level" diagnostics, which helped DEC to find and fix failures. These may include special modes to reproduce oscilloscope patterns
(will not run on simualtors).
- There are "exercisers", which repeat the same tests again and again. These are not very in-depth but can detect spurious failures in standard usage patterns.
- There are "data reliability tests" for memory, disk and tape, to make sure data will be save over long times.
- ... and so on.,
DEC delivered diagnostic programs always in whole "media packages". A package is the set of diagnostices on a common medium needed for a specific machine,.
Packages were packed according to
- target system (CPU) they had to run on (PDP-11/20, 11/40, 11/60, 11/70, 11/23, and so on)
- and delivery medium (paper tape, floppy disk, RK, RM, RP, RL disks, magnetic tapes)
A media package includes many file types:
- diagnostic programs in binary form
- some tools to run the diagnostics. This includes papertape loaders (in the early days) and whole operating systems (XXDP in the later days).
- sometimes tools to build user-defined diagnostic tasks
- documenation files
A single diagnostic can be very simple (example: CKBKA0 tests only the MUL instruction of a 11/40), or very comprehensive (OKDDD0 tests the whole 11/53 CPU board with processor, RAM, serial lines units, clock and bus arbitration).
The "XXDP" distribution allows to generate media packages for differnet platforms.
PDP-11 diagnostics were produced and used over the whole PDP-11 life span, at least from 1969 to 1992. Over time, the format of the diagnostics changed. I know of these:
- Standalone paper tape strips. Then the diagnostics were called "MAINDEC".
- then they were assembler modules, which could be assembled into the "DEC X/11" monitor (not to be confused with the graphical UNIX interface X11. These also came on paper tape, but also on disks and tapes.
- finally there were loadable modules, which could be run under some "diagnostic monitors". These monitors were little operating system with increasing capabilites. I know of versions XXDP+, XXDP.2.2 and XXDP2.5.
They were distributed as "Diagnostic Packages" on bootable tapes ore disks.
The last XXDP2.5 is of 1985 and almost as powerful as a RT11 operating system.
- A diagnostic package was named after medium it was packed on, and which tested is also. For instance, there's a "RKDP" - the diagnostic package for RK disk drive system. "XXDP" then simply means "diagnostic package for all devices"