]> cloudbase.mooo.com Git - ddt180.git/blobdiff - ddt180.z80
Remove cmd_C, simplify cmd_T, simplify break points (- R,I options)
[ddt180.git] / ddt180.z80
index 45e63d4b062fe4543ea5a22c204199d0eee81184..27633290173f65f08c6e8b42cbc5b431dcb9389e 100644 (file)
@@ -62,12 +62,7 @@ STACK_SIZE   equ     80      ;ddtz internal stack
 CONBUF_SIZE    equ     80      ;Size of console input buffer\r
 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
-SYMCASE_SENS   equ     0       ;Symbols are case sensitive\r
-SYMCASE_CONV   equ     1       ;Convert case when symbols are loaded\r
-SYMCASE_LOWER  equ     2       ;Convert to lower case if set, else to upper case\r
+BP_SIZE                equ     6       ;Size of a breakpoint record\r
 \r
 ;-------------------------------------------------------------------------------\r
 \r
@@ -80,12 +75,6 @@ di_or_ei:
        ret\r
 ddtz_bdos:\r
        jp      0\r
-screen_width:\r
-       db      80\r
-\r
-symattrib:\r
-       db      0\r
-\r
 \r
 current_cseg   defl    $ - current_cseg\r
        .phase  current_phase + current_cseg\r
@@ -131,9 +120,7 @@ reg.iff:
        db      0c3h\r
 reg.pc:        dw      TPA\r
 var.$: dw      0000h\r
-var.@: dw      0\r
 \r
-error_func:dw  p_msg_error\r
 cmd_rpt:dw     mainloop\r
 \r
 ;-------------------------------------------------------------------------------\r
@@ -144,9 +131,7 @@ conbuf:
        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
@@ -183,10 +168,10 @@ l0093h:
 ;-------------------------------------------------------------------------------\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      ERROR ;cmd_C    ;trace over Calls\r
        dw      cmd_D           ;Display memory in hex and ascii\r
        dw      ERROR           ;\r
        dw      cmd_F           ;specify Filename and command line\r
@@ -201,25 +186,29 @@ CMDTAB:
        dw      cmd_O           ;Output a byte to port\r
        dw      ERROR           ;\r
        dw      cmd_Q           ;Qery memory for byte string\r
-       dw      cmd_R           ;Read binary or hex file and/or symbol file\r
+       dw      cmd_R           ;Read binary or hex file\r
        dw      cmd_S           ;Substitute memory\r
        dw      cmd_T           ;Trace\r
        dw      ERROR           ;\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
+p_msg_error:\r
+       call    pstr_inl\r
+       dc      '?',CR,LF\r
+       ;fall thru\r
 mainloop:\r
        ld sp,stack\r
-       ld hl,p_msg_error\r
-       ld (error_func),hl\r
        ld hl,(reg.pc)\r
        ld (var.$),hl\r
        call bp_clr_temporary\r
        ld hl,(cmd_rpt)\r
        ld de,mainloop\r
+       push de\r
        call cp_hl_de\r
        ld a,'>'\r
        call outchar\r
@@ -228,7 +217,8 @@ mainloop:
        call get_line\r
        call skipbl\r
        jr z,exe_hl\r
-       ld hl,mainloop\r
+       pop hl\r
+       push hl\r
        ld (cmd_rpt),hl\r
        inc de\r
        sub '@'\r
@@ -242,48 +232,20 @@ mainloop:
        inc hl\r
        ld h,(hl)\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
+       jp (hl)\r
 \r
 ;-------------------------------------------------------------------------------\r
 \r
-p_msg_error:\r
-       call    pstr_inl\r
-       dc      '?'\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
        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
@@ -438,17 +400,6 @@ pstr_inl:
        ex      (sp),hl\r
        ret\r
 \r
