PDP-11 diagnostics - running them

Parent Category: How-to's Category: Using PDP-11 diagnostics Written by Administrator

DEC made diagnostic programs for every component they build. On the diagnostic database you have access to most software and documents found on the web.

Running these programs is not always easy: Often you don't have the right disk or tape drive connected, you don't have the diagnostic medium to match your storage device, or your machine is too buggy to boot.

So over I time I had to find some alternative ways to run these diagnostics.


The DEC PDP-11 diagnostics were first distributed on paper tape, product name was MAINDEC. There was one diagnostics program per paper tape (seldom a program was distributed onto two or more strips), a set of papertapes was contained in a "tray". Since in the early days (before about 1975) the standard interface was the teletype ASR 33, you could run paper tapes on all machines, without having a working disk or tape drive.


ASR33 from CCG collection

Later DEC distributed diagnostics in whole packages on bootable disk or tape medium.
These media are labled like "RKDP" ("RK disk Diagnostic Package") or "TMDP" ("magnetic tape ...") or "RLDP" ("RL disk" ...) or "RXDP" ("RX floppy disk" ...) or others.
They contain sets of diagnostics suitable for a specific system configuration: for example all diagnostics for a standard 11/40 installation with CPU, memory, DECtape, paper tape reader, RK disks and teletypes.

At this time also "monitors" were added to the diagnostic programs. These are in fact small operatings systems, which allow to run diagnostics and tools in a comfortable way.

A super set of all those media packages is the "XXDP" system, "XX" standing for "any device". In DEC's own words:

what is xxdp

The XXDP package contains all diagnostics ever written for any component, and are delivered on a 10 MB RL02 disk cartridge. XXDP diagnostics could be run directly from an RL02 disk drive. Also bootable packages for other storage media could be generated.

Five ways to run the diagnostics

You typical run the diagnostics, if you build up a machine, or a machine is broken (again). So depending on your momentary hardware setup, the devices to run the diagnostics maybe either not yet present, or not working at the moment. So here is a list of alternative methods to save your day:

1. Get XXDP on a RL02 disk drive and boot it there.

Since DEC delivered tons of RL02 cartridges with XXDP on it, it's still possible to get an original XXDP distribution.

IMG 0423
IMG 0419

Yes, it's a RK05 instead of RL02!

The RL02 cartridge is 10MB big and can hold all the diagnostic programs, there are over 700!
If you don't have an original XXDP RL02 cartridge, you have to make your own.  Images of the XXDP cartridge are available in three generations: XXDP+, XXDP2.2 and XXDP2.5. Those images are found on different places on the web. You can also find these images in the diagnostic database: Go to the "Module Index", then search with your browser for "XXDP_RLDP". The images files are found in the "Resource file" section.

To dump the image on the RL disk, you have these options:

  • Use PDP11GUI to connect to your PDP-11, and use the "Disk Image Window". The image is transfered over serial line and directly written to the target disk without need to keep a copy on a local PDP-11 disk.
  • You can also try to setup an UNIX with TCP/IP stack on your '11. Setup of 2.11BSD is well documented here. Once TCP/IP is running you can copy disk images from your local PC over ftp to your PDP-11. Then write them to your RL disk device with "dd if=<image_file> of=/dev/rl0". You need a 11/70-like PDP-11 to run 2.11BSD, every machine with J11 CPU is fine.
  • You can get the file transfer program KERMIT running on your PDP-11, there are versions for all DEC operating systems. Then you download the RL02 image over serial line to your '11, and write it do RL disk there.


2. Run XXDP from other media

If you don't have a RL02 disk drive, you can run one of the other media-bound packages like RKDP, MTDP, RXDP, and so on.
And if you don't have the medium for your device, you can boot XXDP for RL disk in SimH, and create there an image for your favorite disk or tape drive. Later you write that image to a physical medium, as described above for RL images.

IMG 0414 IMG 0415


3. Run papertape diagnostics

If you have a papertape device (ASR33 or PC05), you still can buy paper tape trays (here ebay):

ebay papertape

Be sure to buy the right ones!

Or you download the papertape images (from bitsavers) and write them onto your ASR33. PDP11GUI can also punch them onto the "PC05 Papertape Reader/Punch" device. To run the diagnostics, you first must boot into the "absolute loader" strip. If the machine HALTs, change the tape and press "CONTINUE" on the front panel, the loading continues then.


4. Run from simulated TU58 tape drive: TU58EM and TU58FS

The TU58 is a cassette tape drive with serial RS232 interface.

TU58The cassettes have a capacity of just 256Kilo bytes, the TU58 was mainly used as maintenance boot device. Even some early VAXes have a TU58!

