Jump to content

PDP-10 Troubleshooting Guide

From RetroTechCollection
DECSYSTEM-2020, the KS10 member of the family (Jason Scott, CC BY 2.0)

DEC's advice for troubleshooting a PDP-10 is to find out first whether a fault is in hardware or software, to reproduce it, and then to trace it step by step from the symptom back to the element whose inputs are correct but whose output is wrong. The tools are the MAINDEC diagnostics, the DDT debugger and margin testing.[1] The sections below cover the KA10 diagnostics and margins and the KS10 console and boot errors; KL10 fault finding is on DECsystem-10 Troubleshooting Guide.

KA10 diagnostics

[edit | edit source]

DEC's KA10 test programs run in sequence: diagnostics A to H prove that every instruction executes with fixed operands, and the reliability tests I to P repeat instructions with pseudo-random operands. Each program uses only instructions proven by the ones before it, so run them in order; an error in a later program can be a fault in an instruction the program uses to simulate the result.[2]

KA10 processor diagnostics (DEC-10-HMAA-D Table 6-2, extract)
Test Program Checks
A MAINDEC-10-D0AA Basic instructions (MOVE and SKIP)
B MAINDEC-10-D0BA Basic instructions (MOVE, test, half-word)
C MAINDEC-10-D0CA Basic instructions (Boolean and PC-sensitive)
D MAINDEC-10-D0DC Priority interrupt system
E MAINDEC-10-D0EB Shift and rotate
F MAINDEC-10-D0FB Fixed-point multiply and divide
G MAINDEC-10-D0GB Floating-point and byte instructions
H MAINDEC-10-D0HB FMP, FDV, DFN
I to M MAINDEC-10-D0IA to D0MD Reliability tests for basic, memory, both-mode and PC-sensitive instructions
N MAINDEC-10-D0ND Reliability of fixed, floating and byte instructions
O MAINDEC-10-D0OB Block transfer (BLT)
P, Q MAINDEC-10-D0PA, D0QA KT10A protection and relocation
Z MAINDEC-10-D0ZA Processor timing (SPEEDY)
2A, 2B MAINDEC-10-D2AB, D2B80 Console Teletype; paper-tape reader and punch

[3] DEC notes that program numbers change as programs are revised.[3]

Reading the failures

[edit | edit source]
  • Diagnostics A to D halt at the end of the routine that failed. Use the program listing, which often names the circuit involved, then put the processor in a loop on the failing routine and look at the relevant signals with an oscilloscope, using the SING INST, SING CYCLE, ADR STOP and address-condition keys to catch the moment of failure.[2]
  • Some routines in diagnostic D test user mode, where HALT is illegal; these hang in a JUMPA . loop instead. The RUN light stays on, PROGRAM STOP stays off, the PC stops changing and MA shows the address of the loop. Replace the loop with a JRST back to the start of the routine to troubleshoot it.[2]
  • From diagnostic E onwards the console data switches select halt-on-error, proceed-on-error, printing and the bell. With neither halt nor proceed selected, the program loops on the failing routine for the oscilloscope; the printout appears only on the first pass.[2]
  • Test N prints the expected register contents at each stage of the failing instruction. If the answer is right but the flags are wrong, look at the flag logic; if the answer is wrong, fix that first and the flags usually follow. Going back to the diagnostic for the failing instruction is a good first step.[4]

Margins

[edit | edit source]

Running the tests under margin voltages turns intermittent and borderline faults into steady ones. Change margin switches only with the processor stopped, then restart at location 4000, because switching transients can alter registers or memory. If a program fails under margins in the memory control, instruction register or program counter logic, the stored program itself may have been altered: remove the margin and restart at 4000. If it then runs, the original error was real; if not, reload the program and resume margining from before the failure.[5] Limits are on PDP-10 Power System Service.

Readin faults

[edit | edit source]

