This article describes an hardware diagnostic tool for older DEC PDP-11 computers with UNIBUS.

You can use the KY11-LB Programmer Console as a generic UNIBUS diagnostic tool.

This allows to test a very minimalistic system. You do not need a running CPU or proper interrupt/GRANT jumpers to test basic functionality of bus and selected cards. You can test the UNIBUS part of CPU backplanes, or any other UNIBUS backplane: you are not limited to 11/34 or 11/04's.

The programmer console stimulates the UNIBUS by register access. For parallel physically access to the UNIBUS see the UNIBUS signal adapter.

The related DEC document is "KY11-LB programmer's console-interface module operation and maintenance manual (Jan 1977, EK-KY1LB-MM-001)".




1. Prerequisites

You need

  • An UNIBUS backplane connected to a power supply
  • two BUS terminators (M9302 or other)
  • M7859 KY11-LB Programmer Console interface (the quad flip-chip module)
  • KY11-LB Console Board (the front panel with switches, LEDs and digit display)
  • 20 pin flat ribbon cable


  1. Connect the backplane to a power supply.
    Remove all cards from the backplane.
    Plug in M9302 or other terminators on both ends of the bus.
    Plug in an M7859 KY11-LB Programmer Console interface on an arbitrary SPC slot (Rows C-F), and connect it over the flat ribbon cable with the Console Board.
  2. Power ON. If the Console Board M7859 is not connected to the power supply, you need to give the "Power On" signal with a short cut between pins 1 and 3 of the remote-control inputs on the power supply. Most DEC power supplys have these remote control inputs.
  3. Test: After power ON, the console will display "RUN" and/or "BUS ERR", since no CPU responds to the HALT signal.
  4. Press [CTRL]+[1] to set the console into MAINTENANCE MODE.
  5. Press [5] to exit MAINTENANCE MODE with UNIBUS control. The console is now a standalone UNIBUS master.

This tests only DATA cycles, and neither Interrupts nor GRANT signals. You can test this on CPU and expansion backplanes.

3. SELFTEST: Testing backplane wiring and BUS termination on an emPty bus.

The M7859 KY11-LB Programmer Console controls the UNIBUS, and also implements one UNIBUS register: the Switch Register. So you can test an empty UNIBUS by reading the internal Switch Register back over UNIBUS with a EXAM (DATI cycle) to 777570. You can not test write cycles (DATO), because the Display Register (which shares usually the same address with the Switch Register) is not implemented.

  1. Enter someting into the Switch Register, may be  [1] [2] [3] [4] [5] [6], then press [LSR]. The "SR DISP" LED should go ON.
  2. Do not press [CLR], just enter the UNIBUS address of the Switch Register:
    [7] [7] [7] [5] [7] [0], then [LAD].
  3. Then press [EXAM]. The content of the Switch Register in the M7859 is read back over UNIBUS, you should see a "123456", as entered above. If you see "BUS ERR", something is really damaged.
  4. Test of the self test:
    Remove both terminator cards (M9302), and repeat steps 1 - 3.
    This time, you must see a "BUS ERR".

4. Testing cards

You can manually access memory or controller cards this way without CPU activity. Just plug in the card and EXAM/DEPOSIT on their UNIBUS address range. This is fine for monitoring UNIBUS cycles with a scope or a logic analyzer.

For instance, here is the test procedure for a serial interface card. The 11/34 is normally equipped with a DL11-W (M7856). If the DL11-W is configured as console terminal, these four registers are located in the I/O page:

  • 777560 - RCSR , receiver status register
  • 777562 - RBUF , character receive buffer
  • 777564 - XCSR , transmitter status register
  • 777566 - XBUF , character transmit buffer

Jumper the DLL11-W for baudrate and RS232 configuration (this site has excellent documentation. In the menu left, select "Peripherals/comm/interfaces/DL11-W). Connect the DL11-W over serial cable with a RS232 terminal or a PC running a terminal emulator. (And things are much easier if you have an octal ASCII chart at hand.)

Test the receiver part, send one character to the DL11-W:

  1. Set the KY11-LB into "UNIBUS master" mode, as described above.
  2. Press [7] [7] [7] [5] [6] [2] [LAD], the address of the receive buffer.
  3. Hit a key on the terminal, may be the asterisk "*".
  4. Press [EXAM]. You should see the octal ASCII code of the key you pressed ... for "*" it is "000052".

Test the transmitter part, receive one character from the DL11-W:

  1. Press [7] [7] [7] [5] [6] [6] [LAD], the address of the transmit buffer.
  2. Enter the octal ASCII code of the character to transmit. For an "U", this is [0] [0] [0] [1] [2] [5].
  3. Press [DEP]. The character is transmitted to the terminal, you should see the "U" appear there.