XXDP packages are also distributed on those cassettes. A PDP-11 with a 2nd serial port can connect to this device and boot from it. Many PDP-11's like 11/44, 23,53,73 have the dedicated 2nd port for the TU58. On other machines, one additional port must be plugged in and be configured to the right address (for example, pdp11.nl has instruction to set up the DL11-W card. Navigate "Peripherals" → "comm" → "interfaces" → "DL11-W")

Physical TU58's are almost all broken now (the rubber wheels in the drive desintegrate).
But since the interface to TU58 is pure serial, a smart guy (Will Works) wrote a PC based emulator, called "TU58em".
Your PC acts as the TU58 then. Your '11 accesses the TU58 emulator over the PC serial port as if it were a TU58 drive.

So the only working device you need in your '11 is the 2nd serial port jumpered to the right address.
And you must somehow enter and start the TU58 bootloader code.

4.1. Legacy "tu58em"

To operate a simulated TU58:

  1. generate images of cartridges containing a small XXDP system, with tool DIAGDIR.
  2. Connect your PC to the 2nd serial port of your PDP-11 with a null modem cable
  3. start the emulator on the PC with a "Tu58em" command line, which includes the cassette image file.
  4. start your '11 and run the TU58 bootloader.

A drawback is that the cassettes are just 256KB large. XXDP monitor and device drivers eat up much space, leaving room for just 10-20 diagnostics (compare this to the 700+ diagnostics on a RL02 cartridge!).
So you must carefully select what diags you want to run, or produce multiple image files with different sets of diagnostics.

TU58em is hosted here on GitHub. Diane Neisius has a good article about the simulated TU58. And cosam.org shows how to generate the cartridge images.

In the attachement file "tu58em.zip" there are all files and some "readme"s.

Attention: TU58EM and DIAGDIR are 16-Bit DOS program. They will still execute under 32-bit Win7, but not on 64 bit Windows versions any more, So perhaps you'll need to run them on a virtual machine.

4.2. File sharing with "TU58FS"

"TU58FS" is my contribution to the "TU58 emulator" approach. "FS" stands for "File Share". It is an enhanced version of "tu58em", with many improvements. Under XXDP you benefit from these:

  1. The content of the TU58 cartridge is not saved as opaque binary image, but the files reside on a directory on your PC. So you don't need to prepare different cartridge images with tools like xxdpdir. Copying diagnostics onto a "cartridge" is just a drag'n'drop operation into the shared directory.
  2. The TU58 protocol can address up to 32MB cartridges. Under XXDP25, the boot tape (on "DD0:") is limited to 256KB, but data cartridges (mounted as DD1:" device) can contain the full RL02 diagnostic sets!

See full tu58fs doc here. The tu58fs GitHub repository contains a full XXDP25 setup, ready to run.


5. If you have no devices at all: load over console!

All procedures so far required some kind of additional hardware to boot and run the diagnostics from.
The really hard (and not unusual) case however is to have no devices running at all.
Or - with the same result - your CPU or memory is too defective to execute the XXDP boot procedure.

Then PDP11GUI can be used to transfer diagnostics programs directly into the PDP-11 memory without additional hardware!

All you need is a console monitor running in your PDP-11. This is "ODT" for QBUS machines, M9312 code for PDP-11/04,34, or special microcontroller software in the PDP-11/44. Even if you have a pure "blinkenlight" PDP-11  without console monitor, you can add a M9312 boot strap terminator card and start a console monitor at address 165020.

PDP11GUI can read binary code formatted in the "Absolute Papertape Format". This is the format of all paper-tape strips, as well as the binary format used in the XXDP *.BIN and *.BIC files.

pdp11gui memoryloader

Load the code with the "Memory Loader window", then DEPOSIT it over console connection into the memory of your '11.

The start address of these programs is encoded in the format, or often it is 200 or 220. Enter this address into the "Execution Control" window before start. If unsure about the start address, examine the code with the "Disassembler window" until you find something like a program start.

Paper-tape image files are intendend to run stand alone and work fine. XXDP *.BIN and *.BIC programs may use services of the XXDP monitor and will not run stand-alone, even if they can be loaded into memory. In tests some files could be run (like FKAAC0.BIC), for others even the start address was not found (like ZRLKB3.BIC).

I extracted all  *.BIN and *.BIC files from their XXDP RL02 image, you can downloaded individual files from the diagnostic database.
Click path is "Module Index" → <test_module_name> → "Resource files".

Since the format of *.BIN and *.BIC files is sometimes unusual, at least PDP11GUI version 1.42.1 is needed to load them.

Download this file (tu58em.zip)tu58em.zip[TU58EM, DIAGDIR, PUTR and other tools]5008 kB