Computers‎ > ‎Digital Equipment‎ > ‎

PDP-11/04 - S/N 03092

PDP-11/04 running CPU diagnostics
PDP-11/04 from Gunnar
This machine was received together with a lot of other PDP-11 stuff from Gunnar Barbro. It was far from complete when received. The CPU and the memory boards were missing and the front panel power switch had been replaced with a new. It was also extremely dirty. In the backplane there were a the board for the programmer's console, KY11-LB, a XY11 board, a KW11-P board. There were a RK11-D backplane and cards as well as a DR11-B backplane and cards.

The machine was dismantled into pieces and washed gently with soap. and then blown dry using compressed air. This includes the backplane and the PSUs and the several of the circuit boards. Then all parts were to dry and assembled again. It was also some rust under the paint here and there.

Reassembly and testing
Of course it would not run even with the spare CPU and memory boards I had already lying on the shelf. The console was pretty much dead and it was even worse after a while. In the beginning it was possible to enter digits on the console, but suddenly it was dead. 

The KY11-LB is an interesting option used on both the PDP-11/04 and the PDP-11/34. Not only can you enter programs and data by depositing and examining the memory, starting and stopping the CPU, single stepping the program etc. It can also be used in a maintenance mode where it can monitor and single step the micro code of the CPU. This is done by attaching one or two ribbon cables to the CPU module. But if the CPU is not present or is completely hung, the KY11-LB can be used to exercise the Unibus without any interaction with the CPU at all. All this because the KY11-LB has it's own small 8008 cpu on board. Red marked below. This is a very good feature if you would like to verify the Unibus itself or do some simple tests of memory and I/O boards. Whenever a nonexistent location is addressed the BUS ERR light will come on. Jörg Hoppe has done an excellent page on the KY11-LB and how it can be used.
M7859 / KY11-LB
A logic analyzer told me that the small 8008 microprocessor on the M7859 board (KY11-LB) was running fine and that it was executing its program correctly. It was just no one pressing any buttons... It turned out that all the CLR signals for the output registers of the board was in active state. The bus-receiver for the DC LO signal was bad. Then there were a number of OC driver chips and register chips that had failed. After replacing those the console came to life. But while running the CPU and verifying its operation using diagnostics it failed again, not once but twice. First the M9301-boot card failed. Data bus bit 8 bus driver was marginal. Not capable of sinking the bus enough. Then second time the CPU was completely stuck. Nothing was seen on the address bus and the microcode revealed that it was stuck when trying to acquire the bus. Removing the M7859 made the CPU start to execute. It turned out that the M7859 board was producing a 9 MHz signal on the BBSY bus signal. Why? One 7474 had gone bad and was oscillating like mad. Now it passed CPU diagnostics and memory diagnostics.

The M9301-YB is the terminator and bootstrap module for this PDP-11/04. The PROM contents include the console emulator and also bootstrap for some common devices. To be able to start the CPU at power up directly from boot-PROM this boards forces a special address on the bus when the CPU itself is fetching the power fail restart address from vector 24/26. It do alogical or with the address 173000. Thus instead the CPU receives the data stored at 173024 and 173026. At the 173024 location the M9301 do a logical and of the data present in PROM and the data provided by the switches. Thus the switches control where in the 173xxx space the CPU will start. The four PROMs have been dumped into four Intel hex files, 23-038A9, 23-039A9 and 23-040A9, 23-041A9. Since the M9301-YB do invert certain bits to handle the "or with switches feature" I wrote a small program to combine those into one single binary file. I have just done an initial check on the disassembly, but it appears to be very similar to the M9301-YA PROM but the code is laid out differently.

Running RT11SJ and XXDP V2.2

To be able to boot one need a bootstrap routine. Normally these go into a small PROM which then the console emulator starts when entering the correct letters. But this machine has a M9201-YB card which does not include a DU bootstrap. So I had to resort to toggle in a DU bootstrap by hand. There were some difficulty to find a proper bootstrap that worked but then I found one in the source code of SimH. I put into a small file that I use PDP11GUI to push into the computer memory. Works fine (most of the times).

MSCP toggle in boot

0016000  042125  012706  016000  012700  000000  012701  172150  012704
0016020  016162  012705  004000  010102  005022  005712  100001  000000
0016040  030512  001773  012412  006305  100370  105714  001434  012702
0016060  007000  005022  020227  007204  103774  112437  007100  110037
0016100  007110  112437  007114  112437  007121  012722  007004  010522
0016020  012722  007104  010512  024242  005711  005712  100776  005737
0016040  007016  001743  000000  005011  005003  012704  016020  005005
0016060  005007  100000  007204  000000  000001  004420  020000  001041
0016200  000000  

Toggle in at octal 16000 and start it at 16002.

Running Adventure in RT11.
Then I tried to get a disk image with XXDP v2.2 running on the machine. But it was not successful. It booted to the XXDP prompt but doing any command that accessed the disk, like "D" caused it to write "?RD ERR". It seems like it is not happy to access the disk. Then I tested a small RT11 installation. Putting a version 5.3 on a disk image and trying to boot it was indeed successful. Maybe play a little bit of Adventure? Or do some BASIC programming?