From: utzoo!decvax!ucbvax!C70:info-cpm Newsgroups: fa.info-cpm Title: DDT bug Article-I.D.: ucb.1219 Posted: Sat May 29 01:20:31 1982 Received: Sun May 30 01:29:37 1982 >From RGF@Mit-Mc Sat May 29 01:20:19 1982 Aha! It is indeed the JNZ $ that confuses DDT. The reason (and the reason for DRs reluctance to fix it) is the way that DDT (and DCON, by the way) does tracing: immediately before control is passed to the instruction @PC, a breakpoint is set at the location immediately after that instruction and, if the instruction is such that the program counter may change (jump, call or return - conditional) a second breakpoint is set at the second possible location. Now in the case of JXX $, both locations are "$", and the PC stays where it is, regardless of the result of the Z flag. I've tried other combinations of conditional jump (JZ and JNZ) and could find no bug -- look in the file MC:CPM;JNZTES ASM -- therefore, I must now assume that the only case this bug occurs in is "JXX $". Why would anyone ever code "JXX $"? (unless you want your program to die if the condition is true...) At any rate, the only possible fix would be for DDT and DCON to fully simulate conditional jumps, rather than run in real-time as is done now. This would be a major change to make for such an obscure bug, and who could question DR (or the author of DCON) for being reluctant to waste that much effort? --Ron Fowler