11/34A  KY11-LB  troubleshooting M7859

INTRODUCTION main power distribution

At the beginning of November 2005, I finally got the main power installed in my museum. A thick 5-wire, 4 mm-square, cable runs right from the connection where the main power enters the house to my little museum. This 3-phase connection is fuses with a triple 20 Amps circuit breaker, the kind that will not trip on a short high rush-in current.
In the museum, each of the 3 phases are split into two groups, so that gives me 6 groups. Each group has its owm fuse, rated 16 Amps. Of course, if I put a load of 12 Amps on one group, I can not put an other 12 Amps load on an other group that is derived of the same phase, as that would pop the 20 Amp circuit breaker. By configuring the load distribution over the groups, I can run any PDP-11 comfortably, even the 11/70 with two RM03's.

So, after two years finally came the moment to turn on my first configuration, the PDP-11/34C. When it was switched off 2 years before, it was in working condition ... I turned the machine on and saw the RUN light illuminated, and I could not get it cleared. Aha, I thought, a bus problem. Perhaps I have pulled a board and did not make a note of it.
So, I pulled the 11/34 out of the rack and opened the top cover. Nothing strange to see, all seems fine, no empty slots. I can use the front panel and enter a number. The entry appears on the display. I am sure that I did that, because to start the machine I must enter 165020 to start the execution of the monitor on the M9312 bootstrap/terminator module.

Using a flash light, I see a lot of cat hair on the backplane (the side where you plug in the modules). I thought, "while I am working on this machine, why not clean it immediately"? So, I pulled all boards (only the processor backplane, do it one backplane at a time). I already have a note that describes the slot/position where each board should be, and I checked that it was up-to-date. With a vacuum cleaner I sucked all cat hair (and dust) from the backplane and then installed the boards again. As I had a grant problem, I did not install the M9202 in the last slot to connect to the next backplane, but installed the M9302 terminator instead to localize the grant chain problem.
Powered up the machine, the RUN light stays OFF. OK, so the problem is not on the CPU backplane, but on one of the next two (there is a DD11-DK 9-slot and then a TMB11 4-slot backplane in this box).
I pulled all boards from the second (DD11-DK) backplane, and vacuum cleaned it too. Then I removed the M9302 terminator from the CPU backplane and installed it in the last slot of the DD11-DK. I installed an M9202 to connect the two backplanes. Then I installed a grant-continuity module G7273 in all 9 slots of the second backplane. I turn on the machine, and to my surprise, the RUN lamp is ON, and I can not get it OFF !?!
It is a bit vague in my memory, but I think this was also the point where I discovered that the keypad console is no longer responsive. When I push any digit button (0-7) that number should appear on the display ... nada, nope, nothing happens.
I reverted back to the previous configuration: only the CPU backplane. I removed the M9202, and installed the M9302 in the last slot of the CPU backplane. I left the G7273's in the second backplane. The problem with the console did not go away.   To localize the problem, I downsized the system configuration to a minimum. I removed the Floating Point option and the Cache option (slot 3 and 4), and installed G7273's for them instead.

     slot   position    board(s)
  ---------------------------------
       1     A - F       M8266
       2     A - F       M8265
       3     C - D       G7273
       4    A-B C-F   M9312  M7859
       5     C - D       G7273
       6     C - D       G7273
       7     C - D       G7273
       8     C - D       G7273
       9    A-B C-D   M9302  G7273
I checked the voltage on the CPU backplane is 5.08 V. and the +15 and -15 read +/-15.2 V.
Back to top

AVAILABLE DOCUMENTION

To find the problem with the M7859 console board, I use the following documentation.
You can get this documentation from
 bitsavers , but download it from one of the mirror sites!
They are in the directory "pdf/dec/pdp11/1134", there are two KY11-LB documents.


INITIAL TROUBLESHOOTING M7859 on extenders

To have access to the board you must install the module on extenders. I only have dual width extenders, so I plugged two extenders into the backplane and put the M7859 on top of it. To make the connection to the console panel board, I had to remove the front panel to re-route the 20-wire flatcable that connect the console board to the M7859 module. I only took a brief look at the schematics, and set up my oscilloscope to check the signals that connect the keypad. The keypad is scanned by the software, and I see pulses on all lines of the keypad matrix. It looks fine to me, but there are several lines and then a 2-channel oscilloscope can not show you everything at the same time.
Since the keypad signals seems to be OK, I decided that I needed to study the schematics of the M7859 to get more knowledge of the operation of the module. It became clear that I needed to pull out the Logic Analyser, which I had not used at all, up till now. So, I read a little of how to use the LA. It is actually not that difficult. Now I have 16 channels available to probe!
Here are the symptoms.
If I press the 'LSR' button, the 'SR DISP' LED goes on. However, if I press any of the numerical buttons, '1-6', a digit in the display only flashes very brief. I cannot say what the digit was. To make things more weird the following happens if I start with pressing the 'CLR' button and then the numerical buttons.
1) press CLR (display stays at "000000")
2) press e.g. 6 (some of the rightmost digit segments briefly flash)
3) press 6 again (1st and 2nd of the right display flashes)
4) press 6 again (1st, 2nd and 3rd of the right display flashes)