-p_align_@_sym:\r
-       push    de\r
-       ld      de,(var.@)\r
-       ld      a,d\r
-       or      e\r
-       pop     de\r
-       ld      a,(symlen_cur)\r
-       jr      z,$+4\r
-       add     a,6\r
-       add     a,c\r
-       ld      c,a\r
 p_goto_col:\r
        ld      a,(con_col)\r
        cp      c\r
@@ -562,86 +513,6 @@ cp_hl_de:
        sbc hl,de\r
        add hl,de\r
        ret\r
-\r
-sub_hl_a1:\r
-       dec     hl\r
-sub_hl_a:\r
-       push    bc\r
-       ld      c,a\r
-       ld      b,0\r
-       or      a\r
-       sbc     hl,bc\r
-       pop     bc\r
-       ret\r
-\r
-;-------------------------------------------------------------------------------\r
-\r
-sym_getname:\r
-       push    de\r
-       push    hl\r
-       ld      hl,ddtz_base+2\r
-sgn_l:\r
-       ld      d,(hl)\r
-       dec     hl\r
-       ld      e,(hl)\r
-       dec     hl\r
-       ld      a,(hl)\r
-       cp      0c3h\r
-       jr      z,sgn_e\r
-\r
-       ex      (sp),hl\r
-       call    cp_hl_de\r
-       jr      z,sgn_e\r
-       ex      (sp),hl\r
-       call    sub_hl_a1\r
-       jr      sgn_l\r
-sgn_e:\r
-       sub     0c3h\r
-       pop     hl\r
-       pop     de\r
-       ret\r
-\r
-p_symstr:\r
-       push    bc\r
-       ld      b,(hl)\r
-pss_l:\r
-       dec     hl\r
-       ld      a,(hl)\r
-       call    outchar\r
-       djnz    pss_l\r
-       dec     hl\r
-       pop     bc\r
-       ret\r
-\r
-p_symbol:\r
-  if 0\r
-       ld      a,(dash_flag)\r
-       or      a\r
-       ret     nz\r
-  endif\r
-       push    hl\r
-       call    sym_getname\r
-       call    nz,p_symstr\r
-       pop     hl\r
-       ret\r
-\r
-p_label:\r
-  if 0\r
-       ld      a,(dash_flag)\r
-       or      a\r
-       ret     nz\r
-  endif\r
-       push    hl\r
-       call    sym_getname\r
-       jr      z,pl_e\r
-       call    p_symstr\r
-       call    pstr_inl\r
-       dc      ':'\r
-       call    crlf\r
-pl_e:\r
-       pop     hl\r
-       ret\r
-\r
 ;-------------------------------------------------------------------------------\r
 \r
 lookupch:\r
@@ -664,10 +535,6 @@ l0300h:
 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
@@ -678,10 +545,6 @@ l030ch:
        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
@@ -1095,9 +958,6 @@ do_factor:
        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
