2020-03-27
885 test-02
is giving me the gips.
LDA 002002,IDC
(first fault fetching 2002 descriptor)
LDA 002002,IDC
2002 contains 004003000255
address 4003, tally 22, tag DIC
This is IDC --the next address is pre-increment: 4003
(2nd fault fetching 4003)
LDA 004003,DIC
4003 is 006005001257
address 6005, tallly 12, tag 57 IDC
This is DIC; the next address is post-decrement: 6004
(3rd fault fetching 6004)
LDA 006005,IDC
Okay; this is where it gets This is an RCU from ISOLTS so we are pretty certain the machine conditions are correct at this point.
The IWB contains address 6005, but we know that the descriptor is is at 6004. So Weiss' 'correct CA' code must be needed. It goes before startCA:; it after it will break the 'goto startCA' logic.
6004 is 010005000655
addr is 10005 tally 6, tag 55 DIC
This is IDCl next address is pre-increment: 10005
(4th fault fetching 10005)
LDA 010005,DIC
10005 is 010007000656
addr 10007, tally 6, tag 56 ID
This is DIC; the next address is post-decrement: 10006
10006 contains 010007000700
address 10007, tally 7, tag 0
Operand is at 10007
lda 2002,idc --> 4003,dic --> 60055, idc --> 10005,dic --> 10007,id --> 10007
test 03a
************************* misc. logic **************************
pa885 test-03a its mod bar-100176
***dsbr*** addr= 00115322 bnd= 00001 u= 1 stack= 0000
test start 102670 patch 103022 subtest loop point 102733
this subtest is checking its modification with
a directed fault on the segment
location 110000 000002235060 instruction is lda,*n
prime results a c(y+0) c(y+1) c(y+2)
s/b 434343434343 000000651001 000000000041 000001000100
was 434343434343 000000651001 000000000041 000001000100
c(y+3) c(y+4) c(y+5) c(y+6)
s/b 000000000000 000000200200 000004000260 000004235000
was 000000000000 000000200200 000004000200 000004235000
c(y+7)
s/b 110001001000
was 110001001000
faults s/b was
directed fault 0 -000000 directed fault 0 - 000000
The IWB tag field is wrong?
ADDRMOD: IR_MOD
ADDRMOD: IR_MOD: CT_HOLD will be 60
ADDRMOD: IR_MOD: fetching indirect word from 000002
ADDRMOD: IR_MOD sets CT_HOLD to 60
ADDRMOD: ITS clears CT_HOLD
ADDRMOD: IR_MOD1: cpu.itxPair[0]=000001000043 TPR.CA=000004 Tm=0 Td=00 (its)
ADDRMOD: IR_MOD(TM_R): CT_HOLD 0 Cr=000000
ADDRMOD: IR_MOD(TM_R): TPR.CA=000004
ADDRMOD: IR_MOD(TM_R) not direct operand updateIWB
ADDRMOD: updateIWB: IWB was 000002235060 000002 *n
ADDRMOD: updateIWB: IWB now 000004235000 000004
ADDRMOD: readOperands (LDA 000004):mne=lda flags=1
ADDRMOD: readOperands a 0 address 00000004
FAULT: Fault 16(020), sub 0(00), dfc N, 'SDW0.F == 0'
FAULT: 1: 00000:000000 0 000004235000 (LDA 000004) 000004 235(0) 0 0 0 00
FAULT: CU: P 1 IR 0200200 PSR 0 IC 0 TSR 01
xsf 1 rf 0 rpt 0 rd 0 rl 0 pot 0 xde 0 xdo 0 itp 0 rfi 0 its 1 fif 0 hold 0
FAULT: CU: iwb 000004235000 irodd 110001001000
TRACE: 1: 000000 020320657200 (SCU 020320) 020320 657(0) 0 1 0 00
ADDRMOD: do_caf(Entry): operType:writeCYblock8 TPR.CA=020320
ADDRMOD: do_caf(Entry): CT_HOLD 0
ADDRMOD: startCA: TAG=00() CT_HOLD 00 CA:020320
ADDRMOD: writeOperands (SCU 020320):mne=scu flags=24020
updateIWB put the wrong tag in…
// CT_HOLD has *DU or *DL; convert to DU or DL
word6 tag = TM_R | GET_TD (cpu.cu.CT_HOLD);
sim_debug (DBG_ADDRMOD, & cpu_dev, "IR_MOD(TM_R) direct operand updateIWB\n");
updateIWB (cpu.TPR.CA, tag); // Known to be DL or DU
Hmm. CT-HOLD had 0…
Hmm… The earlier: ."ADDRMOD: ITS clears CT_HOLD"?
ITS/ITP clear CT-HOLD because Multic won't boot otherwise:
bootload_0: Booting system MR12.6g3 generated 03/04/19 2136.3 pst Mon.
bootload_0: External symbol not found: prds $_1 symbol_table .
bootload_0: External symbol not found: pl1_operators_ $ .
bootload_0: External symbol not found: pl1_operators_ $ .
bootload_0: External symbol not found: pl1_operators_ $ .
...
...
page revision: 1, last edited: 28 Mar 2020 04:13