The first leftmost three displays remain "000" and do not show any sign of changes. Pressing 6 after the first 3 times, repeats the flashing of some segments in the three rightmost displays. The LAD, DIS AD, EXAM, and DEP keys seems to give no response. However, if the SR DISP LED is on, pressing any key will turn of that LED. Even the CNTRL key ...!
Next, I checked the following.
All 20 wires of the flat cable from the console to the M7859 module check out OK.
I checked the +5V and GND faston at the console and measured a clean 5.15 V.

On the 4th page of the printset is the schematic of all keypad switches and the console LEDs connected to the flat cable. The switches are group-connected to NAND gates (8881), and 4 gates are stobed by a signal "READ x H", where "x" is 1,2,3,4,5. They form a scanned matrix as follows.

 
    signal    |    J1 #6     J1 #7     J1 #8     J1 #9
   -----------+-------------------------------------------
   READ 1 H   |    START     BOOT      CONT      HLT/SS
   READ 2 H   |    CNTRL       3        6         DEP
   READ 3 H   |     INIT       2        5         EXAM
   READ 4 H   |      0         1        4          7
   READ 5 H   |     CLR       LSR      LAD       DIS AD
The "READ x H" signal is derived from the pins 18 (READ 1 H) thru pin 13 (READ 5 H) on connector J1, via 7404 inverters, and they all have the following wave form.
                <----  22 msec  ---->
     _____      _____________________
          |     |                    |
          |     |                    |
          |_____|                    |__
       -->      <---
           4 ms
I did not check (yet) the timing relation between the "READ x H" signals. The signals on the combined output of the 8881's have the following wave form.
             [1]     [2]     [3]     [4]     [5]
    ________     __      __      __      __      __________
           |     | |     | |     | |     | |     |
           |     | |     | |     | |     | |     |
           |_____| |_____| |_____| |_____| |_____|
The number between the square brackets indicates the "READ x H" signal. So when "BOOT" is pressed the low signal during the time interval [1] goes logic high. Likewise, when I press the EXAM key time interval [3] goes logic high. So, keypad scanning looks OK to me, as the X-Y matrix works fine.

The 5th page of the printset has the schematic of the six 7-segment displays with the 7447 decoder, 7404 inverters for the scanning matrix signal, and the "DRIVE xL" which are also derived from connector J1, pins 18 thru 13, via a buffer 7417. Since "READ x H" seems to be OK, I assume that "DRIVE x L" is also OK ... it must be, otherwise the six 7-segment displays would not be lit !
The 6th page of the printset shows the component layout of the M7859 module. The connector J1, top left, connects to the front panel. This is the pinning when viewed at the component side of the module.

    ________________________________________
    |   #19 . . . . . . . . #1            card edge
    |   #20 . . . . . . . . #2
    |
    |
  card edge
Further, from the diagrams I see the the following pins on J1 (console) are connected to these pins on J1 (M7859).
 
      J1    --->   J1
  (console)      (M7859)   description
 --------------------------------------------------
      20            A      GND
      19            B      +5V
      18            C      SCAN 1 L (READ/DRIVE 1)
      17            D      SCAN 2 L (READ/DRIVE 2)
      16            E      SCAN 3 L (READ/DRIVE 3)
      15            F      SCAN 4 L (READ/DRIVE 4)
      14            H      SCAN 5 L (READ/DRIVE 5)
      13            J      SCAN 6 L (READ/DRIVE 6)
      12            K      NUM 1 H  (A input 7447)
      11            L      NUM 2 H  (B input 7447)
      10            M      NUM 3 H  (C input 7447)

Could it be a problem with the ROMs that hold the software for the 8008 CPU? The Maintenance Manual of the KY11-LB describes the 8008 instruction set and has the assembler source listing in an appendix. I connected one pod (8 inputs) of the LA to the address pins A0 thru A7 of one of the ROMs (see the page KY-4 of the print set) to see if the program execution is correct.

8008 instruction execution - address trace
Only the 3 least-significant octal digits are correct! The trace shows that the program executes the "SHFT1" subroutine and then returns to the main program loop at address o153 (see the code listing in the appendix).

