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).

0167 CZQAGJ0 PDP11diagModuleIdx.pdf

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.

MAINDEC-11-DZQAB-B-D MAINDEC User Reference Manual Oct73.pdf

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"