EXPR_BUF_SIZE equ 128 ;expressen buffer for conditional breakpoints\r
BP_CNT equ 12 ;Number of breakpoints\r
BP_SIZE equ 8 ;Size of a breakpoint record\r
-YREG_CNT equ 10 ;Number of Y registers (0..9)\r
\r
;-------------------------------------------------------------------------------\r
\r
db 0c3h\r
reg.pc: dw TPA\r
var.$: dw 0000h\r
-var.@: dw 0\r
\r
cmd_rpt:dw mainloop\r
\r
ld sp,stack\r
exx\r
ld de,ddtz_base\r
- or a\r
- sbc hl,de\r
- add hl,de\r
+ call cp_hl_de\r
jr c,l0079h\r
ex de,hl\r
l0079h:\r
;-------------------------------------------------------------------------------\r
\r
CMDTAB:\r
- dw cmd_@ ;examine/substitute the displacement register @\r
+ dw ERROR ;cmd_@ ;examine/substitute the displacement register @\r
dw ERROR ;cmd_A ;Assemble\r
dw cmd_B ;Breakpoints display/set/clear\r
dw cmd_C ;trace over Calls\r
dw cmd_V ;Verify (compare) two memory areas\r
dw cmd_W ;Write a file to disk\r
dw cmd_X ;eXamine [and substitute] registers\r
- dw cmd_Y ;examine [and substitute] Y variables\r
+ dw ERROR ;cmd_Y ;examine [and substitute] Y variables\r
dw cmd_Z ;Zap (fill) memory with a byte string\r
\r
ERROR:\r
jr c,mainloop\r
ret\r
\r
-out.hl.@:\r
- call out_hl\r
- push de\r
- push hl\r
- ld de,(var.@)\r
- ld a,d\r
- or e\r
- jr z,l01bfh\r
- call outbl\r
- call pstr_inl\r
- dc '@'\r
- and a\r
- sbc hl,de\r
- call out_hl\r
-l01bfh:\r
- pop hl\r
- pop de\r
- ret\r
-\r
sub_01d9h:\r
call pstr_inl\r
dc '-'\r
sub_0303h:\r
ld hl,t_reg_names\r
ld b,07fh\r
- jr l030ch\r
-\r
-sub_030ah:\r
- ld b,0ffh\r
l030ch:\r
inc b\r
ld a,(hl)\r
res 7,b\r
ret\r
\r
-sub_0318h:\r
- push bc\r
- res 7,b\r
- defb 03eh ;ld a,nn\r
sub_031ch:\r
push bc\r
push de\r
ld hl,TPA\r
cp 'L'\r
ret z\r
- ld hl,(var.@)\r
- cp '@'\r
- ret z\r
ld hl,(var.$)\r
cp '$'\r
ret z\r
jr z,fact_factor\r
cp '^'\r
jr z,fact_reg.CPU\r
- cp 'Y'\r
- jr z,fact_reg.Y\r
cp '('\r
jr z,fact_mem\r
cp '['\r
\r
;-------------------------------------------------------------------------------\r
\r
-fact_reg.Y:\r
- call get.decdigit\r
- jr c,error1\r
- inc de\r
-get_y_val:\r
- add a,a\r
- ld hl,reg_Y\r
- call add_hl_a\r
- ld a,(hl)\r
- inc hl\r
- ld h,(hl)\r
- ld l,a\r
- and a\r
- ret\r
-\r
fact_factstring:\r
ld hl,0\r
l054bh:\r
l063eh:\r
call p_regs\r
djnz l063eh\r
+ call outbl6\r
push hl\r
push de\r
ld iy,(reg.pc)\r
djnz l065bh\r
pop af\r
pop hl\r
- call nz,outbl6\r
- call nz,p_offset\r
jp crlf\r
\r
p_f:\r
inc hl\r
ld d,(hl)\r
ex de,hl\r
- dec a\r
- jr z,l06d9h\r
- call out.hl.@\r
- call z,outbl6\r
- jr l06e2h\r
-l06d9h:\r
call out_hl\r
jr l06e2h\r
l06deh:\r
call outbl\r
ld l,(ix+002h)\r
ld h,(ix+003h)\r
- call out.hl.@\r
+ call out_hl\r
call pstr_inl\r
dc ' :'\r
ld l,(ix+004h)\r
; > Y[0..9]\r
; examine (and substitute) an Y variable\r
\r
-cmd_Y:\r
- call get.decdigit\r
- jr c,l0bc3h\r
- inc de\r
- push af\r
- call assert_eol\r
- pop af\r
- call sub_0bdch\r
- jp l0c15h\r
-l0bc3h:\r
- call assert_eol\r
- xor a\r
-l0bc7h:\r
- push af\r
- call sub_0bdch\r
- call outbl4\r
- pop af\r
- inc a\r
- bit 0,a\r
- push af\r
- call z,crlf\r
- pop af\r
- cp YREG_CNT\r
- jr c,l0bc7h\r
- ret\r
-\r
-sub_0bdch:\r
- ld c,a\r
- ld b,0\r
- add a,'0'+080h\r
- ld de,msg_Y+1\r
- ld (de),a\r
- dec de\r
- ld hl,reg_Y\r
- add hl,bc\r
- add hl,bc\r
- ex de,hl\r
- ld c,003h\r
- jp l0c33h\r
\r
;-------------------------------------------------------------------------------\r
; > X\r
call sel_dc_string\r
l0c12h:\r
call l0c33h\r
-l0c15h:\r
+\r
call outbl\r
push de\r
push bc\r
ld a,(de)\r
dec de\r
ld h,a\r
- bit 1,c\r
- jp z,out_hl\r
- jp out.hl.@\r
+ jp out_hl\r
\r
l0c4fh:\r
call p_f\r
call get_lastarg_def\r
l0d60h:\r
ld (last_S),hl\r
- call out.hl.@\r
+ call out_hl\r
call outbl\r
ld a,(hl)\r
call out_hex\r
; > @\r
; examine (substitute) displacement register @\r
\r
-cmd_@:\r
- call assert_eol\r
- ld hl,msg_@\r
- ld de,var.@\r
- ld c,001h\r
- jp l0c12h\r
-\r
-msg_@:\r
- dc '@'\r
+;cmd_@:\r
\r
;-------------------------------------------------------------------------------\r
; >>I [port]\r
cp b\r
jr z,l0e10h\r
ld c,a\r
- call out.hl.@\r
+ call out_hl\r
call outbl\r
ld a,b\r
call out_hex\r
call out_hex\r
call outbl\r
ex de,hl\r
- call out.hl.@\r
+ call out_hl\r
ex de,hl\r
call crlf\r
l0e10h:\r
push hl\r
push af\r
l0f5ch:\r
- call out.hl.@\r
+ call out_hl\r
call z,outbl2\r
call outbl\r
ld de,0\r
\r
p_disas_line:\r
call outbl2\r
- call out.hl.@\r
+ call out_hl\r
call z,outbl\r
call outbl\r
sub a\r
call p_goto_col\r
; fall thru\r
;-------------------------------------------------------------------------------\r
-\r
-p_offset:\r
- ld de,(var.@)\r
- ld a,d\r
- or e\r
- ret z\r
- call pstr_inl\r
- dc '(@'\r
- and a\r
- sbc hl,de\r
- call out_hl\r
- add hl,de\r
- jp out_rparen\r
+ ret\r
\r
;-------------------------------------------------------------------------------\r
\r
\r
;-------------------------------------------------------------------------------\r
\r
-msg_Y:\r
- dc 'Yn'\r
-reg_Y:\r
- rept YREG_CNT\r
- dw 0\r
- endm\r
-\r
last_S:\r
dw TPA\r
\r