The 74154 (E48) on drawing KY-4 is interesting. The lower 8 select-outputs are for reading data, and the higher 8 select outputs are for writing data. Output #5 (signal KY4 READ INPUT 5L) enables the 8093 (E74) on drawing KY-3 that reads in the scan matrix and the UNIBUS signals SSYN and HALT BUSY ... I assume that the 74154 is OK because all select signals for the latches come from the outputs #8-14. KY4 LD REG 0H (goes to drawing KY-6, which addresses the scan signals latch) must be OK. Output 9 (pin 10) activates the latch that drives the display signals. The other outputs of the 74154 (10-14) activate the latches that puts out an address and data onto the UNIBUS. If the outputs of the 74154 are not active, the problem is narrowed to the address decoder (E34, ROM) and stuff on drawing KY-1. However, the ROM must output good signals on pin 1 and 2, because these 2 lines are the enables for the software ROMs. And one thing is sure, the 8008 executes the software otherwise a response of pressing LSR turning on the SR DISP LED would not happen. That implicates that the outputs of the 74154 and the inputs (A-B-C-D and G1-G2) must be OK!

On page KY-1, the 8008 state output lines, S0, S1, and S2, go to a 7442 decoder. The documentation explains the decoded states, and mentions that pin 2 of the 7442 ('KY1 STOP L') is asserted when the 8008 crashes (in fact, when the 8008 executes a HALT instruction, which is octal 0, or 1, or 377). When STOP L is activated, the 8008 will restart itself. I scoped pin 2, and can say that 'STOP L' is never asserted. That means that the 8008 is continuously executing its program, without any restarts. The clock signal at TP1 is a nice square wave with a duty cycle of approx 50%, cycle time a bit more than 1 µSec.
Some preliminary conclusions up till now.

Initially I thought that the 2 RAMs (E11/E27) must be good too, because when the 8008 returns from a subroutine it must retrieve the PC from RAM. However, Allison told me that the 8008 has a (small) internal stack space.
TROUBLESHOOTING - THE CONSOLE PANEL

I also saw that sometimes the RUN LED is turned ON. Pressing the CNTRL (only that button!) the BUS ERR LED goes ON (???).
Normally CNTRL must be used in conjunction with another button ... Pressing CLR (or any other key) makes BUS ERR turn OFF. Also, I noted that at some point the display showed "666666", but I can not change the value. For now, I am not too worried about this. I contribute this behaviour to the less-than-perfect contacts, now that the M7859 is on top op 2 dual width extender boards.

Page KY-4 has all the decode logic. The signal KY4 READ INPUT 5L from the 74154 is used on page KY-3 to enable 8093 AND gates to read the scan matrix lines. The signal KY4 LD REG 0H via a 7404 from the 74154 is used on page KY-6 to enable a 74175 latch of which the outputs drive the scan matrix. Likewise, KY4 LD REG 1H drives the three NUM lines for the 7447.
I checked the signals that drive the console keypad matrix and display. The outputs of the 8881's (on page 4, KY11-LB console board) look as what I saw on the oscilloscope, and that is also what I see on the inputs of the 8093 (page KY-3).

console signals trace
trace numberIC / pen #signal namedescription
FE48 / 16  -  strobe signal console LEDs output
EE48 / 10  LD REG 1 H  strobe signal display octal code output
DE48 /  9  LD REG 0 H  strobe signal matrix drive output
CE74 /  1  READ INPUT 5L  strobe signal matrix read data
BE74 / 12  KEY 4 H  keypad matrix read data
AE74 /  9  KEY 3 H
9E74 /  5  KEY 2 H
8E74 /  2  KEY 1 H
7E66 /  8  NUM 3 H  LED display octal code
6E66 /  6  NUM 2 H
5E66 /  2  NUM 1 H
4E72 /  4  SCAN 1 L   keypad matrix / LEDs display (common anode)
  drive signals
3E72 /  6  SCAN 2 L
2E72 / 10  SCAN 3 L
1E72 / 12  SCAN 4 L
0E72 /  2  SCAN 5 L
Note. The signal names do not always match the drawing's (taken before/after a buffer or inverter).

I'd love to see this trace on a known working M7859! I am not sure about the "glitch" (it's not a glitch) at '657'. As you can see, there is a brief moment between SCAN 4 L and SCAN 5 L going low. That will cause a pulse on the keypad matrix read data lines (channels 8-9-A-B), but I guess that is not a problem, because the matrix is not read at that time (channel C).
However, (but not clear from this picture), I see that the strobe puls to latch the 7-segment display data only seldom occurs. In this picture you see it once in the displayed 100 msec interval! That would mean that the 7-segment displays would flicker when the update rate was that slow. On the other hand, you can not see any update because the display octal code (channels 5-6-7) remain '0'.
I am suspecting E73 (74175 latch) and will zoom in on that.

