PDP-11/05 Fault?
Matt Burke
matt at 9track.net
Wed Sep 29 18:31:49 CDT 2021
I've been restoring a PDP-11/05 recently and after replacing several
faulty ICs I have it mostly working. I've run into a bit of a problem
whilst running MAINDEC-11-D0NB (T14 TRAP TEST) though.
The failing instruction sequence is:
7200: MOV #6340,R0
7204: MOV R0,(R0)+
7206: CMP 6340,#6342
7214: BEQ 7220
7216: HALT
This halts at 7216 with:
R0 = 6342
6340 = 6340
I tried this same set of instructions on a PDP-11/84 and also on Simh
and the result is:
R0 = 6342
6340 = 6342
which is what the diagnostic seems to expect.
I've carefully looked through the PDP-11/05 microprogram listing but I'm
having difficulty seeing where this is going wrong. Here is a brief
extract of the microprogram in the context of the MOV R0,(R0)+
instruction along with my interpretation of what I think is going on:
LOC NXT * SOURCE MODE 0 (REGISTER), GET SOURCE DATA
201 007 S0-1 B=R[S]; BUT BYTE
007 001 S0-2 R[10]=B; BUT DESTINATION
/ IF IR<5:3> = 2 GOTO D2-1
B = R0 = 6340 // B = source register
R10 = B = 6340 // Source data stored in sratch pad register R10
LOC NXT * DEST MODE 2 (AUTO-INC) GET DEST DATA, OP AND REPLACE
105 331 D2-1 BA=R[D]; DATAIP; ALBYT
331 341 D2-2 B=R[D]+1+BYTE.BAR
341 200 D2-3 R[D]=B; BUT JSRMP; GOTO D1-2; CKOFF
/ IF INST NOT JMP OR JSR FALL THROUGH TO D1-2
BA = R0 = 6340 // Bus address = destination register
B = R0 + 2 = 6342 // Auto-increment and store in B
R0 = B = 6342 // Update destination register
LOC NXT * DEST MODE 1 (REG,DEFERRED) GET DEST DATA, OP AND REPLACE
200 210 D1-2 B=UNIBUS DATA; BUT BYTE
210 143 D1-3 R[11]=B; BUT UNARY
163 334 D1-4 B=R[10] OP B; BUT NOMOD
334 065 D1-5 DATO; ALBYT; CKOFF
065 305 D1-5 DRIVERS=B; GOTO S2-2 (BUT SERVICE)
B = (6340) = 0 // B = value at location pointed to by bus address
R11 = B = 0 // R11 is only used for unary instructions
B = R10 = 6340 // B = source data stored previously in R10
(6340) = B = 6340 // B is written to the address pointed to by bus address
Where have I gone wrong with this? I can't see from the above how the
value at 6340 can possibly be 6342
Matt
More information about the cctalk
mailing list