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).
The database
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.
Documentation
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.
A good start to read is chapter 2 in the PDP11/23 User manual. Then explore the files assigned to _MAINDEC_DOC, _MPG_DOC, _X11_DOC and _XXDP_DOC.
Types of diagnostics
There are far far more different diagnostics than there are devices to test. These factors cause multiple diagnostic variants:
Target platform
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.,
Packages
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.
Generations
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"