What I also have seen is the following.
When I press CNTRL, the displays go all OFF for 400 msec. As far as I remember, this is not correct behaviour. Would CNTRL - INIT do this?
The SCAN / DRIVE signals (Channel 0 tru 5) are kept at '1' during that 400 msec. That explains why the displays all go blank. After the 400 msec period the signals NUM-1-2-3 become '000', but there is no strobe pulse on E73. It might be the clear signal on the latch, but I have not checked that yet. Right after the '000' the NUM-1-2-3 lines change to '110' and that matches the display contents ('666666'), but again I did not see a strobe pulse ...

display latch signals trace
trace numberIC / pen #signal namedescription
FE73 /  1  PUP L  latch clear flip flops
EE73 /  9  LD REG 1 H  strobe signal display octal code output
DE73 /  4  ADRD 0 H  latch data bit 0 in
CE73 /  5  ADRD 1 H  latch data bit 1 in
BE73 / 12  ADRD 2 H  latch data bit 2 in
AE73 /  2  NUM 1 H  latch data bit 0 out
9E73 /  7  NUM 2 H  latch data bit 1 out
8E73 / 10  NUM 3 H  latch data bit 2 out
7E66 /  1  NUM 1 H   LED display octal code
  (from latch outputs, inputs at 7417 buffers)
6E66 /  5  NUM 2 H
5E66 /  9  NUM 3 H
4E66 /  2  NUM 1 H   LED display octal code
  (outputs from 7417 buffers)
3E66 /  6  NUM 2 H
2E66 /  8  NUM 3 H
1E48 / 10  LD REG 1   74154 output (inverted signal channel E)
0-   not used
Note. The signal names do not always match the drawing's (taken before/after a buffer or inverter).

As you can see, there is only one pulse to clock the data into the flip flops of the latch. The sampling rate was set to 1 msec for this measurement, but the trace is 20x magnified surrounding that pulse. When the magnification is set to 1x, the view shows a recorded interval of 1 second (1000 samples at 1 msec sampling), but still, there is only one clock pulse on channel E. As this pulse refreshes the displays (which are multiplexed) I would expect to see a lot more pulses!

TROUBLESHOOTING - THE ON-BOARD RAM

As the program executed by the 8008 seems to run OK, I get the impression that the RAM chips could have a failure, as suggested by others (* credits at the end of this page). The keypad entry is stored in RAM (first 3 locations, the operator & maintenance manual shows an allocation map which is not correct), and a faulty RAM would also explain why pressing the CNTRL button causes the BUS ERR light to turn ON, because it is simply seen as another key! The M7859 module has two 4-bit 16 addresses RAM chips. E11 is for the low 4 bits, E27 is for the high 4 bits of the 8-bit databus. The type is 85S68.

Signals on E11 (write low 4 data bits)
on-board RAM signals trace (write bits 0-3)
Signals on E27 (read low 4 data bits)
on-board RAM signals trace (read bits 0-3)
Click the screenshot for a larger image.

trace
number
pen #signal name
E11
signal name
E27
description
F-   not used
E-   not used
D12  DIN BUS L  select RAM
C14  RAM WRITE H  write data into RAM
B 5  ADRD 3 L   4-bit address lines
A 4  ADRD 2 L
9 6  ADRD 1 L
8 3  ADRD 0 L
711  DIN 3 H  DIN 7 H   data output from RAM
610  DIN 2 H  DIN 6 H
5 8  DIN 1 H  DIN 5 H
4 7  DIN 0 H  DIN 4 H
316  DOUT 3 H  DOUT 7 H   data input to RAM
217  DOUT 2 H  DOUT 6 H
1 1  DOUT 1 H  DOUT 5 H
0 2  DOUT 0 H  DOUT 4 H


The image on the left shows a write operation to address 14 ('1110' octal) and the data written is '0000'. The image on the right shows a read operation from address 14, but the data read is '0100'!   Not good, and I double-checked that there was no other write operation to address 14. In fact there was not any write operation between the write pulse in the left image and the read pulse in the right image.
I am not 100% convinced that I have found the problem. I have put away this board (with all the notes written during the measurements), and installed an other M7859 that I received from a list member. See below. This module works OK, so that assures that there is no problem with the console electronics (keypad, driver and receiver ICs, display decoder 7447). If I get more time (...) I will try again to fix this board, in the mean time I will be looking out for a 85S68 IC ...
CREDITS

I wrote this webpage to communicate with knowledgable people. A screen shot from the logic analyzer tells more than a 1000 words. Reasons to keep this webpage, is for myself and for other people. If you get to work on a defective M7859 board you can read here some info to get you started. I would like to mention the following people for their support in getting this module back in operation. They are all contributors to the  Classic Computing mail list 

Return to HOME page Back to top