@@ -1112,37 +972,18 @@ do_factor:
        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
        jr z,expr_brckt\r
        cp ''''\r
        jr z,fact_factstring\r
-       cp '.'\r
-       jr z,fact_symbol\r
        dec de\r
        scf\r
        ret\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
@@ -1227,59 +1068,6 @@ expr_brckt:
 error1:\r
        jp ERROR\r
 \r
-fact_symbol:\r
-       push    bc\r
-       ld      hl,ddtz_base            ;symtbl start\r
-       ld      a,(symattrib)\r
-       ld      c,07fh\r
-       rra\r
-       jr      c,fs_nxtsym\r
-       res     5,c\r
-\r
-fs_nxtsym:\r
-       ld      a,(hl)                  ;symlen\r
-       cp      0c3h\r
-       jr      z,error1\r
-       ld      b,a                     ;symlen\r
-       inc     b\r
-       push    hl                      ;symtbl ptr\r
-       push    de                      ;inpsym ptr\r
-fs_nxtchar:\r
-       ld      a,(de)\r
-       djnz    fs_3\r
-       call    test_sym_char\r
-       jr      z,fs_cont\r
-       pop     hl                      ;inpsym ptr (discard)\r
-       inc     de\r
-       cp      a,':'\r
-       jr      z,fs_cont_1\r
-       dec     de\r
-\r
-       pop     hl                      ;symtbl ptr\r
-       inc     hl\r
-       ld      a,(hl)                  ;symval h\r
-       inc     hl\r
-       ld      h,(hl)                  ;symval l\r
-       ld      l,a\r
-       or      a                       ;clear carry\r
-       pop     bc\r
-       ret\r
-\r
-fs_3:\r
-       inc     de\r
-       dec     hl\r
-       xor     (hl)\r
-       and     c\r
-       jr      z,fs_nxtchar\r
-fs_cont:                               ;start over\r
-       pop     de                      ;inpsym ptr\r
-fs_cont_1:\r
-       pop     hl                      ;symtbl ptr\r
-       ld      a,(hl)\r
-       add     a,3\r
-       call    sub_hl_a\r
-       jr      fs_nxtsym\r
-\r
 ;-------------------------------------------------------------------------------\r
 \r
 get.number:\r
@@ -1401,6 +1189,7 @@ p_cpustat:
 l063eh:\r
        call p_regs\r
        djnz l063eh\r
+       call outbl6\r
        push hl\r
        push de\r
        ld iy,(reg.pc)\r
@@ -1417,8 +1206,6 @@ l065bh:
        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
@@ -1475,12 +1262,6 @@ p_regs:
        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
@@ -1543,7 +1324,6 @@ b_0709_start:
 \r
 cmd_G:\r
        sub a\r
-       ld (trace_call_flag),a\r
        ld (bp_p_cpu_flag),a\r
        call expr\r
        jr c,l0740h\r
@@ -1588,7 +1368,6 @@ bp_clr_temporary:
        ld a,(ix+000h)\r
        and 0f1h\r
        ld (ix+000h),a\r
-       call bp_clr_condition\r
 \r
        call bpl_next\r
        ret\r
@@ -1604,7 +1383,7 @@ bp_clr_temporary:
 ;      clear breakpoints\r
 ;\r
 ; where breakp is:\r
-;      [R] expression [I condition]\r
+;      expression\r
 \r
 cmd_B:\r
        call skipbl\r
@@ -1641,49 +1420,27 @@ bp_clr:
        jr nz,l07aeh\r
 l07a7h:\r
        ld (ix+000h),000h\r
-       call bp_clr_condition\r
 l07aeh:\r
        pop af\r
        call bpl_next\r
        ret\r
 \r
 bp_print:\r
+       ld      c,0\r
        call    bpl_init\r
 \r
        bit 0,(ix+000h)\r
        jr z,bp_pr_cont\r
-       ld a,'R'\r
-       bit 4,(ix+000h)\r
-       jr nz,l07cdh\r
-       ld a,' '\r
-l07cdh:\r
-       call outchar\r
-       call outbl\r
        ld l,(ix+002h)\r
        ld h,(ix+003h)\r
-       call out.hl.@\r
-       call    outbl\r
-       call    p_symbol\r
-       ld      c,9\r
-       call    p_align_@_sym\r
-       call    pstr_inl\r
-       dc      ':'\r
-       ld l,(ix+004h)\r
-       ld h,(ix+005h)\r
        call out_hl\r
-       ld l,(ix+006h)\r
-       ld h,(ix+007h)\r
-       ld a,h\r
-       or l\r
-       jr z,l0805h\r
-       call outbl4\r
-       call    pstr_inl\r
-       dc      'I  '\r
-       call pstr\r
-l0805h:\r
-       call crlf\r
+       call outbl2\r
+       inc     c\r
 bp_pr_cont:\r
        call bpl_next\r
+       ld      a,c\r
+       or      a\r
+       call    nz,crlf\r
        ret\r
 \r
 ;-------------------------------------------------------------------------------\r
@@ -1695,11 +1452,7 @@ bp_enter:
        ld b,a\r
        call skipbl\r
        ret z\r
-       cp 'R'\r
-       jr nz,bp_e_1\r
-       inc de\r
-       set 4,b\r
-bp_e_1:\r
+\r
        push bc\r
        call expr\r
        jr c,error12\r
@@ -1717,9 +1470,6 @@ bp_e_1:
        call bp_get_count\r
        ld (ix+004h),l\r
        ld (ix+005h),h\r
-       call bp_get_condition\r
-       ld (ix+006h),l\r
-       ld (ix+007h),h\r
        call next_arg\r
        pop af\r
        ld (ix+000h),a\r
@@ -1747,39 +1497,6 @@ bp_get_count:
        jr c,error12\r
        ret\r
 \r
-bp_get_condition:\r
-       call skipbl\r
-       cp 'I'\r
-       ld hl,0\r
-       ret nz\r
-       inc de\r
-       call skipbl\r
-       push de\r
-       call expr\r
-       jr c,error12\r
-       ex de,hl\r
-       pop de\r
-       push de\r
-       sbc hl,de\r
-       ld b,h\r
-       ld c,l\r
-       ld hl,(expr_p1)\r
-       push hl\r
-       add hl,bc\r
-       ld de,expr_bufe\r
-       call cp_hl_de\r
-       jr nc,error12\r
-       pop     de\r
-       pop     hl\r
-       push    de\r
-       ldir\r
-       ex de,hl\r
-       ld (hl),c               ; trailing 0\r
-       inc hl\r
-       ld (expr_p1),hl\r
-       pop     hl\r
-       ret\r
-\r
 ;-------------------------------------------------------------------------------\r
 ; Breakpoint handling routine.\r
 \r
@@ -1859,15 +1576,6 @@ sub_0942h:
        ex af,af'\r
        res 7,a\r
        ex af,af'\r
-       ld e,(ix+006h)\r
-       ld d,(ix+007h)\r
-       ld a,d\r
-       or e\r
-       ld hl,0ffffh\r
-       call nz,expr\r
-       ld a,h\r
-       or l\r
-       jr z,l0969h\r
        ld e,(ix+004h)\r
        ld d,(ix+005h)\r
        dec de\r
@@ -1876,11 +1584,6 @@ sub_0942h:
        jr z,l0974h\r
        ld (ix+004h),e\r
        ld (ix+005h),d\r
-l0969h:\r
-       bit 4,(ix+000h)\r
-       ret z\r
-       ld a,001h\r
-       ld (bp_p_cpu_flag),a\r
        ret\r
 l0974h:\r
        ex af,af'\r
@@ -1930,8 +1633,6 @@ bp_trace_enter:
        ld (ix+005h),000h\r
        ld (ix+002h),l\r
        ld (ix+003h),h\r
-       ld (ix+006h),000h\r
-       ld (ix+007h),000h\r
        ld a,(b_21e2_start)\r
        and a\r
        ld a,008h\r
@@ -2003,113 +1704,12 @@ l0a41h:
        ld sp,(reg_sp)\r
        jp reg.iff\r
 \r
-;-------------------------------------------------------------------------------\r
-\r
-bp_clr_condition:\r
-       ld a,(ix+000h)\r
-       and 003h\r
-       ret nz\r
-       ld e,(ix+006h)\r
-       ld d,(ix+007h)\r
-       ld a,d\r
-       or e\r
-       ret z\r
-       push bc\r
-       ld h,d\r
-       ld l,e\r
-       sub a\r
-       ld (ix+006h),a\r
-       ld (ix+007h),a\r
-       ld bc,0ffffh\r
-       cpir\r
-l0a7dh:\r
-       push de\r
-       ld de,(expr_p1)\r
-       call cp_hl_de\r
-       pop de\r
-       jr nc,l0a93h\r
-       call sub_0a99h\r
-l0a8bh:\r
-       ld a,(hl)\r
-       ldi\r
-       and a\r
-       jr nz,l0a8bh\r
-       jr l0a7dh\r
-l0a93h:\r
-       ld (expr_p1),de\r
-       pop bc\r
-       ret\r
-\r
-sub_0a99h:\r
-       ld iy,bp_tab\r
-       push de\r
-l0a9eh:\r
-       ld e,(iy+006h)\r
-       ld d,(iy+007h)\r
-       call cp_hl_de\r
-       jr z,l0ab0h\r
-       ld de,BP_SIZE\r
-       add iy,de\r
-       jr l0a9eh\r
-l0ab0h:\r
-       pop de\r
-       ld (iy+006h),e\r
-       ld (iy+007h),d\r
-       ret\r
-\r
 ;-------------------------------------------------------------------------------\r
 ; > Y\r
 ;      examine all Y variables\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    outbl\r
-       pop af\r
-       push af\r
-       call get_y_val\r
-       call p_symbol\r
-       pop af\r
-       inc a\r
-       push af\r
-       rra\r
-       push    af\r
-       ld      c,11\r
-       call    c,p_align_@_sym\r
-       pop     af\r
-       call    nc,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
@@ -2134,9 +1734,8 @@ cmd_X:
        ex de,hl\r
        ld hl,t_reg_names\r
        call sel_dc_string\r
-l0c12h:\r
        call l0c33h\r
-l0c15h:\r
+\r
        call outbl\r
        push de\r
        push bc\r
@@ -2170,9 +1769,7 @@ l0c33h:
        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
@@ -2355,7 +1952,7 @@ cmd_S:
        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
@@ -2390,22 +1987,13 @@ l0d8ah:
 ; > @\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
 ;      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
@@ -2425,7 +2013,6 @@ cmd_I:
 ;      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
@@ -2455,7 +2042,7 @@ l0dedh:
        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
@@ -2464,7 +2051,7 @@ l0dedh:
        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
@@ -2515,38 +2102,13 @@ cmdm_up:
 ; > H\r
 ;      display Highest load address of last filed loaded, Maximum "High"\r
 ;      off all loaded files, and Top address of available memory\r
-; > HS\r
-;      display symbol list\r
 ; > H expression\r
 ;      evaluate expression and display result in hex, decimal and other formats\r
-; > H expression expression\r
-;      display sum und difference of expressions\r
 \r
 cmd_H:\r
-       call get_char_upper\r
-       cp 'S'\r
-       jr z,p_sym_list\r
-\r
        call expr\r
        jp c,p_max_high0\r
-       call next_arg\r
-       push hl\r
-       call expr\r
-       push af\r
        call assert_eol\r
-       pop af\r
-       ex de,hl\r
-       pop hl\r
-       jr c,l0e5eh\r
-       push hl\r
-       push de\r
-       add hl,de\r
-       call l0e5eh\r
-       pop de\r
-       pop hl\r
-       and a\r
-       sbc hl,de\r
-l0e5eh:\r
        call out_hl\r
        call outbl2\r
        call out_hl_neg\r
@@ -2556,56 +2118,11 @@ l0e5eh:
        call out_hl_dec_neg\r
        call outbl4\r
        call out.bin.w\r
-       call outbl\r
+       call outbl2\r
        ld a,l\r
        call out.ascii\r
-       call    outbl2\r
-       call p_symbol\r
        jp crlf\r
 \r
-p_sym_list:\r
-       inc     de\r
-       call    assert_eol\r
-       ld      a,(symlen_cur)\r
-       add     a,7\r
-       ld      b,a\r
-       ld      c,0\r
-       ld      hl,ddtz_base+2\r
-psym_nxtsym:\r
-       ld      d,(hl)\r
-       dec     hl\r
-       ld      e,(hl)\r
-       dec     hl\r
-       ld      a,(hl)\r
-       cp      0c3h\r
-       jr      z,psym_e\r
-\r
-       call    p_goto_col\r
-       ex      de,hl\r
-       call    out_hl\r
-       call    outbl\r
-       ex      de,hl\r
-       call    p_symstr\r
-\r
-       ld      a,c\r
-       add     b\r
-       ld      c,a\r
-       ld      a,(screen_width)\r
-       sub     b\r
-       cp      c\r
-       jr      nc,psym_nxtsym\r
-\r
-       call    crlf\r
-       ld      c,0\r
-       jr      psym_nxtsym\r
-\r
-psym_e:\r
-       ld      a,c\r
-       or      a\r
-       ret     z\r
-       jp      crlf\r
-\r
-\r
 ;-------------------------------------------------------------------------------\r
 ; > Q[J] startaddr endaddr bytes\r
 ;      Query memory for a byte string [Justified]\r
@@ -2771,7 +2288,6 @@ l0f42h:
 ;      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
@@ -2783,7 +2299,7 @@ sub_0f58h:
        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
@@ -3166,50 +2682,6 @@ rdhex_done:
        pop hl\r
        jp p_max_high\r
 \r
-\r
-; test for valid character for symbols\r
-; return z if valid\r
-\r
-test_sym_char:\r
-       cp      '$'\r
-       ret     z\r
-       cp      '%'\r
-       ret     z\r
-       cp      '.'\r
-       ret     z\r
-       cp      '_'\r
-       ret     z\r
-       call    test_alphanum\r
-       ret     c               ; cy == 1 --> z == 0\r
-       cp      a               ; return z\r
-       ret\r
-\r
-\r
-; check if char is in [0..9,?,@,A..Z,a..z]\r
-; return cy if invalid\r
-; return nc if valid alfanumeric char\r
-\r
-test_alphanum:\r
-       cp      'z'\r
-       ret     z\r
-       ccf\r
-       ret     c\r
-       cp      'a'\r
-       ret     nc\r
-       cp      'Z'\r
-       ret     z\r
-       ccf\r
-       ret     c\r
-       cp      '?'\r
-       ret     nc\r
-test_numeral:\r
-       cp      '9'\r
-       ret     z\r
-       ccf\r
-       ret     c\r
-       cp      '0'\r
-       ret\r
-\r
 test_whitespace:\r
        cp      ' '\r
        ret     z\r
@@ -3329,7 +2801,6 @@ l1773h:
 ;      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
@@ -3375,9 +2846,8 @@ cmdl_p_line:
        ret\r
 \r
 p_disas_line:\r
-       call p_label\r
        call outbl2\r
-       call out.hl.@\r
+       call out_hl\r
        call z,outbl\r
        call outbl\r
        sub a\r
@@ -3389,24 +2859,9 @@ p_disas_line:
 \r
        ld      c,15\r
        call    p_goto_col\r
-       call    p_offset\r
-       call    outbl\r
-       jp      p_symbol\r
-\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
@@ -4458,12 +3913,6 @@ b_2048_start:
 ;-------------------------------------------------------------------------------\r
 ; call mn      call cc,mn\r
 l2080h:\r
-       ld a,(b_21e2_start)\r
-       and a\r
-       jr nz,l208bh\r
-       ld a,(trace_call_flag)\r
-       and a\r
-       ret nz\r
 \r
 ; jp mn                jp cc,mn\r
 l208bh:\r
@@ -4533,15 +3982,6 @@ l20d7h:
        jp (hl)\r
 \r
 l20dch:\r
-       ld a,(b_21e2_start)\r
-       and a\r
-       jr nz,l20edh\r
-       ld a,(trace_call_flag)\r
-       and a\r
-       jr z,l20edh\r
-       call l20edh\r
-       pop hl\r
-       ret\r
 l20edh:\r
        ld hl,(reg_sp)\r
        ld e,(hl)\r
@@ -4563,11 +4003,8 @@ l20f9h:
        ld h,000h\r
        ld a,(b_21e2_start)\r
        and a\r
-       jr nz,l2113h\r
-       ld a,(trace_call_flag)\r
-       and a\r
-       ret nz\r
-l2113h:\r
+       ret z\r
+\r
        scf\r
        ret\r
 \r
@@ -4577,10 +4014,6 @@ l2113h:
 ; >>C[N][J] U expression\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
 ; >>T[N][J] [steps]\r
@@ -4589,119 +4022,31 @@ cmd_C:
 ;      Trace [no List] [Jumps only] / .While. / .Until.\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
-       call get_char_upper\r
-       sub 'N'\r
-       jr nz,tc_non\r
-       inc de\r
-tc_non:\r
-       ld (trace_N_flag),a\r
-       call get_char_upper\r
-       sub 'J'\r
-       jr nz,tc_noj\r
-       inc de\r
-tc_noj:\r
-       ld (trace_J_flag),a\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
-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 tc_set_bp\r
        jr user_go1\r
 \r
 l2151h:\r
        call bp_clr_temporary\r
-       ld a,(trace_J_flag)\r
-       and a\r
-       jr nz,l216bh\r
-       ld iy,(reg.pc)\r
-       call sub_21c8h\r
-       jr z,l216bh\r
-       ld hl,b_2048_start\r
-       call lookup_opc\r
-       jr nc,l214ch\r
-l216bh:\r
-       ld a,(trace_UW_flag)            ;0 or 'U' or 'W'\r
-       and a\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             ;'U' or 'W'\r
-       xor (hl)\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
-\r
-tc_cnt:\r
        ld hl,(trace_cnt_or_ptr)\r
        dec hl\r
        ld (trace_cnt_or_ptr),hl\r
        ld a,h\r
        or l\r
-       jr z,do_break0\r
-l2193h:\r
+       jp z,do_break\r
+\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
+       jp nc,do_break\r
+       sbc a,a\r
        ld (bp_p_cpu_flag),a\r
 user_go1:\r
        jp user_go\r
 \r
-tc_chk_u_or_w:\r
-       call skipbl\r
-       xor a\r
-       ld (trace_UW_flag),a\r
-       call get_char_upper\r
-       cp 'U'\r
-       jr z,l21b5h\r
-       cp 'W'\r
-       ret nz\r
-l21b5h:\r
-       inc de\r
-       push af\r
-       push de\r
-       call expr\r
-       jp c,ERROR\r
-       call assert_eol\r
-       pop hl\r
-       pop af\r
-       ld (trace_UW_flag),a\r
-       sub a\r
-       ret\r
-\r
-sub_21c8h:\r
-       ld a,(iy+000h)\r
-       cp 0edh\r
-       jr z,l21dah\r
-       and 0dfh\r
-       cp 0ddh\r
-       ret nz\r
-       ld a,(iy+001h)\r
-       cp 0e9h\r
-       ret\r
-l21dah:\r
-       ld a,(iy+001h)\r
-       and 0f7h\r
-       cp 045h\r
-       ret\r
-\r
 ;-------------------------------------------------------------------------------\r
 \r
 con_col:\r
@@ -4711,16 +4056,8 @@ con_col:
 \r
 b_21e2_start:\r
        db      0\r
-trace_call_flag:\r
-       db      0               ;1=call, 0=trace\r
-trace_UW_flag:\r
-       db      0               ;0 or 'U' or 'W'\r
 trace_cnt_or_ptr:\r
        dw      0\r
-trace_N_flag:\r
-       db      0               ;0 if 'N'\r
-trace_J_flag:\r
-       db      0               ;0 if 'J'\r
 \r
 bp_p_cpu_flag:\r
        db      0\r
@@ -4732,9 +4069,6 @@ bp_tab:
         endm\r
        endm\r
 \r
-expr_p1:\r
-       dw      expr_buf\r
-\r
 expr_buf:\r
 current_cseg   defl    $ - current_cseg\r
        .phase  current_phase + current_cseg\r
@@ -4822,13 +4156,6 @@ expr_bufe:
 \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
@@ -4866,8 +4193,6 @@ disas_argtype:
 pbl_loop_adr:\r
        dw      0\r
 \r
-symlen_cur:            ;max length of symbols read so far\r
-       db      0\r
 cur_fcb:\r
        dw      0\r
 \r