If READIN does nothing, first find out whether the processor can execute DATAI and BLKI: DEC gives a short hardware-readin simulator program to deposit at location 60 that reads the paper-tape reader. If it fails, the processor's I/O instructions are at fault; if it works, the fault is in the readin logic, which DEC isolates by single-cycling a readin with all ones deposited in location 0 and reading the IR and MI indicators.[6] Try another input device first, to rule out the device and its control.[6]

KS10 boot and console

[edit | edit source]

The KS10 boots 30 seconds after power-up, or on the console BT command. The 8080 front end loads PRE-BOOT from disk or tape into location 1000 and starts it there; on an error it halts at one of these addresses:[7]

KS10 PRE-BOOT error halts (KS10 Maintenance Guide)
Halt Meaning
1001 Bad core-transfer address (page 1 is illegal; it cannot overlay PRE-BOOT)
1002 Disk retry error or magtape read error
1003 No RH11 base address
1004 Magtape skip failure

[7] At the halt, locations 100 to 113 hold the 8080 disk address, the transfer address, the RH11 drive registers (RPCS1, RPCS2, RPDS, RPER1 to RPER3 for disk; MTCS1, MTCS2, MTDS, MTER1 for tape), the Unibus adapter page RAM and status register, and the PRE-BOOT version.[7] If booting from disk or tape fails, DEC's Unibus adapter check writes known patterns through the adapter to memory from the console.[8] The 8080 console's commands examine and deposit KS10 memory, I/O registers and microcode, start and stop the clock, and enable or disable parity checking and the cache.[9]

Power faults

[edit | edit source]

A KA10 or KI10 that will not start, or stops, should be checked for mains on all three phases first.[10][11] On a KS10, check the backplane voltages at the reference pins before suspecting logic. See PDP-10 Power System Service.[8]

[edit | edit source]

References

[edit | edit source]
  1. ↑ Digital Equipment Corporation, PDP-10 KA10 Central Processor Maintenance Manual, Volume I, DEC-10-HMAA-D, December 1968, section 6.1, p. 6-1 (File:PDP-10 KA10 Central Processor Maintenance Manual Volume I (DEC-10-HMAA-D).pdf).
  2. ↑ 2.0 2.1 2.2 2.3 DEC, DEC-10-HMAA-D, section 6.3, troubleshooting with the test programs, pp. 6-3 to 6-6.
  3. ↑ 3.0 3.1 DEC, DEC-10-HMAA-D, Table 6-2, processor diagnostic programs, p. 6-2.
  4. ↑ DEC, DEC-10-HMAA-D, section 6.3.7, troubleshooting with test program N, p. 6-7.
  5. ↑ DEC, DEC-10-HMAA-D, sections 6.4.1 to 6.4.3, pp. 6-8 to 6-11.
  6. ↑ 6.0 6.1 DEC, DEC-10-HMAA-D, section 6.5, troubleshooting readin, pp. 6-12 to 6-13.
  7. ↑ 7.0 7.1 7.2 Digital Equipment Corporation, KS10 Maintenance Guide, Volume I, EK-OKS10-MG-001, June 1979, system software section: standard boot procedure and PRE-BOOT error messages (File:KS10 Maintenance Guide Volume 1 (EK-OKS10-MG-001).pdf).
  8. ↑ 8.0 8.1 DEC, EK-OKS10-MG-001, checks/adjustments section: Unibus adapter mini check and backplane power adjustment.
  9. ↑ DEC, EK-OKS10-MG-001, KS10 console program, Table 2, console commands.
  10. ↑ Digital Equipment Corporation, PDP-10 Site Preparation Guide, DEC-10-HAAB-D, May 1970, electrical requirements (File:PDP-10 Site Preparation Guide (DEC-10-HAAB-D).pdf).
  11. ↑ Digital Equipment Corporation, DECsystem-10 Technical Summary, 1971, p. 49 (File:DECsystem-10 Technical Summary (1971).pdf).