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
dw cmd_Y ;examine [and substitute] Y variables\r
dw cmd_Z ;Zap (fill) memory with a byte string\r
\r
+ERROR:\r
+ ld hl,(error_func)\r
+exe_hl:\r
+ call CALL_HL\r
+ ;fall thru\r
mainloop:\r
ld sp,stack\r
ld hl,p_msg_error\r
call bp_clr_temporary\r
ld hl,(cmd_rpt)\r
ld de,mainloop\r
+ ld (cmd_rpt),de\r
call cp_hl_de\r
ld a,'>'\r
call outchar\r
call get_line\r
call skipbl\r
jr z,exe_hl\r
- ld hl,mainloop\r
- ld (cmd_rpt),hl\r
inc de\r
sub '@'\r
jr c,ERROR\r
ld l,a\r
jr exe_hl\r
\r
-ERROR:\r
- ld hl,(error_func)\r
-exe_hl:\r
- call CALL_HL\r
- jr mainloop\r
-\r
;-------------------------------------------------------------------------------\r
\r
p_msg_error:\r
;fall thru\r
crlf:\r
call pstr_inl\r
- db CR,LF+80h\r
+ dc CR,LF\r
call inchar\r
ld a,0\r
ld (con_col),a\r
and a\r
ret z\r
call outchar\r
- and a\r
ret m\r
jr pstr\r
\r
ld c,BDOS_CSTAT\r
call ddtz_bdos\r
and a\r
- jr z,l0284h\r
+ jr z,inch1\r
ld c,BDOS_CIN\r
call ddtz_bdos\r
scf\r
-l0284h:\r
+inch1:\r
pop bc\r
pop de\r
pop hl\r
or a\r
ret\r
\r
+;-------------------------------------------------------------------------------\r
+\r
next_arg:\r
call skipbl\r
cp ','\r
ret nz\r
- inc de\r
- call skipbl\r
+ call skipbl0\r
cp a\r
ret\r
\r
sub_hl_a:\r
push bc\r
ld c,a\r
- ld b,0\r
- or a\r
+ xor a\r
+ ld b,a\r
sbc hl,bc\r
pop bc\r
ret\r
sub_0318h:\r
push bc\r
res 7,b\r
- defb 03eh ;ld a,nn\r
+ defb 03eh ;ld a,nn: swallow push bc\r
sub_031ch:\r
push bc\r
push de\r
ret nc\r
inc de\r
ld hl,(BDOS+1)\r
+ dec hl\r
cp 'T'\r
ret z\r
ld hl,(high_load)\r
jp nc,p_cpustat0\r
call assert_eol\r
ld a,b\r
- cp 01eh\r
+ cp 30\r
jr z,l0c5fh\r
- cp 01fh\r
+ cp 31\r
jr z,l0c4fh\r
- cp 01dh\r
+ cp 29\r
jp z,ERROR\r
ex de,hl\r
ld hl,t_reg_names\r
ret\r
\r
t_reg_names:\r
- DC 'BC'''\r
- DC 'DE'''\r
- DC 'HL'''\r
- DC 'BC'\r
- DC 'DE'\r
- DC 'HL'\r
- DC 'A'''\r
- DC 'B'''\r
- DC 'C'''\r
- DC 'D'''\r
- DC 'E'''\r
- DC 'H'''\r
- DC 'L'''\r
- DC 'A'\r
- DC 'B'\r
- DC 'C'\r
- DC 'D'\r
- DC 'E'\r
- DC 'H'\r
- DC 'L'\r
- DC 'IX'\r
- DC 'IY'\r
- DC 'SP'\r
- DC 'PC'\r
- DC 'X'\r
- DC 'Y'\r
- DC 'S'\r
- DC 'P'\r
- DC 'I'\r
- DC 'IP'\r
- DC 'F'''\r
- DC 'F'\r
+ DC 'BC''' ;0\r
+ DC 'DE''' ;1\r
+ DC 'HL''' ;2\r
+ DC 'BC' ;3\r
+ DC 'DE' ;4\r
+ DC 'HL' ;5\r
+ DC 'A''' ;6\r
+ DC 'B''' ;7\r
+ DC 'C''' ;8\r
+ DC 'D''' ;9\r
+ DC 'E''' ;10\r
+ DC 'H''' ;11\r
+ DC 'L''' ;12\r
+ DC 'A' ;13\r
+ DC 'B' ;14\r
+ DC 'C' ;15\r
+ DC 'D' ;16\r
+ DC 'E' ;17\r
+ DC 'H' ;18\r
+ DC 'L' ;19\r
+ DC 'IX' ;20\r
+ DC 'IY' ;21\r
+ DC 'SP' ;22\r
+ DC 'PC' ;23\r
+ DC 'X' ;24\r
+ DC 'Y' ;25\r
+ DC 'S' ;26\r
+ DC 'P' ;27\r
+ DC 'I' ;28\r
+ DC 'IP' ;29\r
+ DC 'F''' ;30\r
+ DC 'F' ;31\r
DB 0\r
\r
b_0cfa_start:\r
; Input a byte from port\r
\r
cmd_I:\r
- ld hl,cmd_I\r
ld (cmd_rpt),hl\r
ld hl,(last_I)\r
call get_lastarg_def\r
; Output a byte to a port\r
\r
cmd_O:\r
- ld hl,cmd_O\r
ld (cmd_rpt),hl\r
ld hl,(last_O_val)\r
call get_arg_def\r
add hl,bc\r
l0ea7h:\r
ld bc,16\r
- and a\r
+ and a ;clear carry\r
call sub_0f58h\r
pop hl\r
pop bc\r
; Display memory in hex and ASCII\r
\r
cmd_D:\r
- ld hl,cmd_D\r
ld (cmd_rpt),hl\r
ld hl,(last_D)\r
ld bc,128\r
call pstr_inl\r
DC ' Top = '\r
ld hl,(BDOS+1)\r
+ dec hl\r
call out_hl\r
jp crlf\r
\r
; List disassembled code\r
\r
cmd_L:\r
- ld hl,cmd_L\r
ld (cmd_rpt),hl\r
call expr\r
jr nc,l18dbh\r
; trace over Calls [No list] [Jumps only] /.While./.Until.\r
\r
cmd_C:\r
- ld hl,cmd_C\r
ld a,1\r
jr cmd_tc\r
\r
\r
cmd_T:\r
xor a\r
- ld hl,cmd_T\r
cmd_tc:\r
ld (cmd_rpt),hl\r
ld (trace_call_flag),a\r