\r
ld a,(ix+000h)\r
and 003h\r
- jr z,l09c0h\r
+ jr z,bp_tst_e\r
ld e,(ix+002h)\r
ld d,(ix+003h)\r
ld hl,(reg.pc)\r
call cp_hl_de\r
ret z\r
-l09c0h:\r
-\r
+bp_tst_e:\r
call bpl_next\r
sub a\r
inc a\r
ld a,(b_21e2_start)\r
and a\r
ld a,008h\r
- jr nz,l09edh\r
+ jr nz,bp_t_e\r
rra\r
-l09edh:\r
+bp_t_e:\r
ld (ix+000h),a\r
ret\r
\r
jr nz,l0a41h\r
ld a,001h\r
ld (b_21e2_start),a\r
- call sub_1ffeh\r
+ call tc_set_bp\r
ld c,008h\r
l0a41h:\r
call bp_set_to_mem\r
\r
;-------------------------------------------------------------------------------\r
\r
-sub_1ffeh:\r
+tc_set_bp:\r
ld hl,(reg.pc)\r
ld a,h\r
or l\r
dw l20dch\r
db 0ffh,0cfh,000h ;rst 8\r
dw l2115h\r
- db 0c7h,0c7h,000h ;\r
+ db 0c7h,0c7h,000h ;rst n\r
dw l20f9h\r
- db 0c7h,0c4h,000h ;\r
+ db 0c7h,0c4h,000h ;call cc,mn\r
dw l2080h\r
- db 0f7h,010h,000h ;\r
+ db 0f7h,010h,000h ;djnz d; jr d\r
dw l2093h\r
- db 0e7h,020h,000h ;\r
+ db 0e7h,020h,000h ;jr cc,d\r
dw l2093h\r
- db 0c7h,0c2h,000h ;\r
+ db 0c7h,0c2h,000h ;jp cc,mn\r
dw l208bh\r
- db 0c7h,0c0h,000h ;\r
+ db 0c7h,0c0h,000h ;ret cc\r
dw l20c5h\r
db 0\r
\r
;-------------------------------------------------------------------------------\r
-\r
+; call mn call cc,mn\r
l2080h:\r
ld a,(b_21e2_start)\r
and a\r
ld a,(trace_call_flag)\r
and a\r
ret nz\r
+\r
+; jp mn jp cc,mn\r
l208bh:\r
ld l,(iy+001h)\r
ld h,(iy+002h)\r
scf\r
ret\r
+\r
l2093h:\r
ld c,(iy+001h)\r
ld a,c\r
inc hl\r
scf\r
ret\r
+\r
+; jp (hl)\r
l20a2h:\r
ld hl,(reg.l)\r
scf\r
ret\r
+\r
+; Prefix DD\r
l20a7h:\r
ld hl,(reg.ix)\r
jr l20afh\r
+; Prefix FD\r
l20ach:\r
ld hl,(reg.iy)\r
l20afh:\r
ld a,(iy+001h)\r
- cp 0e9h\r
+ cp 0e9h ; jp (ix); jp (iy)\r
scf\r
ret z\r
and a\r
ret\r
+\r
+; Prefix ED\r
l20b8h:\r
ld a,(iy+001h)\r
- cp 04dh\r
+ cp 04dh ; reti\r
jr z,l20dch\r
- cp 045h\r
+ cp 045h ; retn\r
jr z,l20dch\r
and a\r
ret\r
ld d,(hl)\r
ex de,hl\r
call bp_trace_enter\r
+l2115h:\r
and a\r
ret\r
\r
l2113h:\r
scf\r
ret\r
-l2115h:\r
- and a\r
- ret\r
\r
;-------------------------------------------------------------------------------\r
; >>C[N][J] [steps]\r
cmd_C:\r
ld hl,cmd_C\r
ld a,1\r
- jr l2122h\r
+ jr cmd_tc\r
\r
;-------------------------------------------------------------------------------\r
; >>T[N][J] [steps]\r
cmd_T:\r
xor a\r
ld hl,cmd_T\r
-l2122h:\r
+cmd_tc:\r
ld (cmd_rpt),hl\r
ld (trace_call_flag),a\r
call get_char_upper\r
sub 'N'\r
- jr nz,l212eh\r
+ jr nz,tc_non\r
inc de\r
-l212eh:\r
+tc_non:\r
ld (trace_N_flag),a\r
call get_char_upper\r
sub 'J'\r
- jr nz,l2137h\r
+ jr nz,tc_noj\r
inc de\r
-l2137h:\r
+tc_noj:\r
ld (trace_J_flag),a\r
- call sub_21a6h\r
- jr z,l2145h\r
- ld hl,1\r
+ call tc_chk_u_or_w\r
+ jr z,tc_save_uw_expr_ptr\r
+ ld hl,1 ;default: 1 step\r
call get_lastarg_def\r
-l2145h:\r
- ld (trace_count),hl\r
+tc_save_uw_expr_ptr:\r
+ ld (trace_cnt_or_ptr),hl\r
sub a\r
ld (bp_p_cpu_flag),a\r
l214ch:\r
- call sub_1ffeh\r
- jr l21a3h\r
+ call tc_set_bp\r
+ jr user_go1\r
\r
l2151h:\r
call bp_clr_temporary\r
call lookup_opc\r
jr nc,l214ch\r
l216bh:\r
- ld a,(trace_UW_flag)\r
+ ld a,(trace_UW_flag) ;0 or 'U' or 'W'\r
and a\r
- jr z,l2188h\r
- ld de,(trace_count)\r
+ jr z,tc_cnt ;flag is 0, check for step count.\r
+ ld de,(trace_cnt_or_ptr)\r
call expr\r
ld a,h\r
or l\r
add a,0ffh\r
sbc a,a\r
- ld hl,trace_UW_flag\r
+ ld hl,trace_UW_flag ;'U' or 'W'\r
xor (hl)\r
- bit 1,a\r
+ bit 1,a ;'U' = 55H, 'W' = 57H\r
jr z,l2193h\r
do_break0: ;print registers and go to main loop\r
jp do_break\r
-l2188h:\r
- ld hl,(trace_count)\r
+\r
+tc_cnt:\r
+ ld hl,(trace_cnt_or_ptr)\r
dec hl\r
- ld (trace_count),hl\r
+ ld (trace_cnt_or_ptr),hl\r
ld a,h\r
or l\r
jr z,do_break0\r
l2193h:\r
- call sub_1ffeh\r
+ call tc_set_bp\r
jr nc,do_break0\r
ld a,(trace_N_flag)\r
ld b,a\r
ld a,(bp_p_cpu_flag)\r
or b\r
ld (bp_p_cpu_flag),a\r
-l21a3h:\r
+user_go1:\r
jp user_go\r
\r
-sub_21a6h:\r
+tc_chk_u_or_w:\r
call skipbl\r
xor a\r
ld (trace_UW_flag),a\r
db 0 ;1=call, 0=trace\r
trace_UW_flag:\r
db 0 ;0 or 'U' or 'W'\r
-trace_count:\r
+trace_cnt_or_ptr:\r
dw 0\r
trace_N_flag:\r
db 0 ;0 if 'N'\r