Closed jeffgunter closed 1 year ago
STEP does not work over xct since XCT is handled as two instructions. I will see what I can do about this, but this might be a quick fix.
There's a similar problem with ILDB and IDPB. I think a user might reasonably expect a single STEP to proceed past those.
Yeah... I realized that my fix would not work correctly. There is also extend instruction.
Try replacing line 12260 in kx10_cpu.c with:
if (f_load_pc && !pi_cycle && instr_count != 0 && --instr_count == 0) {
If it works let me know
I did a quick test with the KA10 emulator, stepping over the ILDB at BEG3+2 in ITS. It worked. Thanks!
To test XCT I entered these instrucitons:
sim> dep -m 77 jfcl
sim> dep -m 100 xct 200
sim> dep -m 101 jfcl
sim> dep -m 200 jrst 300
sim> dep -m 300 jrst 100
I started from 77 with a breakpoint there. Stepping at 100 went to 300 as expected. The next loop I changed 200 to JFCL, and this time stepping the XCT went to 101. All good.
i agree it seems to work, better. however, something quite odd is still happening at that same place later on. probably my fault. i'll confess what i was doing wrong when i figure it out.
-jfg
Ok, then I will push the change out.
trying to debug some sort of oddity in our version of dec's BOOT program. i think boot is trying to type something, maybe "page fault" but that's a guess.
when i try to single step from the console, i get hung up in this code: 6172 221374 541 04 0 00 000455 HRRI T3,DTEMTD ;PUT WORD OFFSET IN RH 6173 221375 402 00 0 04 201000 DODTE: SETZM EPT(T3) ;CLEAR DONE FLAG 6174 221376 556 04 0 00 201451 HLRZM T3,EPT+DTECMD ;PUT INTO COMMAND LOCATION 6176 221377 256 00 0 00 206030 XCT DTECNO ; RING DOORBELL 6177 221400 336 00 0 04 201000 SKIPN EPT(T3) ;WAIT TILL MONITOR OUTPUT DONE 6178 221401 254 00 0 00 221400 JRST .-1 ;LOOP 6179 221402 263 01 0 00 000000 POPJ P,0 ;DONE.
Step expired, PC: 221374 (HRRI 4,455) sim> st
Step expired, PC: 221375 (SETZM 0,201000(4)) sim> st
Step expired, PC: 221376 (HLRZM 4,201451) sim> st
Step expired, PC: 221377 (XCT 0,206030) sim> st
Step expired, PC: 221377 (XCT 0,206030) sim> st
Step expired, PC: 221377 (XCT 0,206030) sim> st
Step expired, PC: 221377 (XCT 0,206030) sim> st
Step expired, PC: 221377 (XCT 0,206030) sim> st
Step expired, PC: 221377 (XCT 0,206030) sim> e 206030 206030: 720200020000
sim> e -m 206030 206030: CONO 200,20000 sim> dep 206030 255000000000 sim> st
Step expired, PC: 221377 (XCT 0,206030) sim> st
Step expired, PC: 221377 (XCT 0,206030) sim> e -m 206030 206030: JFCL 0,0 sim> e 206030 206030: 255000000000 sim> dep 206030 201240031415 sim> e 5 5: 777777777777 sim> st
Step expired, PC: 221377 (XCT 0,206030) sim> e 5 5: 777777777777 sim> step
Step expired, PC: 221377 (XCT 0,206030) sim> e 5 5: 777777777777 sim> e 206030 206030: 201240031415 sim> e -m 206030 206030: MOVEI 5,31415 sim> e fm5 FM5: 777777777777
it seems as if when i try to STEP through an xct the pc never gets incremented? this happens even if the instruction is a no-op like jfcl. i'm also not convinced that the instruction gets executed. at least, ac5 doesn't seem to have 31415 in it.
i might be confused about at what point the step exits to console, maybe just the pc isn't incrementing and the pc and the instruction displayed have already happened?
-jfg p.s.: sorry to be so dim -- suppose i wanted to look at physical unmapped memory location 5, how do i do that? am i missing something like >exam -physical 5 ?