PDP-8 Troubleshooting

Fault-finding on the original PDP-8 (the Straight-8), drawn from the corrective maintenance chapter of DEC's PDP-8 Maintenance Manual (F-87) and from two restorations: David Gesswein's, which lists every failed card with the parts replaced, and the University of Iowa's on serial number 85.[1][2][3] Check the power supply first, using PDP-8 Power Supply Restoration; most of what follows assumes the 708 is delivering good voltages.
DEC's method
[edit | edit source]DEC splits corrective maintenance into six phases: a preliminary investigation of the fault and of the machine's physical and electrical security; system troubleshooting to find the faulty module; circuit troubleshooting within the module; repair; a validation test; and an entry in the maintenance log.[1] In the preliminary investigation DEC asks for the power supply checks and an inspection of the air filter, since overheating from a clogged filter can damage marginal semiconductors.[4] It also warns that faulty ground connections between the computer and its peripherals are a common source of trouble that looks like a computer fault.[4]
Diagnostics
[edit | edit source]The MAINDEC programs are on paper tape in RIM format.[5]
| MAINDEC | Tests |
|---|---|
| 801 | Instruction test: processor registers, controls and PC, plus the Type 182 EAE and Type 183 memory extension |
| 802 | Memory checkerboard: worst-case noise patterns in the core |
| 803 | Memory address test: MA and MB registers, memory selectors and their controls |
| 810, 812 | Paper tape reader and punch |
| 814 | Teleprinter and interrupt system |
[5][6] DEC calls 801 the basic troubleshooting tool for all but the most obvious faults; its printouts and halts point to a pair of modules.[6][7] Gesswein found the later MAINDEC-08 series useful too, and disassembled tapes whose write-ups he could not find to work out what had failed.[2]
Order of work on a dead machine
[edit | edit source]Gesswein brought his machine up one function at a time and fixed each fault before moving on:[2]
- Run light stuck on.
- Load address.
- Read and write a small area of memory.
- All front panel lamps and functions.
- Short programs toggled in from the console.
- Teletype interface.
- MAINDECs in their suggested order.
- Operation over a range of margin voltages.
He later suggested leaving the core memory disconnected until the processor had been tested as far as possible, because a stepping fault on his machine cleared the core and the last program in it was lost.[2]
Symptoms and causes
[edit | edit source]| Symptom | Cause found | Source |
|---|---|---|
| Rows of modules without power | Corroded marginal-check switch contacts | Iowa, Gesswein[3][8] |
| Program halts; processor will not run; power OK never asserted | OK level from a G808 or the G809 missing (the processor halts whenever any of the three OK levels is lost); on serial 85, G808 and G809 cards in each other's slots | DEC, Iowa[9][3] |
| Run light stays on with the machine halted | Bad S603 pulse amplifiers at PB36 and PF28 holding the run flip-flop set | Gesswein[2] |
| Deposit does not work; instruction register shows AND | S203 at PB28 holding the instruction register clear (4 diodes) | Gesswein[2] |
| Some memory locations always zero | Memory selector card at MD8: one core X line not driven (transistor Q15) | Gesswein[2] |
| MAINDEC halts at 1001 with the PC jumping back to 1000 | No carry into PC bit 5. Gesswein's text puts the fix on the R210 at PA13; his repair table lists the PC 5 to PC 4 carry on the R211 at PC11 | Gesswein[2] |
| No Teletype output; TTO flip-flop does not stay set | R220 at ME22 (two diodes) | Gesswein[2] |
| Wrong Teletype baud rate or no Teletype clock | S202 clock divider at MF14 (wrong baud rate, four diodes) and S202 at MF15 (no clock, two diodes) | Gesswein[2] |
| RAR instruction does not work | S603 at PA19 | Gesswein[2] |
| Bit 10 always written as one to the DF32 disc | Break in the MB10 conductor of the processor-to-memory ribbon cable | Gesswein[2] |
| Deposit and examine unreliable; PC jumps by more than one | Console switch bounce: the logic uses the switch state unlatched | Gesswein[2] |
| Intermittent wrong execution after hours of running | Ringing in W300 delay lines producing double memory strobes; heat had only temporarily repaired one W300 | Gesswein[2] |
Gesswein's page lists the card, slot and parts for every repair on his machine.[2]
Memory
[edit | edit source]DEC's procedure when the whole memory fails:[10]
- Measure the read/write and inhibit outputs of the 708 against its Table 9-3. Do not adjust them; if the supply is faulty, repair it and then set it through the memory current check.
- If the supply is good, make the memory cycle continuously through sequential addresses: power down, jumper PB32U and PC20U to ground, power up and press START.
- With a current probe on one of the left-hand G209 selector terminals (M, H, N or J), all read/write pulses for one axis appear as a train of spikes; a missing spike is a failing address.
- Trace the read/write gating pulses from the BD module at MC16 to the E and D terminals of every G209; a G209 cannot select without them.
- Run MAINDEC 803 to the end, list every failing address and look for common address bits. Check the selectors that decode those bits.
For single addresses:[10]
- An address dropping bits: deposit all ones, examine it, and check the sense amplifier, inhibit driver and inhibit resistor for the bit that reads 0, and the inhibit current.
- An address picking up bits: deposit all zeros and check the same parts for the bit that reads 1.
- Bits dropped or picked up at every address: adjust the slice level (R3 on the G008 master slice control at MB31). If the outputs of several sense amplifiers are clipped, adjust the second-stage clamp, R13 on the G008.
Gesswein's alignment of a restored memory: he set the bottom potentiometer on the G008 for 8 V at the differential amplifier operating point (it had drifted to 7.3 V), nulled each G007's balance potentiometer as close to zero as the potentiometer allowed, and then set the slice threshold midway between the failure points, about 7.67 V on his machine.[2]
Logic tracing on R-series cards
[edit | edit source]- R-series logic is diode-transistor logic: a transistor pulls a signal to ground and a resistor pulls it to about −3 V. Several outputs can be wired together, so one signal may have many drivers and many loads, and the schematics carry no cross-references.[2]
- To find which card is pulling a signal, swap spares where available; otherwise cover one driver's output contact with tape and see whether the signal recovers. Never disconnect a collector clamp to −3 V while leaving a pull-down to −15 V, or the transistor will be destroyed.[2]
- Put the suspect card on a W980 extender and trace it with an oscilloscope while a short program loop exercises it.[11]
- For intermittent faults, tap the module handles with a wooden rod while a test runs, narrowing down to one or two modules, then check their seating, connector wear and solder joints.[12]
Component faults
[edit | edit source]DEC's view is that the delay lines on W300 modules seldom fail and that a faulty one should go back to DEC, not be replaced on the board.[13] In practice the commonest failures are diodes. Gesswein's card repairs were mostly DEC D-664 diodes, with two DEC-3639B and one DEC-1008 transistor; the bad transistors read dead on a tester, while bad diodes showed a low or high forward drop, a short, or leakage only at higher reverse voltage.[2] On most cards good diodes read above 0.58 V forward and above 1.7 V reverse in circuit, but readings depend on what else is connected, so compare against the same position on another card before removing anything.[2] The Iowa restoration found enough bad diodes to start a systematic scan of every board.[3]
Testing a single module
[edit | edit source]DEC's in-line marginal check uses a W980 extender modified so that terminals A, B and C are cut from the backplane and brought out on 3-foot leads. Connect A to the orange +10 V marginal-check terminal (or B to the green −15 V one), run a routine that exercises the module, and vary the marginal-check supply until it fails, recording each failure voltage and the console state. DEC treats the module as good if it holds ±5 V on the +10 V supply and works with −15 V varied between −12 V and −15 V.[11]
Related pages
[edit | edit source]References
[edit | edit source]- ↑ 1.0 1.1 Digital Equipment Corporation, PDP-8 Maintenance Manual, F-87, February 1966, p. 9-22, "Corrective Maintenance" (File:PDP-8 Maintenance Manual (F-87, 1966).pdf).
- ↑ 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 David Gesswein, "PDP-8 (Straight 8) Computer Functional Restoration", pdp8online.com. Community restoration report with a table of every failed card, its slot, symptom and the parts replaced, and dated later repairs.
- ↑ 3.0 3.1 3.2 3.3 Douglas W. Jones, "The U of Iowa's DEC PDP-8 Problem List", homepage.cs.uiowa.edu. Bugs 36, 44 and 74: cards in wrong slots, marginal-check switches, diode scan.
- ↑ 4.0 4.1 DEC, F-87, p. 9-23, "Preliminary Investigation" and "System Troubleshooting".
- ↑ 5.0 5.1 DEC, F-87, pp. 9-1 to 9-2, Table 9-1, maintenance equipment and MAINDEC tapes.
- ↑ 6.0 6.1 DEC, F-87, pp. 9-23 to 9-24, "Maindec Diagnostic Programs".
- ↑ DEC, F-87, p. 9-26, "Logic Troubleshooting".
- ↑ David Gesswein, "PDP-8 (Straight 8) Computer Backplane Restoration", pdp8online.com.
- ↑ DEC, F-87, p. 4-13, G808 and G809 OK levels.
- ↑ 10.0 10.1 DEC, F-87, pp. 9-24 to 9-26, "Memory Troubleshooting".
- ↑ 11.0 11.1 DEC, F-87, pp. 9-28 to 9-29, "In-Line Dynamic Tests" and "In-Line Marginal Checks".
- ↑ DEC, F-87, pp. 9-26 to 9-27, "Aggravation Tests".
- ↑ DEC, F-87, pp. 9-27 to 9-28, "Module Circuits".