PDP-11/34 programmer's console as UNIBUS diagnostic tool
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 related DEC document is "KY11-LB programmer's console-interface module operation and maintenance manual (Jan 1977, EK-KY1LB-MM-001)".
- 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
- 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.
- 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.
- Test: After power ON, the console will display "RUN" and/or "BUS ERR", since no CPU responds to the HALT signal.
- Press [CTRL]+ to set the console into MAINTENANCE MODE.
- Press  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.
- Enter someting into the Switch Register, may be      , then press [LSR]. The "SR DISP" LED should go ON.
- Do not press [CLR], just enter the UNIBUS address of the Switch Register:
     , then [LAD].
- 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.
- 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). 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:
- Set the KY11-LB into "UNIBUS master" mode, as described above.
- Press       [LAD], the address of the receive buffer.
- Hit a key on the terminal, may be the asterisk "*".
- 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:
- Press       [LAD], the address of the transmit buffer.
- Enter the octal ASCII code of the character to transmit. For an "U", this is      .
- Press [DEP]. The character is transmitted to the terminal, you should see the "U" appear there.