]> cloudbase.mooo.com Git - ddt180.git/blobdiff - ddt180.z80
out.bin.b: opt
[ddt180.git] / ddt180.z80
index ec59e039c91d64026ea23cb2ce02926a6922d0b3..3d4e6e7d272d485b2b3d84695911d0a08c56981b 100644 (file)
@@ -9,12 +9,12 @@
 ;-------------------------------------------------------------------------------\r
 ; Relocation loader\r
 ;\r
-\r
 TPA    equ     0100h\r
        cseg\r
        .phase  TPA\r
 \r
        jp      start\r
+       ds      3\r
 \r
 ldr_end:\r
 ldr_size       equ     $ - TPA\r
@@ -36,8 +36,8 @@ CR            equ     13
 ; CP/M memory layout\r
 \r
 BDOS           equ     5\r
-FCB            equ     05ch\r
-FCB2           equ     06ch\r
+dfcb1          equ     05ch\r
+dfcb2          equ     06ch\r
 DMA_BUF                equ     080h\r
 TPA            equ     0100h\r
 \r
@@ -58,28 +58,45 @@ BDOS_SETDMA equ     26      ;Set DMA Address
 \r
 ; ddtz specific definitions\r
 \r
-STACK_SIZE     equ     64      ;ddtz internal stack\r
+STACK_SIZE     equ     80      ;ddtz internal stack\r
 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
+\r
 ;-------------------------------------------------------------------------------\r
 \r
 ddtz_base:\r
-       jp 0                    ;0000   c3 00 00        . . .\r
+       jp ddtz_bdos\r
 l0003h:\r
-       rst 30h                 ;0003   f7      .\r
+       rst 30h\r
 sub_0004h:\r
-       nop                     ;0004   00      .\r
-       ret                     ;0005   c9      .\r
+       nop\r
+       ret\r
+ddtz_bdos:\r
+       jp      0\r
+screen_width:\r
+       db      80\r
+symlen_max:\r
+       db      16\r
+\r
+symattrib:\r
+       db      0\r
+\r
 \r
 current_cseg   defl    $ - current_cseg\r
        .phase  current_phase + current_cseg\r
 signon:\r
-       db      'DDT/180',TAB\r
-       db      '[8101] 002',CR,LF,'$'\r
+       db      'Symbolic DDTZ/180'\r
+       db      ' - Version '\r
+       maclib  version.inc\r
+       defvers\r
+       db      CR,LF,'$'\r
 msgz80:\r
        db      'Z80 or better required!',cr,lf,'$'\r
 \r
@@ -114,767 +131,869 @@ reg_sp: dw      TPA
 reg.iff:\r
        db      0f3h\r
        db      0c3h\r
-REG.PC:        dw      TPA\r
-l0062h:        dw      0000h\r
-offs.@:        dw      0\r
+reg.pc:        dw      TPA\r
+var.$: dw      0000h\r
+var.@: dw      0\r
 \r
-CMD_ERR:dw     l0146h\r
+error_func:dw  p_msg_error\r
 cmd_rpt:dw     mainloop\r
 \r
+;-------------------------------------------------------------------------------\r
+\r
 conbuf:\r
        db      CONBUF_SIZE\r
 \r
-       ld sp,stack             ;006b   31 46 00        1 F .\r
-       exx                     ;006e   d9      .\r
-       ld de,ddtz_base         ;006f   11 00 00        . . .\r
-       or a                    ;0072   b7      .\r
-       sbc hl,de               ;0073   ed 52   . R\r
-       add hl,de                       ;0075   19      .\r
-       jr c,l0079h             ;0076   38 01   8 .\r
-       ex de,hl                ;0078   eb      .\r
+       ld sp,stack\r
+       exx\r
+       ld de,ddtz_base\r
+       or a\r
+       sbc hl,de\r
+       add hl,de\r
+       jr c,l0079h\r
+       ex de,hl\r
 l0079h:\r
-       ld de,TPA               ;0079   11 00 01        . . .\r
+       ld de,TPA\r
 l007ch:\r
-       dec hl                  ;007c   2b      +\r
-       ld (hl),000h            ;007d   36 00   6 .\r
-       ld a,h                  ;007f   7c      |\r
-       sub d                   ;0080   92      .\r
-       ld b,a                  ;0081   47      G\r
-       ld a,l                  ;0082   7d      }\r
-       sub e                   ;0083   93      .\r
-       or b                    ;0084   b0      .\r
-       jr nz,l007ch            ;0085   20 f5     .\r
-       ld a,i                  ;0087   ed 57   . W\r
-       ld (reg.i),a            ;0089   32 4f 00        2 O .\r
-       ld a,0f3h               ;008c   3e f3   > .\r
-       jp po,l0093h            ;008e   e2 93 00        . . .\r
-       ld a,0fbh               ;0091   3e fb   > .\r
+       dec hl\r
+       ld (hl),000h\r
+       ld a,h\r
+       sub d\r
+       ld b,a\r
+       ld a,l\r
+       sub e\r
+       or b\r
+       jr nz,l007ch\r
+       ld a,i\r
+       ld (reg.i),a\r
+       ld a,0f3h\r
+       jp po,l0093h\r
+       ld a,0fbh\r
 l0093h:\r
-       ld (reg.iff),a          ;0093   32 5e 00        2 ^ .\r
-       call sub_0004h          ;0096   cd 04 00        . . .\r
-       ld hl,ddtz_base         ;0099   21 00 00        ! . .\r
-       ld l,000h               ;009c   2e 00   . .\r
-       ld (reg_sp),hl          ;009e   22 5c 00        " \ .\r
-       ld a,(FCB+1)            ;00a1   3a 5d 00        : ] .\r
-       cp ' '                  ;00a4   fe 20   .\r
-       ld hl,0                 ;00a6   21 00 00        ! . .\r
-       call nz,read_file       ;00a9   c4 68 10        . h .\r
-       jr mainloop             ;00ac   18 0f   . .\r
+       ld (reg.iff),a\r
+       call sub_0004h\r
+       ld hl,ddtz_base\r
+       ld l,000h\r
+       ld (reg_sp),hl\r
+       call cpy_fcb2\r
+       ld a,(dfcb1+1)\r
+       cp ' '\r
+       ld hl,0\r
+       call nz,read_file\r
+       jr mainloop\r
 \r
        ds      CONBUF_SIZE + 3 - ($ - conbuf)\r
 \r
+;-------------------------------------------------------------------------------\r
+\r
+CMDTAB:\r
+       dw      cmd_@           ;examine/substitute the displacement register @\r
+       dw      cmd_A           ;Assemble\r
+       dw      cmd_B           ;Breakpoints display/set/clear\r
+       dw      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
+       dw      cmd_G           ;Go\r
+       dw      cmd_H           ;compute Hex and other expressions\r
+       dw      cmd_I           ;Input a byte from port\r
+       dw      ERROR           ;\r
+       dw      ERROR           ;\r
+       dw      cmd_L           ;List disassembled code\r
+       dw      cmd_M           ;Move memory [and verify]\r
+       dw      ERROR           ;\r
+       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_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      cmd_Z           ;Zap (fill) memory with a byte string\r
+\r
 mainloop:\r
-       ld sp,stack             ;00bd   31 46 00        1 F .\r
-       ld hl,l0146h            ;00c0   21 46 01        ! F .\r
-       ld (CMD_ERR),hl         ;00c3   22 66 00        " f .\r
-       ld hl,(REG.PC)          ;00c6   2a 60 00        * ` .\r
-       ld (l0062h),hl          ;00c9   22 62 00        " b .\r
-       call bp_clr_temporary   ;00cc   cd 54 07        . T .\r
-       ld hl,(cmd_rpt)         ;00cf   2a 68 00        * h .\r
-       ld de,mainloop          ;00d2   11 bd 00        . . .\r
-       call cp_hl_de           ;00d5   cd ee 02        . . .\r
-       ld a,'>'                ;00d8   3e 3e   > >\r
-       call outchar            ;00da   cd 5d 02        . ] .\r
-       call nz,outchar         ;00dd   c4 5d 02        . ] .\r
-       call z,outbl            ;00e0   cc 9f 02        . . .\r
-       call get_line           ;00e3   cd 4e 01        . N .\r
-       call skipbl             ;00e6   cd bf 02        . . .\r
-       jr z,exe_hl             ;00e9   28 1f   ( .\r
-       ld hl,mainloop          ;00eb   21 bd 00        ! . .\r
-       ld (cmd_rpt),hl         ;00ee   22 68 00        " h .\r
-       inc de                  ;00f1   13      .\r
-       sub '@'                 ;00f2   d6 40   . @\r
-       jr c,ERROR              ;00f4   38 11   8 .\r
-       cp 'Z'+1-'@'            ;00f6   fe 1b   . .\r
-       jr nc,ERROR             ;00f8   30 0d   0 .\r
-       add a,a                 ;00fa   87      .\r
-       ld hl,CMDTAB            ;00fb   21 10 01        ! . .\r
-       call add_hl_a           ;00fe   cd b9 02        . . .\r
-       ld a,(hl)               ;0101   7e      ~\r
-       inc hl                  ;0102   23      #\r
-       ld h,(hl)               ;0103   66      f\r
-       ld l,a                  ;0104   6f      o\r
-       jr exe_hl               ;0105   18 03   . .\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
+       call cp_hl_de\r
+       ld a,'>'\r
+       call outchar\r
+       call nz,outchar\r
+       call z,outbl\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
+       cp 'Z'+1-'@'\r
+       jr nc,ERROR\r
+       add a,a\r
+       ld hl,CMDTAB\r
+       call add_hl_a\r
+       ld a,(hl)\r
+       inc hl\r
+       ld h,(hl)\r
+       ld l,a\r
+       jr exe_hl\r
+\r
 ERROR:\r
-       ld hl,(CMD_ERR) ;0107   2a 66 00        * f .\r
+       ld hl,(error_func)\r
 exe_hl:\r
-       call CALL_HL            ;010a   cd 0f 01        . . .\r
-       jr mainloop             ;010d   18 ae   . .\r
+       call CALL_HL\r
+       jr mainloop\r
 \r
-CMDTAB:\r
-       dw      cmd_@           ;0110   92 0d   . .\r
-       dw      cmd_A           ;0112   fe 11   . .\r
-       dw      cmd_B           ;0114   6d 07   m .\r
-       dw      cmd_C           ;0116   17 21   . !\r
-       dw      cmd_D           ;0118   48 0f   H .\r
-       dw      ERROR           ;011a   07 01   . .\r
-       dw      cmd_F           ;011c   af 0f   . .\r
-       dw      cmd_G           ;011e   31 07   1 .\r
-       dw      cmd_H           ;0120   3d 0e   = .\r
-       dw      cmd_I           ;0122   a3 0d   . .\r
-       dw      ERROR           ;0124   07 01   . .\r
-       dw      ERROR           ;0126   07 01   . .\r
-       dw      cmd_L           ;0128   cd 18   . .\r
-       dw      cmd_M           ;012a   19 0e   . .\r
-       dw      ERROR           ;012c   07 01   . .\r
-       dw      cmd_O           ;012e   c7 0d   . .\r
-       dw      ERROR           ;0130   07 01   . .\r
-       dw      cmd_Q           ;0132   84 0e   . .\r
-       dw      cmd_R           ;0134   62 10   b .\r
-       dw      cmd_S           ;0136   5a 0d   Z .\r
-       dw      cmd_T           ;0138   1e 21   . !\r
-       dw      ERROR           ;013a   07 01   . .\r
-       dw      cmd_V           ;013c   ea 0d   . .\r
-       dw      cmd_W           ;013e   a0 11   . .\r
-       dw      cmd_X           ;0140   f1 0b   . .\r
-       dw      cmd_Y           ;0142   b2 0b   . .\r
-       dw      cmd_Z           ;0144   ba 0e   . .\r
-\r
-l0146h:\r
-       ld a,'?'                ;0146   3e 3f   > ?\r
-       call outchar            ;0148   cd 5d 02        . ] .\r
-       jp crlf                 ;014b   c3 a3 02        . . .\r
-get_line:\r
-       push hl                 ;014e   e5      .\r
-       ld de,conbuf            ;014f   11 6a 00        . j .\r
-       ld c,BDOS_CBUF          ;0152   0e 0a   . .\r
-       call ddtz_base          ;0154   cd 00 00        . . .\r
-       call crlf               ;0157   cd a3 02        . . .\r
-       ld de,conbuf+1          ;015a   11 6b 00        . k .\r
-       ld a,(de)               ;015d   1a      .\r
-       ld b,a                  ;015e   47      G\r
-       ld c,0                  ;015f   0e 00   . .\r
-       inc b                   ;0161   04      .\r
-l0162h:\r
-       inc de                  ;0162   13      .\r
-       dec b                   ;0163   05      .\r
-       jr z,l0194h             ;0164   28 2e   ( .\r
-       ld a,(de)               ;0166   1a      .\r
-       bit 0,c                 ;0167   cb 41   . A\r
-       call z,toupper          ;0169   cc 9b 01        . . .\r
-       ld (de),a               ;016c   12      .\r
-       cp ''''                 ;016d   fe 27   . '\r
-       jr nz,l0162h            ;016f   20 f1     .\r
-       push de                 ;0171   d5      .\r
-       dec de                  ;0172   1b      .\r
-       ld a,(de)               ;0173   1a      .\r
-       cp ''''                 ;0174   fe 27   . '\r
-       jr z,l0190h             ;0176   28 18   ( .\r
-       dec de                  ;0178   1b      .\r
-       ld a,(de)               ;0179   1a      .\r
-       cp '^'                  ;017a   fe 5e   . ^\r
-       jr z,l0184h             ;017c   28 06   ( .\r
-       dec de                  ;017e   1b      .\r
-       ld a,(de)               ;017f   1a      .\r
-       cp '^'                  ;0180   fe 5e   . ^\r
-       jr nz,l0190h            ;0182   20 0c     .\r
-l0184h:\r
-       inc de                  ;0184   13      .\r
-       push bc                 ;0185   c5      .\r
-       call sub_0303h          ;0186   cd 03 03        . . .\r
-       pop bc                  ;0189   c1      .\r
-       dec de                  ;018a   1b      .\r
-       ld a,(de)               ;018b   1a      .\r
-       cp ''''                 ;018c   fe 27   . '\r
-       jr z,l0191h             ;018e   28 01   ( .\r
-l0190h:\r
-       inc c                   ;0190   0c      .\r
-l0191h:\r
-       pop de                  ;0191   d1      .\r
-       jr l0162h               ;0192   18 ce   . .\r
-l0194h:\r
-       xor a                   ;0194   af      .\r
-       ld (de),a               ;0195   12      .\r
-       ld de,conbuf+2          ;0196   11 6c 00        . l .\r
-       pop hl                  ;0199   e1      .\r
-       ret                     ;019a   c9      .\r
+;-------------------------------------------------------------------------------\r
 \r
-toupper:\r
-       cp 'a'                  ;019b   fe 61   . a\r
-       ret c                   ;019d   d8      .\r
-       cp 'z'+1                ;019e   fe 7b   . {\r
-       ret nc                  ;01a0   d0      .\r
-       and 05fh                ;01a1   e6 5f   . _\r
-       ret                     ;01a3   c9      .\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
+       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             ;01a4   cd 13 02        . . .\r
-       push de                 ;01a7   d5      .\r
-       push hl                 ;01a8   e5      .\r
-       ld de,(offs.@)          ;01a9   ed 5b 64 00     . [ d .\r
-       ld a,d                  ;01ad   7a      z\r
-       or e                    ;01ae   b3      .\r
-       jr z,l01bfh             ;01af   28 0e   ( .\r
-       call outbl              ;01b1   cd 9f 02        . . .\r
-       ld a,'@'                ;01b4   3e 40   > @\r
-       call outchar            ;01b6   cd 5d 02        . ] .\r
-       and a                   ;01b9   a7      .\r
-       sbc hl,de               ;01ba   ed 52   . R\r
-       call out_hl             ;01bc   cd 13 02        . . .\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                  ;01bf   e1      .\r
-       pop de                  ;01c0   d1      .\r
-       ret                     ;01c1   c9      .\r
-out.bin.w:\r
-       ld a,h                  ;01c2   7c      |\r
-       call out.bin.b          ;01c3   cd c7 01        . . .\r
-       ld a,l                  ;01c6   7d      }\r
-out.bin.b:\r
-       ld b,8                  ;01c7   06 08   . .\r
-l01c9h:\r
-       add a,a                 ;01c9   87      .\r
-       push af                 ;01ca   f5      .\r
-       ld a,00                 ;01cb   3e 00   > .\r
-       adc a,a                 ;01cd   8f      .\r
-       call out_dgt            ;01ce   cd 21 02        . ! .\r
-       pop af                  ;01d1   f1      .\r
-       djnz l01c9h             ;01d2   10 f5   . .\r
-       ld a,'"'                ;01d4   3e 22   > "\r
-       jp outchar              ;01d6   c3 5d 02        . ] .\r
+       pop hl\r
+       pop de\r
+       ret\r
 \r
 sub_01d9h:\r
-       ld a,'-'                ;01d9   3e 2d   > -\r
-       call outchar            ;01db   cd 5d 02        . ] .\r
-       dec hl                  ;01de   2b      +\r
-       jp cpl.hl               ;01df   c3 79 05        . y .\r
+       call    pstr_inl\r
+       dc      '-'\r
+       dec hl\r
+       jp cpl.hl\r
 \r
 out_hl_dec_neg:\r
-       push hl                 ;01e2   e5      .\r
-       call sub_01d9h          ;01e3   cd d9 01        . . .\r
-       defb 03eh               ;01e6   3e      >\r
+       push hl\r
+       call sub_01d9h\r
+       defb 03eh               ;ld a,..  swallow push hl\r
 out.hl.dec:\r
-       push hl                 ;01e7   e5      .\r
-       ld b,006h               ;01e8   06 06   . .\r
-       call sub_01f9h          ;01ea   cd f9 01        . . .\r
-       pop hl                  ;01ed   e1      .\r
-       ld a,'.'                ;01ee   3e 2e   > .\r
-       call outchar            ;01f0   cd 5d 02        . ] .\r
+       push hl\r
+       ld b,006h\r
+       call sub_01f9h\r
+       pop hl\r
+       call    pstr_inl\r
+       dc      '.'\r
 l01f3h:\r
-       call outbl              ;01f3   cd 9f 02        . . .\r
-       djnz l01f3h             ;01f6   10 fb   . .\r
-       ret                     ;01f8   c9      .\r
+       call outbl\r
+       djnz l01f3h\r
+       ret\r
+\r
 sub_01f9h:\r
-       dec b                   ;01f9   05      .\r
-       push de                 ;01fa   d5      .\r
-       ld de,10                ;01fb   11 0a 00        . . .\r
-       call div_hl_de          ;01fe   cd 75 04        . u .\r
-       ld a,h                  ;0201   7c      |\r
-       or l                    ;0202   b5      .\r
-       call nz,sub_01f9h       ;0203   c4 f9 01        . . .\r
-       ld a,e                  ;0206   7b      {\r
-       pop de                  ;0207   d1      .\r
-       jr out_dgt              ;0208   18 17   . .\r
+       dec b\r
+       push de\r
+       ld de,10\r
+       call div_hl_de\r
+       ld a,h\r
+       or l\r
+       call nz,sub_01f9h\r
+       ld a,e\r
+       pop de\r
+       jr out_dgt\r
 \r
 out_hl_neg:\r
-       push hl                 ;020a   e5      .\r
-       call sub_01d9h          ;020b   cd d9 01        . . .\r
-       call out_hl             ;020e   cd 13 02        . . .\r
-       pop hl                  ;0211   e1      .\r
-       ret                     ;0212   c9      .\r
+       push hl\r
+       call sub_01d9h\r
+       call out_hl\r
+       pop hl\r
+       ret\r
 \r
 out_hl:\r
-       ld a,h                  ;0213   7c      |\r
-       call out_hex            ;0214   cd 18 02        . . .\r
-       ld a,l                  ;0217   7d      }\r
+       ld a,h\r
+       call out_hex\r
+       ld a,l\r
 \r
 out_hex:\r
-       push af                 ;0218   f5      .\r
-       rra                     ;0219   1f      .\r
-       rra                     ;021a   1f      .\r
-       rra                     ;021b   1f      .\r
-       rra                     ;021c   1f      .\r
-       call out_dgt            ;021d   cd 21 02        . ! .\r
-       pop af                  ;0220   f1      .\r
+       push af\r
+       rra\r
+       rra\r
+       rra\r
+       rra\r
+       call out_dgt\r
+       pop af\r
 \r
 out_dgt:\r
-       and 0fh                 ;0221   e6 0f   . .\r
-       cp 10                   ;0223   fe 0a   . .\r
-       jr c,l0229h             ;0225   38 02   8 .\r
-       add a,007h              ;0227   c6 07   . .\r
-l0229h:\r
-       add a,'0'               ;0229   c6 30   . 0\r
-       jr outchar              ;022b   18 30   . 0\r
-l022dh:\r
-       ld a,'-'                ;022d   3e 2d   > -\r
-       call outchar            ;022f   cd 5d 02        . ] .\r
-       ld a,040h               ;0232   3e 40   > @\r
+       or      0f0h\r
+       daa\r
+       add     a,0a0h\r
+       adc     a,040h\r
+       jr outchar\r
+\r
+out.bin.w:\r
+       ld a,h\r
+       call out.bin.b\r
+       ld a,l\r
+out.bin.b:\r
+       ld b,8\r
+l01c9h:\r
+       rlca\r
+       push    af\r
+       ld      a,'0'/2\r
+       adc     a,a\r
+       call    outchar\r
+       pop af\r
+       djnz l01c9h\r
+       ld a,'"'\r
+       jr outchar\r
+\r
 out.ascii:\r
-       ex af,af'               ;0234   08      .\r
-       call outquote           ;0235   cd 5b 02        . [ .\r
-       ex af,af'               ;0238   08      .\r
-       push af                 ;0239   f5      .\r
-       res 7,a                 ;023a   cb bf   . .\r
-       cp ' '                  ;023c   fe 20   .\r
-       jr nc,l0242h            ;023e   30 02   0 .\r
-       sub 0c0h                ;0240   d6 c0   . .\r
+       push bc\r
+       ld c,a\r
+       res 7,a\r
+       cp ' '\r
+       push af\r
+       call nc,outbl\r
+       call outquote\r
+       pop af\r
+       jr nc,l0242h\r
+       sub 0c0h\r
+       ld b,a\r
+       call    pstr_inl\r
+       dc      '^'\r
+       ld a,b\r
 l0242h:\r
-       call outchar            ;0242   cd 5d 02        . ] .\r
-       push af                 ;0245   f5      .\r
-       cp ''''                 ;0246   fe 27   . '\r
-       call z,outchar          ;0248   cc 5d 02        . ] .\r
-       pop af                  ;024b   f1      .\r
-       ex af,af'               ;024c   08      .\r
-       call outquote           ;024d   cd 5b 02        . [ .\r
-       pop af                  ;0250   f1      .\r
-       or a                    ;0251   b7      .\r
-       ld a,'.'                ;0252   3e 2e   > .\r
-       call m,outchar          ;0254   fc 5d 02        . ] .\r
-       ex af,af'               ;0257   08      .\r
-       jr c,l022dh             ;0258   38 d3   8 .\r
-       ret                     ;025a   c9      .\r
+       call outchar\r
+       cp ''''\r
+       call z,outchar\r
+       call outquote\r
+       sla c\r
+       pop bc\r
+       ret nc\r
+       ld a,'.'\r
+       jr outchar\r
+\r
+outbl6:\r
+       call outbl2\r
+outbl4:\r
+       call outbl2\r
+outbl2:\r
+       call outbl\r
+outbl:\r
+       ld a,' '\r
+       jr outchar\r
 \r
 p_char_lparen:\r
        ld a,'('\r
        jr outchar\r
 \r
 outquote:\r
-       ld a,''''               ;025b   3e 27   > '\r
+       ld a,''''\r
 outchar:\r
-       push hl                 ;025d   e5      .\r
-       push de                 ;025e   d5      .\r
-       push bc                 ;025f   c5      .\r
-       push af                 ;0260   f5      .\r
-       and 07fh                ;0261   e6 7f   . \7f\r
-       ld e,a                  ;0263   5f      _\r
-       ld c,BDOS_COUT          ;0264   0e 02   . .\r
-       call ddtz_base          ;0266   cd 00 00        . . .\r
-       ld hl,con_col           ;0269   21 72 02        ! r .\r
-       inc (hl)                ;026c   34      4\r
-       pop af                  ;026d   f1      .\r
-       pop bc                  ;026e   c1      .\r
-       pop de                  ;026f   d1      .\r
-       pop hl                  ;0270   e1      .\r
-       ret                     ;0271   c9      .\r
+       push ix\r
+       push iy\r
+       push hl\r
+       push de\r
+       push bc\r
+       push af\r
+       and 07fh\r
+       ld e,a\r
+       ld c,BDOS_COUT\r
+       call ddtz_bdos\r
+       ld hl,con_col\r
+       inc (hl)\r
+       pop af\r
+       pop bc\r
+       pop de\r
+       pop hl\r
+       pop iy\r
+       pop ix\r
+       ret\r
+\r
+pstr:\r
+       ld a,(hl)\r
+       inc hl\r
+       and a\r
+       ret z\r
+       call outchar\r
+       and a\r
+       ret m\r
+       jr pstr\r
+\r
+pstr_inl:\r
+       ex      (sp),hl\r
+       call    pstr\r
+       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
+       ret     nc\r
+       ret     z\r
+       call    outbl\r
+       jr      p_goto_col\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 inchar:\r
-       push hl                 ;0273   e5      .\r
-       push de                 ;0274   d5      .\r
-       push bc                 ;0275   c5      .\r
-       ld c,BDOS_CSTAT         ;0276   0e 0b   . .\r
-       call ddtz_base          ;0278   cd 00 00        . . .\r
-       and a                   ;027b   a7      .\r
-       jr z,l0284h             ;027c   28 06   ( .\r
-       ld c,BDOS_CIN           ;027e   0e 01   . .\r
-       call ddtz_base          ;0280   cd 00 00        . . .\r
-       scf                     ;0283   37      7\r
+       push ix\r
+       push hl\r
+       push de\r
+       push bc\r
+       ld c,BDOS_CSTAT\r
+       call ddtz_bdos\r
+       and a\r
+       jr z,l0284h\r
+       ld c,BDOS_CIN\r
+       call ddtz_bdos\r
+       scf\r
 l0284h:\r
-       pop bc                  ;0284   c1      .\r
-       pop de                  ;0285   d1      .\r
-       pop hl                  ;0286   e1      .\r
-       ret                     ;0287   c9      .\r
-pstr:\r
-       ld c,0                  ;0288   0e 00   . .\r
-l028ah:\r
-       ld a,(hl)               ;028a   7e      ~\r
-       and a                   ;028b   a7      .\r
-       ret z                   ;028c   c8      .\r
-       call outchar            ;028d   cd 5d 02        . ] .\r
-       inc c                   ;0290   0c      .\r
-       inc hl                  ;0291   23      #\r
-       and a                   ;0292   a7      .\r
-       ret m                   ;0293   f8      .\r
-       jr l028ah               ;0294   18 f4   . .\r
+       pop bc\r
+       pop de\r
+       pop hl\r
+       pop ix\r
+       ret\r
 \r
-outbl6:\r
-       call outbl2             ;0296   cd 9c 02        . . .\r
-outbl4:\r
-       call outbl2             ;0299   cd 9c 02        . . .\r
-outbl2:\r
-       call outbl              ;029c   cd 9f 02        . . .\r
-outbl:\r
-       ld a,' '                ;029f   3e 20   >\r
-       jr outchar              ;02a1   18 ba   . .\r
-crlf:\r
-       call inchar             ;02a3   cd 73 02        . s .\r
-       ld a,CR                 ;02a6   3e 0d   > .\r
-       call outchar            ;02a8   cd 5d 02        . ] .\r
-       ld a,LF                 ;02ab   3e 0a   > .\r
-       call outchar            ;02ad   cd 5d 02        . ] .\r
-       ld a,0                  ;02b0   3e 00   > .\r
-       ld (con_col),a          ;02b2   32 72 02        2 r .\r
-       jp c,mainloop           ;02b5   da bd 00        . . .\r
-       ret                     ;02b8   c9      .\r
-add_hl_a:\r
-       add a,l                 ;02b9   85      .\r
-       ld l,a                  ;02ba   6f      o\r
-       ret nc                  ;02bb   d0      .\r
-       inc h                   ;02bc   24      $\r
-       ret                     ;02bd   c9      .\r
+get_line:\r
+       push hl\r
+       ld de,conbuf\r
+       ld c,BDOS_CBUF\r
+       call ddtz_bdos\r
+       call crlf\r
+       ld hl,conbuf+1\r
+       ld      e,(hl)\r
+       xor     a\r
+       ld      d,a\r
+       inc     hl\r
+       ex      de,hl\r
+       add     hl,de\r
+       ld      (hl),a\r
+       pop hl\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+\r
+get_char_upper:\r
+       ld a,(de)\r
+toupper:\r
+       cp 'a'\r
+       ret c\r
+       cp 'z'+1\r
+       ccf\r
+       ret c\r
+       and 05fh\r
+       ret\r
+\r
+tolower:\r
+       cp 'A'\r
+       ret c\r
+       cp 'Z'+1\r
+       ccf\r
+       ret c\r
+       or 020h\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 skipbl0:\r
-       inc de                  ;02be   13      .\r
+       inc de\r
 skipbl:\r
-       ld a,(de)               ;02bf   1a      .\r
-       cp ' '                  ;02c0   fe 20   .\r
-       jr z,skipbl0            ;02c2   28 fa   ( .\r
-       cp TAB                  ;02c4   fe 09   . .\r
-       jr z,skipbl0            ;02c6   28 f6   ( .\r
-       or a                    ;02c8   b7      .\r
-       ret                     ;02c9   c9      .\r
+       call get_char_upper\r
+       call test_whitespace\r
+       jr z,skipbl0\r
+       or a\r
+       ret\r
 \r
 next_arg:\r
-       call skipbl             ;02ca   cd bf 02        . . .\r
-       cp ','                  ;02cd   fe 2c   . ,\r
-       ret nz                  ;02cf   c0      .\r
-       inc de                  ;02d0   13      .\r
-       call skipbl             ;02d1   cd bf 02        . . .\r
-       cp a                    ;02d4   bf      .\r
-       ret                     ;02d5   c9      .\r
+       call skipbl\r
+       cp ','\r
+       ret nz\r
+       inc de\r
+       call skipbl\r
+       cp a\r
+       ret\r
 \r
 assert_eol:\r
-       call skipbl             ;02d6   cd bf 02        . . .\r
-       ret z                   ;02d9   c8      .\r
+       call skipbl\r
+       ret z\r
 to_error:\r
-       jp ERROR                ;02da   c3 07 01        . . .\r
-\r
-chk_sp:\r
-       push hl                 ;02dd   e5      .\r
-       push de                 ;02de   d5      .\r
-       ld hl,0                 ;02df   21 00 00        ! . .\r
-       add hl,sp               ;02e2   39      9\r
-       ld de,stack-40          ;02e3   11 1e 00        . . .\r
-       call cp_hl_de           ;02e6   cd ee 02        . . .\r
-       pop de                  ;02e9   d1      .\r
-       pop hl                  ;02ea   e1      .\r
-       jr c,to_error           ;02eb   38 ed   8 .\r
-       ret                     ;02ed   c9      .\r
+       jp ERROR\r
+\r
+;-------------------------------------------------------------------------------\r
+\r
+chk_stack:\r
+       push hl\r
+       push de\r
+       ld hl,0\r
+       add hl,sp\r
+       ld de,stack-(STACK_SIZE-28)\r
+       call cp_hl_de\r
+       pop de\r
+       pop hl\r
+       jr c,to_error\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+\r
+add_hl_a:\r
+       add a,l\r
+       ld l,a\r
+       ret nc\r
+       inc h\r
+       ret\r
 \r
 cp_hl_de:\r
-       and a                   ;02ee   a7      .\r
-       sbc hl,de               ;02ef   ed 52   . R\r
-       add hl,de               ;02f1   19      .\r
-       ret                     ;02f2   c9      .\r
+       and a\r
+       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
-       ld b,0                  ;02f3   06 00   . .\r
+       ld b,0\r
 l02f5h:\r
-       ld a,(hl)               ;02f5   7e      ~\r
-       and a                   ;02f6   a7      .\r
-       ret z                   ;02f7   c8      .\r
-       ld a,(de)                       ;02f8   1a      .\r
-       cp (hl)                 ;02f9   be      .\r
-       jr z,l0300h             ;02fa   28 04   ( .\r
-       inc hl                  ;02fc   23      #\r
-       inc b                   ;02fd   04      .\r
-       jr l02f5h               ;02fe   18 f5   . .\r
+       ld a,(hl)\r
+       and a\r
+       ret z\r
+       call get_char_upper\r
+       cp (hl)\r
+       jr z,l0300h\r
+       inc hl\r
+       inc b\r
+       jr l02f5h\r
 l0300h:\r
-       scf                     ;0300   37      7\r
-       inc de                  ;0301   13      .\r
-       ret                     ;0302   c9      .\r
+       scf\r
+       inc de\r
+       ret\r
 \r
 sub_0303h:\r
-       ld hl,b_0cc3_start      ;0303   21 c3 0c        ! . .\r
-       ld b,07fh               ;0306   06 7f   .\r
-       jr l030ch               ;0308   18 02   . .\r
+       ld hl,t_reg_names\r
+       ld b,07fh\r
+       jr l030ch\r
 \r
 sub_030ah:\r
-       ld b,0ffh               ;030a   06 ff   . .\r
+       ld b,0ffh\r
 l030ch:\r
-       inc b                   ;030c   04      .\r
-       ld a,(hl)               ;030d   7e      ~\r
-       and a                   ;030e   a7      .\r
-       ret z                   ;030f   c8      .\r
-       call sub_031ch          ;0310   cd 1c 03        . . .\r
-       jr nc,l030ch            ;0313   30 f7   0 .\r
-       res 7,b                 ;0315   cb b8   . .\r
-       ret                     ;0317   c9      .\r
+       inc b\r
+       ld a,(hl)\r
+       and a\r
+       ret z\r
+       call sub_031ch\r
+       jr nc,l030ch\r
+       res 7,b\r
+       ret\r
 \r
 sub_0318h:\r
-       push bc                 ;0318   c5      .\r
-       res 7,b                 ;0319   cb b8   . .\r
-       defb 03eh               ;031b   3e      >\r
+       push bc\r
+       res 7,b\r
+       defb 03eh               ;ld a,nn\r
 sub_031ch:\r
-       push bc                 ;031c   c5      .\r
-       push de                 ;031d   d5      .\r
+       push bc\r
+       push de\r
 l031eh:\r
-       ld a,(de)               ;031e   1a      .\r
-       xor (hl)                ;031f   ae      .\r
-       and 07fh                ;0320   e6 7f   .\r
-       jr nz,l0336h            ;0322   20 12     .\r
-       bit 7,(hl)              ;0324   cb 7e   . ~\r
-       inc hl                  ;0326   23      #\r
-       inc de                  ;0327   13      .\r
-       jr z,l031eh             ;0328   28 f4   ( .\r
-       scf                     ;032a   37      7\r
-       bit 7,b                 ;032b   cb 78   . x\r
-       call z,sub_060ch        ;032d   cc 0c 06        . . .\r
-       jr nc,l0339h            ;0330   30 07   0 .\r
-       pop af                  ;0332   f1      .\r
-       scf                     ;0333   37      7\r
-       pop bc                  ;0334   c1      .\r
-       ret                     ;0335   c9      .\r
+       call get_char_upper\r
+       xor (hl)\r
+       and 07fh\r
+       jr nz,l0336h\r
+       bit 7,(hl)\r
+       inc hl\r
+       inc de\r
+       jr z,l031eh\r
+       scf\r
+       bit 7,b\r
+       call z,sub_060ch\r
+       jr nc,l0339h\r
+       pop af\r
+       scf\r
+       pop bc\r
+       ret\r
 l0336h:\r
-       call sub_0345h          ;0336   cd 45 03        . E .\r
+       call sub_0345h\r
 l0339h:\r
-       pop de                  ;0339   d1      .\r
-       and a                   ;033a   a7      .\r
-       pop bc                  ;033b   c1      .\r
-       ret                     ;033c   c9      .\r
+       pop de\r
+       and a\r
+       pop bc\r
+       ret\r
 \r
 sel_dc_string:\r
-       inc b                   ;033d   04      .\r
+       inc b\r
 l033eh:\r
-       dec b                   ;033e   05      .\r
-       ret z                   ;033f   c8      .\r
-       call sub_0345h          ;0340   cd 45 03        . E .\r
-       jr l033eh               ;0343   18 f9   . .\r
+       dec b\r
+       ret z\r
+       call sub_0345h\r
+       jr l033eh\r
 \r
 sub_0345h:\r
-       ld a,(hl)               ;0345   7e      ~\r
-       and a                   ;0346   a7      .\r
-       ret z                   ;0347   c8      .\r
+       ld a,(hl)\r
+       and a\r
+       ret z\r
 l0348h:\r
-       ld a,(hl)               ;0348   7e      ~\r
-       inc hl                  ;0349   23      #\r
-       and a                   ;034a   a7      .\r
-       ret m                   ;034b   f8      .\r
-       jr l0348h               ;034c   18 fa   . .\r
+       ld a,(hl)\r
+       inc hl\r
+       and a\r
+       ret m\r
+       jr l0348h\r
 \r
 sub_034eh:\r
-       call get_arg_range      ;034e   cd 7d 03        . } .\r
-       push hl                 ;0351   e5      .\r
-       push bc                 ;0352   c5      .\r
-       call next_arg           ;0353   cd ca 02        . . .\r
-       call sub_0363h          ;0356   cd 63 03        . c .\r
-       ex de,hl                ;0359   eb      .\r
-       pop bc                  ;035a   c1      .\r
-       pop hl                  ;035b   e1      .\r
-       ret                     ;035c   c9      .\r
+       call get_arg_range\r
+       push hl\r
+       push bc\r
+       call next_arg\r
+       call sub_0363h\r
+       ex de,hl\r
+       pop bc\r
+       pop hl\r
+       ret\r
 \r
 sub_035dh:\r
-       call expr               ;035d   cd be 03        . . .\r
-       jr c,error0             ;0360   38 33   8 3\r
-       ret                     ;0362   c9      .\r
+       call expr\r
+       jr c,error0\r
+       ret\r
 \r
 sub_0363h:\r
-       call sub_035dh          ;0363   cd 5d 03        . ] .\r
+       call sub_035dh\r
 l0366h:\r
-       jp assert_eol           ;0366   c3 d6 02        . . .\r
+       jp assert_eol\r
 \r
 get_lastarg_def:\r
-       call get_arg_def        ;0369   cd 6e 03        . n .\r
-       jr l0366h               ;036c   18 f8   . .\r
+       call get_arg_def\r
+       jr l0366h\r
 \r
 get_arg_def:\r
-       push hl                 ;036e   e5      .\r
-       call expr               ;036f   cd be 03        . . .\r
-       jr c,l0375h             ;0372   38 01   8 .\r
-       ex (sp),hl              ;0374   e3      .\r
+       push hl\r
+       call expr\r
+       jr c,l0375h\r
+       ex (sp),hl\r
 l0375h:\r
-       pop hl                  ;0375   e1      .\r
-       ret                     ;0376   c9      .\r
+       pop hl\r
+       ret\r
 \r
 sub_0377h:\r
-       call b_037c_start       ;0377   cd 7c 03        . | .\r
-       jr l0366h               ;037a   18 ea   . .\r
+       call b_037c_start\r
+       jr l0366h\r
 \r
 b_037c_start:\r
-       defb 0e6h               ;037c   e6      .\r
+       defb 0e6h               ;and a,..  clear carry\r
 get_arg_range:\r
-       scf                     ;037d   37      7\r
-       ex af,af'               ;037e   08      .\r
-       push bc                 ;037f   c5      .\r
-       push hl                 ;0380   e5      .\r
-       call expr               ;0381   cd be 03        . . .\r
-       jr nc,l038ch            ;0384   30 06   0 .\r
-       ex af,af'               ;0386   08      .\r
-       jr c,error0             ;0387   38 0c   8 .\r
-       ex af,af'               ;0389   08      .\r
-       pop hl                  ;038a   e1      .\r
-       defb 03eh               ;038b   3e      >\r
+       scf\r
+       ex af,af'\r
+       push bc\r
+       push hl\r
+       call expr\r
+       jr nc,l038ch\r
+       ex af,af'\r
+       jr c,error0\r
+       ex af,af'\r
+       pop hl\r
+       defb 03eh               ;ld a,..  swallow pop af\r
 l038ch:\r
-       pop af                  ;038c   f1      .\r
-       call get_range          ;038d   cd 9a 03        . . .\r
-       jr nc,l0398h            ;0390   30 06   0 .\r
-       ex af,af'               ;0392   08      .\r
-       pop bc                  ;0393   c1      .\r
-       ret nc                  ;0394   d0      .\r
+       pop af\r
+       call get_range\r
+       jr nc,l0398h\r
+       ex af,af'\r
+       pop bc\r
+       ret nc\r
 error0:\r
-       jp ERROR                ;0395   c3 07 01        . . .\r
+       jp ERROR\r
 l0398h:\r
-       pop af                  ;0398   f1      .\r
-       ret                     ;0399   c9      .\r
+       pop af\r
+       ret\r
 \r
 get_range:\r
-       call next_arg           ;039a   cd ca 02        . . .\r
-       cp 'S'                  ;039d   fe 53   . S\r
-       jr nz,l03a2h            ;039f   20 01     .\r
-       inc de                  ;03a1   13      .\r
+       call next_arg\r
+       cp 'S'\r
+       jr nz,l03a2h\r
+       inc de\r
 l03a2h:\r
-       push hl                 ;03a2   e5      .\r
-       push af                 ;03a3   f5      .\r
-       call expr               ;03a4   cd be 03        . . .\r
-       jr c,l03b8h             ;03a7   38 0f   8 .\r
-       ld b,h                  ;03a9   44      D\r
-       ld c,l                  ;03aa   4d      M\r
-       pop af                  ;03ab   f1      .\r
-       pop hl                  ;03ac   e1      .\r
-       jr z,l03b6h             ;03ad   28 07   ( .\r
-       ld a,c                  ;03af   79      y\r
-       sub l                   ;03b0   95      .\r
-       ld c,a                  ;03b1   4f      O\r
-       ld a,b                  ;03b2   78      x\r
-       sbc a,h                 ;03b3   9c      .\r
-       ld b,a                  ;03b4   47      G\r
-       inc bc                  ;03b5   03      .\r
+       push hl\r
+       push af                 ;'S' flag\r
+       call expr\r
+       jr c,l03b8h\r
+       ld b,h\r
+       ld c,l\r
+       pop af\r
+       pop hl\r
+       jr z,l03b6h             ;'S'?\r
+       ld a,c\r
+       sub l\r
+       ld c,a\r
+       ld a,b\r
+       sbc a,h\r
+       ld b,a\r
+       inc bc\r
 l03b6h:\r
-       and a                   ;03b6   a7      .\r
-       ret                     ;03b7   c9      .\r
+       and a\r
+       ret\r
 l03b8h:\r
-       pop af                  ;03b8   f1      .\r
-       pop hl                  ;03b9   e1      .\r
-       jr z,error0             ;03ba   28 d9   ( .\r
-       scf                     ;03bc   37      7\r
-       ret                     ;03bd   c9      .\r
+       pop af\r
+       pop hl\r
+       jr z,error0             ;'S', but no expression following\r
+       scf\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 expr:\r
-       call skipbl             ;03be   cd bf 02        . . .\r
+       call skipbl\r
 expr1:\r
-       call do_subexpr         ;03c1   cd 2f 04        . / .\r
-       ret c                   ;03c4   d8      .\r
-       call do_rel_op          ;03c5   cd ef 03        . . .\r
-       ret nc                  ;03c8   d0      .\r
-       push bc                 ;03c9   c5      .\r
-       push hl                 ;03ca   e5      .\r
-       call do_subexpr         ;03cb   cd 2f 04        . / .\r
-       jr c,error0             ;03ce   38 c5   8 .\r
-       ex de,hl                ;03d0   eb      .\r
-       ex (sp),hl              ;03d1   e3      .\r
-       and a                   ;03d2   a7      .\r
-       sbc hl,de               ;03d3   ed 52   . R\r
-       ld hl,0ffffh            ;03d5   21 ff ff        ! . .\r
-       pop de                  ;03d8   d1      .\r
-       ret                     ;03d9   c9      .\r
+       call do_subexpr\r
+       ret c\r
+       call do_rel_op\r
+       ret nc\r
+       push bc\r
+       push hl\r
+       call do_subexpr\r
+       jr c,error0\r
+       ex de,hl\r
+       ex (sp),hl\r
+       and a\r
+       sbc hl,de\r
+       ld hl,0ffffh\r
+       pop de\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 do_op_eq:\r
-       jr z,l03edh             ;03da   28 11   ( .\r
-       jr l03ech               ;03dc   18 0e   . .\r
+       jr z,l03edh\r
+       jr l03ech\r
 do_op_ne:\r
-       jr nz,l03edh            ;03de   20 0d     .\r
-       jr l03ech               ;03e0   18 0a   . .\r
+       jr nz,l03edh\r
+       jr l03ech\r
 do_op_le:\r
-       jr z,l03edh             ;03e2   28 09   ( .\r
+       jr z,l03edh\r
 do_op_lt:\r
-       jr c,l03edh             ;03e4   38 07   8 .\r
-       jr l03ech               ;03e6   18 04   . .\r
+       jr c,l03edh\r
+       jr l03ech\r
 do_op_gt:\r
-       jr z,l03ech             ;03e8   28 02   ( .\r
+       jr z,l03ech\r
 do_op_ge:\r
-       jr nc,l03edh            ;03ea   30 01   0 .\r
+       jr nc,l03edh\r
 l03ech:\r
-       inc hl                  ;03ec   23      #\r
+       inc hl\r
 l03edh:\r
-       and a                   ;03ed   a7      .\r
-       ret                     ;03ee   c9      .\r
+       and a\r
+       ret\r
 do_rel_op:\r
-       push hl                 ;03ef   e5      .\r
-       ld hl,tab_eq_le_ge      ;03f0   21 1f 04        ! . .\r
-       call lookupch           ;03f3   cd f3 02        . . .\r
-       jr nc,l041dh            ;03f6   30 25   0 %\r
-       ld a,b                  ;03f8   78      x\r
-       or a                    ;03f9   b7      .\r
-       jr z,l0411h             ;03fa   28 15   ( .\r
-       ld a,(de)                       ;03fc   1a      .\r
-       cp '='                  ;03fd   fe 3d   . =\r
-       jr nz,l0406h            ;03ff   20 05     .\r
-       inc de                  ;0401   13      .\r
-       inc b                   ;0402   04      .\r
-       inc b                   ;0403   04      .\r
-       jr l0411h               ;0404   18 0b   . .\r
+       push hl\r
+       ld hl,tab_eq_le_ge\r
+       call lookupch\r
+       jr nc,l041dh\r
+       ld a,b\r
+       or a\r
+       jr z,l0411h\r
+       ld a,(de)\r
+       cp '='\r
+       jr nz,l0406h\r
+       inc de\r
+       inc b\r
+       inc b\r
+       jr l0411h\r
 l0406h:\r
-       bit 0,b                 ;0406   cb 40   . @\r
-       jr z,l0411h             ;0408   28 07   ( .\r
-       cp '>'                  ;040a   fe 3e   . >\r
-       jr nz,l0411h            ;040c   20 03     .\r
-       inc de                  ;040e   13      .\r
-       ld b,005h               ;040f   06 05   . .\r
+       bit 0,b\r
+       jr z,l0411h\r
+       cp '>'\r
+       jr nz,l0411h\r
+       inc de\r
+       ld b,005h\r
 l0411h:\r
-       ld hl,tab_func_eqlege   ;0411   21 23 04        ! # .\r
-       ld a,b                  ;0414   78      x\r
-       add a,a                 ;0415   87      .\r
-       call add_hl_a           ;0416   cd b9 02        . . .\r
-       ld c,(hl)               ;0419   4e      N\r
-       inc hl                  ;041a   23      #\r
-       ld b,(hl)               ;041b   46      F\r
-       scf                     ;041c   37      7\r
+       ld hl,tab_func_eqlege\r
+       ld a,b\r
+       add a,a\r
+       call add_hl_a\r
+       ld c,(hl)\r
+       inc hl\r
+       ld b,(hl)\r
+       scf\r
 l041dh:\r
-       pop hl                  ;041d   e1      .\r
-       ret                     ;041e   c9      .\r
+       pop hl\r
+       ret\r
 \r
 tab_eq_le_ge:\r
        db      '=<>',0\r
 \r
 tab_func_eqlege:\r
-       dw      do_op_eq        ;0423   da 03   . .\r
-       dw      do_op_lt        ;0425   e4 03   . .\r
-       dw      do_op_gt        ;0427   e8 03   . .\r
-       dw      do_op_le        ;0429   e2 03   . .\r
-       dw      do_op_ge        ;042b   ea 03   . .\r
-       dw      do_op_ne        ;042d   de 03   . .\r
+       dw      do_op_eq\r
+       dw      do_op_lt\r
+       dw      do_op_gt\r
+       dw      do_op_le\r
+       dw      do_op_ge\r
+       dw      do_op_ne\r
 \r
 do_subexpr:\r
-       call do_factor          ;042f   cd e4 04        . . .\r
-       ret c                   ;0432   d8      .\r
+       call do_factor\r
+       ret c\r
 l0433h:\r
-       call do_binary_op       ;0433   cd ae 04        . . .\r
-       push hl                 ;0436   e5      .\r
-       push bc                 ;0437   c5      .\r
-       call do_factor          ;0438   cd e4 04        . . .\r
-       pop bc                  ;043b   c1      .\r
-       ex de,hl                ;043c   eb      .\r
-       ex (sp),hl              ;043d   e3      .\r
-       jr nc,l0447h            ;043e   30 07   0 .\r
-       pop de                  ;0440   d1      .\r
-       ld a,b                  ;0441   78      x\r
-       or c                    ;0442   b1      .\r
-       ret z                   ;0443   c8      .\r
-       jp ERROR                ;0444   c3 07 01        . . .\r
+       call do_binary_op\r
+       push hl\r
+       push bc\r
+       call do_factor\r
+       pop bc\r
+       ex de,hl\r
+       ex (sp),hl\r
+       jr nc,l0447h\r
+       pop de\r
+       ld a,b\r
+       or c\r
+       ret z\r
+       jp ERROR\r
 \r
 l0447h:\r
-       ld a,b                  ;0447   78      x\r
-       or c                    ;0448   b1      .\r
-       push bc                 ;0449   c5      .\r
-       ret nz                  ;044a   c0      .\r
-       pop bc                  ;044b   c1      .\r
+       ld a,b\r
+       or c\r
+       push bc\r
+       ret nz\r
+       pop bc\r
 \r
 doop_add:\r
-       add hl,de               ;044c   19      .\r
+       add hl,de\r
 l044dh:\r
-       pop de                  ;044d   d1      .\r
-       jr l0433h               ;044e   18 e3   . .\r
+       pop de\r
+       jr l0433h\r
 \r
 doop_sub:\r
-       and a                   ;0450   a7      .\r
-       sbc hl,de               ;0451   ed 52   . R\r
-       jr l044dh               ;0453   18 f8   . .\r
+       and a\r
+       sbc hl,de\r
+       jr l044dh\r
 \r
 doop_mlt:\r
-       push bc                 ;0455   c5      .\r
-       ld b,h                  ;0456   44      D\r
-       ld c,l                  ;0457   4d      M\r
-       ld hl,0                 ;0458   21 00 00        ! . .\r
-       ld a,010h               ;045b   3e 10   > .\r
+       push bc\r
+       ld b,h\r
+       ld c,l\r
+       ld hl,0\r
+       ld a,010h\r
 l045dh:\r
-       add hl,hl               ;045d   29      )\r
-       ex de,hl                ;045e   eb      .\r
-       add hl,hl               ;045f   29      )\r
-       ex de,hl                ;0460   eb      .\r
-       jr nc,l0464h            ;0461   30 01   0 .\r
-       add hl,bc               ;0463   09      .\r
+       add hl,hl\r
+       ex de,hl\r
+       add hl,hl\r
+       ex de,hl\r
+       jr nc,l0464h\r
+       add hl,bc\r
 l0464h:\r
-       dec a                   ;0464   3d      =\r
-       jr nz,l045dh            ;0465   20 f6     .\r
-       pop bc                  ;0467   c1      .\r
-       jr l044dh               ;0468   18 e3   . .\r
+       dec a\r
+       jr nz,l045dh\r
+       pop bc\r
+       jr l044dh\r
 \r
 doop_div:\r
-       call div_hl_de          ;046a   cd 75 04        . u .\r
-       jr l044dh               ;046d   18 de   . .\r
+       call div_hl_de\r
+       jr l044dh\r
 \r
 doop_mod:\r
-       call div_hl_de          ;046f   cd 75 04        . u .\r
-       ex de,hl                ;0472   eb      .\r
-       jr l044dh               ;0473   18 d8   . .\r
+       call div_hl_de\r
+       ex de,hl\r
+       jr l044dh\r
 \r
 ; divide x/y\r
 ;     hl: x\r
@@ -884,454 +1003,516 @@ doop_mod:
 ;     de: r  (x%y)\r
 \r
 div_hl_de:\r
-       push bc                 ;0475   c5      .\r
-       ex de,hl                ;0476   eb      .\r
-       ld b,h                  ;0477   44      D\r
-       ld c,l                  ;0478   4d      M\r
-       ld hl,0                 ;0479   21 00 00        ! . .\r
-       ld a,16                 ;047c   3e 10   > .\r
+       push bc\r
+       ex de,hl\r
+       ld b,h\r
+       ld c,l\r
+       ld hl,0\r
+       ld a,16\r
 \r
 ;  de: x   (x shifted out, q shifted in)\r
 ;  bc: y\r
 ;  hl: r   (initially 0)\r
 \r
 l047eh:\r
-       push af                 ;047e   f5      .\r
-       add hl,hl               ;047f   29      )\r
-       ex de,hl                ;0480   eb      .\r
-       xor a                   ;0481   af      .\r
-       add hl,hl               ;0482   29      )\r
-       ex de,hl                ;0483   eb      .\r
-       adc a,l                 ;0484   8d      .\r
-       sub c                   ;0485   91      .\r
-       ld l,a                  ;0486   6f      o\r
-       ld a,h                  ;0487   7c      |\r
-       sbc a,b                 ;0488   98      .\r
-       ld h,a                  ;0489   67      g\r
-       inc de                  ;048a   13      .\r
-       jr nc,l048fh            ;048b   30 02   0 .\r
-       add hl,bc               ;048d   09      .\r
-       dec de                  ;048e   1b      .\r
+       push af\r
+       add hl,hl\r
+       ex de,hl\r
+       xor a\r
+       add hl,hl\r
+       ex de,hl\r
+       adc a,l\r
+       sub c\r
+       ld l,a\r
+       ld a,h\r
+       sbc a,b\r
+       ld h,a\r
+       inc de\r
+       jr nc,l048fh\r
+       add hl,bc\r
+       dec de\r
 l048fh:\r
-       pop af                  ;048f   f1      .\r
-       dec a                   ;0490   3d      =\r
-       jr nz,l047eh            ;0491   20 eb     .\r
-       ex de,hl                ;0493   eb      .\r
-       pop bc                  ;0494   c1      .\r
-       ret                     ;0495   c9      .\r
+       pop af\r
+       dec a\r
+       jr nz,l047eh\r
+       ex de,hl\r
+       pop bc\r
+       ret\r
 \r
 doop_and:\r
-       ld a,h                  ;0496   7c      |\r
-       and d                   ;0497   a2      .\r
-       ld h,a                  ;0498   67      g\r
-       ld a,l                  ;0499   7d      }\r
-       and e                   ;049a   a3      .\r
-       ld l,a                  ;049b   6f      o\r
-       jr l044dh               ;049c   18 af   . .\r
+       ld a,h\r
+       and d\r
+       ld h,a\r
+       ld a,l\r
+       and e\r
+       ld l,a\r
+       jr l044dh\r
 \r
 doop_or:\r
-       ld a,h                  ;049e   7c      |\r
-       or d                    ;049f   b2      .\r
-       ld h,a                  ;04a0   67      g\r
-       ld a,l                  ;04a1   7d      }\r
-       or e                    ;04a2   b3      .\r
-       ld l,a                  ;04a3   6f      o\r
-       jr l044dh               ;04a4   18 a7   . .\r
+       ld a,h\r
+       or d\r
+       ld h,a\r
+       ld a,l\r
+       or e\r
+       ld l,a\r
+       jr l044dh\r
 \r
 doop_xor:\r
-       ld a,h                  ;04a6   7c      |\r
-       xor d                   ;04a7   aa      .\r
-       ld h,a                  ;04a8   67      g\r
-       ld a,l                  ;04a9   7d      }\r
-       xor e                   ;04aa   ab      .\r
-       ld l,a                  ;04ab   6f      o\r
-       jr l044dh               ;04ac   18 9f   . .\r
+       ld a,h\r
+       xor d\r
+       ld h,a\r
+       ld a,l\r
+       xor e\r
+       ld l,a\r
+       jr l044dh\r
 \r
 do_binary_op:\r
-       push hl                 ;04ae   e5      .\r
-       ld hl,tab_op_a          ;04af   21 c2 04        ! . .\r
-       call lookupch           ;04b2   cd f3 02        . . .\r
-       ld a,b                  ;04b5   78      x\r
-       ld hl,tblf_opa          ;04b6   21 cb 04        ! . .\r
-       add a,a                 ;04b9   87      .\r
-       call add_hl_a           ;04ba   cd b9 02        . . .\r
-       ld c,(hl)               ;04bd   4e      N\r
-       inc hl                  ;04be   23      #\r
-       ld b,(hl)               ;04bf   46      F\r
-       pop hl                  ;04c0   e1      .\r
-       ret                     ;04c1   c9      .\r
+       push hl\r
+       ld hl,tab_op_a\r
+       call lookupch\r
+       ld a,b\r
+       ld hl,tblf_opa\r
+       add a,a\r
+       call add_hl_a\r
+       ld c,(hl)\r
+       inc hl\r
+       ld b,(hl)\r
+       pop hl\r
+       ret\r
 \r
 tab_op_a:\r
        DB      '+-*/%&!#',0\r
 \r
 tblf_opa:\r
-       dw      doop_add        ;04cb   4c 04   L .\r
-       dw      doop_sub        ;04cd   50 04   P .\r
-       dw      doop_mlt        ;04cf   55 04   U .\r
-       dw      doop_div        ;04d1   6a 04   j .\r
-       dw      doop_mod        ;04d3   6f 04   o .\r
-       dw      doop_and        ;04d5   96 04   . .\r
-       dw      doop_or         ;04d7   9e 04   . .\r
-       dw      doop_xor        ;04d9   a6 04   . .\r
-       dw      0               ;04db   00 00   . .\r
+       dw      doop_add\r
+       dw      doop_sub\r
+       dw      doop_mlt\r
+       dw      doop_div\r
+       dw      doop_mod\r
+       dw      doop_and\r
+       dw      doop_or\r
+       dw      doop_xor\r
+       dw      0\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 fact_factor:\r
-       call do_factor          ;04dd   cd e4 04        . . .\r
-       ret nc                  ;04e0   d0      .\r
-       jp ERROR                ;04e1   c3 07 01        . . .\r
+       call do_factor\r
+       ret nc\r
+       jp ERROR\r
 \r
 do_factor:\r
-       call chk_sp             ;04e4   cd dd 02        . . .\r
-       call get.number         ;04e7   cd aa 05        . . .\r
-       ret nc                  ;04ea   d0      .\r
-       inc de                  ;04eb   13      .\r
-       ld hl,ddtz_base-1       ;04ec   21 ff ff        ! . .\r
-       cp 'T'                  ;04ef   fe 54   . T\r
-       ret z                   ;04f1   c8      .\r
-       ld hl,(high_load)       ;04f2   2a 9c 11        * . .\r
-       cp 'H'                  ;04f5   fe 48   . H\r
-       ret z                   ;04f7   c8      .\r
-       ld hl,(max_load)        ;04f8   2a 9e 11        * . .\r
-       cp 'M'                  ;04fb   fe 4d   . M\r
-       ret z                   ;04fd   c8      .\r
-       ld hl,TPA               ;04fe   21 00 01        ! . .\r
-       cp 'L'                  ;0501   fe 4c   . L\r
-       ret z                   ;0503   c8      .\r
-       ld hl,(offs.@)          ;0504   2a 64 00        * d .\r
-       cp '@'                  ;0507   fe 40   . @\r
-       ret z                   ;0509   c8      .\r
-       ld hl,(l0062h)          ;050a   2a 62 00        * b .\r
-       cp '$'                  ;050d   fe 24   . $\r
-       ret z                   ;050f   c8      .\r
-       cp '-'                  ;0510   fe 2d   . -\r
-       jr z,fact_factneg       ;0512   28 61   ( a\r
-       cp '~'                  ;0514   fe 7e   . ~\r
-       jr z,fact_factinv       ;0516   28 68   ( h\r
-       cp '+'                  ;0518   fe 2b   . +\r
-       jr z,fact_factor        ;051a   28 c1   ( .\r
-       cp '^'                  ;051c   fe 5e   . ^\r
-       jr z,fact_reg.CPU       ;051e   28 45   ( E\r
-       cp 'Y'                  ;0520   fe 59   . Y\r
-       jr z,fact_reg.Y         ;0522   28 10   ( .\r
-       cp '('                  ;0524   fe 28   . (\r
-       jr z,fact_mem           ;0526   28 5d   ( ]\r
-       cp '['                  ;0528   fe 5b   . [\r
-       jp z,expr_brckt         ;052a   ca 9d 05        . . .\r
-       cp ''''                 ;052d   fe 27   . '\r
-       jr z,fact_factstring    ;052f   28 17   ( .\r
-       dec de                  ;0531   1b      .\r
-       scf                     ;0532   37      7\r
-       ret                     ;0533   c9      .\r
+       call chk_stack\r
+       call get.number\r
+       ret nc\r
+       inc de\r
+       ld hl,(BDOS+1)\r
+       cp 'T'\r
+       ret z\r
+       ld hl,(high_load)\r
+       cp 'H'\r
+       ret z\r
+       ld hl,(max_load)\r
+       cp 'M'\r
+       ret z\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
+       ld hl,ddtz_base\r
+       cp 'Z'\r
+       ret z\r
+       cp '-'\r
+       jr z,fact_factneg\r
+       cp '~'\r
+       jr z,fact_factinv\r
+       cp '+'\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
+       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       ;0534   cd 1d 06        . . .\r
-       jp c,ERROR              ;0537   da 07 01        . . .\r
-       inc de                  ;053a   13      .\r
-       add a,a                 ;053b   87      .\r
-       ld hl,reg_Y             ;053c   21 9e 0b        ! . .\r
-       call add_hl_a           ;053f   cd b9 02        . . .\r
-       ld a,(hl)               ;0542   7e      ~\r
-       inc hl                  ;0543   23      #\r
-       ld h,(hl)               ;0544   66      f\r
-       ld l,a                  ;0545   6f      o\r
-       and a                   ;0546   a7      .\r
-       ret                     ;0547   c9      .\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                 ;0548   21 00 00        ! . .\r
+       ld hl,0\r
 l054bh:\r
-       ld a,(de)               ;054b   1a      .\r
-       cp ''''                 ;054c   fe 27   . '\r
-       jr z,l0557h             ;054e   28 07   ( .\r
-       and a                   ;0550   a7      .\r
-       ret z                   ;0551   c8      .\r
+       ld a,(de)\r
+       cp ''''\r
+       jr z,l0557h\r
+       and a\r
+       ret z\r
 l0552h:\r
-       ld h,l                  ;0552   65      e\r
-       ld l,a                  ;0553   6f      o\r
-       inc de                  ;0554   13      .\r
-       jr l054bh               ;0555   18 f4   . .\r
+       ld h,l\r
+       ld l,a\r
+       inc de\r
+       jr l054bh\r
 l0557h:\r
-       inc de                  ;0557   13      .\r
-       ld a,(de)               ;0558   1a      .\r
-       cp ''''                 ;0559   fe 27   . '\r
-       jr z,l0552h             ;055b   28 f5   ( .\r
-       sub '.'                 ;055d   d6 2e   . .\r
-       or a                    ;055f   b7      .\r
-       ret nz                  ;0560   c0      .\r
-       inc de                  ;0561   13      .\r
-       set 7,l                 ;0562   cb fd   . .\r
-       ret                     ;0564   c9      .\r
+       inc de\r
+       ld a,(de)\r
+       cp ''''\r
+       jr z,l0552h\r
+       sub '.'\r
+       or a\r
+       ret nz\r
+       inc de\r
+       set 7,l\r
+       ret\r
 \r
 fact_reg.CPU:\r
-       call sub_0caeh          ;0565   cd ae 0c        . . .\r
-       jr nc,error4            ;0568   30 3d   0 =\r
-       ld a,(hl)               ;056a   7e      ~\r
-       inc hl                  ;056b   23      #\r
-       ld h,(hl)               ;056c   66      f\r
-       ld l,a                  ;056d   6f      o\r
-       and a                   ;056e   a7      .\r
-       bit 0,c                 ;056f   cb 41   . A\r
-       ret nz                  ;0571   c0      .\r
-       ld h,000h               ;0572   26 00   & .\r
-       ret                     ;0574   c9      .\r
+       call sub_0caeh\r
+       jr nc,error1\r
+       ld a,(hl)\r
+       inc hl\r
+       ld h,(hl)\r
+       ld l,a\r
+       and a\r
+       bit 0,c\r
+       ret nz\r
+       ld h,000h\r
+       ret\r
 \r
 fact_factneg:\r
-       call fact_factor        ;0575   cd dd 04        . . .\r
-       dec hl                  ;0578   2b      +\r
+       call fact_factor\r
+       dec hl\r
 cpl.hl:\r
-       ld a,h                  ;0579   7c      |\r
-       cpl                     ;057a   2f      /\r
-       ld h,a                  ;057b   67      g\r
-       ld a,l                  ;057c   7d      }\r
-       cpl                     ;057d   2f      /\r
-       ld l,a                  ;057e   6f      o\r
-       ret                     ;057f   c9      .\r
+       ld a,h\r
+       cpl\r
+       ld h,a\r
+       ld a,l\r
+       cpl\r
+       ld l,a\r
+       ret\r
 \r
 fact_factinv:\r
-       call fact_factor        ;0580   cd dd 04        . . .\r
-       jr cpl.hl               ;0583   18 f4   . .\r
+       call fact_factor\r
+       jr cpl.hl\r
 \r
 fact_mem:\r
-       call expr1              ;0585   cd c1 03        . . .\r
-       jr c,error4             ;0588   38 1d   8 .\r
-       ld a,(de)               ;058a   1a      .\r
-       cp ')'                  ;058b   fe 29   . )\r
-       jr nz,error4            ;058d   20 18     .\r
-       inc de                  ;058f   13      .\r
-       ld a,(hl)               ;0590   7e      ~\r
-       inc hl                  ;0591   23      #\r
-       ld h,(hl)               ;0592   66      f\r
-       ld l,a                  ;0593   6f      o\r
-       ld a,(de)               ;0594   1a      .\r
-       inc de                  ;0595   13      .\r
-       cp '.'                  ;0596   fe 2e   . .\r
-       ret z                   ;0598   c8      .\r
-       dec de                  ;0599   1b      .\r
-       xor a                   ;059a   af      .\r
-       ld h,a                  ;059b   67      g\r
-       ret                     ;059c   c9      .\r
+       call expr1\r
+       jr c,error1\r
+       ld a,(de)\r
+       cp ')'\r
+       jr nz,error1\r
+       inc de\r
+       ld a,(hl)\r
+       inc hl\r
+       ld h,(hl)\r
+       ld l,a\r
+       ld a,(de)\r
+       inc de\r
+       cp '.'\r
+       ret z\r
+       dec de\r
+       xor a\r
+       ld h,a\r
+       ret\r
 \r
 expr_brckt:\r
-       call expr1              ;059d   cd c1 03        . . .\r
-       jr c,error4             ;05a0   38 05   8 .\r
-       ld a,(de)               ;05a2   1a      .\r
-       cp ']'                  ;05a3   fe 5d   . ]\r
-       inc de                  ;05a5   13      .\r
-       ret z                   ;05a6   c8      .\r
-error4:\r
-       jp ERROR                ;05a7   c3 07 01        . . .\r
+       call expr1\r
+       jr c,error1\r
+       ld a,(de)\r
+       cp ']'\r
+       inc de\r
+       ret z\r
+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
-       call get.hexdigit       ;05aa   cd 11 06        . . .\r
-       ret c                   ;05ad   d8      .\r
-       push de                 ;05ae   d5      .\r
+       call get.hexdigit\r
+       ret c\r
+       push de\r
 test_number:\r
-       inc de                  ;05af   13      .\r
-       call get.hexdigit       ;05b0   cd 11 06        . . .\r
-       jr nc,test_number       ;05b3   30 fa   0 .\r
-       pop de                  ;05b5   d1      .\r
-       cp '.'                  ;05b6   fe 2e   . .\r
-       jr z,get_dec_number     ;05b8   28 36   ( 6\r
-       cp '"'                  ;05ba   fe 22   . "\r
-       jr z,get_bin_number     ;05bc   28 17   ( .\r
-       ld hl,0                 ;05be   21 00 00        ! . .\r
+       inc de\r
+       call get.hexdigit\r
+       jr nc,test_number\r
+       pop de\r
+       cp '.'\r
+       jr z,get_dec_number\r
+       cp '"'\r
+       jr z,get_bin_number\r
+       ld hl,0\r
 next_hexdigit:\r
-       call get.hexdigit       ;05c1   cd 11 06        . . .\r
-       jr c,hexnum_done        ;05c4   38 0a   8 .\r
-       add hl,hl               ;05c6   29      )\r
-       add hl,hl               ;05c7   29      )\r
-       add hl,hl               ;05c8   29      )\r
-       add hl,hl               ;05c9   29      )\r
-       call add_hl_a           ;05ca   cd b9 02        . . .\r
-       inc de                  ;05cd   13      .\r
-       jr next_hexdigit        ;05ce   18 f1   . .\r
+       call get.hexdigit\r
+       jr c,hexnum_done\r
+       add hl,hl\r
+       add hl,hl\r
+       add hl,hl\r
+       add hl,hl\r
+       call add_hl_a\r
+       inc de\r
+       jr next_hexdigit\r
 \r
 hexnum_done:\r
-       xor 'H'                 ;05d0   ee 48   . H\r
-       ret nz                  ;05d2   c0      .\r
-       inc de                  ;05d3   13      .\r
-       ret                     ;05d4   c9      .\r
+       xor 'H'\r
+       ret nz\r
+       inc de\r
+       ret\r
 \r
 get_bin_number:\r
-       ld hl,0                 ;05d5   21 00 00        ! . .\r
+       ld hl,0\r
 next_bindigit:\r
-       call get.bindigit       ;05d8   cd 22 06        . " .\r
+       call get.bindigit\r
 l05dbh:\r
-       inc de                  ;05db   13      .\r
-       jr c,l05e4h             ;05dc   38 06   8 .\r
-       add hl,hl               ;05de   29      )\r
-       call add_hl_a           ;05df   cd b9 02        . . .\r
-       jr next_bindigit        ;05e2   18 f4   . .\r
+       inc de\r
+       jr c,l05e4h\r
+       add hl,hl\r
+       call add_hl_a\r
+       jr next_bindigit\r
 l05e4h:\r
-       cp '"'                  ;05e4   fe 22   . "\r
-       jp nz,ERROR             ;05e6   c2 07 01        . . .\r
-       call get.bindigit       ;05e9   cd 22 06        . " .\r
-       jr nc,l05dbh            ;05ec   30 ed   0 .\r
-       or a                    ;05ee   b7      .\r
-       ret                     ;05ef   c9      .\r
+       cp '"'\r
+       jr nz,error11\r
+       call get.bindigit\r
+       jr nc,l05dbh\r
+       or a\r
+       ret\r
 \r
 get_dec_number:\r
-       ld hl,0                 ;05f0   21 00 00        ! . .\r
+       ld hl,0\r
 next_decdigit:\r
-       call get.decdigit       ;05f3   cd 1d 06        . . .\r
-       inc de                  ;05f6   13      .\r
-       jr c,decnum_done        ;05f7   38 0d   8 .\r
-       push bc                 ;05f9   c5      .\r
-       add hl,hl               ;05fa   29      )\r
-       ld b,h                  ;05fb   44      D\r
-       ld c,l                  ;05fc   4d      M\r
-       add hl,hl               ;05fd   29      )\r
-       add hl,hl               ;05fe   29      )\r
-       add hl,bc               ;05ff   09      .\r
-       pop bc                  ;0600   c1      .\r
-       call add_hl_a           ;0601   cd b9 02        . . .\r
-       jr next_decdigit        ;0604   18 ed   . .\r
+       call get.decdigit\r
+       inc de\r
+       jr c,decnum_done\r
+       push bc\r
+       add hl,hl\r
+       ld b,h\r
+       ld c,l\r
+       add hl,hl\r
+       add hl,hl\r
+       add hl,bc\r
+       pop bc\r
+       call add_hl_a\r
+       jr next_decdigit\r
 decnum_done:\r
-       cp '.'                  ;0606   fe 2e   . .\r
-       ret z                   ;0608   c8      .\r
-       jp ERROR                ;0609   c3 07 01        . . .\r
+       cp '.'\r
+       ret z\r
+error11:\r
+       jp ERROR\r
 \r
 sub_060ch:\r
-       ld a,(de)               ;060c   1a      .\r
-       cp '['                  ;060d   fe 5b   . [\r
-       jr l0614h               ;060f   18 03   . .\r
+       call get_char_upper\r
+       cp 'Z'+1\r
+       jr l0614h\r
 \r
 get.hexdigit:\r
-       ld a,(de)               ;0611   1a      .\r
+       ld a,(de)\r
 hex_digit:\r
-       cp 'F'+1                ;0612   fe 47   . G\r
+       call toupper\r
+       cp 'F'+1\r
 l0614h:\r
-       ccf                     ;0614   3f      ?\r
-       ret c                   ;0615   d8      .\r
-       cp 'A'                  ;0616   fe 41   . A\r
-       jr c,l061eh             ;0618   38 04   8 .\r
-       sub 'A'-10              ;061a   d6 37   . 7\r
-       ret                     ;061c   c9      .\r
+       ccf\r
+       ret c\r
+       cp 'A'\r
+       jr c,l061eh\r
+       sub 'A'-10\r
+       ret\r
 \r
 get.decdigit:\r
-       ld a,(de)               ;061d   1a      .\r
+       call get_char_upper\r
 l061eh:\r
-       cp '9'+1                ;061e   fe 3a   . :\r
-       jr l0625h               ;0620   18 03   . .\r
+       cp '9'+1\r
+       jr l0625h\r
 \r
 get.bindigit:\r
-       ld a,(de)               ;0622   1a      .\r
-       cp '1'+1                ;0623   fe 32   . 2\r
+       call get_char_upper\r
+       cp '1'+1\r
 l0625h:\r
-       ccf                     ;0625   3f      ?\r
-       ret c                   ;0626   d8      .\r
-       cp '0'                  ;0627   fe 30   . 0\r
-       ret c                   ;0629   d8      .\r
-       sub '0'                 ;062a   d6 30   . 0\r
-       ret                     ;062c   c9      .\r
+       ccf\r
+       ret c\r
+       cp '0'\r
+       ret c\r
+       sub '0'\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 p_cpustat0:\r
-       call assert_eol         ;062d   cd d6 02        . . .\r
+       call assert_eol\r
 p_cpustat:\r
-       call p_f                ;0630   cd 6e 06        . n .\r
-       call outbl2             ;0633   cd 9c 02        . . .\r
-       ld hl,b_06e9_start      ;0636   21 e9 06        ! . .\r
-       ld de,b_0709_start      ;0639   11 09 07        . . .\r
-       ld b,6                  ;063c   06 06   . .\r
+       call p_f\r
+       call outbl2\r
+       ld hl,b_06e9_start\r
+       ld de,b_0709_start\r
+       ld b,6\r
 l063eh:\r
-       call p_regs             ;063e   cd b2 06        . . .\r
-       djnz l063eh             ;0641   10 fb   . .\r
-       push hl                 ;0643   e5      .\r
-       push de                 ;0644   d5      .\r
-       ld iy,(REG.PC)          ;0645   fd 2a 60 00     . * ` .\r
-       call p_disas_instr      ;0649   cd 65 19        . e .\r
-       exx                     ;064c   d9      .\r
-       ex af,af'               ;064d   08      .\r
-       call crlf               ;064e   cd a3 02        . . .\r
-       call p_f2               ;0651   cd 81 06        . . .\r
-       call outbl2             ;0654   cd 9c 02        . . .\r
-       pop de                  ;0657   d1      .\r
-       pop hl                  ;0658   e1      .\r
-       ld b,7                  ;0659   06 07   . .\r
+       call p_regs\r
+       djnz l063eh\r
+       push hl\r
+       push de\r
+       ld iy,(reg.pc)\r
+       call p_disas_instr\r
+       pop de\r
+       ex (sp),hl\r
+       push af\r
+       call crlf\r
+       call p_f2\r
+       call outbl2\r
+       ld b,7\r
 l065bh:\r
-       call p_regs             ;065b   cd b2 06        . . .\r
-       djnz l065bh             ;065e   10 fb   . .\r
-       exx                     ;0660   d9      .\r
-       ex af,af'               ;0661   08      .\r
-       and a                   ;0662   a7      .\r
-       jr z,l066bh             ;0663   28 06   ( .\r
-       call outbl6             ;0665   cd 96 02        . . .\r
-       call p_offset           ;0668   cd 49 19        . I .\r
-l066bh:\r
-       jp crlf                 ;066b   c3 a3 02        . . .\r
+       call p_regs\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
-       ld a,(reg.f)            ;066e   3a 54 00        : T .\r
-       call p_flags            ;0671   cd 8a 06        . . .\r
-       ld a,(reg.iff)          ;0674   3a 5e 00        : ^ .\r
-       cp 0f3h                 ;0677   fe f3   . .\r
-       jp z,outbl              ;0679   ca 9f 02        . . .\r
-       ld a,'E'                ;067c   3e 45   > E\r
-       jp outchar              ;067e   c3 5d 02        . ] .\r
+       ld a,(reg.f)\r
+       call p_flags\r
+       ld a,(reg.iff)\r
+       cp 0f3h\r
+       jp z,outbl\r
+       ld a,'E'\r
+       jp outchar\r
 p_f2:\r
-       ld a,(reg.f2)           ;0681   3a 4c 00        : L .\r
-       call p_flags            ;0684   cd 8a 06        . . .\r
-       jp outbl                ;0687   c3 9f 02        . . .\r
+       ld a,(reg.f2)\r
+       call p_flags\r
+       jp outbl\r
+\r
 p_flags:\r
-       ld b,a                  ;068a   47      G\r
-       ld a,'S'                ;068b   3e 53   > S\r
-       call sub_06aah          ;068d   cd aa 06        . . .\r
-       ld a,'Z'                ;0690   3e 5a   > Z\r
-       call sub_06aah          ;0692   cd aa 06        . . .\r
-       rl b                    ;0695   cb 10   . .\r
-       ld a,'H'                ;0697   3e 48   > H\r
-       call sub_06aah          ;0699   cd aa 06        . . .\r
-       rl b                    ;069c   cb 10   . .\r
-       ld a,'V'                ;069e   3e 56   > V\r
-       call sub_06aah          ;06a0   cd aa 06        . . .\r
-       ld a,'N'                ;06a3   3e 4e   > N\r
-       call sub_06aah          ;06a5   cd aa 06        . . .\r
-       ld a,'C'                ;06a8   3e 43   > C\r
+       ld b,a\r
+       ld a,'S'\r
+       call sub_06aah\r
+       ld a,'Z'\r
+       call sub_06aah\r
+       rl b\r
+       ld a,'H'\r
+       call sub_06aah\r
+       rl b\r
+       ld a,'V'\r
+       call sub_06aah\r
+       ld a,'N'\r
+       call sub_06aah\r
+       ld a,'C'\r
 sub_06aah:\r
-       rl b                    ;06aa   cb 10   . .\r
-       jp c,outchar            ;06ac   da 5d 02        . ] .\r
-       jp outbl                ;06af   c3 9f 02        . . .\r
+       rl b\r
+       jp c,outchar\r
+       jp outbl\r
 \r
 p_regs:\r
-       push bc                 ;06b2   c5      .\r
-       push de                 ;06b3   d5      .\r
-       call pstr               ;06b4   cd 88 02        . . .\r
-       ld a,'='                ;06b7   3e 3d   > =\r
-       call outchar            ;06b9   cd 5d 02        . ] .\r
-       ex (sp),hl              ;06bc   e3      .\r
-       ld e,(hl)               ;06bd   5e      ^\r
-       inc hl                  ;06be   23      #\r
-       ld d,(hl)               ;06bf   56      V\r
-       inc hl                  ;06c0   23      #\r
-       ld a,(hl)               ;06c1   7e      ~\r
-       inc hl                  ;06c2   23      #\r
-       push hl                 ;06c3   e5      .\r
-       and a                   ;06c4   a7      .\r
-       jr z,l06deh             ;06c5   28 17   ( .\r
-       push af                 ;06c7   f5      .\r
-       ld a,(de)               ;06c8   1a      .\r
-       ld l,a                  ;06c9   6f      o\r
-       inc de                  ;06ca   13      .\r
-       ld a,(de)               ;06cb   1a      .\r
-       ld h,a                  ;06cc   67      g\r
-       pop af                  ;06cd   f1      .\r
-       dec a                   ;06ce   3d      =\r
-       jr z,l06d9h             ;06cf   28 08   ( .\r
-       call out.hl.@           ;06d1   cd a4 01        . . .\r
-       call z,outbl6           ;06d4   cc 96 02        . . .\r
-       jr l06e2h               ;06d7   18 09   . .\r
+       push de\r
+       call pstr\r
+       call    pstr_inl\r
+       dc      '='\r
+       ex (sp),hl\r
+       ld e,(hl)\r
+       inc hl\r
+       ld d,(hl)\r
+       inc hl\r
+       ld a,(hl)\r
+       inc hl\r
+       push hl\r
+       and a\r
+       jr z,l06deh\r
+       ex de,hl\r
+       ld e,(hl)\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             ;06d9   cd 13 02        . . .\r
-       jr l06e2h               ;06dc   18 04   . .\r
+       call out_hl\r
+       jr l06e2h\r
 l06deh:\r
-       ld a,(de)               ;06de   1a      .\r
-       call out_hex            ;06df   cd 18 02        . . .\r
+       ld a,(de)\r
+       call out_hex\r
 l06e2h:\r
-       call outbl              ;06e2   cd 9f 02        . . .\r
-       pop de                  ;06e5   d1      .\r
-       pop hl                  ;06e6   e1      .\r
-       pop bc                  ;06e7   c1      .\r
-       ret                     ;06e8   c9      .\r
+       call outbl\r
+       pop de\r
+       pop hl\r
+       ret\r
 \r
 b_06e9_start:\r
        DC      'A '\r
@@ -1350,691 +1531,741 @@ b_06e9_start:
        DB      0\r
 \r
 b_0709_start:\r
-       dw      reg.a           ;0709   55 00   U .\r
-       db      000h            ;070b   00      .\r
-       dw      reg.c           ;070c   56 00   V .\r
-       db      001h            ;070e   01      .\r
-       dw      reg.e           ;070f   58 00   X .\r
-       db      001h            ;0711   01      .\r
-       dw      reg.l           ;0712   5a 00   Z .\r
-       db      001h            ;0714   01      .\r
-       dw      reg_sp          ;0715   5c 00   \ .\r
-       db      001h            ;0717   01      .\r
-       dw      REG.PC          ;0718   60 00   ` .\r
-       db      002h            ;071a   02      .\r
-       dw      reg.a2          ;071b   4d 00   M .\r
-       db      000h            ;071d   00      .\r
-       dw      reg.c2          ;071e   4a 00   J .\r
-       db      001h            ;0720   01      .\r
-       dw      reg.e2          ;0721   48 00   H .\r
-       db      001h            ;0723   01      .\r
-       dw      reg.l2          ;0724   46 00   F .\r
-       db      001h            ;0726   01      .\r
-       dw      reg.ix          ;0727   52 00   R .\r
-       db      001h            ;0729   01      .\r
-       dw      reg.iy          ;072a   50 00   P .\r
-       db      001h            ;072c   01      .\r
-       dw      reg.i           ;072d   4f 00   O .\r
-       db      000h            ;072f   00      .\r
-       db      000h            ;0730   00      .\r
+       dw      reg.a\r
+       db      000h\r
+       dw      reg.c\r
+       db      001h\r
+       dw      reg.e\r
+       db      001h\r
+       dw      reg.l\r
+       db      001h\r
+       dw      reg_sp\r
+       db      001h\r
+       dw      reg.pc\r
+       db      002h\r
+       dw      reg.a2\r
+       db      000h\r
+       dw      reg.c2\r
+       db      001h\r
+       dw      reg.e2\r
+       db      001h\r
+       dw      reg.l2\r
+       db      001h\r
+       dw      reg.ix\r
+       db      001h\r
+       dw      reg.iy\r
+       db      001h\r
+       dw      reg.i\r
+       db      000h\r
+       db      000h\r
+\r
+;-------------------------------------------------------------------------------\r
+; > G [startaddr] [;breakp..]\r
+;      Go [to start] [with temporary breakpoints]\r
 \r
 cmd_G:\r
-       sub a                   ;0731   97      .\r
-       ld (trace_call_flag),a  ;0732   32 e3 21        2 . !\r
-       ld (l0941h),a           ;0735   32 41 09        2 A .\r
-       call expr               ;0738   cd be 03        . . .\r
-       jr c,l0740h             ;073b   38 03   8 .\r
-       ld (REG.PC),hl          ;073d   22 60 00        " ` .\r
+       sub a\r
+       ld (trace_call_flag),a\r
+       ld (l0941h),a\r
+       call expr\r
+       jr c,l0740h\r
+       ld (reg.pc),hl\r
 l0740h:\r
-       call skipbl             ;0740   cd bf 02        . . .\r
-       jp z,user_go            ;0743   ca 25 0a        . % .\r
-       cp ';'                  ;0746   fe 3b   . ;\r
-       jp nz,ERROR             ;0748   c2 07 01        . . .\r
-       inc de                  ;074b   13      .\r
-       ld a,002h               ;074c   3e 02   > .\r
-       call bp_enter           ;074e   cd 10 08        . . .\r
-       jp user_go              ;0751   c3 25 0a        . % .\r
+       call skipbl\r
+       jp z,user_go\r
+       cp ';'\r
+       jp nz,ERROR\r
+       inc de\r
+       ld a,002h\r
+       call bp_enter\r
+       jp user_go\r
+\r
+;-------------------------------------------------------------------------------\r
+\r
+bpl_init:\r
+       ld      b,BP_CNT\r
+       ld      ix,bp_tab\r
+       ex      (sp),hl\r
+       ld      (pbl_loop_adr),hl\r
+       ex      (sp),hl\r
+       ret\r
+\r
+bpl_next:\r
+       ld      de,BP_SIZE\r
+       add     ix,de\r
+       dec     b\r
+       ret     z\r
+\r
+       ex      (sp),hl\r
+       ld      hl,(pbl_loop_adr)\r
+       ex      (sp),hl\r
+       ret\r
 \r
 bp_clr_temporary:\r
-       ld b,BP_CNT             ;0754   06 0c   . .\r
-       ld ix,bp_tab            ;0756   dd 21 b8 0a     . ! . .\r
-l075ah:\r
-       ld a,(ix+000h)          ;075a   dd 7e 00        . ~ .\r
-       and 0f1h                ;075d   e6 f1   . .\r
-       ld (ix+000h),a          ;075f   dd 77 00        . w .\r
-       call bp_clr_condition   ;0762   cd 5f 0a        . _ .\r
-       ld de,BP_SIZE           ;0765   11 08 00        . . .\r
-       add ix,de               ;0768   dd 19   . .\r
-       djnz l075ah             ;076a   10 ee   . .\r
-       ret                     ;076c   c9      .\r
+       call    bpl_init\r
+\r
+       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
+\r
+;-------------------------------------------------------------------------------\r
+; > B\r
+;      display all breakpoints\r
+; > B breakp [breakp..]\r
+;      set breakpoints\r
+; > BX\r
+;      clear all breakpoints\r
+; > BX address [address..]\r
+;      clear breakpoints\r
+;\r
+; where breakp is:\r
+;      [R] expression [I condition]\r
 \r
 cmd_B:\r
-       call skipbl             ;076d   cd bf 02        . . .\r
-       jr z,l07b7h             ;0770   28 45   ( E\r
-       inc de                  ;0772   13      .\r
-       cp 'X'                  ;0773   fe 58   . X\r
-       jr z,l077dh             ;0775   28 06   ( .\r
-       dec de                  ;0777   1b      .\r
-       ld a,001h               ;0778   3e 01   > .\r
-       jp bp_enter             ;077a   c3 10 08        . . .\r
-l077dh:\r
-       call skipbl             ;077d   cd bf 02        . . .\r
-       jr z,bp_clr_all         ;0780   28 10   ( .\r
-l0782h:\r
-       call expr               ;0782   cd be 03        . . .\r
-       jp c,assert_eol         ;0785   da d6 02        . . .\r
-       push de                 ;0788   d5      .\r
-       call bp_clr             ;0789   cd 93 07        . . .\r
-       pop de                  ;078c   d1      .\r
-       call next_arg           ;078d   cd ca 02        . . .\r
-       jr l0782h               ;0790   18 f0   . .\r
+       call skipbl\r
+       jr z,bp_print\r
+       inc de\r
+       cp 'X'\r
+       jr z,bp_clr0\r
+       dec de\r
+       ld a,001h\r
+       jp bp_enter\r
+bp_clr0:\r
+       call skipbl\r
+       jr z,bp_clr_all\r
+bp_clr_next:\r
+       call expr\r
+       jp c,assert_eol\r
+       push de\r
+       call bp_clr\r
+       pop de\r
+       call next_arg\r
+       jr bp_clr_next\r
 \r
 bp_clr_all:\r
-       scf                     ;0792   37      7\r
+       scf\r
 bp_clr:\r
-       ld b,BP_CNT             ;0793   06 0c   . .\r
-       ld ix,bp_tab            ;0795   dd 21 b8 0a     . ! . .\r
-l0799h:\r
-       push af                 ;0799   f5      .\r
-       jr c,l07a7h             ;079a   38 0b   8 .\r
-       ld e,(ix+002h)          ;079c   dd 5e 02        . ^ .\r
-       ld d,(ix+003h)          ;079f   dd 56 03        . V .\r
-       call cp_hl_de           ;07a2   cd ee 02        . . .\r
-       jr nz,l07aeh            ;07a5   20 07     .\r
+       call    bpl_init\r
+\r
+       push af\r
+       jr c,l07a7h\r
+       ld e,(ix+002h)\r
+       ld d,(ix+003h)\r
+       call cp_hl_de\r
+       jr nz,l07aeh\r
 l07a7h:\r
-       ld (ix+000h),000h       ;07a7   dd 36 00 00     . 6 . .\r
-       call bp_clr_condition   ;07ab   cd 5f 0a        . _ .\r
+       ld (ix+000h),000h\r
+       call bp_clr_condition\r
 l07aeh:\r
-       ld de,BP_SIZE           ;07ae   11 08 00        . . .\r
-       add ix,de               ;07b1   dd 19   . .\r
-       pop af                  ;07b3   f1      .\r
-       djnz l0799h             ;07b4   10 e3   . .\r
-       ret                     ;07b6   c9      .\r
-\r
-l07b7h:\r
-       ld b,BP_CNT             ;07b7   06 0c   . .\r
-       ld ix,bp_tab            ;07b9   dd 21 b8 0a     . ! . .\r
-l07bdh:\r
-       bit 0,(ix+000h)         ;07bd   dd cb 00 46     . . . F\r
-       jr z,l0808h             ;07c1   28 45   ( E\r
-       ld a,'R'                ;07c3   3e 52   > R\r
-       bit 4,(ix+000h)         ;07c5   dd cb 00 66     . . . f\r
-       jr nz,l07cdh            ;07c9   20 02     .\r
-       ld a,' '                ;07cb   3e 20   >\r
+       pop af\r
+       call bpl_next\r
+       ret\r
+\r
+bp_print:\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            ;07cd   cd 5d 02        . ] .\r
-       call outbl              ;07d0   cd 9f 02        . . .\r
-       ld l,(ix+002h)          ;07d3   dd 6e 02        . n .\r
-       ld h,(ix+003h)          ;07d6   dd 66 03        . f .\r
-       call out.hl.@           ;07d9   cd a4 01        . . .\r
-       call outbl2             ;07dc   cd 9c 02        . . .\r
-       ld a,':'                ;07df   3e 3a   > :\r
-       call outchar            ;07e1   cd 5d 02        . ] .\r
-       ld l,(ix+004h)          ;07e4   dd 6e 04        . n .\r
-       ld h,(ix+005h)          ;07e7   dd 66 05        . f .\r
-       call out_hl             ;07ea   cd 13 02        . . .\r
-       ld l,(ix+006h)          ;07ed   dd 6e 06        . n .\r
-       ld h,(ix+007h)          ;07f0   dd 66 07        . f .\r
-       ld a,h                  ;07f3   7c      |\r
-       or l                    ;07f4   b5      .\r
-       jr z,l0805h             ;07f5   28 0e   ( .\r
-       call outbl4             ;07f7   cd 99 02        . . .\r
-       ld a,'I'                ;07fa   3e 49   > I\r
-       call outchar            ;07fc   cd 5d 02        . ] .\r
-       call outbl2             ;07ff   cd 9c 02        . . .\r
-       call pstr               ;0802   cd 88 02        . . .\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               ;0805   cd a3 02        . . .\r
-l0808h:\r
-       ld de,BP_SIZE           ;0808   11 08 00        . . .\r
-       add ix,de               ;080b   dd 19   . .\r
-       djnz l07bdh             ;080d   10 ae   . .\r
-       ret                     ;080f   c9      .\r
+       call crlf\r
+bp_pr_cont:\r
+       call bpl_next\r
+       ret\r
 \r
+;-------------------------------------------------------------------------------\r
 ; Add break points to list\r
 ;   A = 1       Permanent (B command)\r
 ;   A = 2       Temporary (G command)\r
 \r
 bp_enter:\r
-       ld b,a                  ;0810   47      G\r
-       call skipbl             ;0811   cd bf 02        . . .\r
-       ret z                   ;0814   c8      .\r
-       cp 'R'                  ;0815   fe 52   . R\r
-       jr nz,l081ch            ;0817   20 03     .\r
-       inc de                  ;0819   13      .\r
-       set 4,b                 ;081a   cb e0   . .\r
-l081ch:\r
-       push bc                 ;081c   c5      .\r
-       call expr               ;081d   cd be 03        . . .\r
-       jp c,ERROR              ;0820   da 07 01        . . .\r
-       pop bc                  ;0823   c1      .\r
-       bit 0,b                 ;0824   cb 40   . @\r
-       push bc                 ;0826   c5      .\r
-       push de                 ;0827   d5      .\r
-       push hl                 ;0828   e5      .\r
-       call nz,bp_clr          ;0829   c4 93 07        . . .\r
-       pop hl                  ;082c   e1      .\r
-       call bp_get_freeslot    ;082d   cd 54 08        . T .\r
-       pop de                  ;0830   d1      .\r
-       ld (ix+002h),l          ;0831   dd 75 02        . u .\r
-       ld (ix+003h),h          ;0834   dd 74 03        . t .\r
-       call bp_get_count       ;0837   cd 6c 08        . l .\r
-       ld (ix+004h),l          ;083a   dd 75 04        . u .\r
-       ld (ix+005h),h          ;083d   dd 74 05        . t .\r
-       call bp_get_condition   ;0840   cd 7d 08        . } .\r
-       ld (ix+006h),l          ;0843   dd 75 06        . u .\r
-       ld (ix+007h),h          ;0846   dd 74 07        . t .\r
-       call next_arg           ;0849   cd ca 02        . . .\r
-       pop af                  ;084c   f1      .\r
-       ld (ix+000h),a          ;084d   dd 77 00        . w .\r
-       and 00fh                ;0850   e6 0f   . .\r
-       jr bp_enter             ;0852   18 bc   . .\r
+       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
+       push bc\r
+       call expr\r
+       jr c,error12\r
+       pop bc\r
+       bit 0,b\r
+       push bc\r
+       push de\r
+       push hl\r
+       call nz,bp_clr\r
+       pop hl\r
+       call bp_get_freeslot\r
+       pop de\r
+       ld (ix+002h),l\r
+       ld (ix+003h),h\r
+       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
+       and 00fh\r
+       jr bp_enter\r
 \r
 bp_get_freeslot:\r
-       ld b,BP_CNT             ;0854   06 0c   . .\r
-       ld ix,bp_tab            ;0856   dd 21 b8 0a     . ! . .\r
-l085ah:\r
-       ld a,(ix+000h)          ;085a   dd 7e 00        . ~ .\r
-       and 00fh                ;085d   e6 0f   . .\r
-       ret z                   ;085f   c8      .\r
-       push bc                 ;0860   c5      .\r
-       ld bc,BP_SIZE           ;0861   01 08 00        . . .\r
-       add ix,bc               ;0864   dd 09   . .\r
-       pop bc                  ;0866   c1      .\r
-       djnz l085ah             ;0867   10 f1   . .\r
-       jp ERROR                ;0869   c3 07 01        . . .\r
+       call    bpl_init\r
+\r
+       ld a,(ix+000h)\r
+       and 00fh\r
+       ret z\r
+\r
+       call    bpl_next\r
+error12\r
+       jp ERROR\r
 \r
 bp_get_count:\r
-       call skipbl             ;086c   cd bf 02        . . .\r
-       ld hl,1                 ;086f   21 01 00        ! . .\r
-       cp ':'                  ;0872   fe 3a   . :\r
-       ret nz                  ;0874   c0      .\r
-       inc de                  ;0875   13      .\r
-       call expr               ;0876   cd be 03        . . .\r
-       jp c,ERROR              ;0879   da 07 01        . . .\r
-       ret                     ;087c   c9      .\r
+       call skipbl\r
+       ld hl,1\r
+       cp ':'\r
+       ret nz\r
+       inc de\r
+       call expr\r
+       jr c,error12\r
+       ret\r
 \r
 bp_get_condition:\r
-       call skipbl             ;087d   cd bf 02        . . .\r
-       cp 'I'                  ;0880   fe 49   . I\r
-       ld hl,0                 ;0882   21 00 00        ! . .\r
-       ret nz                  ;0885   c0      .\r
-       inc de                  ;0886   13      .\r
-       call skipbl             ;0887   cd bf 02        . . .\r
-       push de                 ;088a   d5      .\r
-       call expr               ;088b   cd be 03        . . .\r
-       jp c,ERROR              ;088e   da 07 01        . . .\r
-       ex de,hl                ;0891   eb      .\r
-       pop de                  ;0892   d1      .\r
-       push de                 ;0893   d5      .\r
-       sbc hl,de               ;0894   ed 52   . R\r
-       ld b,h                  ;0896   44      D\r
-       ld c,l                  ;0897   4d      M\r
-       ld hl,(expr_p1)         ;0898   2a 18 0b        * . .\r
-       push hl                 ;089b   e5      .\r
-       add hl,bc               ;089c   09      .\r
-       ld de,expr_bufe         ;089d   11 9c 0b        . . .\r
-       call cp_hl_de           ;08a0   cd ee 02        . . .\r
-       jp nc,ERROR             ;08a3   d2 07 01        . . .\r
-       pop hl                  ;08a6   e1      .\r
-       ld (expr_p2),hl         ;08a7   22 1a 0b        " . .\r
-       pop de                  ;08aa   d1      .\r
-       ex de,hl                ;08ab   eb      .\r
-       ldir                    ;08ac   ed b0   . .\r
-       xor a                   ;08ae   af      .\r
-       ld (de),a               ;08af   12      .\r
-       inc de                  ;08b0   13      .\r
-       ex de,hl                ;08b1   eb      .\r
-       ld (expr_p1),hl         ;08b2   22 18 0b        " . .\r
-       ld hl,(expr_p2)         ;08b5   2a 1a 0b        * . .\r
-       ret                     ;08b8   c9      .\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 hl\r
+       ld (expr_p2),hl\r
+       pop de\r
+       ex de,hl\r
+       ldir\r
+       xor a\r
+       ld (de),a\r
+       inc de\r
+       ex de,hl\r
+       ld (expr_p1),hl\r
+       ld hl,(expr_p2)\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 bpddtz:\r
-       ld (reg.l),hl           ;08b9   22 5a 00        " Z .\r
-       pop hl                  ;08bc   e1      .\r
-       dec hl                  ;08bd   2b      +\r
-       ld (REG.PC),hl          ;08be   22 60 00        " ` .\r
-       ld (reg_sp),sp          ;08c1   ed 73 5c 00     . s \ .\r
-       ld sp,reg.l             ;08c5   31 5a 00        1 Z .\r
-       push de                 ;08c8   d5      .\r
-       push bc                 ;08c9   c5      .\r
-       push af                 ;08ca   f5      .\r
-       push ix                 ;08cb   dd e5   . .\r
-       push iy                 ;08cd   fd e5   . .\r
-       ld a,i                  ;08cf   ed 57   . W\r
-       call sub_0004h          ;08d1   cd 04 00        . . .\r
-       ld h,a                  ;08d4   67      g\r
-       ld l,000h               ;08d5   2e 00   . .\r
-       push hl                 ;08d7   e5      .\r
-       ld a,0f3h               ;08d8   3e f3   > .\r
-       jp po,l08dfh            ;08da   e2 df 08        . . .\r
-       ld a,0fbh               ;08dd   3e fb   > .\r
+       ld (reg.l),hl\r
+       pop hl\r
+       dec hl\r
+       ld (reg.pc),hl\r
+       ld (reg_sp),sp\r
+       ld sp,reg.l\r
+       push de\r
+       push bc\r
+       push af\r
+       push ix\r
+       push iy\r
+       ld a,i\r
+       call sub_0004h\r
+       ld h,a\r
+       ld l,000h\r
+       push hl\r
+       ld a,0f3h\r
+       jp po,l08dfh\r
+       ld a,0fbh\r
 l08dfh:\r
-       ld (reg.iff),a          ;08df   32 5e 00        2 ^ .\r
-       ex af,af'               ;08e2   08      .\r
-       push af                 ;08e3   f5      .\r
-       exx                     ;08e4   d9      .\r
-       push bc                 ;08e5   c5      .\r
-       push de                 ;08e6   d5      .\r
-       push hl                 ;08e7   e5      .\r
-       call sub_097ah          ;08e8   cd 7a 09        . z .\r
-       ld a,(b_21e2_start)     ;08eb   3a e2 21        : . !\r
-       dec a                   ;08ee   3d      =\r
-       jr z,l090bh             ;08ef   28 1a   ( .\r
-       call inchar             ;08f1   cd 73 02        . s .\r
-       jr c,l0902h             ;08f4   38 0c   8 .\r
-       call sub_0913h          ;08f6   cd 13 09        . . .\r
-       and a                   ;08f9   a7      .\r
-       jp z,user_go            ;08fa   ca 25 0a        . % .\r
-       and 083h                ;08fd   e6 83   . .\r
-       jp z,l2151h             ;08ff   ca 51 21        . Q !\r
+       ld (reg.iff),a\r
+       ex af,af'\r
+       push af\r
+       exx\r
+       push bc\r
+       push de\r
+       push hl\r
+       call sub_097ah\r
+       ld a,(b_21e2_start)\r
+       dec a\r
+       jr z,l090bh\r
+       call inchar\r
+       jr c,l0902h\r
+       call sub_0913h\r
+       and a\r
+       jp z,user_go\r
+       and 083h\r
+       jp z,l2151h\r
 l0902h:\r
-       call bp_clr_temporary   ;0902   cd 54 07        . T .\r
-       call p_cpustat          ;0905   cd 30 06        . 0 .\r
-       jp mainloop             ;0908   c3 bd 00        . . .\r
+       call bp_clr_temporary\r
+       call p_cpustat\r
+       jp mainloop\r
 \r
 l090bh:\r
-       ld (b_21e2_start),a     ;090b   32 e2 21        2 . !\r
-       ld c,007h               ;090e   0e 07   . .\r
-       jp l0a41h               ;0910   c3 41 0a        . A .\r
+       ld (b_21e2_start),a\r
+       ld c,007h\r
+       jp l0a41h\r
 \r
 sub_0913h:\r
-       ld a,080h               ;0913   3e 80   > .\r
-       ex af,af'               ;0915   08      .\r
-       sub a                   ;0916   97      .\r
-       ld (l0941h),a           ;0917   32 41 09        2 A .\r
-       ld b,BP_CNT             ;091a   06 0c   . .\r
-       ld ix,bp_tab            ;091c   dd 21 b8 0a     . ! . .\r
-l0920h:\r
-       ld a,(ix+000h)          ;0920   dd 7e 00        . ~ .\r
-       and 007h                ;0923   e6 07   . .\r
-       jr z,l0938h             ;0925   28 11   ( .\r
-       ld e,(ix+002h)          ;0927   dd 5e 02        . ^ .\r
-       ld d,(ix+003h)          ;092a   dd 56 03        . V .\r
-       ld hl,(REG.PC)          ;092d   2a 60 00        * ` .\r
-       call cp_hl_de           ;0930   cd ee 02        . . .\r
-       push bc                 ;0933   c5      .\r
-       call z,sub_0942h        ;0934   cc 42 09        . B .\r
-       pop bc                  ;0937   c1      .\r
+       ld a,080h\r
+       ex af,af'\r
+       sub a\r
+       ld (l0941h),a\r
+       call    bpl_init\r
+\r
+       ld a,(ix+000h)\r
+       and 007h\r
+       jr z,l0938h\r
+       ld e,(ix+002h)\r
+       ld d,(ix+003h)\r
+       ld hl,(reg.pc)\r
+       call cp_hl_de\r
+       push bc\r
+       call z,sub_0942h\r
+       pop bc\r
 l0938h:\r
-       ld de,BP_SIZE           ;0938   11 08 00        . . .\r
-       add ix,de               ;093b   dd 19   . .\r
-       djnz l0920h             ;093d   10 e1   . .\r
-       ex af,af'               ;093f   08      .\r
-       ret                     ;0940   c9      .\r
+\r
+       call    bpl_next\r
+       ex af,af'\r
+       ret\r
 \r
 sub_0942h:\r
-       ex af,af'               ;0942   08      .\r
-       res 7,a                 ;0943   cb bf   . .\r
-       ex af,af'               ;0945   08      .\r
-       ld e,(ix+006h)          ;0946   dd 5e 06        . ^ .\r
-       ld d,(ix+007h)          ;0949   dd 56 07        . V .\r
-       ld a,d                  ;094c   7a      z\r
-       or e                    ;094d   b3      .\r
-       ld hl,0ffffh            ;094e   21 ff ff        ! . .\r
-       call nz,expr            ;0951   c4 be 03        . . .\r
-       ld a,h                  ;0954   7c      |\r
-       or l                    ;0955   b5      .\r
-       jr z,l0969h             ;0956   28 11   ( .\r
-       ld e,(ix+004h)          ;0958   dd 5e 04        . ^ .\r
-       ld d,(ix+005h)          ;095b   dd 56 05        . V .\r
-       dec de                  ;095e   1b      .\r
-       ld a,d                  ;095f   7a      z\r
-       or e                    ;0960   b3      .\r
-       jr z,l0974h             ;0961   28 11   ( .\r
-       ld (ix+004h),e          ;0963   dd 73 04        . s .\r
-       ld (ix+005h),d          ;0966   dd 72 05        . r .\r
+       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
+       ld a,d\r
+       or e\r
+       jr z,l0974h\r
+       ld (ix+004h),e\r
+       ld (ix+005h),d\r
 l0969h:\r
-       bit 4,(ix+000h)         ;0969   dd cb 00 66     . . . f\r
-       ret z                   ;096d   c8      .\r
-       ld a,001h               ;096e   3e 01   > .\r
-       ld (l0941h),a           ;0970   32 41 09        2 A .\r
-       ret                     ;0973   c9      .\r
+       bit 4,(ix+000h)\r
+       ret z\r
+       ld a,001h\r
+       ld (l0941h),a\r
+       ret\r
 l0974h:\r
-       ex af,af'               ;0974   08      .\r
-       or (ix+000h)            ;0975   dd b6 00        . . .\r
-       ex af,af'               ;0978   08      .\r
-       ret                     ;0979   c9      .\r
+       ex af,af'\r
+       or (ix+000h)\r
+       ex af,af'\r
+       ret\r
 \r
 sub_097ah:\r
-       ld b,BP_CNT             ;097a   06 0c   . .\r
-       ld ix,bp_tab            ;097c   dd 21 b8 0a     . ! . .\r
-l0980h:\r
-       bit 5,(ix+000h)         ;0980   dd cb 00 6e     . . . n\r
-       res 5,(ix+000h)         ;0984   dd cb 00 ae     . . . .\r
-       jr z,l099ah             ;0988   28 10   ( .\r
-       ld l,(ix+002h)          ;098a   dd 6e 02        . n .\r
-       ld h,(ix+003h)          ;098d   dd 66 03        . f .\r
-       ld a,(l0003h)           ;0990   3a 03 00        : . .\r
-       cp (hl)                 ;0993   be      .\r
-       jr nz,l099ah            ;0994   20 04     .\r
-       ld a,(ix+001h)          ;0996   dd 7e 01        . ~ .\r
-       ld (hl),a               ;0999   77      w\r
+       call    bpl_init\r
+\r
+       bit 5,(ix+000h)\r
+       res 5,(ix+000h)\r
+       jr z,l099ah\r
+       ld l,(ix+002h)\r
+       ld h,(ix+003h)\r
+       ld a,(l0003h)\r
+       cp (hl)\r
+       jr nz,l099ah\r
+       ld a,(ix+001h)\r
+       ld (hl),a\r
 l099ah:\r
-       res 3,(ix+000h)         ;099a   dd cb 00 9e     . . . .\r
-       ld de,BP_SIZE           ;099e   11 08 00        . . .\r
-       add ix,de               ;09a1   dd 19   . .\r
-       djnz l0980h             ;09a3   10 db   . .\r
-       ret                     ;09a5   c9      .\r
+       res 3,(ix+000h)\r
+\r
+       call    bpl_next\r
+       ret\r
 \r
 sub_09a6h:\r
-       ld b,BP_CNT             ;09a6   06 0c   . .\r
-       ld ix,bp_tab            ;09a8   dd 21 b8 0a     . ! . .\r
-l09ach:\r
-       ld a,(ix+000h)          ;09ac   dd 7e 00        . ~ .\r
-       and 003h                ;09af   e6 03   . .\r
-       jr z,l09c0h             ;09b1   28 0d   ( .\r
-       ld e,(ix+002h)          ;09b3   dd 5e 02        . ^ .\r
-       ld d,(ix+003h)          ;09b6   dd 56 03        . V .\r
-       ld hl,(REG.PC)          ;09b9   2a 60 00        * ` .\r
-       call cp_hl_de           ;09bc   cd ee 02        . . .\r
-       ret z                   ;09bf   c8      .\r
+       call    bpl_init\r
+\r
+       ld a,(ix+000h)\r
+       and 003h\r
+       jr z,l09c0h\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
-       ld de,BP_SIZE           ;09c0   11 08 00        . . .\r
-       add ix,de               ;09c3   dd 19   . .\r
-       djnz l09ach             ;09c5   10 e5   . .\r
-       sub a                   ;09c7   97      .\r
-       inc a                   ;09c8   3c      <\r
-       ret                     ;09c9   c9      .\r
+\r
+       call    bpl_next\r
+       sub a\r
+       inc a\r
+       ret\r
 \r
 sub_09cah:\r
-       call bp_get_freeslot    ;09ca   cd 54 08        . T .\r
-       ld (ix+004h),001h       ;09cd   dd 36 04 01     . 6 . .\r
-       ld (ix+005h),000h       ;09d1   dd 36 05 00     . 6 . .\r
-       ld (ix+002h),l          ;09d5   dd 75 02        . u .\r
-       ld (ix+003h),h          ;09d8   dd 74 03        . t .\r
-       ld (ix+006h),000h       ;09db   dd 36 06 00     . 6 . .\r
-       ld (ix+007h),000h       ;09df   dd 36 07 00     . 6 . .\r
-       ld a,(b_21e2_start)     ;09e3   3a e2 21        : . !\r
-       and a                   ;09e6   a7      .\r
-       ld a,008h               ;09e7   3e 08   > .\r
-       jr nz,l09edh            ;09e9   20 02     .\r
-       ld a,004h               ;09eb   3e 04   > .\r
+       call bp_get_freeslot\r
+       ld (ix+004h),001h\r
+       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
+       jr nz,l09edh\r
+       rra\r
 l09edh:\r
-       ld (ix+000h),a          ;09ed   dd 77 00        . w .\r
-       ret                     ;09f0   c9      .\r
-\r
-sub_09f1h:\r
-       ld b,BP_CNT             ;09f1   06 0c   . .\r
-       ld ix,bp_tab            ;09f3   dd 21 b8 0a     . ! . .\r
-l09f7h:\r
-       ld a,(ix+000h)          ;09f7   dd 7e 00        . ~ .\r
-       and c                   ;09fa   a1      .\r
-       jr z,l0a1dh             ;09fb   28 20   (\r
-       set 5,(ix+000h)         ;09fd   dd cb 00 ee     . . . .\r
-       ld l,(ix+002h)          ;0a01   dd 6e 02        . n .\r
-       ld h,(ix+003h)          ;0a04   dd 66 03        . f .\r
-       ld a,(hl)               ;0a07   7e      ~\r
-       ld (ix+001h),a          ;0a08   dd 77 01        . w .\r
-       ld a,(l0003h)           ;0a0b   3a 03 00        : . .\r
-       ld (hl),a               ;0a0e   77      w\r
-       and 038h                ;0a0f   e6 38   . 8\r
-       ld h,000h               ;0a11   26 00   & .\r
-       ld l,a                  ;0a13   6f      o\r
-       ld (hl),0c3h            ;0a14   36 c3   6 .\r
-       inc hl                  ;0a16   23      #\r
-       ld de,bpddtz            ;0a17   11 b9 08        . . .\r
-       ld (hl),e               ;0a1a   73      s\r
-       inc hl                  ;0a1b   23      #\r
-       ld (hl),d               ;0a1c   72      r\r
+       ld (ix+000h),a\r
+       ret\r
+\r
+bp_set_to_mem:\r
+       call    bpl_init\r
+\r
+       ld a,(ix+000h)\r
+       and c\r
+       jr z,l0a1dh\r
+       set 5,(ix+000h)\r
+       ld l,(ix+002h)\r
+       ld h,(ix+003h)\r
+       ld a,(hl)\r
+       ld (ix+001h),a\r
+       ld a,(l0003h)\r
+       ld (hl),a\r
+       and 038h\r
+       ld h,000h\r
+       ld l,a\r
+       ld (hl),0c3h\r
+       inc hl\r
+       ld de,bpddtz\r
+       ld (hl),e\r
+       inc hl\r
+       ld (hl),d\r
 l0a1dh:\r
-       ld de,BP_SIZE           ;0a1d   11 08 00        . . .\r
-       add ix,de               ;0a20   dd 19   . .\r
-       djnz l09f7h             ;0a22   10 d3   . .\r
-       ret                     ;0a24   c9      .\r
+\r
+       call    bpl_next\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 user_go:\r
-       sub a                   ;0a25   97      .\r
-       ld (b_21e2_start),a     ;0a26   32 e2 21        2 . !\r
-       ld a,(l0941h)           ;0a29   3a 41 09        : A .\r
-       and a                   ;0a2c   a7      .\r
-       call nz,p_cpustat       ;0a2d   c4 30 06        . 0 .\r
-       call sub_09a6h          ;0a30   cd a6 09        . . .\r
-       ld c,007h               ;0a33   0e 07   . .\r
-       jr nz,l0a41h            ;0a35   20 0a     .\r
-       ld a,001h               ;0a37   3e 01   > .\r
-       ld (b_21e2_start),a     ;0a39   32 e2 21        2 . !\r
-       call sub_1ffeh          ;0a3c   cd fe 1f        . . .\r
-       ld c,008h               ;0a3f   0e 08   . .\r
+       sub a\r
+       ld (b_21e2_start),a\r
+       ld a,(l0941h)\r
+       and a\r
+       call nz,p_cpustat\r
+       call sub_09a6h\r
+       ld c,007h\r
+       jr nz,l0a41h\r
+       ld a,001h\r
+       ld (b_21e2_start),a\r
+       call sub_1ffeh\r
+       ld c,008h\r
 l0a41h:\r
-       call sub_09f1h          ;0a41   cd f1 09        . . .\r
-       ld sp,reg.l2            ;0a44   31 46 00        1 F .\r
-       pop hl                  ;0a47   e1      .\r
-       pop de                  ;0a48   d1      .\r
-       pop bc                  ;0a49   c1      .\r
-       pop af                  ;0a4a   f1      .\r
-       exx                     ;0a4b   d9      .\r
-       ex af,af'               ;0a4c   08      .\r
-       pop af                  ;0a4d   f1      .\r
-       ld i,a                  ;0a4e   ed 47   . G\r
-       pop iy                  ;0a50   fd e1   . .\r
-       pop ix                  ;0a52   dd e1   . .\r
-       pop af                  ;0a54   f1      .\r
-       pop bc                  ;0a55   c1      .\r
-       pop de                  ;0a56   d1      .\r
-       pop hl                  ;0a57   e1      .\r
-       ld sp,(reg_sp)          ;0a58   ed 7b 5c 00     . { \ .\r
-       jp reg.iff              ;0a5c   c3 5e 00        . ^ .\r
+       call bp_set_to_mem\r
+       ld sp,reg.l2\r
+       pop hl\r
+       pop de\r
+       pop bc\r
+       pop af\r
+       exx\r
+       ex af,af'\r
+       pop af\r
+       ld i,a\r
+       pop iy\r
+       pop ix\r
+       pop af\r
+       pop bc\r
+       pop de\r
+       pop hl\r
+       ld sp,(reg_sp)\r
+       jp reg.iff\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 bp_clr_condition:\r
-       ld a,(ix+000h)          ;0a5f   dd 7e 00        . ~ .\r
-       and 003h                ;0a62   e6 03   . .\r
-       ret nz                  ;0a64   c0      .\r
-       ld e,(ix+006h)          ;0a65   dd 5e 06        . ^ .\r
-       ld d,(ix+007h)          ;0a68   dd 56 07        . V .\r
-       ld a,d                  ;0a6b   7a      z\r
-       or e                    ;0a6c   b3      .\r
-       ret z                   ;0a6d   c8      .\r
-       push bc                 ;0a6e   c5      .\r
-       ld h,d                  ;0a6f   62      b\r
-       ld l,e                  ;0a70   6b      k\r
-       sub a                   ;0a71   97      .\r
-       ld (ix+006h),a          ;0a72   dd 77 06        . w .\r
-       ld (ix+007h),a          ;0a75   dd 77 07        . w .\r
-       ld bc,0ffffh            ;0a78   01 ff ff        . . .\r
-       cpir                    ;0a7b   ed b1   . .\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                 ;0a7d   d5      .\r
-       ld de,(expr_p1)         ;0a7e   ed 5b 18 0b     . [ . .\r
-       call cp_hl_de           ;0a82   cd ee 02        . . .\r
-       pop de                  ;0a85   d1      .\r
-       jr nc,l0a93h            ;0a86   30 0b   0 .\r
-       call sub_0a99h          ;0a88   cd 99 0a        . . .\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)                       ;0a8b   7e      ~\r
-       ldi                     ;0a8c   ed a0   . .\r
-       and a                   ;0a8e   a7      .\r
-       jr nz,l0a8bh            ;0a8f   20 fa     .\r
-       jr l0a7dh               ;0a91   18 ea   . .\r
+       ld a,(hl)\r
+       ldi\r
+       and a\r
+       jr nz,l0a8bh\r
+       jr l0a7dh\r
 l0a93h:\r
-       ld (expr_p1),de         ;0a93   ed 53 18 0b     . S . .\r
-       pop bc                  ;0a97   c1      .\r
-       ret                     ;0a98   c9      .\r
+       ld (expr_p1),de\r
+       pop bc\r
+       ret\r
 \r
 sub_0a99h:\r
-       ld iy,bp_tab            ;0a99   fd 21 b8 0a     . ! . .\r
-       push de                 ;0a9d   d5      .\r
+       ld iy,bp_tab\r
+       push de\r
 l0a9eh:\r
-       ld e,(iy+006h)          ;0a9e   fd 5e 06        . ^ .\r
-       ld d,(iy+007h)          ;0aa1   fd 56 07        . V .\r
-       call cp_hl_de           ;0aa4   cd ee 02        . . .\r
-       jr z,l0ab0h             ;0aa7   28 07   ( .\r
-       ld de,BP_SIZE           ;0aa9   11 08 00        . . .\r
-       add iy,de               ;0aac   fd 19   . .\r
-       jr l0a9eh               ;0aae   18 ee   . .\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                  ;0ab0   d1      .\r
-       ld (iy+006h),e          ;0ab1   fd 73 06        . s .\r
-       ld (iy+007h),d          ;0ab4   fd 72 07        . r .\r
-       ret                     ;0ab7   c9      .\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       ;0bb2   cd 1d 06        . . .\r
-       jr c,l0bc3h             ;0bb5   38 0c   8 .\r
-       inc de                  ;0bb7   13      .\r
-       push af                 ;0bb8   f5      .\r
-       call assert_eol         ;0bb9   cd d6 02        . . .\r
-       pop af                  ;0bbc   f1      .\r
-       call sub_0bdch          ;0bbd   cd dc 0b        . . .\r
-       jp l0c15h               ;0bc0   c3 15 0c        . . .\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         ;0bc3   cd d6 02        . . .\r
-       xor a                   ;0bc6   af      .\r
+       call assert_eol\r
+       xor a\r
 l0bc7h:\r
-       push af                 ;0bc7   f5      .\r
-       call sub_0bdch          ;0bc8   cd dc 0b        . . .\r
-       call outbl4             ;0bcb   cd 99 02        . . .\r
-       pop af                  ;0bce   f1      .\r
-       inc a                   ;0bcf   3c      <\r
-       bit 0,a                 ;0bd0   cb 47   . G\r
-       push af                 ;0bd2   f5      .\r
-       call z,crlf             ;0bd3   cc a3 02        . . .\r
-       pop af                  ;0bd6   f1      .\r
-       cp YREG_CNT             ;0bd7   fe 0a   . .\r
-       jr c,l0bc7h             ;0bd9   38 ec   8 .\r
-       ret                     ;0bdb   c9      .\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                  ;0bdc   4f      O\r
-       ld b,0                  ;0bdd   06 00   . .\r
-       add a,'0'+080h          ;0bdf   c6 b0   . .\r
-       ld de,msg_Y+1           ;0be1   11 9d 0b        . . .\r
-       ld (de),a               ;0be4   12      .\r
-       dec de                  ;0be5   1b      .\r
-       ld hl,reg_Y             ;0be6   21 9e 0b        ! . .\r
-       add hl,bc               ;0be9   09      .\r
-       add hl,bc               ;0bea   09      .\r
-       ex de,hl                ;0beb   eb      .\r
-       ld c,003h               ;0bec   0e 03   . .\r
-       jp l0c33h               ;0bee   c3 33 0c        . 3 .\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
+;      eXamine (display) all cpu registers and\r
+;      the instruction at the current program counter\r
+; > X register\r
+;      eXamine (and substitute) a register\r
+\r
 \r
 cmd_X:\r
-       call skipbl             ;0bf1   cd bf 02        . . .\r
-       call sub_0caeh          ;0bf4   cd ae 0c        . . .\r
-       jp nc,p_cpustat0        ;0bf7   d2 2d 06        . - .\r
-       call assert_eol         ;0bfa   cd d6 02        . . .\r
-       ld a,b                  ;0bfd   78      x\r
-       cp 01eh                 ;0bfe   fe 1e   . .\r
-       jr z,l0c5fh             ;0c00   28 5d   ( ]\r
-       cp 01fh                 ;0c02   fe 1f   . .\r
-       jr z,l0c4fh             ;0c04   28 49   ( I\r
-       cp 01dh                 ;0c06   fe 1d   . .\r
-       jp z,ERROR              ;0c08   ca 07 01        . . .\r
-       ex de,hl                ;0c0b   eb      .\r
-       ld hl,b_0cc3_start      ;0c0c   21 c3 0c        ! . .\r
-       call sel_dc_string      ;0c0f   cd 3d 03        . = .\r
+       call skipbl\r
+       call sub_0caeh\r
+       jp nc,p_cpustat0\r
+       call assert_eol\r
+       ld a,b\r
+       cp 01eh\r
+       jr z,l0c5fh\r
+       cp 01fh\r
+       jr z,l0c4fh\r
+       cp 01dh\r
+       jp z,ERROR\r
+       ex de,hl\r
+       ld hl,t_reg_names\r
+       call sel_dc_string\r
 l0c12h:\r
-       call l0c33h             ;0c12   cd 33 0c        . 3 .\r
+       call l0c33h\r
 l0c15h:\r
-       call outbl              ;0c15   cd 9f 02        . . .\r
-       push de                 ;0c18   d5      .\r
-       push bc                 ;0c19   c5      .\r
-       call get_line           ;0c1a   cd 4e 01        . N .\r
-       call skipbl             ;0c1d   cd bf 02        . . .\r
-       jr z,l0c30h             ;0c20   28 0e   ( .\r
-       call sub_0363h          ;0c22   cd 63 03        . c .\r
-       ld b,h                  ;0c25   44      D\r
-       ld c,l                  ;0c26   4d      M\r
-       pop af                  ;0c27   f1      .\r
-       pop hl                  ;0c28   e1      .\r
-       ld (hl),c               ;0c29   71      q\r
-       bit 0,a                 ;0c2a   cb 47   . G\r
-       ret z                   ;0c2c   c8      .\r
-       inc hl                  ;0c2d   23      #\r
-       ld (hl),b               ;0c2e   70      p\r
-       ret                     ;0c2f   c9      .\r
+       call outbl\r
+       push de\r
+       push bc\r
+       call get_line\r
+       call skipbl\r
+       jr z,l0c30h\r
+       call sub_0363h\r
+       ex de,hl\r
+       pop bc\r
+       pop hl\r
+       ld (hl),e\r
+       bit 0,c\r
+       ret z\r
+       inc hl\r
+       ld (hl),d\r
+       ret\r
 l0c30h:\r
-       pop af                  ;0c30   f1      .\r
-       pop hl                  ;0c31   e1      .\r
-       ret                     ;0c32   c9      .\r
+       pop af\r
+       pop hl\r
+       ret\r
+\r
 l0c33h:\r
-       ld b,c                  ;0c33   41      A\r
-       call pstr               ;0c34   cd 88 02        . . .\r
-       ld a,'='                ;0c37   3e 3d   > =\r
-       call outchar            ;0c39   cd 5d 02        . ] .\r
-       ld a,(de)               ;0c3c   1a      .\r
-       bit 0,b                 ;0c3d   cb 40   . @\r
-       jp z,out_hex            ;0c3f   ca 18 02        . . .\r
-       ld l,a                  ;0c42   6f      o\r
-       inc de                  ;0c43   13      .\r
-       ld a,(de)               ;0c44   1a      .\r
-       dec de                  ;0c45   1b      .\r
-       ld h,a                  ;0c46   67      g\r
-       bit 1,b                 ;0c47   cb 48   . H\r
-       jp z,out_hl             ;0c49   ca 13 02        . . .\r
-       jp out.hl.@             ;0c4c   c3 a4 01        . . .\r
+       call pstr\r
+       call    pstr_inl\r
+       dc      '='\r
+       ld a,(de)\r
+       bit 0,c\r
+       jp z,out_hex\r
+       ld l,a\r
+       inc de\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
 \r
 l0c4fh:\r
-       call p_f                ;0c4f   cd 6e 06        . n .\r
-       ld a,0f3h               ;0c52   3e f3   > .\r
-       ld (reg.iff),a          ;0c54   32 5e 00        2 ^ .\r
-       scf                     ;0c57   37      7\r
-       call sub_0c6ah          ;0c58   cd 6a 0c        . j .\r
-       ld (reg.f),a            ;0c5b   32 54 00        2 T .\r
-       ret                     ;0c5e   c9      .\r
+       call p_f\r
+       ld a,0f3h\r
+       ld (reg.iff),a\r
+       scf\r
+       call sub_0c6ah\r
+       ld (reg.f),a\r
+       ret\r
 l0c5fh:\r
-       call p_f2               ;0c5f   cd 81 06        . . .\r
-       and a                   ;0c62   a7      .\r
-       call sub_0c6ah          ;0c63   cd 6a 0c        . j .\r
-       ld (reg.f2),a           ;0c66   32 4c 00        2 L .\r
-       ret                     ;0c69   c9      .\r
+       call p_f2\r
+       and a\r
+       call sub_0c6ah\r
+       ld (reg.f2),a\r
+       ret\r
+\r
 sub_0c6ah:\r
-       ex af,af'               ;0c6a   08      .\r
-       ld b,000h               ;0c6b   06 00   . .\r
-       call outbl              ;0c6d   cd 9f 02        . . .\r
-       call assert_eol         ;0c70   cd d6 02        . . .\r
-       call get_line           ;0c73   cd 4e 01        . N .\r
+       push af\r
+       call outbl\r
+       call assert_eol\r
+       call get_line\r
+       pop af\r
+       ex af,af'\r
+       ld b,0\r
 l0c76h:\r
-       call skipbl             ;0c76   cd bf 02        . . .\r
-       ld a,b                  ;0c79   78      x\r
-       ret z                   ;0c7a   c8      .\r
-       push bc                 ;0c7b   c5      .\r
-       ld hl,b_0ca4_start      ;0c7c   21 a4 0c        ! . .\r
-       call lookupch           ;0c7f   cd f3 02        . . .\r
-       jp nc,ERROR             ;0c82   d2 07 01        . . .\r
-       ld a,b                  ;0c85   78      x\r
-       cp 008h                 ;0c86   fe 08   . .\r
-       jr z,l0c97h             ;0c88   28 0d   ( .\r
-       pop bc                  ;0c8a   c1      .\r
-       rlca                    ;0c8b   07      .\r
-       rlca                    ;0c8c   07      .\r
-       rlca                    ;0c8d   07      .\r
-       add a,0c0h              ;0c8e   c6 c0   . .\r
-       ld (l0c94h),a           ;0c90   32 94 0c        2 . .\r
-       defb 0cbh               ;0c93   cb      .\r
-l0c94h:\r
-       defb 0c0h               ;0c94   c0      .\r
-       jr l0c76h               ;0c95   18 df   . .\r
+       call skipbl\r
+       ld a,b\r
+       ret z\r
+       push bc\r
+       ld hl,t_flag_names\r
+       call lookupch\r
+       jp nc,ERROR\r
+       inc     b\r
+       xor     a\r
+       scf\r
+nxt_f:\r
+       rla\r
+       djnz    nxt_f\r
+       pop     bc\r
+       jr      c,l0c97h\r
+       or      b\r
+       ld      b,a\r
+       jr l0c76h\r
+\r
 l0c97h:\r
-       ex af,af'               ;0c97   08      .\r
-       jp nc,ERROR             ;0c98   d2 07 01        . . .\r
-       ex af,af'               ;0c9b   08      .\r
-       ld a,0fbh               ;0c9c   3e fb   > .\r
-       ld (reg.iff),a          ;0c9e   32 5e 00        2 ^ .\r
-       pop bc                  ;0ca1   c1      .\r
-       jr l0c76h               ;0ca2   18 d2   . .\r
-\r
-b_0ca4_start:\r
+       ex af,af'\r
+       jp nc,ERROR\r
+       ex af,af'\r
+       ld a,0fbh\r
+       ld (reg.iff),a\r
+       jr l0c76h\r
+\r
+t_flag_names:\r
        db      'CNV H ZSE',0\r
 \r
 sub_0caeh:\r
-       call sub_0303h          ;0cae   cd 03 03        . . .\r
-       ret nc                  ;0cb1   d0      .\r
-       ld a,b                  ;0cb2   78      x\r
-       add a,b                 ;0cb3   80      .\r
-       add a,b                 ;0cb4   80      .\r
-       ld hl,b_0cfa_start      ;0cb5   21 fa 0c        ! . .\r
-       call add_hl_a           ;0cb8   cd b9 02        . . .\r
-       ld c,(hl)               ;0cbb   4e      N\r
-       inc hl                  ;0cbc   23      #\r
-       ld a,(hl)               ;0cbd   7e      ~\r
-       inc hl                  ;0cbe   23      #\r
-       ld h,(hl)               ;0cbf   66      f\r
-       ld l,a                  ;0cc0   6f      o\r
-       scf                     ;0cc1   37      7\r
-       ret                     ;0cc2   c9      .\r
-\r
-b_0cc3_start:\r
+       call sub_0303h\r
+       ret nc\r
+       ld a,b\r
+       add a,b\r
+       add a,b\r
+       ld hl,b_0cfa_start\r
+       call add_hl_a\r
+       ld c,(hl)\r
+       inc hl\r
+       ld a,(hl)\r
+       inc hl\r
+       ld h,(hl)\r
+       ld l,a\r
+       scf\r
+       ret\r
+\r
+t_reg_names:\r
        DC      'BC'''\r
        DC      'DE'''\r
        DC      'HL'''\r
@@ -2070,1046 +2301,1370 @@ b_0cc3_start:
        DB      0\r
 \r
 b_0cfa_start:\r
-       db      003h            ;0cfa   03      .\r
-       dw      reg.c2          ;0cfb   4a 00   J .\r
-       db      003h            ;0cfd   03      .\r
-       dw      reg.e2          ;0cfe   48 00   H .\r
-       db      003h            ;0d00   03      .\r
-       dw      reg.l2          ;0d01   46 00   F .\r
-       db      003h            ;0d03   03      .\r
-       dw      reg.c           ;0d04   56 00   V .\r
-       db      003h            ;0d06   03      .\r
-       dw      reg.e           ;0d07   58 00   X .\r
-       db      003h            ;0d09   03      .\r
-       dw      reg.l           ;0d0a   5a 00   Z .\r
-       db      000h            ;0d0c   00      .\r
-       dw      reg.a2          ;0d0d   4d 00   M .\r
-       db      000h            ;0d0f   00      .\r
-       dw      reg.b2          ;0d10   4b 00   K .\r
-       db      000h            ;0d12   00      .\r
-       dw      reg.c2          ;0d13   4a 00   J .\r
-       db      000h            ;0d15   00      .\r
-       dw      reg.d2          ;0d16   49 00   I .\r
-       db      000h            ;0d18   00      .\r
-       dw      reg.e2          ;0d19   48 00   H .\r
-       db      000h            ;0d1b   00      .\r
-       dw      reg.h2          ;0d1c   47 00   G .\r
-       db      000h            ;0d1e   00      .\r
-       dw      reg.l2          ;0d1f   46 00   F .\r
-       db      000h            ;0d21   00      .\r
-       dw      reg.a           ;0d22   55 00   U .\r
-       db      000h            ;0d24   00      .\r
-       dw      reg.b           ;0d25   57 00   W .\r
-       db      000h            ;0d27   00      .\r
-       dw      reg.c           ;0d28   56 00   V .\r
-       db      000h            ;0d2a   00      .\r
-       dw      reg.d           ;0d2b   59 00   Y .\r
-       db      000h            ;0d2d   00      .\r
-       dw      reg.e           ;0d2e   58 00   X .\r
-       db      000h            ;0d30   00      .\r
-       dw      reg.h           ;0d31   5b 00   [ .\r
-       db      000h            ;0d33   00      .\r
-       dw      reg.l           ;0d34   5a 00   Z .\r
-       db      003h            ;0d36   03      .\r
-       dw      reg.ix          ;0d37   52 00   R .\r
-       db      003h            ;0d39   03      .\r
-       dw      reg.iy          ;0d3a   50 00   P .\r
-       db      003h            ;0d3c   03      .\r
-       dw      reg_sp          ;0d3d   5c 00   \ .\r
-       db      003h            ;0d3f   03      .\r
-       dw      REG.PC          ;0d40   60 00   ` .\r
-       db      003h            ;0d42   03      .\r
-       dw      reg.ix          ;0d43   52 00   R .\r
-       db      003h            ;0d45   03      .\r
-       dw      reg.iy          ;0d46   50 00   P .\r
-       db      003h            ;0d48   03      .\r
-       dw      reg_sp          ;0d49   5c 00   \ .\r
-       db      003h            ;0d4b   03      .\r
-       dw      REG.PC          ;0d4c   60 00   ` .\r
-       db      000h            ;0d4e   00      .\r
-       dw      reg.i           ;0d4f   4f 00   O .\r
-       db      003h            ;0d51   03      .\r
-       dw      l004eh          ;0d52   4e 00   N .\r
-       db      000h            ;0d54   00      .\r
-       dw      reg.f2          ;0d55   4c 00   L .\r
-       db      000h            ;0d57   00      .\r
-       dw      reg.f           ;0d58   54 00   T .\r
+       db      003h\r
+       dw      reg.c2\r
+       db      003h\r
+       dw      reg.e2\r
+       db      003h\r
+       dw      reg.l2\r
+       db      003h\r
+       dw      reg.c\r
+       db      003h\r
+       dw      reg.e\r
+       db      003h\r
+       dw      reg.l\r
+       db      000h\r
+       dw      reg.a2\r
+       db      000h\r
+       dw      reg.b2\r
+       db      000h\r
+       dw      reg.c2\r
+       db      000h\r
+       dw      reg.d2\r
+       db      000h\r
+       dw      reg.e2\r
+       db      000h\r
+       dw      reg.h2\r
+       db      000h\r
+       dw      reg.l2\r
+       db      000h\r
+       dw      reg.a\r
+       db      000h\r
+       dw      reg.b\r
+       db      000h\r
+       dw      reg.c\r
+       db      000h\r
+       dw      reg.d\r
+       db      000h\r
+       dw      reg.e\r
+       db      000h\r
+       dw      reg.h\r
+       db      000h\r
+       dw      reg.l\r
+       db      003h\r
+       dw      reg.ix\r
+       db      003h\r
+       dw      reg.iy\r
+       db      003h\r
+       dw      reg_sp\r
+       db      003h\r
+       dw      reg.pc\r
+       db      003h\r
+       dw      reg.ix\r
+       db      003h\r
+       dw      reg.iy\r
+       db      003h\r
+       dw      reg_sp\r
+       db      003h\r
+       dw      reg.pc\r
+       db      000h\r
+       dw      reg.i\r
+       db      003h\r
+       dw      l004eh\r
+       db      000h\r
+       dw      reg.f2\r
+       db      000h\r
+       dw      reg.f\r
+\r
+;-------------------------------------------------------------------------------\r
+; > S [startaddr]\r
+;      Substitute memory\r
 \r
 cmd_S:\r
-       ld hl,(last_S)          ;0d5a   2a 90 0d        * . .\r
-       call get_lastarg_def    ;0d5d   cd 69 03        . i .\r
+       ld hl,(last_S)\r
+       call get_lastarg_def\r
 l0d60h:\r
-       ld (last_S),hl          ;0d60   22 90 0d        " . .\r
-       call out.hl.@           ;0d63   cd a4 01        . . .\r
-       call outbl              ;0d66   cd 9f 02        . . .\r
-       ld a,(hl)               ;0d69   7e      ~\r
-       call out_hex            ;0d6a   cd 18 02        . . .\r
-       call outbl2             ;0d6d   cd 9c 02        . . .\r
-       call get_line           ;0d70   cd 4e 01        . N .\r
-       call skipbl             ;0d73   cd bf 02        . . .\r
-       inc hl                  ;0d76   23      #\r
-       jr z,l0d60h             ;0d77   28 e7   ( .\r
-       dec hl                  ;0d79   2b      +\r
-       inc de                  ;0d7a   13      .\r
-       cp '.'                  ;0d7b   fe 2e   . .\r
-       jp z,assert_eol         ;0d7d   ca d6 02        . . .\r
-       cp '-'                  ;0d80   fe 2d   . -\r
-       jr nz,l0d8ah            ;0d82   20 06     .\r
-       ld a,(de)               ;0d84   1a      .\r
-       or a                    ;0d85   b7      .\r
-       dec hl                  ;0d86   2b      +\r
-       jr z,l0d60h             ;0d87   28 d7   ( .\r
-       inc hl                  ;0d89   23      #\r
+       ld (last_S),hl\r
+       call out.hl.@\r
+       call outbl\r
+       ld a,(hl)\r
+       call out_hex\r
+       call outbl2\r
+       call get_line\r
+       call skipbl\r
+       inc hl\r
+       jr z,l0d60h\r
+       dec hl\r
+       inc de\r
+       cp '.'\r
+       jr      nz,cmds_dash\r
+       call get_char_upper\r
+       or      a\r
+       jr      nz,l0d8ah\r
+       ret\r
+cmds_dash:\r
+       jp z,assert_eol\r
+       cp '-'\r
+       jr nz,l0d8ah\r
+       call get_char_upper\r
+       or a\r
+       dec hl\r
+       jr z,l0d60h\r
+       inc hl\r
 l0d8ah:\r
-       dec de                  ;0d8a   1b      .\r
-       call sub_0ef8h          ;0d8b   cd f8 0e        . . .\r
-       jr l0d60h               ;0d8e   18 d0   . .\r
+       dec de\r
+       call sub_0ef8h\r
+       jr l0d60h\r
+\r
+;-------------------------------------------------------------------------------\r
+; > @\r
+;      examine (substitute) displacement register @\r
 \r
 cmd_@:\r
-       call assert_eol         ;0d92   cd d6 02        . . .\r
-       ld hl,msg_offset        ;0d95   21 a0 0d        ! . .\r
-       ld de,offs.@            ;0d98   11 64 00        . d .\r
-       ld c,001h               ;0d9b   0e 01   . .\r
-       jp l0c12h               ;0d9d   c3 12 0c        . . .\r
+       call assert_eol\r
+       ld hl,msg_@\r
+       ld de,var.@\r
+       ld c,001h\r
+       jp l0c12h\r
 \r
-msg_offset:\r
-       dc      '@'             ;0da0   c0      .\r
+msg_@:\r
+       dc      '@'\r
+\r
+;-------------------------------------------------------------------------------\r
+; >>I [port]\r
+;      Input a byte from port\r
 \r
 cmd_I:\r
-       ld hl,cmd_I             ;0da3   21 a3 0d        ! . .\r
-       ld (cmd_rpt),hl         ;0da6   22 68 00        " h .\r
-       ld hl,(last_I)          ;0da9   2a a1 0d        * . .\r
-       call get_lastarg_def    ;0dac   cd 69 03        . i .\r
-       ld (last_I),hl          ;0daf   22 a1 0d        " . .\r
-       ld b,h                  ;0db2   44      D\r
-       ld c,l                  ;0db3   4d      M\r
-       in a,(c)                ;0db4   ed 78   . x\r
-       push af                 ;0db6   f5      .\r
-       call out_hex            ;0db7   cd 18 02        . . .\r
-       call outbl4             ;0dba   cd 99 02        . . .\r
-       pop af                  ;0dbd   f1      .\r
-       call out.bin.b          ;0dbe   cd c7 01        . . .\r
-       jp crlf                 ;0dc1   c3 a3 02        . . .\r
+       ld hl,cmd_I\r
+       ld (cmd_rpt),hl\r
+       ld hl,(last_I)\r
+       call get_lastarg_def\r
+       ld (last_I),hl\r
+       ld b,h\r
+       ld c,l\r
+       in a,(c)\r
+       push af\r
+       call out_hex\r
+       call outbl4\r
+       pop af\r
+       call out.bin.b\r
+       jp crlf\r
+\r
+;-------------------------------------------------------------------------------\r
+; >>O [byte] [port]\r
+;      Output a byte to a port\r
 \r
 cmd_O:\r
-       ld hl,cmd_O             ;0dc7   21 c7 0d        ! . .\r
-       ld (cmd_rpt),hl         ;0dca   22 68 00        " h .\r
-       ld hl,(last_O_val)      ;0dcd   2a c6 0d        * . .\r
-       call get_arg_def        ;0dd0   cd 6e 03        . n .\r
-       ld a,l                  ;0dd3   7d      }\r
-       ld (last_O_val),a       ;0dd4   32 c6 0d        2 . .\r
-       push af                 ;0dd7   f5      .\r
-       call next_arg           ;0dd8   cd ca 02        . . .\r
-       ld hl,(last_O_addr)     ;0ddb   2a c4 0d        * . .\r
-       call get_lastarg_def    ;0dde   cd 69 03        . i .\r
-       ld (last_O_addr),hl     ;0de1   22 c4 0d        " . .\r
-       ld b,h                  ;0de4   44      D\r
-       ld c,l                  ;0de5   4d      M\r
-       pop af                  ;0de6   f1      .\r
-       out (c),a               ;0de7   ed 79   . y\r
-       ret                     ;0de9   c9      .\r
+       ld hl,cmd_O\r
+       ld (cmd_rpt),hl\r
+       ld hl,(last_O_val)\r
+       call get_arg_def\r
+       ld a,l\r
+       ld (last_O_val),a\r
+       push af\r
+       call next_arg\r
+       ld hl,(last_O_addr)\r
+       call get_lastarg_def\r
+       ld (last_O_addr),hl\r
+       ld b,h\r
+       ld c,l\r
+       pop af\r
+       out (c),a\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+; > Vstartaddr endaddr targetaddr\r
+;      Verify (compare) two memory areas\r
 \r
 cmd_V:\r
-       call sub_034eh          ;0dea   cd 4e 03        . N .\r
+       call sub_034eh\r
 l0dedh:\r
-       push bc                 ;0ded   c5      .\r
-       ld a,(de)               ;0dee   1a      .\r
-       ld b,(hl)               ;0def   46      F\r
-       cp b                    ;0df0   b8      .\r
-       jr z,l0e10h             ;0df1   28 1d   ( .\r
-       ld c,a                  ;0df3   4f      O\r
-       call out.hl.@           ;0df4   cd a4 01        . . .\r
-       call outbl              ;0df7   cd 9f 02        . . .\r
-       ld a,b                  ;0dfa   78      x\r
-       call out_hex            ;0dfb   cd 18 02        . . .\r
-       call outbl2             ;0dfe   cd 9c 02        . . .\r
-       ld a,c                  ;0e01   79      y\r
-       call out_hex            ;0e02   cd 18 02        . . .\r
-       call outbl              ;0e05   cd 9f 02        . . .\r
-       ex de,hl                ;0e08   eb      .\r
-       call out.hl.@           ;0e09   cd a4 01        . . .\r
-       ex de,hl                ;0e0c   eb      .\r
-       call crlf               ;0e0d   cd a3 02        . . .\r
+       push bc\r
+       ld a,(de)\r
+       ld b,(hl)\r
+       cp b\r
+       jr z,l0e10h\r
+       ld c,a\r
+       call out.hl.@\r
+       call outbl\r
+       ld a,b\r
+       call out_hex\r
+       call outbl2\r
+       ld a,c\r
+       call out_hex\r
+       call outbl\r
+       ex de,hl\r
+       call out.hl.@\r
+       ex de,hl\r
+       call crlf\r
 l0e10h:\r
-       pop bc                  ;0e10   c1      .\r
-       inc hl                  ;0e11   23      #\r
-       inc de                  ;0e12   13      .\r
-       dec bc                  ;0e13   0b      .\r
-       ld a,b                  ;0e14   78      x\r
-       or c                    ;0e15   b1      .\r
-       jr nz,l0dedh            ;0e16   20 d5     .\r
-       ret                     ;0e18   c9      .\r
+       pop bc\r
+       inc hl\r
+       inc de\r
+       dec bc\r
+       ld a,b\r
+       or c\r
+       jr nz,l0dedh\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+; > M[V] startaddr endaddr destaddr\r
+;      Move memory [and verify]\r
 \r
 cmd_M:\r
-       ld a,(de)               ;0e19   1a      .\r
-       cp 'V'                  ;0e1a   fe 56   . V\r
-       jr nz,l0e1fh            ;0e1c   20 01     .\r
-       inc de                  ;0e1e   13      .\r
+       call get_char_upper\r
+       cp 'V'\r
+       jr nz,l0e1fh\r
+       inc de\r
 l0e1fh:\r
-       push af                 ;0e1f   f5      .\r
-       call sub_034eh          ;0e20   cd 4e 03        . N .\r
-       push hl                 ;0e23   e5      .\r
-       push de                 ;0e24   d5      .\r
-       push bc                 ;0e25   c5      .\r
-       call cp_hl_de           ;0e26   cd ee 02        . . .\r
-       jr nc,$+11              ;0e29   30 09   0 .\r
-       add hl,bc               ;0e2b   09      .\r
-       ex de,hl                ;0e2c   eb      .\r
-       add hl,bc               ;0e2d   09      .\r
-       ex de,hl                ;0e2e   eb      .\r
-       dec hl                  ;0e2f   2b      +\r
-       dec de                  ;0e30   1b      .\r
-       lddr                    ;0e31   ed b8   . .\r
-       ld bc,0b0edh            ;0e33   01 ed b0        . . .\r
-       pop bc                  ;0e36   c1      .\r
-       pop de                  ;0e37   d1      .\r
-       pop hl                  ;0e38   e1      .\r
-       pop af                  ;0e39   f1      .\r
-       jr z,l0dedh             ;0e3a   28 b1   ( .\r
-       ret                     ;0e3c   c9      .\r
+       push af\r
+       call sub_034eh\r
+       push hl\r
+       push de\r
+       push bc\r
+       call cp_hl_de\r
+       jr nc,cmdm_up\r
+       add hl,bc\r
+       ex de,hl\r
+       add hl,bc\r
+       ex de,hl\r
+       dec hl\r
+       dec de\r
+       lddr\r
+       db 01h          ;swallow ldir instruction (ld bc,...)\r
+cmdm_up:\r
+       ldir\r
+       pop bc\r
+       pop de\r
+       pop hl\r
+       pop af\r
+       jr z,l0dedh\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+; > 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 expr               ;0e3d   cd be 03        . . .\r
-       jp c,p_max_high0        ;0e40   da 6f 11        . o .\r
-       call next_arg           ;0e43   cd ca 02        . . .\r
-       push hl                 ;0e46   e5      .\r
-       call expr               ;0e47   cd be 03        . . .\r
-       push af                 ;0e4a   f5      .\r
-       call assert_eol         ;0e4b   cd d6 02        . . .\r
-       pop af                  ;0e4e   f1      .\r
-       ex de,hl                ;0e4f   eb      .\r
-       pop hl                  ;0e50   e1      .\r
-       jr c,l0e5eh             ;0e51   38 0b   8 .\r
-       push hl                 ;0e53   e5      .\r
-       push de                 ;0e54   d5      .\r
-       add hl,de               ;0e55   19      .\r
-       call l0e5eh             ;0e56   cd 5e 0e        . ^ .\r
-       pop de                  ;0e59   d1      .\r
-       pop hl                  ;0e5a   e1      .\r
-       and a                   ;0e5b   a7      .\r
-       sbc hl,de               ;0e5c   ed 52   . R\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             ;0e5e   cd 13 02        . . .\r
-       call outbl2             ;0e61   cd 9c 02        . . .\r
-       call out_hl_neg         ;0e64   cd 0a 02        . . .\r
-       call outbl4             ;0e67   cd 99 02        . . .\r
-       call out.hl.dec         ;0e6a   cd e7 01        . . .\r
-       call outbl2             ;0e6d   cd 9c 02        . . .\r
-       call out_hl_dec_neg     ;0e70   cd e2 01        . . .\r
-       call outbl4             ;0e73   cd 99 02        . . .\r
-       call out.bin.w          ;0e76   cd c2 01        . . .\r
-       call outbl2             ;0e79   cd 9c 02        . . .\r
-       ld a,l                  ;0e7c   7d      }\r
-       call out.ascii          ;0e7d   cd 34 02        . 4 .\r
-       jp crlf                 ;0e80   c3 a3 02        . . .\r
+       call out_hl\r
+       call outbl2\r
+       call out_hl_neg\r
+       call outbl4\r
+       call out.hl.dec\r
+       call outbl2\r
+       call out_hl_dec_neg\r
+       call outbl4\r
+       call out.bin.w\r
+       call outbl\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
 \r
 cmd_Q:\r
-       ld a,(de)               ;0e84   1a      .\r
-       sub 'J'                 ;0e85   d6 4a   . J\r
-       ld (cmd_Q_jopt),a       ;0e87   32 83 0e        2 . .\r
-       jr nz,l0e8dh            ;0e8a   20 01     .\r
-       inc de                  ;0e8c   13      .\r
+       call get_char_upper\r
+       sub 'J'\r
+       ld (cmd_Q_jopt),a\r
+       jr nz,l0e8dh\r
+       inc de\r
 l0e8dh:\r
-       call get_arg_range      ;0e8d   cd 7d 03        . } .\r
-       push bc                 ;0e90   c5      .\r
-       push hl                 ;0e91   e5      .\r
-       call sub_0ee6h          ;0e92   cd e6 0e        . . .\r
-       pop hl                  ;0e95   e1      .\r
+       call get_arg_range\r
+       push bc\r
+       push hl\r
+       call sub_0ee6h\r
+       pop hl\r
 l0e96h:\r
-       call sub_0ed7h          ;0e96   cd d7 0e        . . .\r
-       jr nz,l0eb0h            ;0e99   20 15     .\r
-       push bc                 ;0e9b   c5      .\r
-       push hl                 ;0e9c   e5      .\r
-       ld a,(cmd_Q_jopt)       ;0e9d   3a 83 0e        : . .\r
-       or a                    ;0ea0   b7      .\r
-       jr nz,l0ea7h            ;0ea1   20 04     .\r
-       ld bc,-8                ;0ea3   01 f8 ff        . . .\r
-       add hl,bc               ;0ea6   09      .\r
+       call sub_0ed7h\r
+       jr nz,l0eb0h\r
+       push bc\r
+       push hl\r
+       ld a,(cmd_Q_jopt)\r
+       or a\r
+       jr nz,l0ea7h\r
+       ld bc,-8\r
+       add hl,bc\r
 l0ea7h:\r
-       ld bc,16                ;0ea7   01 10 00        . . .\r
-       and a                   ;0eaa   a7      .\r
-       call sub_0f58h          ;0eab   cd 58 0f        . X .\r
-       pop hl                  ;0eae   e1      .\r
-       pop bc                  ;0eaf   c1      .\r
+       ld bc,16\r
+       and a\r
+       call sub_0f58h\r
+       pop hl\r
+       pop bc\r
 l0eb0h:\r
-       inc hl                  ;0eb0   23      #\r
-       ex (sp),hl              ;0eb1   e3      .\r
-       dec hl                  ;0eb2   2b      +\r
-       ld a,h                  ;0eb3   7c      |\r
-       or l                    ;0eb4   b5      .\r
-       ex (sp),hl              ;0eb5   e3      .\r
-       jr nz,l0e96h            ;0eb6   20 de     .\r
-       pop bc                  ;0eb8   c1      .\r
-       ret                     ;0eb9   c9      .\r
+       inc hl\r
+       ex (sp),hl\r
+       dec hl\r
+       ld a,h\r
+       or l\r
+       ex (sp),hl\r
+       jr nz,l0e96h\r
+       pop bc\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+; > Z startaddr endaddr bytes\r
+;      Zap (fill) memory with a byte string\r
 \r
 cmd_Z:\r
-       call get_arg_range      ;0eba   cd 7d 03        . } .\r
-       push bc                 ;0ebd   c5      .\r
-       push hl                 ;0ebe   e5      .\r
-       call sub_0ee6h          ;0ebf   cd e6 0e        . . .\r
-       ld a,b                  ;0ec2   78      x\r
-       pop hl                  ;0ec3   e1      .\r
-       pop bc                  ;0ec4   c1      .\r
-       push hl                 ;0ec5   e5      .\r
-       ex de,hl                ;0ec6   eb      .\r
+       call get_arg_range\r
+       push bc\r
+       push hl\r
+       call sub_0ee6h\r
+       ld a,b\r
+       pop hl\r
+       pop bc\r
+       push hl\r
+       ex de,hl\r
 l0ec7h:\r
-       ldi                     ;0ec7   ed a0   . .\r
-       jp po,l0ed3h            ;0ec9   e2 d3 0e        . . .\r
-       dec a                   ;0ecc   3d      =\r
-       jr nz,l0ec7h            ;0ecd   20 f8     .\r
-       pop hl                  ;0ecf   e1      .\r
-       ldir                    ;0ed0   ed b0   . .\r
-       ret                     ;0ed2   c9      .\r
+       ldi\r
+       jp po,l0ed3h\r
+       dec a\r
+       jr nz,l0ec7h\r
+       pop hl\r
+       ldir\r
+       ret\r
 l0ed3h:\r
-       pop hl                  ;0ed3   e1      .\r
-       ret                     ;0ed4   c9      .\r
+       pop hl\r
+       ret\r
 \r
 sub_0ed7h:\r
-       push    hl              ;0ed7   e5 d5   . .\r
+       push    hl\r
        push    de\r
-       push bc                 ;0ed9   c5      .\r
+       push bc\r
 l0edah:\r
-       ld a,(de)               ;0eda   1a      .\r
-       cp (hl)                 ;0edb   be      .\r
-       jr nz,l0ee2h            ;0edc   20 04     .\r
-       inc de                  ;0ede   13      .\r
-       inc hl                  ;0edf   23      #\r
-       djnz l0edah             ;0ee0   10 f8   . .\r
+       ld a,(de)\r
+       cp (hl)\r
+       jr nz,l0ee2h\r
+       inc de\r
+       inc hl\r
+       djnz l0edah\r
 l0ee2h:\r
-       pop bc                  ;0ee2   c1      .\r
-       pop de                  ;0ee3   d1      .\r
-       pop hl                  ;0ee4   e1      .\r
-       ret                     ;0ee5   c9      .\r
+       pop bc\r
+       pop de\r
+       pop hl\r
+       ret\r
 \r
 sub_0ee6h:\r
-       ld hl,conbuf+1          ;0ee6   21 6b 00        ! k .\r
-       call sub_0ef7h          ;0ee9   cd f7 0e        . . .\r
-       ld de,conbuf+1          ;0eec   11 6b 00        . k .\r
-       and a                   ;0eef   a7      .\r
-       sbc hl,de               ;0ef0   ed 52   . R\r
-       ld b,l                  ;0ef2   45      E\r
-       ret nz                  ;0ef3   c0      .\r
-       jp ERROR                ;0ef4   c3 07 01        . . .\r
+       ld hl,conbuf+1\r
+       call sub_0ef7h\r
+       ld de,conbuf+1\r
+       and a\r
+       sbc hl,de\r
+       ld b,l\r
+       ret nz\r
+       jp ERROR\r
 \r
 sub_0ef7h:\r
-       db      0e6h            ;0ef7   e6              and 037h (clear carry)\r
+       db      0e6h            ; and 037h (clear carry)\r
 sub_0ef8h:\r
-       scf                     ;0ef8   37      . 7\r
+       scf\r
 l0ef9h:\r
-       push af                 ;0ef9   f5      .\r
-       call next_arg           ;0efa   cd ca 02        . . .\r
-       cp 'W'                  ;0efd   fe 57   . W\r
-       jr nz,l0f0eh            ;0eff   20 0d     .\r
-       inc de                  ;0f01   13      .\r
-       push hl                 ;0f02   e5      .\r
-       call sub_035dh          ;0f03   cd 5d 03        . ] .\r
-       ex de,hl                ;0f06   eb      .\r
-       ex (sp),hl              ;0f07   e3      .\r
-       ld (hl),e               ;0f08   73      s\r
-       inc hl                  ;0f09   23      #\r
-       ld a,d                  ;0f0a   7a      z\r
-       pop de                  ;0f0b   d1      .\r
-       jr l0f1ah               ;0f0c   18 0c   . .\r
+       push af\r
+       call next_arg\r
+       cp 'W'\r
+       jr nz,l0f0eh\r
+       inc de\r
+       push hl\r
+       call sub_035dh\r
+       ex de,hl\r
+       ex (sp),hl\r
+       ld (hl),e\r
+       inc hl\r
+       ld a,d\r
+       pop de\r
+       jr l0f1ah\r
 l0f0eh:\r
-       cp ''''                 ;0f0e   fe 27   . '\r
-       jr z,l0f1eh             ;0f10   28 0c   ( .\r
-       push hl                 ;0f12   e5      .\r
-       call expr               ;0f13   cd be 03        . . .\r
-       ld a,l                  ;0f16   7d      }\r
-       pop hl                  ;0f17   e1      .\r
-       jr c,l0f42h             ;0f18   38 28   8 (\r
+       cp ''''\r
+       jr z,l0f1eh\r
+       push hl\r
+       call expr\r
+       ld a,l\r
+       pop hl\r
+       jr c,l0f42h\r
 l0f1ah:\r
-       ld (hl),a               ;0f1a   77      w\r
-       inc hl                  ;0f1b   23      #\r
-       jr l0f3ah               ;0f1c   18 1c   . .\r
+       ld (hl),a\r
+       inc hl\r
+       jr l0f3ah\r
 l0f1eh:\r
-       inc de                  ;0f1e   13      .\r
-       ld a,(de)               ;0f1f   1a      .\r
-       cp ''''                 ;0f20   fe 27   . '\r
-       jr z,l0f2bh             ;0f22   28 07   ( .\r
-       or a                    ;0f24   b7      .\r
-       jr z,l0f42h             ;0f25   28 1b   ( .\r
+       inc de\r
+       ld a,(de)\r
+       cp ''''\r
+       jr z,l0f2bh\r
+       or a\r
+       jr z,l0f42h\r
 l0f27h:\r
-       ld (hl),a               ;0f27   77      w\r
-       inc hl                  ;0f28   23      #\r
-       jr l0f1eh               ;0f29   18 f3   . .\r
+       ld (hl),a\r
+       inc hl\r
+       jr l0f1eh\r
 l0f2bh:\r
-       inc de                  ;0f2b   13      .\r
-       ld a,(de)               ;0f2c   1a      .\r
-       cp ''''                 ;0f2d   fe 27   . '\r
-       jr z,l0f27h             ;0f2f   28 f6   ( .\r
-       cp '.'                  ;0f31   fe 2e   . .\r
-       jr nz,l0f3ah            ;0f33   20 05     .\r
-       inc de                  ;0f35   13      .\r
-       dec hl                  ;0f36   2b      +\r
-       set 7,(hl)              ;0f37   cb fe   . .\r
-       inc hl                  ;0f39   23      #\r
+       inc de\r
+       ld a,(de)\r
+       cp ''''\r
+       jr z,l0f27h\r
+       cp '.'\r
+       jr nz,l0f3ah\r
+       inc de\r
+       dec hl\r
+       set 7,(hl)\r
+       inc hl\r
 l0f3ah:\r
-       pop af                  ;0f3a   f1      .\r
-       jr nc,l0ef9h            ;0f3b   30 bc   0 .\r
-       ld (last_S),hl          ;0f3d   22 90 0d        " . .\r
-       jr l0ef9h               ;0f40   18 b7   . .\r
+       pop af\r
+       jr nc,l0ef9h\r
+       ld (last_S),hl\r
+       jr l0ef9h\r
 l0f42h:\r
-       pop af                  ;0f42   f1      .\r
-       ret nc                  ;0f43   d0      .\r
-       ld (last_S),hl          ;0f44   22 90 0d        " . .\r
-       ret                     ;0f47   c9      .\r
+       pop af\r
+       ret nc\r
+       ld (last_S),hl\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+; >>D [startaddr] [endaddr]\r
+;      Display memory in hex and ASCII\r
 \r
 cmd_D:\r
-       ld hl,cmd_D             ;0f48   21 48 0f        ! H .\r
-       ld (cmd_rpt),hl         ;0f4b   22 68 00        " h .\r
-       ld hl,(last_D)          ;0f4e   2a d5 0e        * . .\r
-       ld bc,128               ;0f51   01 80 00        . . .\r
-       call sub_0377h          ;0f54   cd 77 03        . w .\r
-       scf                     ;0f57   37      7\r
+       ld hl,cmd_D\r
+       ld (cmd_rpt),hl\r
+       ld hl,(last_D)\r
+       ld bc,128\r
+       call sub_0377h\r
+       scf\r
 sub_0f58h:\r
-       push bc                 ;0f58   c5      .\r
-       push de                 ;0f59   d5      .\r
-       push hl                 ;0f5a   e5      .\r
-       ex af,af'               ;0f5b   08      .\r
+       push bc\r
+       push de\r
+       push hl\r
+       push af\r
 l0f5ch:\r
-       call out.hl.@           ;0f5c   cd a4 01        . . .\r
-       call z,outbl2           ;0f5f   cc 9c 02        . . .\r
-       call outbl              ;0f62   cd 9f 02        . . .\r
-       ld de,0                 ;0f65   11 00 00        . . .\r
+       call out.hl.@\r
+       call z,outbl2\r
+       call outbl\r
+       ld de,0\r
 l0f68h:\r
-       ld a,(hl)               ;0f68   7e      ~\r
-       inc hl                  ;0f69   23      #\r
-       call out_hex            ;0f6a   cd 18 02        . . .\r
-       call outbl              ;0f6d   cd 9f 02        . . .\r
-       dec bc                  ;0f70   0b      .\r
-       inc e                   ;0f71   1c      .\r
-       ld a,e                  ;0f72   7b      {\r
-       cp 010h                 ;0f73   fe 10   . .\r
-       jr z,l0f80h             ;0f75   28 09   ( .\r
-       and 003h                ;0f77   e6 03   . .\r
-       call z,outbl            ;0f79   cc 9f 02        . . .\r
-       ld a,b                  ;0f7c   78      x\r
-       or c                    ;0f7d   b1      .\r
-       jr nz,l0f68h            ;0f7e   20 e8     .\r
+       ld a,(hl)\r
+       inc hl\r
+       call out_hex\r
+       call outbl\r
+       dec bc\r
+       inc e\r
+       ld a,e\r
+       cp 010h\r
+       jr z,l0f80h\r
+       and 003h\r
+       call z,outbl\r
+       ld a,b\r
+       or c\r
+       jr nz,l0f68h\r
 l0f80h:\r
-       call outbl              ;0f80   cd 9f 02        . . .\r
-       and a                   ;0f83   a7      .\r
-       sbc hl,de               ;0f84   ed 52   . R\r
+       call outbl\r
+       and a\r
+       sbc hl,de\r
 l0f86h:\r
-       ld a,(hl)               ;0f86   7e      ~\r
-       call sub_0fa3h          ;0f87   cd a3 0f        . . .\r
-       call outchar            ;0f8a   cd 5d 02        . ] .\r
-       inc hl                  ;0f8d   23      #\r
-       dec e                   ;0f8e   1d      .\r
-       jr nz,l0f86h            ;0f8f   20 f5     .\r
-       ex af,af'               ;0f91   08      .\r
-       jr nc,l0f97h            ;0f92   30 03   0 .\r
-       ld (last_D),hl          ;0f94   22 d5 0e        " . .\r
+       ld a,(hl)\r
+       call sub_0fa3h\r
+       call outchar\r
+       inc hl\r
+       dec e\r
+       jr nz,l0f86h\r
+       pop af\r
+       push af\r
+       jr nc,l0f97h\r
+       ld (last_D),hl\r
 l0f97h:\r
-       ex af,af'               ;0f97   08      .\r
-       call crlf               ;0f98   cd a3 02        . . .\r
-       ld a,b                  ;0f9b   78      x\r
-       or c                    ;0f9c   b1      .\r
-       jr nz,l0f5ch            ;0f9d   20 bd     .\r
-       pop hl                  ;0f9f   e1      .\r
-       pop de                  ;0fa0   d1      .\r
-       pop bc                  ;0fa1   c1      .\r
-       ret                     ;0fa2   c9      .\r
+       call crlf\r
+       ld a,b\r
+       or c\r
+       jr nz,l0f5ch\r
+       pop af\r
+       pop hl\r
+       pop de\r
+       pop bc\r
+       ret\r
 \r
 sub_0fa3h:\r
-       and 07fh                ;0fa3   e6 7f   . \7f\r
-       cp 07fh                 ;0fa5   fe 7f   . \7f\r
-       jr z,l0fach             ;0fa7   28 03   ( .\r
-       cp ' '                  ;0fa9   fe 20   .\r
-       ret nc                  ;0fab   d0      .\r
+       and 07fh\r
+       cp 07fh\r
+       jr z,l0fach\r
+       cp ' '\r
+       ret nc\r
 l0fach:\r
-       ld a,'.'                ;0fac   3e 2e   > .\r
-       ret                     ;0fae   c9      .\r
+       ld a,'.'\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+; > Fcommandline\r
+;      specifiy filenames and command line\r
 \r
 cmd_F:\r
-       push de                 ;0faf   d5      .\r
-       ld hl,DMA_BUF+1         ;0fb0   21 81 00        ! . .\r
-       ld (hl),' '             ;0fb3   36 20   6\r
-       inc hl                  ;0fb5   23      #\r
+       push de\r
+       ld hl,DMA_BUF+1\r
+       ld (hl),' '\r
+       inc hl\r
 l0fb6h:\r
-       ld a,(de)               ;0fb6   1a      .\r
-       ld (hl),a               ;0fb7   77      w\r
-       inc hl                  ;0fb8   23      #\r
-       inc de                  ;0fb9   13      .\r
-       and a                   ;0fba   a7      .\r
-       jr nz,l0fb6h            ;0fbb   20 f9     .\r
-       ld a,l                  ;0fbd   7d      }\r
-       sub DMA_BUF+2           ;0fbe   d6 82   . .\r
-       ld (DMA_BUF),a          ;0fc0   32 80 00        2 . .\r
-       pop hl                  ;0fc3   e1      .\r
-       ld de,FCB               ;0fc4   11 5c 00        . \ .\r
-       call parse_filename     ;0fc7   cd cd 0f        . . .\r
-       ld de,FCB2              ;0fca   11 6c 00        . l .\r
+       call get_char_upper\r
+       ld (hl),a\r
+       inc hl\r
+       inc de\r
+       and a\r
+       jr nz,l0fb6h\r
+       ld a,l\r
+       sub DMA_BUF+2\r
+       ld (DMA_BUF),a\r
+       pop hl\r
+       ld de,dfcb1\r
+       call parse_filename\r
+       ld de,dfcb2\r
+       call parse_filename\r
+       ;fall thru\r
+\r
+cpy_fcb2:\r
+       ld hl,dfcb2\r
+       ld de,fcbsym\r
+       ld bc,16\r
+       ldir\r
+       ret\r
 \r
 parse_filename:\r
-       call sub_102ch          ;0fcd   cd 2c 10        . , .\r
-       push de                 ;0fd0   d5      .\r
-       push bc                 ;0fd1   c5      .\r
-       ld b,(hl)               ;0fd2   46      F\r
-       inc hl                  ;0fd3   23      #\r
-       ld a,(hl)               ;0fd4   7e      ~\r
-       cp ':'                  ;0fd5   fe 3a   . :\r
-       jr nz,l0fe1h            ;0fd7   20 08     .\r
-       inc hl                  ;0fd9   23      #\r
-       ld a,b                  ;0fda   78      x\r
-       sub 040h                ;0fdb   d6 40   . @\r
-       and 01fh                ;0fdd   e6 1f   . .\r
-       jr l0fe3h               ;0fdf   18 02   . .\r
+       call sub_102ch\r
+       push de\r
+       push bc\r
+       ld b,(hl)\r
+       inc hl\r
+       ld a,(hl)\r
+       cp ':'\r
+       jr nz,l0fe1h\r
+       inc hl\r
+       ld a,b\r
+       sub 040h\r
+       and 01fh\r
+       jr l0fe3h\r
 l0fe1h:\r
-       dec hl                  ;0fe1   2b      +\r
-       xor a                   ;0fe2   af      .\r
+       dec hl\r
+       xor a\r
 l0fe3h:\r
-       ld (de),a               ;0fe3   12      .\r
-       inc de                  ;0fe4   13      .\r
-       ld b,8                  ;0fe5   06 08   . .\r
-       call sub_0ff2h          ;0fe7   cd f2 0f        . . .\r
-       ld b,3                  ;0fea   06 03   . .\r
-       call sub_0ff2h          ;0fec   cd f2 0f        . . .\r
-       pop bc                  ;0fef   c1      .\r
-       pop de                  ;0ff0   d1      .\r
-       ret                     ;0ff1   c9      .\r
+       ld (de),a\r
+       inc de\r
+       ld b,8\r
+       call sub_0ff2h\r
+       ld b,3\r
+       call sub_0ff2h\r
+       pop bc\r
+       pop de\r
+       ret\r
 \r
 sub_0ff2h:\r
-       call sub_1012h          ;0ff2   cd 12 10        . . .\r
-       jr z,l0ffeh             ;0ff5   28 07   ( .\r
-       inc hl                  ;0ff7   23      #\r
-       ld (de),a                       ;0ff8   12      .\r
-       inc de                  ;0ff9   13      .\r
-       djnz sub_0ff2h          ;0ffa   10 f6   . .\r
-       jr l1003h               ;0ffc   18 05   . .\r
+       call sub_1012h\r
+       jr z,l0ffeh\r
+       inc hl\r
+       ld (de),a\r
+       inc de\r
+       djnz sub_0ff2h\r
+       jr l1003h\r
 l0ffeh:\r
-       ld a,c                  ;0ffe   79      y\r
+       ld a,c\r
 l0fffh:\r
-       ld (de),a               ;0fff   12      .\r
-       inc de                  ;1000   13      .\r
-       djnz l0fffh             ;1001   10 fc   . .\r
+       ld (de),a\r
+       inc de\r
+       djnz l0fffh\r
 l1003h:\r
-       call sub_1012h          ;1003   cd 12 10        . . .\r
-       inc hl                  ;1006   23      #\r
-       jr nz,l1003h            ;1007   20 fa     .\r
-       cp '*'                  ;1009   fe 2a   . *\r
-       jr z,l1003h             ;100b   28 f6   ( .\r
-       cp '.'                  ;100d   fe 2e   . .\r
-       ret z                   ;100f   c8      .\r
-       dec hl                  ;1010   2b      +\r
-       ret                     ;1011   c9      .\r
+       call sub_1012h\r
+       inc hl\r
+       jr nz,l1003h\r
+       cp '*'\r
+       jr z,l1003h\r
+       cp '.'\r
+       ret z\r
+       dec hl\r
+       ret\r
 \r
 sub_1012h:\r
-       ld a,(hl)               ;1012   7e      ~\r
-       ld c,' '                ;1013   0e 20   .\r
-       and 01fh                ;1015   e6 1f   . .\r
-       ret z                   ;1017   c8      .\r
-       ld a,(hl)               ;1018   7e      ~\r
-       cp ' '                  ;1019   fe 20   .\r
-       ret z                   ;101b   c8      .\r
-       call sub_1043h          ;101c   cd 43 10        . C .\r
-       ret z                   ;101f   c8      .\r
-       cp '/'                  ;1020   fe 2f   . /\r
-       ret z                   ;1022   c8      .\r
-       cp '.'                  ;1023   fe 2e   . .\r
-       ret z                   ;1025   c8      .\r
-       ld c,'?'                ;1026   0e 3f   . ?\r
-       cp '*'                  ;1028   fe 2a   . *\r
-       ret                     ;102a   c9      .\r
+       ld a,(hl)\r
+       ld c,' '\r
+       and 01fh\r
+       ret z\r
+       ld a,(hl)\r
+       cp ' '\r
+       ret z\r
+       call sub_1043h\r
+       ret z\r
+       cp '/'\r
+       ret z\r
+       cp '.'\r
+       ret z\r
+       ld c,'?'\r
+       call toupper\r
+       cp '*'\r
+       ret\r
 \r
 l102bh:\r
-       inc hl                  ;102b   23      #\r
+       inc hl\r
 sub_102ch:\r
-       ld a,(hl)               ;102c   7e      ~\r
-       cp '/'                  ;102d   fe 2f   . /\r
-       jr z,l103bh             ;102f   28 0a   ( .\r
-       call sub_1043h          ;1031   cd 43 10        . C .\r
-       jr z,l102bh             ;1034   28 f5   ( .\r
+       ld a,(hl)\r
+       cp '/'\r
+       jr z,l103bh\r
+       call sub_1043h\r
+       jr z,l102bh\r
 l1036h:\r
-       cp ' '                  ;1036   fe 20   .\r
-       jr z,l102bh             ;1038   28 f1   ( .\r
-       ret                     ;103a   c9      .\r
+       cp ' '\r
+       jr z,l102bh\r
+       ret\r
 \r
 l103bh:\r
-       ld a,(hl)               ;103b   7e      ~\r
-       cp ' '+1                        ;103c   fe 21   . !\r
-       jr c,l1036h             ;103e   38 f6   8 .\r
-       inc hl                  ;1040   23      #\r
-       jr l103bh               ;1041   18 f8   . .\r
+       ld a,(hl)\r
+       cp ' '+1\r
+       jr c,l1036h\r
+       inc hl\r
+       jr l103bh\r
 \r
 sub_1043h:\r
-       cp '='                  ;1043   fe 3d   . =\r
-       ret z                   ;1045   c8      .\r
-       cp '_'                  ;1046   fe 5f   . _\r
-       ret z                   ;1048   c8      .\r
-       cp ','                  ;1049   fe 2c   . ,\r
-       ret                     ;104b   c9      .\r
-\r
-fcb_clear_rc:\r
-       xor a                   ;104c   af      .\r
-       ld hl,FCB+12            ;104d   21 68 00        ! h .\r
-       ld b,21                 ;1050   06 15   . .\r
-l1052h:\r
-       ld (hl),a               ;1052   77      w\r
-       inc hl                  ;1053   23      #\r
-       djnz l1052h             ;1054   10 fc   . .\r
-       ld de,DMA_BUF           ;1056   11 80 00        . . .\r
-       ld c,BDOS_SETDMA        ;1059   0e 1a   . .\r
-       call ddtz_base          ;105b   cd 00 00        . . .\r
-       ld de,FCB               ;105e   11 5c 00        . \ .\r
-       ret                     ;1061   c9      .\r
-\r
-cmd_R:\r
-       ld hl,0                 ;1062   21 00 00        ! . .\r
-       call get_lastarg_def    ;1065   cd 69 03        . i .\r
-read_file:\r
-       push hl                 ;1068   e5      .\r
-       ld hl,0                 ;1069   21 00 00        ! . .\r
-       ld (high_load),hl       ;106c   22 9c 11        " . .\r
-       call fcb_clear_rc       ;106f   cd 4c 10        . L .\r
-       ld c,BDOS_OPEN          ;1072   0e 0f   . .\r
-       call ddtz_base          ;1074   cd 00 00        . . .\r
-       inc a                   ;1077   3c      <\r
-       jp z,ERROR              ;1078   ca 07 01        . . .\r
-       ld hl,FCB+9             ;107b   21 65 00        ! e .\r
-       ld de,str_hex           ;107e   11 a5 10        . . .\r
-       ld b,3                  ;1081   06 03   . .\r
-       call strncmp            ;1083   cd 67 11        . g .\r
-       pop hl                  ;1086   e1      .\r
-       jr z,read_hexfile       ;1087   28 1f   ( .\r
-       ld de,TPA               ;1089   11 00 01        . . .\r
-       add hl,de               ;108c   19      .\r
-       push hl                 ;108d   e5      .\r
-l108eh:\r
-       call read_sector        ;108e   cd 21 11        . ! .\r
-       pop hl                  ;1091   e1      .\r
-       jp z,p_max_high         ;1092   ca 72 11        . r .\r
-       ld de,DMA_BUF           ;1095   11 80 00        . . .\r
-       ld b,080h               ;1098   06 80   . .\r
-l109ah:\r
-       ld a,(de)               ;109a   1a      .\r
-       call cmdR_storebyte     ;109b   cd 36 11        . 6 .\r
-       inc de                  ;109e   13      .\r
-       inc hl                  ;109f   23      #\r
-       djnz l109ah             ;10a0   10 f8   . .\r
-       push hl                 ;10a2   e5      .\r
-       jr l108eh               ;10a3   18 e9   . .\r
+       cp '='\r
+       ret z\r
+       cp '_'\r
+       ret z\r
+       cp ','\r
+       ret\r
 \r
-str_hex:\r
-       db      'HEX'           ;10a5   48      H E X\r
+;-------------------------------------------------------------------------------\r
 \r
-read_hexfile:\r
-       push hl                 ;10a8   e5      .\r
-       ld a,080h               ;10a9   3e 80   > .\r
-       ld (cmdR_rindex),a      ;10ab   32 20 11        2   .\r
-l10aeh:\r
-       call read_byte          ;10ae   cd 05 11        . . .\r
-       jr z,rdhex_done         ;10b1   28 31   ( 1\r
-       cp ':'                  ;10b3   fe 3a   . :\r
-       jr nz,l10aeh            ;10b5   20 f7     .\r
-       ld c,0                  ;10b7   0e 00   . .\r
-       call read_hexchar       ;10b9   cd e8 10        . . .\r
-       ld b,a                  ;10bc   47      G\r
-       call read_hexchar       ;10bd   cd e8 10        . . .\r
-       ld h,a                  ;10c0   67      g\r
-       call read_hexchar       ;10c1   cd e8 10        . . .\r
-       ld l,a                  ;10c4   6f      o\r
-       ld a,b                  ;10c5   78      x\r
-       and a                   ;10c6   a7      .\r
-       jr z,rdhex_done         ;10c7   28 1b   ( .\r
-       call read_hexchar       ;10c9   cd e8 10        . . .\r
-l10cch:\r
-       call read_hexchar       ;10cc   cd e8 10        . . .\r
-       pop de                  ;10cf   d1      .\r
-       push de                 ;10d0   d5      .\r
-       push hl                 ;10d1   e5      .\r
-       add hl,de               ;10d2   19      .\r
-       call cmdR_storebyte     ;10d3   cd 36 11        . 6 .\r
-       pop hl                  ;10d6   e1      .\r
-       inc hl                  ;10d7   23      #\r
-       djnz l10cch             ;10d8   10 f2   . .\r
-       call read_hexchar               ;10da   cd e8 10        . . .\r
-       ld a,c                  ;10dd   79      y\r
-       and a                   ;10de   a7      .\r
-       jp nz,ERROR             ;10df   c2 07 01        . . .\r
-       jr l10aeh               ;10e2   18 ca   . .\r
-rdhex_done:\r
-       pop hl                  ;10e4   e1      .\r
-       jp p_max_high           ;10e5   c3 72 11        . r .\r
+setup_fcb:\r
+       push de\r
+       ld hl,12\r
+       add hl,de\r
+       xor a\r
+       ld b,21\r
+l1052h:\r
+       ld (hl),a\r
+       inc hl\r
+       djnz l1052h\r
+       ld de,DMA_BUF\r
+       ld c,BDOS_SETDMA\r
+       call ddtz_bdos\r
+       pop de\r
+       ret\r
 \r
-read_hexchar:\r
-       call read_hexdigit      ;10e8   cd f9 10        . . .\r
-       rlca                    ;10eb   07      .\r
-       rlca                    ;10ec   07      .\r
-       rlca                    ;10ed   07      .\r
-       rlca                    ;10ee   07      .\r
-       ld d,a                  ;10ef   57      W\r
-       call read_hexdigit      ;10f0   cd f9 10        . . .\r
-       add a,d                 ;10f3   82      .\r
-       ld d,a                  ;10f4   57      W\r
-       add a,c                 ;10f5   81      .\r
-       ld c,a                  ;10f6   4f      O\r
-       ld a,d                  ;10f7   7a      z\r
-       ret                     ;10f8   c9      .\r
+;-------------------------------------------------------------------------------\r
 \r
-read_hexdigit:\r
-       call read_byte          ;10f9   cd 05 11        . . .\r
-       jr z,l1102h             ;10fc   28 04   ( .\r
-       call hex_digit          ;10fe   cd 12 06        . . .\r
-       ret nc                  ;1101   d0      .\r
-l1102h:\r
-       jp ERROR                ;1102   c3 07 01        . . .\r
+file_open:\r
+       ld (cur_fcb),de\r
+       call setup_fcb\r
+       ld c,BDOS_OPEN\r
+       call ddtz_bdos\r
+       inc a\r
+       jp z,ERROR\r
+       ld a,080h\r
+       ld (cmdR_rindex),a\r
+       ret\r
 \r
 read_byte:\r
-       ld a,(cmdR_rindex)      ;1105   3a 20 11        :   .\r
-       cp 080h                 ;1108   fe 80   . .\r
-       jr nz,l1111h            ;110a   20 05     .\r
-       call read_sector        ;110c   cd 21 11        . ! .\r
-       ret z                   ;110f   c8      .\r
-       sub a                   ;1110   97      .\r
+       ld a,(cmdR_rindex)\r
+       cp 080h\r
+       jr nz,l1111h\r
+       call read_sector\r
+       ld a,01ah\r
+       ret z\r
+       sub a\r
 l1111h:\r
-       inc a                   ;1111   3c      <\r
-       ld (cmdR_rindex),a      ;1112   32 20 11        2   .\r
-       push hl                 ;1115   e5      .\r
-       add a,07fh              ;1116   c6 7f   . \7f\r
-       ld l,a                  ;1118   6f      o\r
-       ld h,000h               ;1119   26 00   & .\r
-       ld a,(hl)               ;111b   7e      ~\r
-       pop hl                  ;111c   e1      .\r
-       cp 01ah                 ;111d   fe 1a   . .\r
-       ret                     ;111f   c9      .\r
+       inc a\r
+       ld (cmdR_rindex),a\r
+       push hl\r
+       add a,07fh\r
+       ld l,a\r
+       ld h,000h\r
+       ld a,(hl)\r
+       pop hl\r
+       cp 01ah\r
+       ret\r
 \r
 read_sector:\r
-       push hl                 ;1121   e5      .\r
-       push de                 ;1122   d5      .\r
-       push bc                 ;1123   c5      .\r
-       ld de,FCB               ;1124   11 5c 00        . \ .\r
-       ld c,BDOS_READ          ;1127   0e 14   . .\r
-       call ddtz_base          ;1129   cd 00 00        . . .\r
-       dec a                   ;112c   3d      =\r
-       jr z,l1132h             ;112d   28 03   ( .\r
-       jp p,ERROR              ;112f   f2 07 01        . . .\r
+       push hl\r
+       push de\r
+       push bc\r
+       ld de,(cur_fcb)\r
+       ld c,BDOS_READ\r
+       call ddtz_bdos\r
+       sub a,1\r
+       jr z,l1132h\r
+       jr nc,error2\r
 l1132h:\r
-       pop bc                  ;1132   c1      .\r
-       pop de                  ;1133   d1      .\r
-       pop hl                  ;1134   e1      .\r
-       ret                     ;1135   c9      .\r
+       pop bc\r
+       pop de\r
+       pop hl\r
+       ret\r
 \r
 cmdR_storebyte:\r
-       push af                 ;1136   f5      .\r
-       push de                 ;1137   d5      .\r
-       ld de,TPA               ;1138   11 00 01        . . .\r
-       call cp_hl_de           ;113b   cd ee 02        . . .\r
-       jp c,ERROR              ;113e   da 07 01        . . .\r
-       ld de,(BDOS+1)          ;1141   ed 5b 06 00     . [ . .\r
-       call cp_hl_de           ;1145   cd ee 02        . . .\r
-       jp nc,ERROR             ;1148   d2 07 01        . . .\r
-       ld de,(high_load)       ;114b   ed 5b 9c 11     . [ . .\r
-       call cp_hl_de           ;114f   cd ee 02        . . .\r
-       jr c,l1157h             ;1152   38 03   8 .\r
-       ld (high_load),hl       ;1154   22 9c 11        " . .\r
+       push af\r
+       push de\r
+       ld de,TPA\r
+       call cp_hl_de\r
+       jr c,error2\r
+       ld de,(BDOS+1)\r
+       call cp_hl_de\r
+       jr nc,error2\r
+       ld de,(high_load)\r
+       call cp_hl_de\r
+       jr c,l1157h\r
+       ld (high_load),hl\r
 l1157h:\r
-       ld de,(max_load)        ;1157   ed 5b 9e 11     . [ . .\r
-       call cp_hl_de           ;115b   cd ee 02        . . .\r
-       jr c,l1163h             ;115e   38 03   8 .\r
-       ld (max_load),hl        ;1160   22 9e 11        " . .\r
+       ld de,(max_load)\r
+       call cp_hl_de\r
+       jr c,l1163h\r
+       ld (max_load),hl\r
 l1163h:\r
-       pop de                  ;1163   d1      .\r
-       pop af                  ;1164   f1      .\r
-       ld (hl),a               ;1165   77      w\r
-       ret                     ;1166   c9      .\r
+       pop de\r
+       pop af\r
+       ld (hl),a\r
+       ret\r
 \r
 strncmp:\r
-       ld a,(de)               ;1167   1a      .\r
-       cp (hl)                 ;1168   be      .\r
-       inc de                  ;1169   13      .\r
-       inc hl                  ;116a   23      #\r
-       ret nz                  ;116b   c0      .\r
-       djnz strncmp            ;116c   10 f9   . .\r
-       ret                     ;116e   c9      .\r
+       ld a,(de)\r
+       cp (hl)\r
+       inc de\r
+       inc hl\r
+       ret nz\r
+       djnz strncmp\r
+       ret\r
+\r
+str_hex:\r
+       db      'HEX'\r
+\r
+read_hexchar:\r
+       call read_hexdigit\r
+       rlca\r
+       rlca\r
+       rlca\r
+       rlca\r
+       ld d,a\r
+       call read_hexdigit\r
+       add a,d\r
+       ld d,a\r
+       add a,c\r
+       ld c,a\r
+       ld a,d\r
+       ret\r
+\r
+read_hexdigit:\r
+       call read_byte\r
+       jr z,error2\r
+hex_digit_v:\r
+       call hex_digit\r
+       ret nc\r
+error2:\r
+       jp ERROR\r
+\r
+read_hexbyte:\r
+       call    read_byte\r
+read_hexbyte0:\r
+       push    bc\r
+       call    hex_digit_v\r
+       rlca\r
+       rlca\r
+       rlca\r
+       rlca\r
+       ld      c,a\r
+       call    read_byte\r
+       call    hex_digit_v\r
+       or      c\r
+       pop     bc\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+; > R [displacement]\r
+;      Read a binary or hex file and or symbol file [add displacement]\r
+\r
+cmd_R:\r
+       ld hl,0\r
+       call get_lastarg_def\r
+read_file:\r
+       ld de,dfcb1+1\r
+       ld a,(de)\r
+       cp '?'\r
+       jr z,read_symfile\r
+       dec de\r
+       push hl\r
+       ld hl,0\r
+       ld (high_load),hl\r
+       call file_open\r
+       ld hl,dfcb1+9\r
+       ld de,str_hex\r
+       ld b,3\r
+       call strncmp\r
+       pop hl\r
+       jr z,read_hexfile\r
+       ld de,TPA\r
+       push hl\r
+       add hl,de\r
+l108eh:\r
+       call read_sector\r
+       jr nz,read_file_nxt\r
+       pop hl\r
+       jr read_symfile\r
+\r
+read_file_nxt:\r
+       ld de,DMA_BUF\r
+       ld b,080h\r
+l109ah:\r
+       ld a,(de)\r
+       call cmdR_storebyte\r
+       inc de\r
+       inc hl\r
+       djnz l109ah\r
+       jr l108eh\r
+\r
+read_hexfile:\r
+       push hl\r
+l10aeh:\r
+       call read_byte          ; RECORD MARK\r
+       jr z,rdhex_done\r
+       cp ':'\r
+       jr nz,l10aeh\r
+       ld c,0\r
+       call read_hexchar       ; RECLEN\r
+       ld b,a\r
+       call read_hexchar       ; LOAD ADDR H\r
+       ld h,a\r
+       call read_hexchar       ; LOAD ADDR L\r
+       ld l,a\r
+       ld a,b\r
+       and a\r
+       jr z,rdhex_done\r
+       call read_hexchar       ; RECTYP\r
+l10cch:\r
+       call read_hexchar       ; DATA\r
+       pop de\r
+       push de\r
+       push hl\r
+       add hl,de\r
+       call cmdR_storebyte\r
+       pop hl\r
+       inc hl\r
+       djnz l10cch\r
+       call read_hexchar       ; CHKSUM\r
+       ld a,c\r
+       and a\r
+       jr nz,error3\r
+       jr l10aeh\r
+rdhex_done:\r
+       pop hl\r
+       jr read_symfile\r
+\r
+read_symfile:\r
+       ld de,fcbsym+1\r
+       ld a,(de)\r
+       cp ' '\r
+       jp z,p_max_high\r
+\r
+       push    hl              ; offset\r
+       call pstr_inl\r
+       db      'SYMBOLS',CR,LF+80h\r
+\r
+       dec     de\r
+       call    file_open\r
+       ld      a,(symattrib)\r
+       ld      c,a\r
+rs_1:\r
+       call    read_byte\r
+rs_2:\r
+       pop     de              ; offset\r
+       cp      1ah\r
+       jp      z,p_max_high\r
+       push    de              ; offset\r
+       cp      '!'\r
+       jr      c,rs_1\r
+       call    read_hexbyte0   ; symval H\r
+       ld      h,a\r
+       call    read_hexbyte    ; symval L\r
+       ld      l,a\r
+       add     hl,de\r
+       call    read_byte\r
+       cp      ' '\r
+       jr      z,rs_4\r
+rs_3:  call    read_byte\r
+       cp      ' '\r
+       jr      nc,rs_3\r
+       jr      rs_2\r
+\r
+rs_4:\r
+       push    hl              ; symval\r
+       ld      hl,(BDOS+1)     ;\r
+       ld      b,0             ; setup symlen\r
+rs_5:\r
+       dec     hl              ;\r
+       call    read_byte       ; next char of symbol name\r
+       call    test_sym_char   ; valid char?\r
+       jr      nz,rs_6\r
+       bit     SYMCASE_CONV,c\r
+       jr      z,rs_51\r
+       call    toupper\r
+       bit     SYMCASE_LOWER,c\r
+       call    nz,tolower\r
+rs_51:\r
+       ld      (hl),a          ;\r
+       inc     b               ; symlen++\r
+       ld      a,(symlen_max)  ;\r
+       cp      b               ;\r
+       jr      nc,rs_5         ;\r
+error3:\r
+       jp      ERROR           ;\r
+\r
+rs_6:\r
+       call    test_symterm_ch\r
+       jr      nz,error3\r
+\r
+       push    bc              ; symlen\r
+       ex      de,hl           ;\r
+       ld      hl,(BDOS+1)     ;\r
+       inc     hl              ;\r
+       ld      c,(hl)          ;\r
+       inc     hl              ;\r
+       ld      b,(hl)          ;\r
+       ex      de,hl\r
+       ld      (hl),b          ;\r
+       dec     hl              ;\r
+       ld      (hl),c          ;\r
+       dec     hl              ;\r
+       ld      (hl),0c3h       ;\r
+\r
+       ld      de,(max_load)   ;\r
+       call    cp_hl_de        ;\r
+       jr      c,error3        ;\r
+       ld      de,(reg_sp)     ;\r
+       call    cp_hl_de        ;\r
+       jr      nc,rs_61        ;\r
+       ld      (reg_sp),hl     ;\r
+rs_61:\r
+       ld      de,(BDOS+1)     ;\r
+       ld      (BDOS+1),hl     ;\r
+       ex      de,hl           ;\r
+       pop     bc              ; symlen\r
+       ld      (hl),b          ;\r
+       inc     hl              ;\r
+       pop     de              ; symval\r
+       ld      (hl),e          ;\r
+       inc     hl              ;\r
+       ld      (hl),d          ;\r
+       ld      a,b             ;\r
+       ld      hl,symlen_cur   ;\r
+       cp      (hl)            ; new max?\r
+       jr      c,$+3           ;\r
+       ld      (hl),a          ;\r
+       jp      rs_1            ;\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_symterm_ch:\r
+       cp      CR\r
+       ret     z\r
+       cp      LF\r
+       ret     z\r
+test_whitespace:\r
+       cp      ' '\r
+       ret     z\r
+       cp      TAB\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 p_max_high0:\r
-       call assert_eol         ;116f   cd d6 02        . . .\r
+       call assert_eol\r
 p_max_high:\r
-       ld hl,msg_high          ;1172   21 8d 11        ! . .\r
-       call pstr               ;1175   cd 88 02        . . .\r
-       ld hl,(high_load)       ;1178   2a 9c 11        * . .\r
-       call out_hl             ;117b   cd 13 02        . . .\r
-       ld hl,msg_max           ;117e   21 94 11        ! . .\r
-       call pstr               ;1181   cd 88 02        . . .\r
-       ld hl,(max_load)        ;1184   2a 9e 11        * . .\r
-       call out_hl             ;1187   cd 13 02        . . .\r
-       jp crlf                 ;118a   c3 a3 02        . . .\r
-\r
-msg_high:\r
+       call pstr_inl\r
        DC      'High = '\r
-msg_max:\r
+       ld hl,(high_load)\r
+       call out_hl\r
+       call pstr_inl\r
        DC      '  Max = '\r
+       ld hl,(max_load)\r
+       call out_hl\r
+       call pstr_inl\r
+       DC      '  Top = '\r
+       ld hl,(BDOS+1)\r
+       call out_hl\r
+       jp crlf\r
+\r
+;-------------------------------------------------------------------------------\r
+; > Wstartaddr endaddr\r
+;      Write a file to disk\r
 \r
 cmd_W:\r
-       call get_arg_range      ;11a0   cd 7d 03        . } .\r
-       call assert_eol         ;11a3   cd d6 02        . . .\r
-       push hl                 ;11a6   e5      .\r
-       ld a,c                  ;11a7   79      y\r
-       add a,07fh              ;11a8   c6 7f   . \7f\r
-       jr nc,l11adh            ;11aa   30 01   0 .\r
-       inc b                   ;11ac   04      .\r
+       call get_arg_range\r
+       call assert_eol\r
+       push hl\r
+       ld a,c\r
+       add a,07fh\r
+       jr nc,l11adh\r
+       inc b\r
 l11adh:\r
-       and 080h                ;11ad   e6 80   . .\r
-       ld c,a                  ;11af   4f      O\r
-       push bc                 ;11b0   c5      .\r
-       ld a,(FCB+1)            ;11b1   3a 5d 00        : ] .\r
-       cp ' '                  ;11b4   fe 20   .\r
-       jr z,error5             ;11b6   28 3b   ( ;\r
-       call fcb_clear_rc       ;11b8   cd 4c 10        . L .\r
-       push de                 ;11bb   d5      .\r
-       ld c,BDOS_DELETE        ;11bc   0e 13   . .\r
-       call ddtz_base          ;11be   cd 00 00        . . .\r
-       pop de                  ;11c1   d1      .\r
-       ld c,BDOS_CREATE        ;11c2   0e 16   . .\r
-       call ddtz_base          ;11c4   cd 00 00        . . .\r
-       inc a                   ;11c7   3c      <\r
-       jr z,error5             ;11c8   28 29   ( )\r
-       pop bc                  ;11ca   c1      .\r
-       pop hl                  ;11cb   e1      .\r
+       and 080h\r
+       ld c,a\r
+       push bc\r
+       ld a,(dfcb1+1)\r
+       cp ' '\r
+       jr z,error4\r
+       ld de,dfcb1\r
+       call setup_fcb\r
+       push de\r
+       ld c,BDOS_DELETE\r
+       call ddtz_bdos\r
+       pop de\r
+       ld c,BDOS_CREATE\r
+       call ddtz_bdos\r
+       inc a\r
+       jr z,error4\r
+       pop bc\r
+       pop hl\r
 l11cch:\r
-       ld a,b                  ;11cc   78      x\r
-       or c                    ;11cd   b1      .\r
-       jr z,close_file         ;11ce   28 26   ( &\r
-       push bc                 ;11d0   c5      .\r
-       ld de,080h              ;11d1   11 80 00        . . . DMA_BUF\r
-       ld b,d                  ;11d4   42      B\r
-       ld c,e                  ;11d5   4b      K\r
-       ldir                    ;11d6   ed b0   . .\r
-       call write_sector       ;11d8   cd e4 11        . . .\r
-       ex (sp),hl              ;11db   e3      .\r
-       ld bc,0ff80h            ;11dc   01 80 ff        . . .\r
-       add hl,bc               ;11df   09      .\r
-       ex (sp),hl              ;11e0   e3      .\r
-       pop bc                  ;11e1   c1      .\r
-       jr l11cch               ;11e2   18 e8   . .\r
+       ld a,b\r
+       or c\r
+       jr z,close_file\r
+       push bc\r
+       ld de,080h              ; DMA_BUF\r
+       ld b,d\r
+       ld c,e\r
+       ldir\r
+       call write_sector\r
+       ex (sp),hl\r
+       ld bc,0ff80h\r
+       add hl,bc\r
+       ex (sp),hl\r
+       pop bc\r
+       jr l11cch\r
 \r
 write_sector:\r
-       push hl                 ;11e4   e5      .\r
-       ld de,FCB               ;11e5   11 5c 00        . \ .\r
-       ld c,BDOS_WRITE         ;11e8   0e 15   . .\r
-       call ddtz_base          ;11ea   cd 00 00        . . .\r
-       pop hl                  ;11ed   e1      .\r
-       and a                   ;11ee   a7      .\r
-       ret z                   ;11ef   c8      .\r
-       call close_file         ;11f0   cd f6 11        . . .\r
-error5:\r
-       jp ERROR                ;11f3   c3 07 01        . . .\r
+       push hl\r
+       ld de,dfcb1\r
+       ld c,BDOS_WRITE\r
+       call ddtz_bdos\r
+       pop hl\r
+       and a\r
+       ret z\r
+       call close_file\r
+error4:\r
+       jp ERROR\r
 \r
 close_file:\r
-       ld de,FCB               ;11f6   11 5c 00        . \ .\r
-       ld c,BDOS_CLOSE         ;11f9   0e 10   . .\r
-       jp ddtz_base            ;11fb   c3 00 00        . . .\r
+       ld de,dfcb1\r
+       ld c,BDOS_CLOSE\r
+       jp ddtz_bdos\r
+\r
+;-------------------------------------------------------------------------------\r
+; > A [startaddr]\r
+;      Assemble Zilog Z180 mnemonics\r
 \r
 cmd_A:\r
-       ld hl,(last_A)          ;11fe   2a 64 12        * d .\r
-       call get_lastarg_def    ;1201   cd 69 03        . i .\r
-       push hl                 ;1204   e5      .\r
-       pop iy                  ;1205   fd e1   . .\r
-       ld hl,l1259h            ;1207   21 59 12        ! Y .\r
-       ld (CMD_ERR),hl         ;120a   22 66 00        " f .\r
-       ld (l1262h),sp          ;120d   ed 73 62 12     . s b .\r
-l1211h:\r
-       push iy                 ;1211   fd e5   . .\r
-       pop hl                  ;1213   e1      .\r
-       ld (last_A),hl          ;1214   22 64 12        " d .\r
-       ld (l0062h),hl          ;1217   22 62 00        " b .\r
-       push hl                 ;121a   e5      .\r
-       call p_disas_line       ;121b   cd 2d 19        . - .\r
-       pop iy                  ;121e   fd e1   . .\r
-       ld c,b                  ;1220   48      H\r
-       ld de,(offs.@)          ;1221   ed 5b 64 00     . [ d .\r
-       ld a,d                  ;1225   7a      z\r
-       or e                    ;1226   b3      .\r
-       ld b,011h               ;1227   06 11   . .\r
-       jr z,l122dh             ;1229   28 02   ( .\r
-       ld b,019h               ;122b   06 19   . .\r
-l122dh:\r
-       call outbl              ;122d   cd 9f 02        . . .\r
-       ld a,(con_col)          ;1230   3a 72 02        : r .\r
-       cp b                    ;1233   b8      .\r
-       jr c,l122dh             ;1234   38 f7   8 .\r
-       push bc                 ;1236   c5      .\r
-       call get_line           ;1237   cd 4e 01        . N .\r
-       pop bc                  ;123a   c1      .\r
-       call skipbl             ;123b   cd bf 02        . . .\r
-       cp '.'                  ;123e   fe 2e   . .\r
-       ret z                   ;1240   c8      .\r
-       cp '-'                  ;1241   fe 2d   . -\r
-       jr nz,l124bh            ;1243   20 06     .\r
-       ld iy,(cmd_A_prev)      ;1245   fd 2a 66 12     . * f .\r
-       jr l1211h               ;1249   18 c6   . .\r
+       ld hl,(last_A)\r
+       call get_lastarg_def\r
+       ld (last_A),hl\r
+       ld (cmd_A_prev),hl\r
+       ld hl,cmda_restart\r
+       ld (error_func),hl\r
+       ld (l1262h),sp\r
+cmda_loop:\r
+       ld hl,(last_A)\r
+       ld (var.$),hl\r
+       push hl\r
+       call p_disas_line\r
+       ld c,19\r
+       call p_align_@_sym\r
+       ld c,b\r
+       push bc\r
+       call get_line\r
+       pop bc\r
+       pop hl\r
+       call skipbl\r
+       cp '.'\r
+       ret z\r
+       cp '-'\r
+       jr nz,l124bh\r
+       ld hl,(cmd_A_prev)\r
+       jr cmda_lpend\r
 l124bh:\r
-       and a                   ;124b   a7      .\r
-       call nz,sub_1268h       ;124c   c4 68 12        . h .\r
-       ld (cmd_A_prev),iy      ;124f   fd 22 66 12     . " f .\r
-       ld b,0                  ;1253   06 00   . .\r
-       add iy,bc               ;1255   fd 09   . .\r
-       jr l1211h               ;1257   18 b8   . .\r
-l1259h:\r
-       call l0146h             ;1259   cd 46 01        . F .\r
-       ld sp,(l1262h)          ;125c   ed 7b 62 12     . { b .\r
-       jr l1211h               ;1260   18 af   . .\r
-\r
-sub_1268h:\r
-       call skipbl             ;1268   cd bf 02        . . .\r
-       ld hl,t_MNEMONICS       ;126b   21 c6 1e        ! . .\r
-       call sub_030ah          ;126e   cd 0a 03        . . .\r
-       jp nc,ERROR             ;1271   d2 07 01        . . .\r
-       call skipbl             ;1274   cd bf 02        . . .\r
-       push de                 ;1277   d5      .\r
-       ld a,b                  ;1278   78      x\r
-       add a,b                 ;1279   80      .\r
-       add a,b                 ;127a   80      .\r
-       ld hl,b_1289_start      ;127b   21 89 12        ! . .\r
-       call add_hl_a           ;127e   cd b9 02        . . .\r
-       ld e,(hl)               ;1281   5e      ^\r
-       inc hl                  ;1282   23      #\r
-       ld d,(hl)               ;1283   56      V\r
-       inc hl                  ;1284   23      #\r
-       ld b,(hl)               ;1285   46      F\r
-       ex de,hl                ;1286   eb      .\r
-       pop de                  ;1287   d1      .\r
+       push hl\r
+       pop iy\r
+       push hl\r
+       and a\r
+       call nz,asemble_line\r
+       ld b,0\r
+       pop hl\r
+       ld (cmd_A_prev),hl\r
+       add hl,bc\r
+cmda_lpend:\r
+       ld (last_A),hl\r
+       jr cmda_loop\r
+\r
+cmda_restart:\r
+       call p_msg_error\r
+       ld sp,(l1262h)\r
+       jr cmda_loop\r
+\r
+asemble_line:\r
+       call skipbl\r
+       ld hl,t_MNEMONICS\r
+       call sub_030ah\r
+       jr nc,error4\r
+       call skipbl\r
+       push de\r
+       ld a,b\r
+       add a,b\r
+       add a,b\r
+       ld hl,b_1289_start\r
+       call add_hl_a\r
+       ld e,(hl)\r
+       inc hl\r
+       ld d,(hl)\r
+       inc hl\r
+       ld b,(hl)\r
+       ex de,hl\r
+       pop de\r
 \r
 CALL_HL:\r
-       jp (hl)                 ;1288   e9      .\r
+       jp (hl)\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 b_1289_start:\r
-       dw      as.ADC_SBC              ;ADC    1289    51 15   Q .\r
-       db      088h                    ;       128b    88      .\r
-       dw      as.ADD                  ;ADD    128c    71 15   q .\r
-       db      080h                    ;       128e    80      .\r
-       dw      as.AND_CP_OR_SUB_XOR    ;AND    128f    a8 15   . .\r
-       db      0a0h                    ;       1291    a0      .\r
-       dw      as.BITOP                ;BIT    1292    09 16   . .\r
-       db      040h                    ;       1294    40      @\r
-       dw      as.CALL                 ;CALL   1295    2d 16   - .\r
-       db      0c4h                    ;       1297    c4      .\r
-       dw      as.opc.noarg            ;CCF    1298    3b 15   ; .\r
-       db      03fh                    ;       129a    3f      ?\r
-       dw      as.AND_CP_OR_SUB_XOR    ;CP     129b    a8 15   . .\r
-       db      0b8h                    ;       129d    b8      .\r
-       dw      gen.opc.ED2             ;CPD    129e    44 15   D .\r
-       db      0a9h                    ;       12a0    a9      .\r
-       dw      gen.opc.ED2             ;CPDR   12a1    44 15   D .\r
-       db      0b9h                    ;       12a3    b9      .\r
-       dw      gen.opc.ED2             ;CPI    12a4    44 15   D .\r
-       db      0a1h                    ;       12a6    a1      .\r
-       dw      gen.opc.ED2             ;CPIR   12a7    44 15   D .\r
-       db      0b1h                    ;       12a9    b1      .\r
-       dw      as.opc.noarg            ;CPL    12aa    3b 15   ; .\r
-       db      02fh                    ;       12ac    2f      /\r
-       dw      as.opc.noarg            ;DAA    12ad    3b 15   ; .\r
-       db      027h                    ;       12af    27      '\r
-       dw      as.DEC_INC              ;DEC    12b0    98 17   . .\r
-       db      005h                    ;       12b2    05      .\r
-       dw      as.opc.noarg            ;DI     12b3    3b 15   ; .\r
-       db      0f3h                    ;       12b5    f3      .\r
-       dw      as.DJNZ                 ;DJNZ   12b6    99 16   . .\r
-       db      010h                    ;       12b8    10      .\r
-       dw      as.opc.noarg            ;EI     12b9    3b 15   ; .\r
-       db      0fbh                    ;       12bb    fb      .\r
-       dw      as.EX                   ;EX     12bc    49 17   I .\r
-       db      0e3h                    ;       12be    e3      .\r
-       dw      as.opc.noarg            ;EXX    12bf    3b 15   ; .\r
-       db      0d9h                    ;       12c1    d9      .\r
-       dw      as.opc.noarg            ;HALT   12c2    3b 15   ; .\r
-       db      076h                    ;       12c4    76      v\r
-       dw      as.IM                   ;IM     12c5    b4 16   . .\r
-       db      046h                    ;       12c7    46      F\r
-       dw      as.IN                   ;IN     12c8    ed 16   . .\r
-       db      040h                    ;       12ca    40      @\r
-       dw      as.DEC_INC              ;INC    12cb    98 17   . .\r
-       db      004h                    ;       12cd    04      .\r
-       dw      gen.opc.ED2             ;IND    12ce    44 15   D .\r
-       db      0aah                    ;       12d0    aa      .\r
-       dw      gen.opc.ED2             ;INDR   12d1    44 15   D .\r
-       db      0bah                    ;       12d3    ba      .\r
-       dw      gen.opc.ED2             ;INI    12d4    44 15   D .\r
-       db      0a2h                    ;       12d6    a2      .\r
-       dw      gen.opc.ED2             ;INIR   12d7    44 15   D .\r
-       db      0b2h                    ;       12d9    b2      .\r
-       dw      as.JP                   ;JP     12da    53 16   S .\r
-       db      0c2h                    ;       12dc    c2      .\r
-       dw      as.JR                   ;JR     12dd    a0 16   . .\r
-       db      020h                    ;       12df    20\r
-       dw      as.LD                   ;LD     12e0    52 13   R .\r
-       db      040h                    ;       12e2    40      @\r
-       dw      gen.opc.ED2             ;LDD    12e3    44 15   D .\r
-       db      0a8h                    ;       12e5    a8      .\r
-       dw      gen.opc.ED2             ;LDDR   12e6    44 15   D .\r
-       db      0b8h                    ;       12e8    b8      .\r
-       dw      gen.opc.ED2             ;LDI    12e9    44 15   D .\r
-       db      0a0h                    ;       12eb    a0      .\r
-       dw      gen.opc.ED2             ;LDIR   12ec    44 15   D .\r
-       db      0b0h                    ;       12ee    b0      .\r
-       dw      gen.opc.ED2             ;NEG    12ef    44 15   D .\r
-       db      044h                    ;       12f1    44      D\r
-       dw      as.opc.noarg            ;NOP    12f2    3b 15   ; .\r
-       db      000h                    ;       12f4    00      .\r
-       dw      as.AND_CP_OR_SUB_XOR    ;OR     12f5    a8 15   . .\r
-       db      0b0h                    ;       12f7    b0      .\r
-       dw      gen.opc.ED2             ;OTDR   12f8    44 15   D .\r
-       db      0bbh                    ;       12fa    bb      .\r
-       dw      gen.opc.ED2             ;OTIR   12fb    44 15   D .\r
-       db      0b3h                    ;       12fd    b3      .\r
-       dw      as.OUT                  ;OUT    12fe    21 17   ! .\r
-       db      041h                    ;       1300    41      A\r
-       dw      gen.opc.ED2             ;OUTD   1301    44 15   D .\r
-       db      0abh                    ;       1303    ab      .\r
-       dw      gen.opc.ED2             ;OUTI   1304    44 15   D .\r
-       db      0a3h                    ;       1306    a3      .\r
-       dw      as.POP_PUSH             ;POP    1307    d9 16   . .\r
-       db      0c1h                    ;       1309    c1      .\r
-       dw      as.POP_PUSH             ;PUSH   130a    d9 16   . .\r
-       db      0c5h                    ;       130c    c5      .\r
-       dw      as.BITOP                ;RES    130d    09 16   . .\r
-       db      080h                    ;       130f    80      .\r
-       dw      as.RET                  ;RET    1310    45 16   E .\r
-       db      0c0h                    ;       1312    c0      .\r
-       dw      gen.opc.ED2             ;RETI   1313    44 15   D .\r
-       db      04dh                    ;       1315    4d      M\r
-       dw      gen.opc.ED2             ;RETN   1316    44 15   D .\r
-       db      045h                    ;       1318    45      E\r
-       dw      as.SHIFTOP              ;RL     1319    d5 15   . .\r
-       db      010h                    ;       131b    10      .\r
-       dw      as.opc.noarg            ;RLA    131c    3b 15   ; .\r
-       db      017h                    ;       131e    17      .\r
-       dw      as.SHIFTOP              ;RLC    131f    d5 15   . .\r
-       db      000h                    ;       1321    00      .\r
-       dw      as.opc.noarg            ;RLCA   1322    3b 15   ; .\r
-       db      007h                    ;       1324    07      .\r
-       dw      gen.opc.ED2             ;RLD    1325    44 15   D .\r
-       db      06fh                    ;       1327    6f      o\r
-       dw      as.SHIFTOP              ;RR     1328    d5 15   . .\r
-       db      018h                    ;       132a    18      .\r
-       dw      as.opc.noarg            ;RRA    132b    3b 15   ; .\r
-       db      01fh                    ;       132d    1f      .\r
-       dw      as.SHIFTOP              ;RRC    132e    d5 15   . .\r
-       db      008h                    ;       1330    08      .\r
-       dw      as.opc.noarg            ;RRCA   1331    3b 15   ; .\r
-       db      00fh                    ;       1333    0f      .\r
-       dw      gen.opc.ED2             ;RRD    1334    44 15   D .\r
-       db      067h                    ;       1336    67      g\r
-       dw      as.RST                  ;RST    1337    ca 16   . .\r
-       db      0c7h                    ;       1339    c7      .\r
-       dw      as.ADC_SBC              ;SBC    133a    51 15   Q .\r
-       db      098h                    ;       133c    98      .\r
-       dw      as.opc.noarg            ;SCF    133d    3b 15   ; .\r
-       db      037h                    ;       133f    37      7\r
-       dw      as.BITOP                ;SET    1340    09 16   . .\r
-       db      0c0h                    ;       1342    c0      .\r
-       dw      as.SHIFTOP              ;SLA    1343    d5 15   . .\r
-       db      020h                    ;       1345    20\r
-       dw      as.SHIFTOP              ;SRA    1346    d5 15   . .\r
-       db      028h                    ;       1348    28      (\r
-       dw      as.SHIFTOP              ;SRL    1349    d5 15   . .\r
-       db      038h                    ;       134b    38      8\r
-       dw      as.AND_CP_OR_SUB_XOR    ;SUB    134c    a8 15   . .\r
-       db      090h                    ;       134e    90      .\r
-       dw      as.AND_CP_OR_SUB_XOR    ;XOR    134f    a8 15   . .\r
-       db      0a8h                    ;       1351    a8      .\r
+       dw      as.ADC_SBC              ;ADC\r
+       db      088h                    ;\r
+       dw      as.ADD                  ;ADD\r
+       db      080h                    ;\r
+       dw      as.AND_CP_OR_SUB_XOR    ;AND\r
+       db      0a0h                    ;\r
+       dw      as.BITOP                ;BIT\r
+       db      040h                    ;\r
+       dw      as.CALL                 ;CALL\r
+       db      0c4h                    ;\r
+       dw      as.opc.noarg            ;CCF\r
+       db      03fh                    ;\r
+       dw      as.AND_CP_OR_SUB_XOR    ;CP\r
+       db      0b8h                    ;\r
+       dw      gen.opc.ED2             ;CPD\r
+       db      0a9h                    ;\r
+       dw      gen.opc.ED2             ;CPDR\r
+       db      0b9h                    ;\r
+       dw      gen.opc.ED2             ;CPI\r
+       db      0a1h                    ;\r
+       dw      gen.opc.ED2             ;CPIR\r
+       db      0b1h                    ;\r
+       dw      as.opc.noarg            ;CPL\r
+       db      02fh                    ;\r
+       dw      as.opc.noarg            ;DAA\r
+       db      027h                    ;\r
+       dw      as.DEC_INC              ;DEC\r
+       db      005h                    ;\r
+       dw      as.opc.noarg            ;DI\r
+       db      0f3h                    ;\r
+       dw      as.DJNZ                 ;DJNZ\r
+       db      010h                    ;\r
+       dw      as.opc.noarg            ;EI\r
+       db      0fbh                    ;\r
+       dw      as.EX                   ;EX\r
+       db      0e3h                    ;\r
+       dw      as.opc.noarg            ;EXX\r
+       db      0d9h                    ;\r
+       dw      as.opc.noarg            ;HALT\r
+       db      076h                    ;\r
+       dw      as.IM                   ;IM\r
+       db      046h                    ;\r
+       dw      as.IN                   ;IN\r
+       db      040h                    ;\r
+       dw      as.DEC_INC              ;INC\r
+       db      004h                    ;\r
+       dw      gen.opc.ED2             ;IND\r
+       db      0aah                    ;\r
+       dw      gen.opc.ED2             ;INDR\r
+       db      0bah                    ;\r
+       dw      gen.opc.ED2             ;INI\r
+       db      0a2h                    ;\r
+       dw      gen.opc.ED2             ;INIR\r
+       db      0b2h                    ;\r
+       dw      as.JP                   ;JP\r
+       db      0c2h                    ;\r
+       dw      as.JR                   ;JR\r
+       db      020h                    ;\r
+       dw      as.LD                   ;LD\r
+       db      040h                    ;\r
+       dw      gen.opc.ED2             ;LDD\r
+       db      0a8h                    ;\r
+       dw      gen.opc.ED2             ;LDDR\r
+       db      0b8h                    ;\r
+       dw      gen.opc.ED2             ;LDI\r
+       db      0a0h                    ;\r
+       dw      gen.opc.ED2             ;LDIR\r
+       db      0b0h                    ;\r
+       dw      gen.opc.ED2             ;NEG\r
+       db      044h                    ;\r
+       dw      as.opc.noarg            ;NOP\r
+       db      000h                    ;\r
+       dw      as.AND_CP_OR_SUB_XOR    ;OR\r
+       db      0b0h                    ;\r
+       dw      gen.opc.ED2             ;OTDR\r
+       db      0bbh                    ;\r
+       dw      gen.opc.ED2             ;OTIR\r
+       db      0b3h                    ;\r
+       dw      as.OUT                  ;OUT\r
+       db      041h                    ;\r
+       dw      gen.opc.ED2             ;OUTD\r
+       db      0abh                    ;\r
+       dw      gen.opc.ED2             ;OUTI\r
+       db      0a3h                    ;\r
+       dw      as.POP_PUSH             ;POP\r
+       db      0c1h                    ;\r
+       dw      as.POP_PUSH             ;PUSH\r
+       db      0c5h                    ;\r
+       dw      as.BITOP                ;RES\r
+       db      080h                    ;\r
+       dw      as.RET                  ;RET\r
+       db      0c0h                    ;\r
+       dw      gen.opc.ED2             ;RETI\r
+       db      04dh                    ;\r
+       dw      gen.opc.ED2             ;RETN\r
+       db      045h                    ;\r
+       dw      as.SHIFTOP              ;RL\r
+       db      010h                    ;\r
+       dw      as.opc.noarg            ;RLA\r
+       db      017h                    ;\r
+       dw      as.SHIFTOP              ;RLC\r
+       db      000h                    ;\r
+       dw      as.opc.noarg            ;RLCA\r
+       db      007h                    ;\r
+       dw      gen.opc.ED2             ;RLD\r
+       db      06fh                    ;\r
+       dw      as.SHIFTOP              ;RR\r
+       db      018h                    ;\r
+       dw      as.opc.noarg            ;RRA\r
+       db      01fh                    ;\r
+       dw      as.SHIFTOP              ;RRC\r
+       db      008h                    ;\r
+       dw      as.opc.noarg            ;RRCA\r
+       db      00fh                    ;\r
+       dw      gen.opc.ED2             ;RRD\r
+       db      067h                    ;\r
+       dw      as.RST                  ;RST\r
+       db      0c7h                    ;\r
+       dw      as.ADC_SBC              ;SBC\r
+       db      098h                    ;\r
+       dw      as.opc.noarg            ;SCF\r
+       db      037h                    ;\r
+       dw      as.BITOP                ;SET\r
+       db      0c0h                    ;\r
+       dw      as.SHIFTOP              ;SLA\r
+       db      020h                    ;\r
+       dw      as.SHIFTOP              ;SRA\r
+       db      028h                    ;\r
+       dw      as.SHIFTOP              ;SRL\r
+       db      038h                    ;\r
+       dw      as.AND_CP_OR_SUB_XOR    ;SUB\r
+       db      090h                    ;\r
+       dw      as.AND_CP_OR_SUB_XOR    ;XOR\r
+       db      0a8h                    ;\r
 \r
        dw      as.IN0                  ;IN0\r
        db      000h                    ;\r
@@ -3132,6 +3687,8 @@ b_1289_start:
        dw      as.TSTIO                ;TSTIO\r
        db      074h                    ;\r
 \r
+;-------------------------------------------------------------------------------\r
+\r
 as.TST:\r
        call arg.r_HL_A         ;\r
        jr nc,as.tst_0\r
@@ -3149,9 +3706,9 @@ as.TSTIO:
 \r
 as.IN0:\r
        call arg.r_HL_A         ;\r
-       jr nc,error7\r
+       jr nc,error5\r
        cp 006h\r
-       jr z,error7\r
+       jr z,error5\r
        rlca\r
        rlca\r
        rlca\r
@@ -3165,9 +3722,9 @@ as.OUTO:
        call arg.addr_8bit      ;\r
        call assert_comma       ;\r
        call arg.r_HL_A         ;\r
-       jr nc,error7\r
+       jr nc,error5\r
        cp 006h\r
-       jr z,error7\r
+       jr z,error5\r
        rlca\r
        rlca\r
        rlca\r
@@ -3184,482 +3741,502 @@ as.store_io0:
 \r
 as.MLT:\r
        call arg.ww             ;\r
-       jr nc,error7\r
+       jr nc,error5\r
        add a,b\r
        ld b,a\r
        jp gen.opc.ED2\r
 \r
-error7:\r
+error5:\r
        jp ERROR\r
 \r
 as.LD:\r
-       call arg.r_HL_A         ;1352   cd 2e 18        . . .\r
-       jr c,l13d4h             ;1355   38 7d   8 }\r
-       call arg.IDX_displcmnt  ;1357   cd 55 18        . U .\r
-       jp c,l1471h             ;135a   da 71 14        . q .\r
-       call arg.ww             ;135d   cd 1b 18        . . .\r
-       jp c,l149ch             ;1360   da 9c 14        . . .\r
-       call arg.IX_IY          ;1363   cd 3d 18        . = .\r
-       jp c,l14f5h             ;1366   da f5 14        . . .\r
-       ld a,(de)               ;1369   1a      .\r
-       cp 'I'                  ;136a   fe 49   . I\r
-       jp z,l1511h             ;136c   ca 11 15        . . .\r
-       cp 'R'                  ;136f   fe 52   . R\r
-       jp z,l1519h             ;1371   ca 19 15        . . .\r
-       cp '('                  ;1374   fe 28   . (\r
-       jp nz,ERROR             ;1376   c2 07 01        . . .\r
-       inc de                  ;1379   13      .\r
-       call arg.ww             ;137a   cd 1b 18        . . .\r
-       jp c,l1528h             ;137d   da 28 15        . ( .\r
-       call test_expr          ;1380   cd 09 18        . . .\r
-       call test_paren_close   ;1383   cd c5 18        . . .\r
-       call assert_comma       ;1386   cd be 18        . . .\r
-       call arg.ww             ;1389   cd 1b 18        . . .\r
-       jr c,l13c2h             ;138c   38 34   8 4\r
-       call arg.IX_IY          ;138e   cd 3d 18        . = .\r
-       jr nc,l13aah            ;1391   30 17   0 .\r
-       ld b,022h               ;1393   06 22   . "\r
+       call arg.r_HL_A\r
+       jr c,l13d4h\r
+       call arg.IDX_displcmnt\r
+       jp c,l1471h\r
+       call arg.ww\r
+       jp c,l149ch\r
+       call arg.IX_IY\r
+       jp c,l14f5h\r
+       call get_char_upper\r
+       cp 'I'\r
+       jp z,l1511h\r
+       cp 'R'\r
+       jp z,l1519h\r
+       cp '('\r
+       jr nz,error5\r
+       inc de\r
+       call arg.ww\r
+       jp c,l1528h\r
+       call test_expr\r
+       call test_paren_close\r
+       call assert_comma\r
+       call arg.ww\r
+       jr c,l13c2h\r
+       call arg.IX_IY\r
+       jr nc,l13aah\r
+       ld b,022h\r
 l1395h:\r
-       call assert_eol         ;1395   cd d6 02        . . .\r
-       ld a,(prefix_ixiy)      ;1398   3a cc 18        : . .\r
+       call assert_eol\r
+       ld a,(prefix_ixiy)\r
 l139bh:\r
-       ld (iy+000h),a          ;139b   fd 77 00        . w .\r
-       ld (iy+001h),b          ;139e   fd 70 01        . p .\r
-       ld (iy+002h),l          ;13a1   fd 75 02        . u .\r
-       ld (iy+003h),h          ;13a4   fd 74 03        . t .\r
-       ld c,004h               ;13a7   0e 04   . .\r
-       ret                     ;13a9   c9      .\r
+       ld (iy+000h),a\r
+       ld (iy+001h),b\r
+       ld (iy+002h),l\r
+       ld (iy+003h),h\r
+       ld c,004h\r
+       ret\r
+\r
 l13aah:\r
-       ld a,(de)               ;13aa   1a      .\r
-       cp 'A'                  ;13ab   fe 41   . A\r
-       jp nz,ERROR             ;13ad   c2 07 01        . . .\r
-       inc de                  ;13b0   13      .\r
-       ld b,032h               ;13b1   06 32   . 2\r
+       call get_char_upper\r
+       cp 'A'\r
+       jr nz,error5\r
+       inc de\r
+       ld b,032h\r
+\r
 as.store_3:\r
-       call assert_eol         ;13b3   cd d6 02        . . .\r
-       ld (iy+000h),b          ;13b6   fd 70 00        . p .\r
-       ld (iy+001h),l          ;13b9   fd 75 01        . u .\r
-       ld (iy+002h),h          ;13bc   fd 74 02        . t .\r
-       ld c,003h               ;13bf   0e 03   . .\r
-       ret                     ;13c1   c9      .\r
+       call assert_eol\r
+       ld (iy+000h),b\r
+       ld (iy+001h),l\r
+       ld (iy+002h),h\r
+       ld c,003h\r
+       ret\r
+\r
 l13c2h:\r
-       cp 020h                 ;13c2   fe 20   .\r
-       jr z,l13d0h             ;13c4   28 0a   ( .\r
-       add a,043h              ;13c6   c6 43   . C\r
-       ld b,a                  ;13c8   47      G\r
+       cp 020h\r
+       jr z,l13d0h\r
+       add a,043h\r
+       ld b,a\r
 l13c9h:\r
-       call assert_eol         ;13c9   cd d6 02        . . .\r
-       ld a,0edh               ;13cc   3e ed   > .\r
-       jr l139bh               ;13ce   18 cb   . .\r
+       call assert_eol\r
+       ld a,0edh\r
+       jr l139bh\r
 l13d0h:\r
-       ld b,022h               ;13d0   06 22   . "\r
-       jr as.store_3           ;13d2   18 df   . .\r
+       ld b,022h\r
+       jr as.store_3\r
+\r
 l13d4h:\r
-       ld b,a                  ;13d4   47      G\r
-       call assert_comma       ;13d5   cd be 18        . . .\r
-       call arg.r_HL_A         ;13d8   cd 2e 18        . . .\r
-       jr nc,l13f0h            ;13db   30 13   0 .\r
-       push af                 ;13dd   f5      .\r
-       ld a,b                  ;13de   78      x\r
-       rlca                    ;13df   07      .\r
-       rlca                    ;13e0   07      .\r
-       rlca                    ;13e1   07      .\r
-       ld b,a                  ;13e2   47      G\r
-       pop af                  ;13e3   f1      .\r
-       add a,b                 ;13e4   80      .\r
-       add a,040h              ;13e5   c6 40   . @\r
-       cp 076h                 ;13e7   fe 76   . v\r
-       jp z,ERROR              ;13e9   ca 07 01        . . .\r
+       ld b,a\r
+       call assert_comma\r
+       call arg.r_HL_A\r
+       jr nc,l13f0h\r
+       push af\r
+       ld a,b\r
+       rlca\r
+       rlca\r
+       rlca\r
+       ld b,a\r
+       pop af\r
+       add a,b\r
+       add a,040h\r
+       cp 076h\r
+       jr z,error60\r
 l13ech:\r
-       ld b,a                  ;13ec   47      G\r
-       jp as.opc.noarg         ;13ed   c3 3b 15        . ; .\r
+       ld b,a\r
+       jp as.opc.noarg\r
+\r
 l13f0h:\r
-       call arg.IDX_displcmnt  ;13f0   cd 55 18        . U .\r
-       jr nc,l1413h            ;13f3   30 1e   0 .\r
-       ld a,b                  ;13f5   78      x\r
-       rlca                    ;13f6   07      .\r
-       rlca                    ;13f7   07      .\r
-       rlca                    ;13f8   07      .\r
-       add a,046h              ;13f9   c6 46   . F\r
-       cp 076h                 ;13fb   fe 76   . v\r
-       jp z,ERROR              ;13fd   ca 07 01        . . .\r
+       call arg.IDX_displcmnt\r
+       jr nc,l1413h\r
+       ld a,b\r
+       rlca\r
+       rlca\r
+       rlca\r
+       add a,046h\r
+       cp 076h\r
+       jr z,error60\r
 \r
 l1400h:\r
-       ld b,a                  ;1400   47      G\r
-       call assert_eol         ;1401   cd d6 02        . . .\r
-       ld (iy+001h),b          ;1404   fd 70 01        . p .\r
-       ld (iy+002h),c          ;1407   fd 71 02        . q .\r
-       ld a,(prefix_ixiy)      ;140a   3a cc 18        : . .\r
-       ld (iy+000h),a          ;140d   fd 77 00        . w .\r
-       ld c,003h               ;1410   0e 03   . .\r
-       ret                     ;1412   c9      .\r
+       ld b,a\r
+       call assert_eol\r
+       ld (iy+001h),b\r
+       ld (iy+002h),c\r
+       ld a,(prefix_ixiy)\r
+       ld (iy+000h),a\r
+       ld c,003h\r
+       ret\r
+\r
 l1413h:\r
-       ld a,(de)               ;1413   1a      .\r
-       cp 'I'                  ;1414   fe 49   . I\r
-       jr z,l1426h             ;1416   28 0e   ( .\r
-       cp 'R'                  ;1418   fe 52   . R\r
-       jr nz,l1432h            ;141a   20 16     .\r
-       ld a,b                  ;141c   78      x\r
-       cp 007h                 ;141d   fe 07   . .\r
-       jp nz,ERROR             ;141f   c2 07 01        . . .\r
-       ld b,05fh               ;1422   06 5f   . _\r
-       jr l142eh               ;1424   18 08   . .\r
+       call get_char_upper\r
+       cp 'I'\r
+       jr z,l1426h\r
+       cp 'R'\r
+       jr nz,l1432h\r
+       ld a,b\r
+       cp 007h\r
+       jr nz,error60\r
+       ld b,05fh\r
+       jr l142eh\r
+\r
 l1426h:\r
-       ld a,b                  ;1426   78      x\r
-       cp 007h                 ;1427   fe 07   . .\r
-       jp nz,ERROR             ;1429   c2 07 01        . . .\r
-       ld b,057h               ;142c   06 57   . W\r
+       ld a,b\r
+       cp 007h\r
+       jr nz,error60\r
+       ld b,057h\r
 l142eh:\r
-       inc de                  ;142e   13      .\r
-       jp gen.opc.ED2          ;142f   c3 44 15        . D .\r
+       inc de\r
+       jp gen.opc.ED2\r
 l1432h:\r
-       cp '('                  ;1432   fe 28   . (\r
-       jr z,l144ch             ;1434   28 16   ( .\r
-       call arg.imm_8bit       ;1436   cd ff 17        . . .\r
-       ld a,b                  ;1439   78      x\r
-       rlca                    ;143a   07      .\r
-       rlca                    ;143b   07      .\r
-       rlca                    ;143c   07      .\r
-       add a,006h              ;143d   c6 06   . .\r
+       cp '('\r
+       jr z,l144ch\r
+       call arg.imm_8bit\r
+       ld a,b\r
+       rlca\r
+       rlca\r
+       rlca\r
+       add a,006h\r
 l143fh:\r
-       ld b,a                  ;143f   47      G\r
+       ld b,a\r
 as.store_2:\r
-       call assert_eol         ;1440   cd d6 02        . . .\r
-       ld (iy+000h),b          ;1443   fd 70 00        . p .\r
-       ld (iy+001h),l          ;1446   fd 75 01        . u .\r
-       ld c,002h               ;1449   0e 02   . .\r
-       ret                     ;144b   c9      .\r
+       call assert_eol\r
+       ld (iy+000h),b\r
+       ld (iy+001h),l\r
+       ld c,002h\r
+       ret\r
 l144ch:\r
-       inc de                  ;144c   13      .\r
-       ld a,b                  ;144d   78      x\r
-       cp 007h                 ;144e   fe 07   . .\r
-       jp nz,ERROR             ;1450   c2 07 01        . . .\r
-       call arg.ww             ;1453   cd 1b 18        . . .\r
-       jr nc,l1466h            ;1456   30 0e   0 .\r
-       cp 030h                 ;1458   fe 30   . 0\r
-       jp nc,ERROR             ;145a   d2 07 01        . . .\r
-       add a,00ah              ;145d   c6 0a   . .\r
-       ld b,a                  ;145f   47      G\r
-       call test_paren_close   ;1460   cd c5 18        . . .\r
-       jp as.opc.noarg         ;1463   c3 3b 15        . ; .\r
+       inc de\r
+       ld a,b\r
+       cp 007h\r
+       jr nz,error60\r
+       call arg.ww\r
+       jr nc,l1466h\r
+       cp 030h\r
+       jr nc,error60\r
+       add a,00ah\r
+       ld b,a\r
+       call test_paren_close\r
+       jp as.opc.noarg\r
+\r
+error60:\r
+       jp error\r
+\r
 l1466h:\r
-       call test_expr          ;1466   cd 09 18        . . .\r
-       call test_paren_close   ;1469   cd c5 18        . . .\r
-       ld b,03ah               ;146c   06 3a   . :\r
-       jp as.store_3           ;146e   c3 b3 13        . . .\r
+       call test_expr\r
+       call test_paren_close\r
+       ld b,03ah\r
+       jp as.store_3\r
 \r
 l1471h:\r
-       call assert_comma       ;1471   cd be 18        . . .\r
-       call arg.r_HL_A         ;1474   cd 2e 18        . . .\r
-       jr nc,l1483h            ;1477   30 0a   0 .\r
-       cp 006h                 ;1479   fe 06   . .\r
-       jp z,ERROR              ;147b   ca 07 01        . . .\r
-       add a,070h              ;147e   c6 70   . p\r
-       jp l1400h               ;1480   c3 00 14        . . .\r
+       call assert_comma\r
+       call arg.r_HL_A\r
+       jr nc,l1483h\r
+       cp 006h\r
+       jr z,error60\r
+       add a,070h\r
+       jp l1400h\r
 \r
 l1483h:\r
-       call arg.imm_8bit       ;1483   cd ff 17        . . .\r
-       call assert_eol         ;1486   cd d6 02        . . .\r
-       ld a,(prefix_ixiy)      ;1489   3a cc 18        : . .\r
-       ld (iy+000h),a          ;148c   fd 77 00        . w .\r
-       ld (iy+001h),036h       ;148f   fd 36 01 36     . 6 . 6\r
-       ld (iy+002h),c          ;1493   fd 71 02        . q .\r
-       ld (iy+003h),l          ;1496   fd 75 03        . u .\r
-       ld c,004h               ;1499   0e 04   . .\r
-       ret                     ;149b   c9      .\r
+       call arg.imm_8bit\r
+       call assert_eol\r
+       ld a,(prefix_ixiy)\r
+       ld (iy+000h),a\r
+       ld (iy+001h),036h\r
+       ld (iy+002h),c\r
+       ld (iy+003h),l\r
+       ld c,004h\r
+       ret\r
 l149ch:\r
-       ld b,a                  ;149c   47      G\r
-       call assert_comma       ;149d   cd be 18        . . .\r
-       ld hl,t_HL.AF           ;14a0   21 af 1f        ! . .\r
-       call sub_0318h          ;14a3   cd 18 03        . . .\r
-       jr c,l14c3h             ;14a6   38 1b   8 .\r
-       call arg.IX_IY          ;14a8   cd 3d 18        . = .\r
-       jr nc,l14cch            ;14ab   30 1f   0 .\r
-       ld a,b                  ;14ad   78      x\r
-       cp 030h                 ;14ae   fe 30   . 0\r
-       jr nz,error6            ;14b0   20 73     s\r
-       ld b,0f9h               ;14b2   06 f9   . .\r
+       ld b,a\r
+       call assert_comma\r
+       ld hl,t_HL.AF\r
+       call sub_0318h\r
+       jr c,l14c3h\r
+       call arg.IX_IY\r
+       jr nc,l14cch\r
+       ld a,b\r
+       cp 030h\r
+       jr nz,error6\r
+       ld b,0f9h\r
 l14b4h:\r
-       call assert_eol         ;14b4   cd d6 02        . . .\r
-       ld a,(prefix_ixiy)      ;14b7   3a cc 18        : . .\r
-       ld (iy+000h),a          ;14ba   fd 77 00        . w .\r
-       ld (iy+001h),b          ;14bd   fd 70 01        . p .\r
-       ld c,002h               ;14c0   0e 02   . .\r
-       ret                     ;14c2   c9      .\r
+       call assert_eol\r
+       ld a,(prefix_ixiy)\r
+       ld (iy+000h),a\r
+       ld (iy+001h),b\r
+       ld c,002h\r
+       ret\r
+\r
 l14c3h:\r
-       ld a,b                  ;14c3   78      x\r
-       cp 030h                 ;14c4   fe 30   . 0\r
-       jr nz,error6            ;14c6   20 5d     ]\r
-       ld b,0f9h               ;14c8   06 f9   . .\r
-       jr as.opc.noarg ;14ca   18 6f   . o\r
+       ld a,b\r
+       cp 030h\r
+       jr nz,error6\r
+       ld b,0f9h\r
+       jr as.opc.noarg ;14ca\r
+\r
 l14cch:\r
-       ld a,(de)               ;14cc   1a      .\r
-       cp '('                  ;14cd   fe 28   . (\r
-       jr nz,l14e8h            ;14cf   20 17     .\r
-       inc de                  ;14d1   13      .\r
-       call test_expr          ;14d2   cd 09 18        . . .\r
-       call test_paren_close   ;14d5   cd c5 18        . . .\r
-       ld a,b                  ;14d8   78      x\r
-       cp 020h                 ;14d9   fe 20   .\r
-       jr z,l14e3h             ;14db   28 06   ( .\r
-       add a,04bh              ;14dd   c6 4b   . K\r
-       ld b,a                  ;14df   47      G\r
-       jp l13c9h               ;14e0   c3 c9 13        . . .\r
+       call get_char_upper\r
+       cp '('\r
+       jr nz,l14e8h\r
+       inc de\r
+       call test_expr\r
+       call test_paren_close\r
+       ld a,b\r
+       cp 020h\r
+       jr z,l14e3h\r
+       add a,04bh\r
+       ld b,a\r
+       jp l13c9h\r
+\r
 l14e3h:\r
-       ld b,02ah               ;14e3   06 2a   . *\r
-       jp as.store_3           ;14e5   c3 b3 13        . . .\r
+       ld b,02ah\r
+       jp as.store_3\r
+\r
 l14e8h:\r
-       call test_expr          ;14e8   cd 09 18        . . .\r
-       call assert_eol         ;14eb   cd d6 02        . . .\r
-       ld a,001h               ;14ee   3e 01   > .\r
-       add a,b                 ;14f0   80      .\r
-       ld b,a                  ;14f1   47      G\r
-       jp as.store_3           ;14f2   c3 b3 13        . . .\r
+       call test_expr\r
+       call assert_eol\r
+       ld a,001h\r
+       add a,b\r
+       ld b,a\r
+       jp as.store_3\r
 l14f5h:\r
-       call assert_comma       ;14f5   cd be 18        . . .\r
-       ld a,(de)               ;14f8   1a      .\r
-       cp '('                  ;14f9   fe 28   . (\r
-       jr nz,l1509h            ;14fb   20 0c     .\r
-       inc de                  ;14fd   13      .\r
-       call test_expr          ;14fe   cd 09 18        . . .\r
-       call test_paren_close   ;1501   cd c5 18        . . .\r
-       ld b,02ah               ;1504   06 2a   . *\r
-       jp l1395h               ;1506   c3 95 13        . . .\r
+       call assert_comma\r
+       call get_char_upper\r
+       cp '('\r
+       jr nz,l1509h\r
+       inc de\r
+       call test_expr\r
+       call test_paren_close\r
+       ld b,02ah\r
+       jp l1395h\r
+\r
 l1509h:\r
-       call test_expr          ;1509   cd 09 18        . . .\r
-       ld b,021h               ;150c   06 21   . !\r
-       jp l1395h               ;150e   c3 95 13        . . .\r
+       call test_expr\r
+       ld b,021h\r
+       jp l1395h\r
+\r
 l1511h:\r
-       inc de                  ;1511   13      .\r
-       call assert_comma       ;1512   cd be 18        . . .\r
-       ld b,047h               ;1515   06 47   . G\r
-       jr l151fh               ;1517   18 06   . .\r
+       inc de\r
+       call assert_comma\r
+       ld b,047h\r
+       jr l151fh\r
+\r
 l1519h:\r
-       inc de                  ;1519   13      .\r
-       call assert_comma       ;151a   cd be 18        . . .\r
-       ld b,04fh               ;151d   06 4f   . O\r
+       inc de\r
+       call assert_comma\r
+       ld b,04fh\r
 l151fh:\r
-       ld a,(de)               ;151f   1a      .\r
-       inc de                  ;1520   13      .\r
-       cp 'A'                  ;1521   fe 41   . A\r
-       jr z,gen.opc.ED2        ;1523   28 1f   ( .\r
+       call get_char_upper\r
+       inc de\r
+       cp 'A'\r
+       jr z,gen.opc.ED2\r
 error6:\r
-       jp ERROR                ;1525   c3 07 01        . . .\r
+       jp ERROR\r
 \r
 l1528h:\r
-       cp 020h                 ;1528   fe 20   .\r
-       jr nc,error6            ;152a   30 f9   0 .\r
-       add a,002h              ;152c   c6 02   . .\r
-       ld b,a                  ;152e   47      G\r
-       call test_paren_close   ;152f   cd c5 18        . . .\r
-       call assert_comma       ;1532   cd be 18        . . .\r
-       ld a,(de)               ;1535   1a      .\r
-       cp 'A'                  ;1536   fe 41   . A\r
-       jr nz,error6            ;1538   20 eb     .\r
-       inc de                  ;153a   13      .\r
+       cp 020h\r
+       jr nc,error6\r
+       add a,002h\r
+       ld b,a\r
+       call test_paren_close\r
+       call assert_comma\r
+       call get_char_upper\r
+       cp 'A'\r
+       jr nz,error6\r
+       inc de\r
 as.opc.noarg:\r
-       call assert_eol         ;153b   cd d6 02        . . .\r
-       ld (iy+000h),b          ;153e   fd 70 00        . p .\r
-       ld c,001h               ;1541   0e 01   . .\r
-       ret                     ;1543   c9      .\r
+       call assert_eol\r
+       ld (iy+000h),b\r
+       ld c,001h\r
+       ret\r
 \r
 gen.opc.ED2:\r
-       call assert_eol         ;1544   cd d6 02        . . .\r
-       ld (iy+000h),0edh       ;1547   fd 36 00 ed     . 6 . .\r
-       ld (iy+001h),b          ;154b   fd 70 01        . p .\r
-       ld c,002h               ;154e   0e 02   . .\r
-       ret                     ;1550   c9      .\r
+       call assert_eol\r
+       ld (iy+000h),0edh\r
+       ld (iy+001h),b\r
+       ld c,002h\r
+       ret\r
 \r
 as.ADC_SBC:\r
-       ld hl,t_HL.AF           ;1551   21 af 1f        ! . .\r
-       call sub_0318h          ;1554   cd 18 03        . . .\r
-       jr nc,as.AND_CP_OR_SUB_XOR ;1557        30 4f   0 O\r
-       call assert_comma       ;1559   cd be 18        . . .\r
-       call arg.ww             ;155c   cd 1b 18        . . .\r
-       jp nc,ERROR             ;155f   d2 07 01        . . .\r
-       push af                 ;1562   f5      .\r
-       ld a,b                  ;1563   78      x\r
-       cp 088h                 ;1564   fe 88   . .\r
-       ld b,04ah               ;1566   06 4a   . J\r
-       jr z,l156ch             ;1568   28 02   ( .\r
-       ld b,042h               ;156a   06 42   . B\r
+       ld hl,t_HL.AF\r
+       call sub_0318h\r
+       jr nc,as.AND_CP_OR_SUB_XOR\r
+       call assert_comma\r
+       call arg.ww\r
+       jr nc,error6\r
+       push af\r
+       ld a,b\r
+       cp 088h\r
+       ld b,04ah\r
+       jr z,l156ch\r
+       ld b,042h\r
 l156ch:\r
-       pop af                  ;156c   f1      .\r
-       add a,b                 ;156d   80      .\r
+       pop af\r
+       add a,b\r
 l156eh:\r
-       ld b,a                  ;156e   47      G\r
-       jr gen.opc.ED2          ;156f   18 d3   . .\r
+       ld b,a\r
+       jr gen.opc.ED2\r
+\r
 as.ADD:\r
-       ld hl,t_HL.AF           ;1571   21 af 1f        ! . .\r
-       call sub_0318h          ;1574   cd 18 03        . . .\r
-       jr c,l159ah             ;1577   38 21   8 !\r
-       call arg.IX_IY          ;1579   cd 3d 18        . = .\r
-       jr nc,as.AND_CP_OR_SUB_XOR ;157c        30 2a   0 *\r
-       call assert_comma       ;157e   cd be 18        . . .\r
-       ld hl,t_BC.DE.IX.SP     ;1581   21 bd 1f        ! . .\r
-       ld a,(prefix_ixiy)      ;1584   3a cc 18        : . .\r
-       cp 0fdh                 ;1587   fe fd   . .\r
-       jr nz,l158eh            ;1589   20 03     .\r
-       ld hl,t_BC.DE.IY.SP     ;158b   21 b4 1f        ! . .\r
+       ld hl,t_HL.AF\r
+       call sub_0318h\r
+       jr c,l159ah\r
+       call arg.IX_IY\r
+       jr nc,as.AND_CP_OR_SUB_XOR\r
+       call assert_comma\r
+       ld hl,t_BC.DE.IX.SP\r
+       ld a,(prefix_ixiy)\r
+       cp 0fdh\r
+       jr nz,l158eh\r
+       ld hl,t_BC.DE.IY.SP\r
 l158eh:\r
-       call arg.reg_16bit              ;158e   cd 18 18        . . .\r
-       jp nc,ERROR             ;1591   d2 07 01        . . .\r
-       add a,009h              ;1594   c6 09   . .\r
+       call arg.reg_16bit\r
+       jr nc,error6\r
+       add a,009h\r
 l1596h:\r
-       ld b,a                  ;1596   47      G\r
-       jp l14b4h               ;1597   c3 b4 14        . . .\r
+       ld b,a\r
+       jp l14b4h\r
 l159ah:\r
-       call assert_comma       ;159a   cd be 18        . . .\r
-       call arg.ww             ;159d   cd 1b 18        . . .\r
-       jp nc,ERROR             ;15a0   d2 07 01        . . .\r
-       add a,009h              ;15a3   c6 09   . .\r
-       jp l13ech               ;15a5   c3 ec 13        . . .\r
+       call assert_comma\r
+       call arg.ww\r
+error61nc:\r
+       jr nc,error6\r
+       add a,009h\r
+       jp l13ech\r
 as.AND_CP_OR_SUB_XOR:\r
-       ld a,(de)               ;15a8   1a      .\r
-       cp 'A'                  ;15a9   fe 41   . A\r
-       jr nz,l15b8h            ;15ab   20 0b     .\r
-       push de                 ;15ad   d5      .\r
-       inc de                  ;15ae   13      .\r
-       call next_arg           ;15af   cd ca 02        . . .\r
-       jr z,l15b7h             ;15b2   28 03   ( .\r
-       pop de                  ;15b4   d1      .\r
-       jr l15b8h               ;15b5   18 01   . .\r
+       call get_char_upper\r
+       cp 'A'\r
+       jr nz,l15b8h\r
+       push de\r
+       inc de\r
+       call next_arg\r
+       jr z,l15b7h\r
+       pop de\r
+       jr l15b8h\r
 l15b7h:\r
-       pop af                  ;15b7   f1      .\r
+       pop af\r
 l15b8h:\r
-       call arg.r_HL_A         ;15b8   cd 2e 18        . . .\r
-       jr c,l15cbh             ;15bb   38 0e   8 .\r
-       call arg.IDX_displcmnt  ;15bd   cd 55 18        . U .\r
-       jr c,l15cfh             ;15c0   38 0d   8 .\r
-       call arg.imm_8bit       ;15c2   cd ff 17        . . .\r
-       ld a,b                  ;15c5   78      x\r
-       add a,046h              ;15c6   c6 46   . F\r
-       jp l143fh               ;15c8   c3 3f 14        . ? .\r
+       call arg.r_HL_A\r
+       jr c,l15cbh\r
+       call arg.IDX_displcmnt\r
+       jr c,l15cfh\r
+       call arg.imm_8bit\r
+       ld a,b\r
+       add a,046h\r
+       jp l143fh\r
 l15cbh:\r
-       add a,b                 ;15cb   80      .\r
-       jp l13ech               ;15cc   c3 ec 13        . . .\r
+       add a,b\r
+       jp l13ech\r
 l15cfh:\r
-       ld a,b                  ;15cf   78      x\r
-       add a,006h              ;15d0   c6 06   . .\r
-       jp l1400h               ;15d2   c3 00 14        . . .\r
+       ld a,b\r
+       add a,006h\r
+       jp l1400h\r
 \r
 as.SHIFTOP:\r
-       call arg.r_HL_A         ;15d5   cd 2e 18        . . .\r
-       jr c,l15fah             ;15d8   38 20   8\r
-       call arg.IDX_displcmnt  ;15da   cd 55 18        . U .\r
-       jp nc,ERROR             ;15dd   d2 07 01        . . .\r
-       ld a,b                  ;15e0   78      x\r
-       add a,006h              ;15e1   c6 06   . .\r
-       ld b,a                  ;15e3   47      G\r
+       call arg.r_HL_A\r
+       jr c,l15fah\r
+       call arg.IDX_displcmnt\r
+       jr nc,error61nc\r
+       ld a,b\r
+       add a,006h\r
+       ld b,a\r
 l15e4h:\r
-       call assert_eol         ;15e4   cd d6 02        . . .\r
-       ld a,(prefix_ixiy)      ;15e7   3a cc 18        : . .\r
-       ld (iy+000h),a          ;15ea   fd 77 00        . w .\r
-       ld (iy+001h),0cbh       ;15ed   fd 36 01 cb     . 6 . .\r
-       ld (iy+002h),c          ;15f1   fd 71 02        . q .\r
-       ld (iy+003h),b          ;15f4   fd 70 03        . p .\r
-       ld c,004h               ;15f7   0e 04   . .\r
-       ret                     ;15f9   c9      .\r
+       call assert_eol\r
+       ld a,(prefix_ixiy)\r
+       ld (iy+000h),a\r
+       ld (iy+001h),0cbh\r
+       ld (iy+002h),c\r
+       ld (iy+003h),b\r
+       ld c,004h\r
+       ret\r
 \r
 l15fah:\r
-       add a,b                 ;15fa   80      .\r
+       add a,b\r
 l15fbh:\r
-       ld b,a                  ;15fb   47      G\r
-       call assert_eol         ;15fc   cd d6 02        . . .\r
-       ld (iy+001h),b          ;15ff   fd 70 01        . p .\r
-       ld (iy+000h),0cbh       ;1602   fd 36 00 cb     . 6 . .\r
-       ld c,002h               ;1606   0e 02   . .\r
-       ret                     ;1608   c9      .\r
+       ld b,a\r
+       call assert_eol\r
+       ld (iy+001h),b\r
+       ld (iy+000h),0cbh\r
+       ld c,002h\r
+       ret\r
 \r
 as.BITOP:\r
-       call arg.bit            ;1609   cd d3 17        . . .\r
-       call assert_comma       ;160c   cd be 18        . . .\r
-       call arg.r_HL_A         ;160f   cd 2e 18        . . .\r
-       jr c,l1624h             ;1612   38 10   8 .\r
-       call arg.IDX_displcmnt  ;1614   cd 55 18        . U .\r
-       jp nc,ERROR             ;1617   d2 07 01        . . .\r
-       ld a,l                  ;161a   7d      }\r
-       rlca                    ;161b   07      .\r
-       rlca                    ;161c   07      .\r
-       rlca                    ;161d   07      .\r
-       add a,006h              ;161e   c6 06   . .\r
-       add a,b                 ;1620   80      .\r
-       ld b,a                  ;1621   47      G\r
-       jr l15e4h               ;1622   18 c0   . .\r
+       call arg.bit\r
+       call assert_comma\r
+       call arg.r_HL_A\r
+       jr c,l1624h\r
+       call arg.IDX_displcmnt\r
+       jr nc,error61nc\r
+       ld a,l\r
+       rlca\r
+       rlca\r
+       rlca\r
+       add a,006h\r
+       add a,b\r
+       ld b,a\r
+       jr l15e4h\r
 l1624h:\r
-       add a,b                 ;1624   80      .\r
-       ld b,a                  ;1625   47      G\r
-       ld a,l                  ;1626   7d      }\r
-       rlca                    ;1627   07      .\r
-       rlca                    ;1628   07      .\r
-       rlca                    ;1629   07      .\r
-       add a,b                 ;162a   80      .\r
-       jr l15fbh               ;162b   18 ce   . .\r
+       add a,b\r
+       ld b,a\r
+       ld a,l\r
+       rlca\r
+       rlca\r
+       rlca\r
+       add a,b\r
+       jr l15fbh\r
 \r
 as.CALL:\r
-       push de                 ;162d   d5      .\r
-       call arg.cc_ZCPS        ;162e   cd a5 18        . . .\r
-       jr nc,l163ch            ;1631   30 09   0 .\r
-       add a,b                 ;1633   80      .\r
-       ld b,a                  ;1634   47      G\r
-       call next_arg           ;1635   cd ca 02        . . .\r
-       jr z,l163eh             ;1638   28 04   ( .\r
-       pop de                  ;163a   d1      .\r
-       push de                 ;163b   d5      .\r
+       push de\r
+       call arg.cc_ZCPS\r
+       jr nc,l163ch\r
+       add a,b\r
+       ld b,a\r
+       call next_arg\r
+       jr z,l163eh\r
+       pop de\r
+       push de\r
 l163ch:\r
-       ld b,0cdh               ;163c   06 cd   . .\r
+       ld b,0cdh\r
 l163eh:\r
-       pop af                  ;163e   f1      .\r
-       call test_expr          ;163f   cd 09 18        . . .\r
-       jp as.store_3           ;1642   c3 b3 13        . . .\r
+       pop af\r
+       call test_expr\r
+       jp as.store_3\r
 \r
 as.RET:\r
-       call arg.cc_ZCPS        ;1645   cd a5 18        . . .\r
-       jr nc,l164eh            ;1648   30 04   0 .\r
-       add a,b                 ;164a   80      .\r
-       ld b,a                  ;164b   47      G\r
-       jr l1650h               ;164c   18 02   . .\r
+       call arg.cc_ZCPS\r
+       jr nc,l164eh\r
+       add a,b\r
+       ld b,a\r
+       jr l1650h\r
 l164eh:\r
-       ld b,0c9h               ;164e   06 c9   . .\r
+       ld b,0c9h\r
 l1650h:\r
-       jp as.opc.noarg         ;1650   c3 3b 15        . ; .\r
+       jp as.opc.noarg\r
 \r
 as.JP:\r
-       push de                 ;1653   d5      .\r
-       call arg.cc_ZCPS        ;1654   cd a5 18        . . .\r
-       jr c,l1666h             ;1657   38 0d   8 .\r
+       push de\r
+       call arg.cc_ZCPS\r
+       jr c,l1666h\r
 l1659h:\r
-       pop de                  ;1659   d1      .\r
-       ld hl,l168ch            ;165a   21 8c 16        ! . .\r
-       call sub_030ah          ;165d   cd 0a 03        . . .\r
-       jr c,l1674h             ;1660   38 12   8 .\r
-       ld b,0c3h               ;1662   06 c3   . .\r
-       jr l166eh               ;1664   18 08   . .\r
+       pop de\r
+       ld hl,l168ch\r
+       call sub_030ah\r
+       jr c,l1674h\r
+       ld b,0c3h\r
+       jr l166eh\r
 \r
 l1666h:\r
-       add a,b                 ;1666   80      .\r
-       ld b,a                  ;1667   47      G\r
-       call next_arg           ;1668   cd ca 02        . . .\r
-       jr nz,l1659h            ;166b   20 ec     .\r
-       pop af                  ;166d   f1      .\r
+       add a,b\r
+       ld b,a\r
+       call next_arg\r
+       jr nz,l1659h\r
+       pop af\r
 l166eh:\r
-       call test_expr          ;166e   cd 09 18        . . .\r
-       jp as.store_3           ;1671   c3 b3 13        . . .\r
+       call test_expr\r
+       jp as.store_3\r
 l1674h:\r
-       call assert_eol         ;1674   cd d6 02        . . .\r
-       ld a,b                  ;1677   78      x\r
-       and a                   ;1678   a7      .\r
-       jr nz,l1680h            ;1679   20 05     .\r
-       ld b,0e9h               ;167b   06 e9   . .\r
-       jp as.opc.noarg         ;167d   c3 3b 15        . ; .\r
+       call assert_eol\r
+       ld a,b\r
+       and a\r
+       jr nz,l1680h\r
+       ld b,0e9h\r
+       jp as.opc.noarg\r
 l1680h:\r
-       ld b,0ddh               ;1680   06 dd   . .\r
-       dec a                   ;1682   3d      =\r
-       jr z,l1687h             ;1683   28 02   ( .\r
-       ld b,0fdh               ;1685   06 fd   . .\r
+       ld b,0ddh\r
+       dec a\r
+       jr z,l1687h\r
+       ld b,0fdh\r
 l1687h:\r
-       ld l,0e9h               ;1687   2e e9   . .\r
-       jp as.store_2           ;1689   c3 40 14        . @ .\r
+       ld l,0e9h\r
+       jp as.store_2\r
 \r
 l168ch:\r
        DC      '(HL)'\r
@@ -3668,132 +4245,132 @@ l168ch:
        DB      0\r
 \r
 as.DJNZ:\r
-       call next_arg           ;1699   cd ca 02        . . .\r
-       ld b,010h               ;169c   06 10   . .\r
-       jr l16aeh               ;169e   18 0e   . .\r
+       call next_arg\r
+       ld b,010h\r
+       jr l16aeh\r
 as.JR:\r
-       call arg.cc_ZC          ;16a0   cd ac 18        . . .\r
-       jr c,l16a9h             ;16a3   38 04   8 .\r
-       ld b,018h               ;16a5   06 18   . .\r
-       jr l16aeh               ;16a7   18 05   . .\r
+       call arg.cc_ZC\r
+       jr c,l16a9h\r
+       ld b,018h\r
+       jr l16aeh\r
 l16a9h:\r
-       add a,b                 ;16a9   80      .\r
-       ld b,a                  ;16aa   47      G\r
-       call assert_comma       ;16ab   cd be 18        . . .\r
+       add a,b\r
+       ld b,a\r
+       call assert_comma\r
 l16aeh:\r
-       call arg.j_displ        ;16ae   cd dc 17        . . .\r
-       jp as.store_2           ;16b1   c3 40 14        . @ .\r
+       call arg.j_displ\r
+       jp as.store_2\r
 \r
 as.IM:\r
-       call arg.imm_8bit       ;16b4   cd ff 17        . . .\r
-       ld a,l                  ;16b7   7d      }\r
-       cp 003h                 ;16b8   fe 03   . .\r
-       jr nc,error2            ;16ba   30 5c   0 \\r
-       and a                   ;16bc   a7      .\r
-       jr z,l16c7h             ;16bd   28 08   ( .\r
-       ld b,056h               ;16bf   06 56   . V\r
-       cp 001h                 ;16c1   fe 01   . .\r
-       jr z,l16c7h             ;16c3   28 02   ( .\r
-       ld b,05eh               ;16c5   06 5e   . ^\r
+       call arg.imm_8bit\r
+       ld a,l\r
+       cp 003h\r
+       jr nc,error7\r
+       and a\r
+       jr z,l16c7h\r
+       ld b,056h\r
+       cp 001h\r
+       jr z,l16c7h\r
+       ld b,05eh\r
 l16c7h:\r
-       jp gen.opc.ED2          ;16c7   c3 44 15        . D .\r
+       jp gen.opc.ED2\r
 \r
 as.RST:\r
-       call arg.imm_8bit       ;16ca   cd ff 17        . . .\r
-       ld a,l                  ;16cd   7d      }\r
-       push af                 ;16ce   f5      .\r
-       add a,b                 ;16cf   80      .\r
-       ld b,a                  ;16d0   47      G\r
-       pop af                  ;16d1   f1      .\r
-       and 0c7h                ;16d2   e6 c7   . .\r
-       jr nz,error2            ;16d4   20 42     B\r
-       jp as.opc.noarg         ;16d6   c3 3b 15        . ; .\r
+       call arg.imm_8bit\r
+       ld a,l\r
+       push af\r
+       add a,b\r
+       ld b,a\r
+       pop af\r
+       and 0c7h\r
+       jr nz,error7\r
+       jp as.opc.noarg\r
 \r
 as.POP_PUSH:\r
-       call arg.IX_IY          ;16d9   cd 3d 18        . = .\r
-       jr c,l16e7h             ;16dc   38 09   8 .\r
-       call arg.zz             ;16de   cd 12 18        . . .\r
-       jr nc,error2            ;16e1   30 35   0 5\r
-       add a,b                 ;16e3   80      .\r
-       jp l13ech               ;16e4   c3 ec 13        . . .\r
+       call arg.IX_IY\r
+       jr c,l16e7h\r
+       call arg.zz\r
+       jr nc,error7\r
+       add a,b\r
+       jp l13ech\r
 l16e7h:\r
-       ld a,b                  ;16e7   78      x\r
-       add a,020h              ;16e8   c6 20   .\r
-       jp l1596h               ;16ea   c3 96 15        . . .\r
+       ld a,b\r
+       add a,020h\r
+       jp l1596h\r
 \r
 as.IN:\r
-       call arg.r_HL_A         ;16ed   cd 2e 18        . . .\r
-       jr nc,error2            ;16f0   30 26   0 &\r
-       cp 006h                 ;16f2   fe 06   . .\r
-       jr z,error2             ;16f4   28 22   ( "\r
-       rlca                    ;16f6   07      .\r
-       rlca                    ;16f7   07      .\r
-       rlca                    ;16f8   07      .\r
-       add a,b                 ;16f9   80      .\r
-       ld b,a                  ;16fa   47      G\r
-       cp 078h                 ;16fb   fe 78   . x\r
-       jr nz,l170fh            ;16fd   20 10     .\r
-       call assert_comma       ;16ff   cd be 18        . . .\r
-       call sub_171bh          ;1702   cd 1b 17        . . .\r
-       jr c,l1715h             ;1705   38 0e   8 .\r
-       call arg.addr_8bit      ;1707   cd f3 17        . . .\r
-       ld b,0dbh               ;170a   06 db   . .\r
-       jp as.store_2           ;170c   c3 40 14        . @ .\r
+       call arg.r_HL_A\r
+       jr nc,error7\r
+       cp 006h\r
+       jr z,error7\r
+       rlca\r
+       rlca\r
+       rlca\r
+       add a,b\r
+       ld b,a\r
+       cp 078h\r
+       jr nz,l170fh\r
+       call assert_comma\r
+       call sub_171bh\r
+       jr c,l1715h\r
+       call arg.addr_8bit\r
+       ld b,0dbh\r
+       jp as.store_2\r
 l170fh:\r
-       call assert_comma       ;170f   cd be 18        . . .\r
-       call sub_171bh          ;1712   cd 1b 17        . . .\r
+       call assert_comma\r
+       call sub_171bh\r
 l1715h:\r
-       jp c,gen.opc.ED2        ;1715   da 44 15        . D .\r
-error2:\r
-       jp ERROR                ;1718   c3 07 01        . . .\r
+       jp c,gen.opc.ED2\r
+error7:\r
+       jp ERROR\r
 \r
 sub_171bh:\r
-       ld hl,t__C_             ;171b   21 f4 1f        ! . .\r
-       jp sub_0318h            ;171e   c3 18 03        . . .\r
+       ld hl,t__C_\r
+       jp sub_0318h\r
 \r
 as.OUT:\r
-       call sub_171bh          ;1721   cd 1b 17        . . .\r
-       jr nc,l1739h            ;1724   30 13   0 .\r
-       call assert_comma       ;1726   cd be 18        . . .\r
-       call arg.r_HL_A         ;1729   cd 2e 18        . . .\r
-       jr nc,error2            ;172c   30 ea   0 .\r
-       cp 006h                 ;172e   fe 06   . .\r
-       jr z,error2             ;1730   28 e6   ( .\r
-       rlca                    ;1732   07      .\r
-       rlca                    ;1733   07      .\r
-       rlca                    ;1734   07      .\r
-       add a,b                 ;1735   80      .\r
-       jp l156eh               ;1736   c3 6e 15        . n .\r
+       call sub_171bh\r
+       jr nc,l1739h\r
+       call assert_comma\r
+       call arg.r_HL_A\r
+       jr nc,error7\r
+       cp 006h\r
+       jr z,error7\r
+       rlca\r
+       rlca\r
+       rlca\r
+       add a,b\r
+       jp l156eh\r
 \r
 l1739h:\r
-       call arg.addr_8bit      ;1739   cd f3 17        . . .\r
-       call assert_comma       ;173c   cd be 18        . . .\r
-       cp 'A'                  ;173f   fe 41   . A\r
-       jr nz,error2            ;1741   20 d5     .\r
-       inc de                  ;1743   13      .\r
-       ld b,0d3h               ;1744   06 d3   . .\r
-       jp as.store_2           ;1746   c3 40 14        . @ .\r
+       call arg.addr_8bit\r
+       call assert_comma\r
+       cp 'A'\r
+       jr nz,error7\r
+       inc de\r
+       ld b,0d3h\r
+       jp as.store_2\r
 \r
 as.EX:\r
-       ld hl,b_176d_start      ;1749   21 6d 17        ! m .\r
-       call sub_030ah          ;174c   cd 0a 03        . . .\r
-       jp nc,ERROR             ;174f   d2 07 01        . . .\r
-       ld c,b                  ;1752   48      H\r
-       call assert_eol         ;1753   cd d6 02        . . .\r
-       ld b,000h               ;1756   06 00   . .\r
-       ld hl,l178eh            ;1758   21 8e 17        ! . .\r
-       add hl,bc               ;175b   09      .\r
-       add hl,bc               ;175c   09      .\r
-       ld a,(hl)               ;175d   7e      ~\r
-       ld (iy+000h),a          ;175e   fd 77 00        . w .\r
-       ld c,001h               ;1761   0e 01   . .\r
-       inc hl                  ;1763   23      #\r
-       ld a,(hl)               ;1764   7e      ~\r
-       and a                   ;1765   a7      .\r
-       ret z                   ;1766   c8      .\r
-       ld (iy+001h),a          ;1767   fd 77 01        . w .\r
-       ld c,002h               ;176a   0e 02   . .\r
-       ret                     ;176c   c9      .\r
+       ld hl,b_176d_start\r
+       call sub_030ah\r
+       jr nc,error7\r
+       ld c,b\r
+       call assert_eol\r
+       ld b,000h\r
+       ld hl,l178eh\r
+       add hl,bc\r
+       add hl,bc\r
+       ld a,(hl)\r
+       ld (iy+000h),a\r
+       ld c,001h\r
+       inc hl\r
+       ld a,(hl)\r
+       and a\r
+       ret z\r
+       ld (iy+001h),a\r
+       ld c,002h\r
+       ret\r
 \r
 b_176d_start:\r
        DC      'AF,AF'''\r
@@ -3804,571 +4381,585 @@ l1773h:
        DC      '(SP),IY'\r
        db      0\r
 l178eh:\r
-       db      008h,000h       ;178e   08      .\r
-       db      0ebh,000h       ;1790   eb      .\r
-       db      0e3h,000h       ;1792   e3      .\r
-       db      0ddh,0e3h       ;1794   dd      .\r
-       db      0fdh,0e3h       ;1796   fd      .\r
+       db      008h,000h\r
+       db      0ebh,000h\r
+       db      0e3h,000h\r
+       db      0ddh,0e3h\r
+       db      0fdh,0e3h\r
 \r
 as.DEC_INC:\r
-       call arg.IX_IY          ;1798   cd 3d 18        . = .\r
-       jr c,l17b3h             ;179b   38 16   8 .\r
-       call arg.ww             ;179d   cd 1b 18        . . .\r
-       jr c,l17bfh             ;17a0   38 1d   8 .\r
-       call arg.r_HL_A         ;17a2   cd 2e 18        . . .\r
-       jr c,l17cch             ;17a5   38 25   8 %\r
-       call arg.IDX_displcmnt  ;17a7   cd 55 18        . U .\r
-       jp nc,ERROR             ;17aa   d2 07 01        . . .\r
-       ld a,b                  ;17ad   78      x\r
-       add a,030h              ;17ae   c6 30   . 0\r
-       jp l1400h               ;17b0   c3 00 14        . . .\r
+       call arg.IX_IY\r
+       jr c,l17b3h\r
+       call arg.ww\r
+       jr c,l17bfh\r
+       call arg.r_HL_A\r
+       jr c,l17cch\r
+       call arg.IDX_displcmnt\r
+       jr nc,error8\r
+       ld a,b\r
+       add a,030h\r
+       jp l1400h\r
 l17b3h:\r
-       ld a,b                  ;17b3   78      x\r
-       ld b,023h               ;17b4   06 23   . #\r
-       cp 004h                 ;17b6   fe 04   . .\r
-       jr z,l17bch             ;17b8   28 02   ( .\r
-       ld b,02bh               ;17ba   06 2b   . +\r
+       ld a,b\r
+       ld b,023h\r
+       cp 004h\r
+       jr z,l17bch\r
+       ld b,02bh\r
 l17bch:\r
-       jp l14b4h               ;17bc   c3 b4 14        . . .\r
+       jp l14b4h\r
 l17bfh:\r
-       push af                 ;17bf   f5      .\r
-       ld a,b                  ;17c0   78      x\r
-       ld b,003h               ;17c1   06 03   . .\r
-       cp 004h                 ;17c3   fe 04   . .\r
-       jr z,l17c9h             ;17c5   28 02   ( .\r
-       ld b,00bh               ;17c7   06 0b   . .\r
+       push af\r
+       ld a,b\r
+       ld b,003h\r
+       cp 004h\r
+       jr z,l17c9h\r
+       ld b,00bh\r
 l17c9h:\r
-       pop af                  ;17c9   f1      .\r
-       jr l17cfh               ;17ca   18 03   . .\r
+       pop af\r
+       jr l17cfh\r
 l17cch:\r
-       rlca                    ;17cc   07      .\r
-       rlca                    ;17cd   07      .\r
-       rlca                    ;17ce   07      .\r
+       rlca\r
+       rlca\r
+       rlca\r
 l17cfh:\r
-       add a,b                 ;17cf   80      .\r
-       jp l13ech               ;17d0   c3 ec 13        . . .\r
+       add a,b\r
+       jp l13ech\r
 \r
 arg.bit:\r
-       call arg.imm_8bit       ;17d3   cd ff 17        . . .\r
-       ld a,l                  ;17d6   7d      }\r
-       cp 008h                 ;17d7   fe 08   . .\r
-       jr nc,error3            ;17d9   30 34   0 4\r
-       ret                     ;17db   c9      .\r
+       call arg.imm_8bit\r
+       ld a,l\r
+       cp 008h\r
+       jr nc,error8\r
+       ret\r
 \r
 arg.j_displ:\r
-       call test_expr          ;17dc   cd 09 18        . . .\r
-       push bc                 ;17df   c5      .\r
-       push iy                 ;17e0   fd e5   . .\r
-       pop bc                  ;17e2   c1      .\r
-       and a                   ;17e3   a7      .\r
-       sbc hl,bc               ;17e4   ed 42   . B\r
-       dec hl                  ;17e6   2b      +\r
-       dec hl                  ;17e7   2b      +\r
-       pop bc                  ;17e8   c1      .\r
-       call sub_1802h          ;17e9   cd 02 18        . . .\r
-       ld a,h                  ;17ec   7c      |\r
-       xor l                   ;17ed   ad      .\r
-       bit 7,a                 ;17ee   cb 7f   . \7f\r
-       jr nz,error3            ;17f0   20 1d     .\r
-       ret                     ;17f2   c9      .\r
+       call test_expr\r
+       push bc\r
+       push iy\r
+       pop bc\r
+       and a\r
+       sbc hl,bc\r
+       dec hl\r
+       dec hl\r
+       pop bc\r
+       call sub_1802h\r
+       ld a,h\r
+       xor l\r
+       bit 7,a\r
+       jr nz,error8\r
+       ret\r
 \r
 arg.addr_8bit:\r
-       ld a,(de)               ;17f3   1a      .\r
-       cp '('                  ;17f4   fe 28   . (\r
-       jr nz,arg.imm_8bit      ;17f6   20 07     .\r
-       inc de                  ;17f8   13      .\r
-       call arg.imm_8bit       ;17f9   cd ff 17        . . .\r
-       jp test_paren_close     ;17fc   c3 c5 18        . . .\r
+       call get_char_upper\r
+       cp '('\r
+       jr nz,arg.imm_8bit\r
+       inc de\r
+       call arg.imm_8bit\r
+       jp test_paren_close\r
 \r
 arg.imm_8bit:\r
-       call test_expr          ;17ff   cd 09 18        . . .\r
+       call test_expr\r
 sub_1802h:\r
-       ld a,h                  ;1802   7c      |\r
-       and a                   ;1803   a7      .\r
-       ret z                   ;1804   c8      .\r
-       inc a                   ;1805   3c      <\r
-       ret z                   ;1806   c8      .\r
-       jr error3               ;1807   18 06   . .\r
+       ld a,h\r
+       and a\r
+       ret z\r
+       inc a\r
+       ret z\r
+       jr error8\r
 \r
 test_expr:\r
-       push bc                 ;1809   c5      .\r
-       call expr               ;180a   cd be 03        . . .\r
-       pop bc                  ;180d   c1      .\r
-       ret nc                  ;180e   d0      .\r
-error3:\r
-       jp ERROR                ;180f   c3 07 01        . . .\r
+       push bc\r
+       call expr\r
+       pop bc\r
+       ret nc\r
+error8:\r
+       jp ERROR\r
 \r
 arg.zz:\r
-       push hl                 ;1812   e5      .\r
-       ld hl,t_BC.DE.HL.AF     ;1813   21 ab 1f        ! . .\r
-       jr l181fh               ;1816   18 07   . .\r
+       push hl\r
+       ld hl,t_BC.DE.HL.AF\r
+       jr l181fh\r
 \r
 arg.reg_16bit:\r
-       push hl                 ;1818   e5      .\r
-       jr l181fh               ;1819   18 04   . .\r
+       push hl\r
+       jr l181fh\r
 \r
 arg.ww:\r
-       push hl                 ;181b   e5      .\r
-       ld hl,t_BC.DE.HL.SP     ;181c   21 a2 1f        ! . .\r
+       push hl\r
+       ld hl,t_BC.DE.HL.SP\r
 l181fh:\r
-       push bc                 ;181f   c5      .\r
-       call sub_030ah          ;1820   cd 0a 03        . . .\r
-       jr nc,l182bh            ;1823   30 06   0 .\r
-       ld a,b                  ;1825   78      x\r
-       rlca                    ;1826   07      .\r
-       rlca                    ;1827   07      .\r
-       rlca                    ;1828   07      .\r
-       rlca                    ;1829   07      .\r
-       scf                     ;182a   37      7\r
+       push bc\r
+       call sub_030ah\r
+       jr nc,l182bh\r
+       ld a,b\r
+       rlca\r
+       rlca\r
+       rlca\r
+       rlca\r
+       scf\r
 l182bh:\r
-       pop bc                  ;182b   c1      .\r
-       pop hl                  ;182c   e1      .\r
-       ret                     ;182d   c9      .\r
+       pop bc\r
+       pop hl\r
+       ret\r
 \r
 arg.r_HL_A:\r
-       call skipbl             ;182e   cd bf 02        . . .\r
-       push bc                 ;1831   c5      .\r
-       push hl                 ;1832   e5      .\r
-       ld hl,t_BCDEHL_HL_A     ;1833   21 96 1f        ! . .\r
-       call sub_030ah          ;1836   cd 0a 03        . . .\r
-       ld a,b                  ;1839   78      x\r
-       pop hl                  ;183a   e1      .\r
-       pop bc                  ;183b   c1      .\r
-       ret                     ;183c   c9      .\r
+       call skipbl\r
+       push bc\r
+       push hl\r
+       ld hl,t_BCDEHL_HL_A\r
+       call sub_030ah\r
+       ld a,b\r
+       pop hl\r
+       pop bc\r
+       ret\r
 \r
 arg.IX_IY:\r
-       push hl                 ;183d   e5      .\r
-       push bc                 ;183e   c5      .\r
-       ld hl,t_IX.IY           ;183f   21 c8 1f        ! . .\r
-       call sub_030ah          ;1842   cd 0a 03        . . .\r
-       jr nc,l1852h            ;1845   30 0b   0 .\r
-       ld a,0ddh               ;1847   3e dd   > .\r
-       dec b                   ;1849   05      .\r
-       jr nz,l184eh            ;184a   20 02     .\r
-       ld a,0fdh               ;184c   3e fd   > .\r
+       push hl\r
+       push bc\r
+       ld hl,t_IX.IY\r
+       call sub_030ah\r
+       jr nc,l1852h\r
+       ld a,0ddh\r
+       dec b\r
+       jr nz,l184eh\r
+       ld a,0fdh\r
 l184eh:\r
-       ld (prefix_ixiy),a      ;184e   32 cc 18        2 . .\r
-       scf                     ;1851   37      7\r
+       ld (prefix_ixiy),a\r
+       scf\r
 l1852h:\r
-       pop bc                  ;1852   c1      .\r
-       pop hl                  ;1853   e1      .\r
-       ret                     ;1854   c9      .\r
+       pop bc\r
+       pop hl\r
+       ret\r
 \r
 arg.IDX_displcmnt:\r
-       push hl                 ;1855   e5      .\r
-       push bc                 ;1856   c5      .\r
-       ld a,(de)               ;1857   1a      .\r
-       cp '('                  ;1858   fe 28   . (\r
-       jr nz,l18a1h            ;185a   20 45     E\r
-       push de                 ;185c   d5      .\r
-       inc de                  ;185d   13      .\r
-       ld hl,t_IX.IY           ;185e   21 c8 1f        ! . .\r
-       call sub_030ah          ;1861   cd 0a 03        . . .\r
-       jr nc,l18a0h            ;1864   30 3a   0 :\r
-       pop af                  ;1866   f1      .\r
-       ld a,0ddh               ;1867   3e dd   > .\r
-       dec b                   ;1869   05      .\r
-       jr nz,l186eh            ;186a   20 02     .\r
-       ld a,0fdh               ;186c   3e fd   > .\r
+       push hl\r
+       push bc\r
+       call get_char_upper\r
+       cp '('\r
+       jr nz,l18a1h\r
+       push de\r
+       inc de\r
+       ld hl,t_IX.IY\r
+       call sub_030ah\r
+       jr nc,l18a0h\r
+       pop af\r
+       ld a,0ddh\r
+       dec b\r
+       jr nz,l186eh\r
+       ld a,0fdh\r
 l186eh:\r
-       ld (prefix_ixiy),a      ;186e   32 cc 18        2 . .\r
-       ld a,(de)               ;1871   1a      .\r
-       cp '+'                  ;1872   fe 2b   . +\r
-       jr z,l1882h             ;1874   28 0c   ( .\r
-       cp ')'                  ;1876   fe 29   . )\r
-       ld hl,0                 ;1878   21 00 00        ! . .\r
-       jr z,l189ah             ;187b   28 1d   ( .\r
-       cp '-'                  ;187d   fe 2d   . -\r
-       jp nz,ERROR             ;187f   c2 07 01        . . .\r
+       ld (prefix_ixiy),a\r
+       call get_char_upper\r
+       cp '+'\r
+       jr z,l1882h\r
+       cp ')'\r
+       ld hl,0\r
+       jr z,l189ah\r
+       cp '-'\r
+       jr nz,error9\r
 l1882h:\r
-       push af                 ;1882   f5      .\r
-       inc de                  ;1883   13      .\r
-       call arg.imm_8bit       ;1884   cd ff 17        . . .\r
-       pop af                  ;1887   f1      .\r
-       cp '+'                  ;1888   fe 2b   . +\r
-       jr z,l1894h             ;188a   28 08   ( .\r
-       ld b,h                  ;188c   44      D\r
-       ld c,l                  ;188d   4d      M\r
-       ld hl,0                 ;188e   21 00 00        ! . .\r
-       and a                   ;1891   a7      .\r
-       sbc hl,bc               ;1892   ed 42   . B\r
+       push af\r
+       inc de\r
+       call arg.imm_8bit\r
+       pop af\r
+       cp '+'\r
+       jr z,l1894h\r
+       ld b,h\r
+       ld c,l\r
+       ld hl,0\r
+       and a\r
+       sbc hl,bc\r
 l1894h:\r
-       ld a,(de)               ;1894   1a      .\r
-       cp ')'                  ;1895   fe 29   . )\r
-       jp nz,ERROR             ;1897   c2 07 01        . . .\r
+       call get_char_upper\r
+       cp ')'\r
+       jr nz,error9\r
 l189ah:\r
-       inc de                  ;189a   13      .\r
-       pop bc                  ;189b   c1      .\r
-       ld c,l                  ;189c   4d      M\r
-       pop hl                  ;189d   e1      .\r
-       scf                     ;189e   37      7\r
-       ret                     ;189f   c9      .\r
+       inc de\r
+       pop bc\r
+       ld c,l\r
+       pop hl\r
+       scf\r
+       ret\r
 l18a0h:\r
-       pop de                  ;18a0   d1      .\r
+       pop de\r
 l18a1h:\r
-       pop bc                  ;18a1   c1      .\r
-       pop hl                  ;18a2   e1      .\r
-       and a                   ;18a3   a7      .\r
-       ret                     ;18a4   c9      .\r
+       pop bc\r
+       pop hl\r
+       and a\r
+       ret\r
 \r
 arg.cc_ZCPS:\r
-       ld hl,t_tstfl_ZCPS      ;18a5   21 dc 1f        ! . .\r
-       ld c,007h               ;18a8   0e 07   . .\r
-       jr l18b1h               ;18aa   18 05   . .\r
+       ld hl,t_tstfl_ZCPS\r
+       ld c,007h\r
+       jr l18b1h\r
 \r
 arg.cc_ZC:\r
-       ld hl,t_tstfl_ZC        ;18ac   21 cd 1f        ! . .\r
-       ld c,003h               ;18af   0e 03   . .\r
+       ld hl,t_tstfl_ZC\r
+       ld c,003h\r
 l18b1h:\r
-       push bc                 ;18b1   c5      .\r
-       call sub_030ah          ;18b2   cd 0a 03        . . .\r
-       ld a,b                  ;18b5   78      x\r
-       pop bc                  ;18b6   c1      .\r
-       ret nc                  ;18b7   d0      .\r
-       and c                   ;18b8   a1      .\r
-       rlca                    ;18b9   07      .\r
-       rlca                    ;18ba   07      .\r
-       rlca                    ;18bb   07      .\r
-       scf                     ;18bc   37      7\r
-       ret                     ;18bd   c9      .\r
+       push bc\r
+       call sub_030ah\r
+       ld a,b\r
+       pop bc\r
+       ret nc\r
+       and c\r
+       rlca\r
+       rlca\r
+       rlca\r
+       scf\r
+       ret\r
 \r
 assert_comma:\r
-       call next_arg           ;18be   cd ca 02        . . .\r
-       ret z                   ;18c1   c8      .\r
-l18c2h:\r
-       jp ERROR                ;18c2   c3 07 01        . . .\r
+       call next_arg\r
+       ret z\r
+error9:\r
+       jp ERROR\r
 \r
 test_paren_close:\r
-       ld a,(de)               ;18c5   1a      .\r
-       cp ')'                  ;18c6   fe 29   . )\r
-       jr nz,l18c2h            ;18c8   20 f8     .\r
-       inc de                  ;18ca   13      .\r
-       ret                     ;18cb   c9      .\r
+       call get_char_upper\r
+       cp ')'\r
+       jr nz,error9\r
+       inc de\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+; >>L [startaddr] [endaddr]\r
+;      List disassembled code\r
 \r
 cmd_L:\r
-       ld hl,cmd_L             ;18cd   21 cd 18        ! . .\r
-       ld (cmd_rpt),hl         ;18d0   22 68 00        " h .\r
-       call expr               ;18d3   cd be 03        . . .\r
-       jr nc,l18dbh            ;18d6   30 03   0 .\r
-       ld hl,(last_L)          ;18d8   2a f9 1f        * . .\r
+       ld hl,cmd_L\r
+       ld (cmd_rpt),hl\r
+       call expr\r
+       jr nc,l18dbh\r
+       ld hl,(last_L)\r
 l18dbh:\r
-       push hl                 ;18db   e5      .\r
-       pop iy                  ;18dc   fd e1   . .\r
-       call next_arg           ;18de   cd ca 02        . . .\r
-       call get_range          ;18e1   cd 9a 03        . . .\r
-       jr nc,l1905h            ;18e4   30 1f   0 .\r
-       call assert_eol         ;18e6   cd d6 02        . . .\r
-       ld b,16                 ;18e9   06 10   . .\r
+       call next_arg\r
+       call get_range\r
+       jr nc,l1905h\r
+       call assert_eol\r
+       ld b,16\r
 l18ebh:\r
-       push bc                 ;18eb   c5      .\r
-       push iy                 ;18ec   fd e5   . .\r
-       pop hl                  ;18ee   e1      .\r
-       push hl                 ;18ef   e5      .\r
-       call p_disas_line       ;18f0   cd 2d 19        . - .\r
-       call crlf               ;18f3   cd a3 02        . . .\r
-       pop iy                  ;18f6   fd e1   . .\r
-       ld c,b                  ;18f8   48      H\r
-       ld b,0                  ;18f9   06 00   . .\r
-       add iy,bc               ;18fb   fd 09   . .\r
-       ld (last_L),iy          ;18fd   fd 22 f9 1f     . " . .\r
-       pop bc                  ;1901   c1      .\r
-       djnz l18ebh             ;1902   10 e7   . .\r
-       ret                     ;1904   c9      .\r
+       push bc\r
+       call    cmdl_p_line\r
+       pop bc\r
+       djnz l18ebh\r
+       ret\r
+\r
 l1905h:\r
-       call assert_eol         ;1905   cd d6 02        . . .\r
-       ld h,b                  ;1908   60      `\r
-       ld l,c                  ;1909   69      i\r
-       ld a,b                  ;190a   78      x\r
-       or c                    ;190b   b1      .\r
-       jr nz,l190fh            ;190c   20 01     .\r
-       dec hl                  ;190e   2b      +\r
+       call assert_eol\r
+       ld      d,h\r
+       ld      e,l\r
+       add     hl,bc\r
+       ex      de,hl\r
 l190fh:\r
-       push hl                 ;190f   e5      .\r
-       push iy                 ;1910   fd e5   . .\r
-       pop hl                  ;1912   e1      .\r
-       push hl                 ;1913   e5      .\r
-       call p_disas_line       ;1914   cd 2d 19        . - .\r
-       call crlf               ;1917   cd a3 02        . . .\r
-       pop iy                  ;191a   fd e1   . .\r
-       ld e,b                  ;191c   58      X\r
-       ld d,000h               ;191d   16 00   . .\r
-       add iy,de               ;191f   fd 19   . .\r
-       ld (last_L),iy          ;1921   fd 22 f9 1f     . " . .\r
-       pop hl                  ;1925   e1      .\r
-       and a                   ;1926   a7      .\r
-       sbc hl,de               ;1927   ed 52   . R\r
-       ret z                   ;1929   c8      .\r
-       ret c                   ;192a   d8      .\r
-       jr l190fh               ;192b   18 e2   . .\r
+       push    de\r
+       call    cmdl_p_line\r
+       pop     de\r
+       call    cp_hl_de\r
+       jr      c,l190fh\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+\r
+cmdl_p_line:\r
+       push    hl\r
+       call    p_disas_line\r
+       call    crlf\r
+       pop     hl\r
+       ld      c,b\r
+       ld      b,0\r
+       add     hl,bc\r
+       ld      (last_L),hl\r
+       ret\r
 \r
 p_disas_line:\r
-       call out.hl.@           ;192d   cd a4 01        . . .\r
-       call z,outbl            ;1930   cc 9f 02        . . .\r
-       call outbl              ;1933   cd 9f 02        . . .\r
-       sub a                   ;1936   97      .\r
-       ld (con_col),a          ;1937   32 72 02        2 r .\r
-       call p_disas_instr      ;193a   cd 65 19        . e .\r
-       and a                   ;193d   a7      .\r
-       ret z                   ;193e   c8      .\r
-\r
-l193fh:\r
-       call outbl              ;193f   cd 9f 02        . . .\r
-       ld a,(con_col)          ;1942   3a 72 02        : r .\r
-       cp 16                   ;1945   fe 10   . .\r
-       jr c,l193fh             ;1947   38 f6   8 .\r
+       call p_label\r
+       call outbl2\r
+       call out.hl.@\r
+       call z,outbl\r
+       call outbl\r
+       sub a\r
+       ld (con_col),a\r
+       push    hl\r
+       pop     iy\r
+       call p_disas_instr\r
+       ret z\r
+\r
+       ld      c,15\r
+       call    p_goto_col\r
+       call    p_offset\r
+       call    outbl\r
+       jp      p_symbol\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 p_offset:\r
-       ld de,(offs.@)          ;1949   ed 5b 64 00     . [ d .\r
-       ld a,d                  ;194d   7a      z\r
-       or e                    ;194e   b3      .\r
-       ret z                   ;194f   c8      .\r
-       call p_char_lparen      ;1952   cd 5d 02        . ] .\r
-       ld a,'@'                ;1955   3e 40   > @\r
-       call outchar            ;1957   cd 5d 02        . ] .\r
-       and a                   ;195a   a7      .\r
-       sbc hl,de               ;195b   ed 52   . R\r
-       call out_hl             ;195d   cd 13 02        . . .\r
-       jp out_rparen           ;1962   c3 5d 02        . ] .\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
+\r
+;-------------------------------------------------------------------------------\r
 \r
 p_disas_instr:\r
-       sub a                   ;1965   97      .\r
-       ld (l1ffdh),a           ;1966   32 fd 1f        2 . .\r
-       call disas_get_instrlen ;1969   cd 8c 19        . . .\r
-       jr nc,l197fh            ;196c   30 11   0 .\r
-       push bc                 ;196e   c5      .\r
-       call p_mnemonic         ;196f   cd b9 1e        . . .\r
-       ex de,hl                ;1972   eb      .\r
-       call call_hl            ;1973   cd c1 19        . . .\r
-       pop bc                  ;1976   c1      .\r
-       ld a,(l1ffdh)           ;1977   3a fd 1f        : . .\r
-       ld hl,(l1ffbh)          ;197a   2a fb 1f        * . .\r
-       scf                     ;197d   37      7\r
-       ret                     ;197e   c9      .\r
+       sub a\r
+       ld (disas_argtype),a\r
+       call disas_get_instrlen\r
+       jr nc,l197fh\r
+       push    bc\r
+       ld      a,(con_col)\r
+       add     a,5\r
+       ld      c,a\r
+       call    pstr\r
+       call    p_goto_col\r
+       ex de,hl\r
+       call call_hl\r
+       pop bc\r
+       ld a,(disas_argtype)\r
+       ld hl,(disas_arg_16)\r
+       or a\r
+       scf\r
+       ret\r
 \r
 l197fh:\r
-       ld hl,msg_undef_opcode  ;197f   21 89 19        ! . .\r
-       call pstr               ;1982   cd 88 02        . . .\r
-       ld b,001h               ;1985   06 01   . .\r
-       sub a                   ;1987   97      .\r
-       ret                     ;1988   c9      .\r
-\r
-msg_undef_opcode:\r
+       call pstr_inl\r
        DC      '???'\r
+       ld b,1\r
+       sub a\r
+       ret\r
 \r
 disas_get_instrlen:\r
-       sub a                   ;198c   97      .\r
-       ld (isprefix_ixiy),a    ;198d   32 f8 1f        2 . .\r
-       ld a,(iy+000h)          ;1990   fd 7e 00        . ~ .\r
-       cp 0edh                 ;1993   fe ed   . .\r
-       jp z,disas_pfx.ED       ;1995   ca 19 1a        . . .\r
-       cp 0ddh                 ;1998   fe dd   . .\r
-       jr z,l19abh             ;199a   28 0f   ( .\r
-       cp 0fdh                 ;199c   fe fd   . .\r
-       jr z,l19afh             ;199e   28 0f   ( .\r
+       sub a\r
+       ld (isprefix_ixiy),a\r
+       ld a,(iy+000h)\r
+       cp 0edh\r
+       jp z,disas_pfx.ED\r
+       cp 0ddh\r
+       jr z,l19abh\r
+       cp 0fdh\r
+       jr z,l19afh\r
 sub_19a0h:\r
-       ld a,(iy+000h)          ;19a0   fd 7e 00        . ~ .\r
-       cp 0cbh                 ;19a3   fe cb   . .\r
-       jp z,disas_pfx.CB       ;19a5   ca 36 1a        . 6 .\r
-       jp disas_nopfx          ;19a8   c3 4d 1a        . M .\r
+       ld a,(iy+000h)\r
+       cp 0cbh\r
+       jp z,disas_pfx.CB\r
+       jp disas_nopfx\r
 l19abh:\r
-       ld a,1                  ;19ab   3e 01   > .\r
-       jr l19b1h               ;19ad   18 02   . .\r
+       ld a,1\r
+       jr l19b1h\r
 l19afh:\r
-       ld a,2                  ;19af   3e 02   > .\r
+       ld a,2\r
 l19b1h:\r
-       ld (isprefix_ixiy),a    ;19b1   32 f8 1f        2 . .\r
-       call disas_pfx.DDFD     ;19b4   cd c2 19        . . .\r
-       ret nc                  ;19b7   d0      .\r
-       push bc                 ;19b8   c5      .\r
-       call sub_19a0h          ;19b9   cd a0 19        . . .\r
-       pop af                  ;19bc   f1      .\r
-       add a,b                 ;19bd   80      .\r
-       ld b,a                  ;19be   47      G\r
-       scf                     ;19bf   37      7\r
-       ret                     ;19c0   c9      .\r
+       ld (isprefix_ixiy),a\r
+       call disas_pfx.DDFD\r
+       ret nc\r
+       push bc\r
+       call sub_19a0h\r
+       pop af\r
+       add a,b\r
+       ld b,a\r
+       scf\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 disas_pfx.DDFD:\r
-       inc iy                  ;19c2   fd 23   . #\r
-       ld hl,b_19ef_start      ;19c4   21 ef 19        ! . .\r
-       call test_DDFD          ;19c7   cd 8c 1a        . . .\r
-       ld b,002h               ;19ca   06 02   . .\r
-       ret c                   ;19cc   d8      .\r
-       ld hl,l1a0ah            ;19cd   21 0a 1a        ! . .\r
-       call test_DDFD          ;19d0   cd 8c 1a        . . .\r
-       ld b,001h               ;19d3   06 01   . .\r
-       ret c                   ;19d5   d8      .\r
-       ld a,(iy+000h)          ;19d6   fd 7e 00        . ~ .\r
-       cp 0cbh                 ;19d9   fe cb   . .\r
-       jr nz,l19edh            ;19db   20 10     .\r
-       ld a,(iy+002h)          ;19dd   fd 7e 02        . ~ .\r
-       cp 036h                 ;19e0   fe 36   . 6\r
-       ret z                   ;19e2   c8      .\r
-       and 007h                ;19e3   e6 07   . .\r
-       cp 006h                 ;19e5   fe 06   . .\r
-       jr nz,l19edh            ;19e7   20 04     .\r
-       ld b,002h               ;19e9   06 02   . .\r
-       scf                     ;19eb   37      7\r
-       ret                     ;19ec   c9      .\r
+       inc iy\r
+       ld hl,b_19ef_start\r
+       call test_DDFD\r
+       ld b,002h\r
+       ret c\r
+       ld hl,l1a0ah\r
+       call test_DDFD\r
+       ld b,001h\r
+       ret c\r
+       ld a,(iy+000h)\r
+       cp 0cbh\r
+       jr nz,l19edh\r
+       ld a,(iy+002h)\r
+       cp 036h\r
+       ret z\r
+       and 007h\r
+       cp 006h\r
+       jr nz,l19edh\r
+       ld b,002h\r
+       scf\r
+       ret\r
 l19edh:\r
-       and a                   ;19ed   a7      .\r
-       ret                     ;19ee   c9      .\r
+       and a\r
+       ret\r
 \r
+;-------------------------------------------------------------------------------\r
 ; DD/FD 3 byte (ix+d)/(iy+d)\r
 b_19ef_start:\r
-       db      034h            ;19ef   34      4\r
-       db      035h            ;19f0   35      5\r
-       db      036h            ;19f1   36      6\r
-       db      046h            ;19f2   46      F\r
-       db      04eh            ;19f3   4e      N\r
-       db      056h            ;19f4   56      V\r
-       db      05eh            ;19f5   5e      ^\r
-       db      066h            ;19f6   66      f\r
-       db      06eh            ;19f7   6e      n\r
-       db      070h            ;19f8   70      p\r
-       db      071h            ;19f9   71      q\r
-       db      072h            ;19fa   72      r\r
-       db      073h            ;19fb   73      s\r
-       db      074h            ;19fc   74      t\r
-       db      075h            ;19fd   75      u\r
-       db      077h            ;19ff   77      w\r
-       db      07eh            ;1a00   7e      ~\r
-       db      086h            ;1a01   86      .\r
-       db      08eh            ;1a02   8e      .\r
-       db      096h            ;1a03   96      .\r
-       db      09eh            ;1a04   9e      .\r
-       db      0a6h            ;1a05   a6      .\r
-       db      0aeh            ;1a06   ae      .\r
-       db      0b6h            ;1a07   b6      .\r
-       db      0beh            ;1a08   be      .\r
-       db      0                       ;1a09   00      .\r
+       db      034h\r
+       db      035h\r
+       db      036h\r
+       db      046h\r
+       db      04eh\r
+       db      056h\r
+       db      05eh\r
+       db      066h\r
+       db      06eh\r
+       db      070h\r
+       db      071h\r
+       db      072h\r
+       db      073h\r
+       db      074h\r
+       db      075h\r
+       db      077h\r
+       db      07eh\r
+       db      086h\r
+       db      08eh\r
+       db      096h\r
+       db      09eh\r
+       db      0a6h\r
+       db      0aeh\r
+       db      0b6h\r
+       db      0beh\r
+       db      0\r
 \r
 ; DD/FD 2 byte\r
 l1a0ah:\r
-       db      009h            ;1a0a   09      .\r
-       db      019h            ;1a0b   19      .\r
-       db      021h            ;1a0c   21      !\r
-       db      022h            ;1a0d   22      "\r
-       db      023h            ;1a0e   23      #\r
-       db      029h            ;1a0f   29      )\r
-       db      02ah            ;1a10   2a      *\r
-       db      02bh            ;1a11   2b      +\r
-       db      039h            ;1a12   39      9\r
-       db      0e1h            ;1a13   e1      .\r
-       db      0e3h            ;1a14   e3      .\r
-       db      0e5h            ;1a15   e5      .\r
-       db      0e9h            ;1a16   e9      .\r
-       db      0f9h            ;1a17   f9      .\r
-       db      0                       ;1a18   00      .\r
+       db      009h\r
+       db      019h\r
+       db      021h\r
+       db      022h\r
+       db      023h\r
+       db      029h\r
+       db      02ah\r
+       db      02bh\r
+       db      039h\r
+       db      0e1h\r
+       db      0e3h\r
+       db      0e5h\r
+       db      0e9h\r
+       db      0f9h\r
+       db      0\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 disas_pfx.ED:\r
-       inc iy                  ;1a19   fd 23   . #\r
-       ld hl,b_1bc9_start      ;1a1b   21 c9 1b        ! . .\r
-       call sub_1a72h          ;1a1e   cd 72 1a        . r .\r
-       ld b,2                  ;1a21   06 02   . .\r
-       ret c                   ;1a23   d8      .\r
-       ld hl,b_1bf4_start      ;1a24   21 f4 1b        ! . .\r
-       call lookup_opc         ;1a27   cd 97 1a        . . .\r
-       ld b,2                  ;1a2a   06 02   . .\r
-       ret c                   ;1a2c   d8      .\r
+       inc iy\r
+       ld hl,b_1bc9_start\r
+       call sub_1a72h\r
+       ld b,2\r
+       ret c\r
+       ld hl,b_1bf4_start\r
+       call lookup_opc\r
+       ld b,2\r
+       ret c\r
 \r
        ld hl,l228bh\r
        call lookup_opc\r
        ld b,3\r
        ret c\r
-       ld hl,b_1c40_start      ;1a2d   21 40 1c        ! @ .\r
-       call lookup_opc         ;1a30   cd 97 1a        . . .\r
-       ld b,4                  ;1a33   06 04   . .\r
-       ret                     ;1a35   c9      .\r
+       ld hl,b_1c40_start\r
+       call lookup_opc\r
+       ld b,4\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 disas_pfx.CB:\r
-       push iy                 ;1a36   fd e5   . .\r
-       inc iy                  ;1a38   fd 23   . #\r
-       ld a,(isprefix_ixiy)    ;1a3a   3a f8 1f        : . .\r
-       and a                   ;1a3d   a7      .\r
-       jr z,l1a42h             ;1a3e   28 02   ( .\r
-       inc iy                  ;1a40   fd 23   . #\r
+       push iy\r
+       inc iy\r
+       ld a,(isprefix_ixiy)\r
+       and a\r
+       jr z,l1a42h\r
+       inc iy\r
 l1a42h:\r
-       ld hl,b_1c55_start      ;1a42   21 55 1c        ! U .\r
-       call lookup_opc         ;1a45   cd 97 1a        . . .\r
-       pop iy                  ;1a48   fd e1   . .\r
-       ld b,2                  ;1a4a   06 02   . .\r
-       ret                     ;1a4c   c9      .\r
+       ld hl,b_1c55_start\r
+       call lookup_opc\r
+       pop iy\r
+       ld b,2\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 disas_nopfx:\r
-       ld hl,b_1b54_start      ;1a4d   21 54 1b        ! T .\r
-       call lookup_opc         ;1a50   cd 97 1a        . . .\r
-       ld b,2                  ;1a53   06 02   . .\r
-       ret c                   ;1a55   d8      .\r
-       ld hl,b_1ab6_start      ;1a56   21 b6 1a        ! . .\r
-       call sub_1a72h          ;1a59   cd 72 1a        . r .\r
-       ld b,1                  ;1a5c   06 01   . .\r
-       ret c                   ;1a5e   d8      .\r
-       ld hl,b_1ad1_start      ;1a5f   21 d1 1a        ! . .\r
-       call lookup_opc         ;1a62   cd 97 1a        . . .\r
-       ld b,1                  ;1a65   06 01   . .\r
-       ret c                   ;1a67   d8      .\r
-       ld hl,b_1b9b_start      ;1a68   21 9b 1b        ! . .\r
-       call lookup_opc         ;1a6b   cd 97 1a        . . .\r
-       ret nc                  ;1a6e   d0      .\r
-       ld b,3                  ;1a6f   06 03   . .\r
-       ret                     ;1a71   c9      .\r
+       ld hl,b_1b54_start\r
+       call lookup_opc\r
+       ld b,2\r
+       ret c\r
+       ld hl,b_1ab6_start\r
+       call sub_1a72h\r
+       ld b,1\r
+       ret c\r
+       ld hl,b_1ad1_start\r
+       call lookup_opc\r
+       ld b,1\r
+       ret c\r
+       ld hl,b_1b9b_start\r
+       call lookup_opc\r
+       ret nc\r
+       ld b,3\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 sub_1a72h:\r
-       ld a,(hl)               ;1a72   7e      ~\r
-       cp 0ffh                 ;1a73   fe ff   . .\r
-       ret z                   ;1a75   c8      .\r
-       cp (iy+000h)            ;1a76   fd be 00        . . .\r
-       jr z,l1a7fh             ;1a79   28 04   ( .\r
-       inc hl                  ;1a7b   23      #\r
-       inc hl                  ;1a7c   23      #\r
-       jr sub_1a72h            ;1a7d   18 f3   . .\r
+       ld a,(hl)\r
+       cp 0ffh\r
+       ret z\r
+       cp (iy+000h)\r
+       jr z,l1a7fh\r
+       inc hl\r
+       inc hl\r
+       jr sub_1a72h\r
 l1a7fh:\r
-       inc hl                  ;1a7f   23      #\r
-       ld c,(hl)               ;1a80   4e      N\r
-       ld hl,t_MNEMONICS       ;1a81   21 c6 1e        ! . .\r
-       ld b,0                  ;1a84   06 00   . .\r
-       add hl,bc               ;1a86   09      .\r
-       ld de,l1c97h            ;1a87   11 97 1c        . . .\r
-       scf                     ;1a8a   37      7\r
-       ret                     ;1a8b   c9      .\r
+       ld de,l1c97h\r
+       inc hl\r
+       ld c,(hl)\r
+       jr get_mnemonic\r
+\r
 \r
 test_DDFD:\r
-       ld a,(hl)               ;1a8c   7e      ~\r
-       and a                   ;1a8d   a7      .\r
-       ret z                   ;1a8e   c8      .\r
-       inc hl                  ;1a8f   23      #\r
-       cp (iy+000h)            ;1a90   fd be 00        . . .\r
-       jr nz,test_DDFD         ;1a93   20 f7     .\r
-       scf                     ;1a95   37      7\r
-       ret                     ;1a96   c9      .\r
+       ld a,(hl)\r
+       and a\r
+       ret z\r
+       inc hl\r
+       cp (iy+000h)\r
+       jr nz,test_DDFD\r
+       scf\r
+       ret\r
 \r
 lookup_opc:\r
-       ld a,(iy+000h)          ;1a97   fd 7e 00        . ~ .\r
-       and (hl)                ;1a9a   a6      .\r
-       inc hl                  ;1a9b   23      #\r
-       cp (hl)                 ;1a9c   be      .\r
-       jr z,l1aa8h             ;1a9d   28 09   ( .\r
-       inc hl                  ;1a9f   23      #\r
-       inc hl                  ;1aa0   23      #\r
-       inc hl                  ;1aa1   23      #\r
-       inc hl                  ;1aa2   23      #\r
-       ld a,(hl)               ;1aa3   7e      ~\r
-       and a                   ;1aa4   a7      .\r
-       jr nz,lookup_opc                ;1aa5   20 f0     .\r
-       ret                     ;1aa7   c9      .\r
+       ld a,(iy+000h)\r
+       and (hl)\r
+       inc hl\r
+       cp (hl)\r
+       jr z,l1aa8h\r
+       inc hl\r
+       inc hl\r
+       inc hl\r
+       inc hl\r
+       ld a,(hl)\r
+       and a\r
+       jr nz,lookup_opc\r
+       ret\r
+\r
 l1aa8h:\r
-       inc hl                  ;1aa8   23      #\r
-       ld c,(hl)               ;1aa9   4e      N\r
-       inc hl                  ;1aaa   23      #\r
-       ld e,(hl)               ;1aab   5e      ^\r
-       inc hl                  ;1aac   23      #\r
-       ld d,(hl)               ;1aad   56      V\r
-       ld hl,t_MNEMONICS       ;1aae   21 c6 1e        ! . .\r
-       ld b,000h               ;1ab1   06 00   . .\r
-       add hl,bc               ;1ab3   09      .\r
-       scf                     ;1ab4   37      7\r
-       ret                     ;1ab5   c9      .\r
+       inc hl\r
+       ld c,(hl)\r
+       inc hl\r
+       ld e,(hl)\r
+       inc hl\r
+       ld d,(hl)\r
+get_mnemonic:\r
+       ld hl,t_MNEMONICS\r
+       ld b,0\r
+       add hl,bc\r
+       scf\r
+       ret\r
 \r
+;-------------------------------------------------------------------------------\r
 ; 1 byte opcodes (no parameters)\r
 ; Format: db opcode, t_MNEMONICS-index\r
 b_1ab6_start:\r
@@ -4388,7 +4979,7 @@ b_1ab6_start:
        db 0ffh\r
 \r
 \r
-;      1 byte opcodes\r
+; 1 byte opcodes\r
 ; Format: db mask, match, t_MNEMONICS-index\r
 ;        dw argument formating fuction\r
 b_1ad1_start:\r
@@ -4446,7 +5037,7 @@ b_1ad1_start:
        dw l1ce5h\r
        db 0\r
 \r
-;      2 byte opdodes\r
+; 2 byte opdodes\r
 b_1b54_start:\r
        db 0c7h,006h,056h       ;ld r,nn\r
        dw l1cfah\r
@@ -4467,18 +5058,18 @@ b_1b54_start:
        db 0ffh,0feh,013h       ;cp a,nn\r
        dw l1d09h\r
        db 0ffh,010h,02eh       ;djnz\r
-       dw l1d1ah\r
+       dw p_arg_jrel\r
        db 0ffh,018h,054h       ;jr\r
-       dw l1d1ah\r
-       db 0e7h,020h,054h       ;jr,cc\r
-       dw l1d0fh\r
+       dw p_arg_jrel\r
+       db 0e7h,020h,054h       ;jr cc,\r
+       dw p_arg_cc_jrel\r
        db 0ffh,0d3h,076h       ;out (nn),a\r
        dw l1d37h\r
        db 0ffh,0dbh,03fh       ;in a,(nn)\r
        dw l1d29h\r
        db 0\r
 \r
-;      3 byte opcodes\r
+; 3 byte opcodes\r
 b_1b9b_start:\r
        db 0c7h,0c2h,052h       ;jp cc,mn\r
        dw p_arg_cc_mn\r
@@ -4622,17 +5213,18 @@ b_1c55_start:
        dw p_arg_bitop\r
        db 0\r
 \r
+;-------------------------------------------------------------------------------\r
+\r
 p_arg_r_r:\r
-       call p_arg_r            ;1c88   cd 28 1e        . ( .\r
-       call p_char_comma       ;1c8b   cd b4 1e        . . .\r
-       jp p_arg_rs             ;1c8e   c3 30 1e        . 0 .\r
+       call p_arg_r\r
+       call p_char_comma\r
+       jp p_arg_rs\r
 p_arg_a_r:\r
-       call p_A_comma          ;1c91   cd b1 1e        . . .\r
-       jp p_arg_rs             ;1c94   c3 30 1e        . 0 .\r
+       call p_A_comma\r
+       jp p_arg_rs\r
 l1c97h:\r
-       ret                     ;1c97   c9      .\r
+       ret\r
 \r
-;-----------------------------------------------------\r
 p_arg_r_m:\r
        call p_arg_r\r
        call p_char_comma\r
@@ -4642,168 +5234,163 @@ p_arg_m_r:
        call sub_1d2ch\r
        call p_char_comma\r
        jp p_arg_r\r
-;-----------------------------------------------------\r
 \r
 l1c98h:\r
-       ld a,(iy+000h)          ;1c98   fd 7e 00        . ~ .\r
-       and 038h                ;1c9b   e6 38   . 8\r
-       jp out_hex              ;1c9d   c3 18 02        . . .\r
+       ld a,(iy+000h)\r
+       and 038h\r
+       jp out_hex\r
 \r
 l1ca0h:\r
-       ld hl,b_1ca9_start      ;1ca0   21 a9 1c        ! . .\r
-       call pstr               ;1ca3   cd 88 02        . . .\r
-       jp p_arg_hlixiy         ;1ca6   c3 7e 1e        . ~ .\r
-\r
-b_1ca9_start:\r
+       call pstr_inl\r
        DC      '(SP),'\r
+       jp p_arg_hlixiy\r
 \r
 l1caeh:\r
-       call p_char_lparen      ;1cb0   cd 5d 02        . ] .\r
-       call p_arg_hlixiy       ;1cb3   cd 7e 1e        . ~ .\r
+       call p_char_lparen\r
+       call p_arg_hlixiy\r
        jr out_rparen\r
 \r
 p_arg_ex_dehl:\r
-       ld hl,l1773h            ;1cbb   21 73 17        ! s .\r
-       jp pstr                 ;1cbe   c3 88 02        . . .\r
+       ld hl,l1773h\r
+       jp pstr\r
 \r
 l1cc1h:\r
-       ld hl,b_1cca_start      ;1cc1   21 ca 1c        ! . .\r
-       call pstr               ;1cc4   cd 88 02        . . .\r
-       jp p_arg_hlixiy         ;1cc7   c3 7e 1e        . ~ .\r
-\r
-b_1cca_start:\r
+       call pstr_inl\r
        DC      'SP,'\r
+       jp p_arg_hlixiy\r
 \r
 p_arg_ex_afaf:\r
-       ld hl,b_176d_start      ;1ccd   21 6d 17        ! m .\r
-       jp pstr                 ;1cd0   c3 88 02        . . .\r
+       ld hl,b_176d_start\r
+       jp pstr\r
 \r
 l1cd3h:\r
-       call p_arg_hlixiy       ;1cd3   cd 7e 1e        . ~ .\r
-       call p_char_comma       ;1cd6   cd b4 1e        . . .\r
-       jp p_arg_ww             ;1cd9   c3 8b 1e        . . .\r
+       call p_arg_hlixiy\r
+       call p_char_comma\r
+       jp p_arg_ww\r
 l1cdch:\r
-       call sub_1ce8h          ;1cdc   cd e8 1c        . . .\r
-       call p_char_comma       ;1cdf   cd b4 1e        . . .\r
-       jp p_char_A             ;1ce2   c3 3d 1d        . = .\r
+       call sub_1ce8h\r
+       call p_char_comma\r
+       jp p_char_A\r
 \r
 l1ce5h:\r
-       call p_A_comma          ;1ce5   cd b1 1e        . . .\r
+       call p_A_comma\r
 sub_1ce8h:\r
-       call p_char_lparen      ;1cea   cd 5d 02        . ] .\r
-       call p_arg_ww           ;1ced   cd 8b 1e        . . .\r
+       call p_char_lparen\r
+       call p_arg_ww\r
 out_rparen:\r
-       jp p_char_rparen        ;1cf2   c3 5d 02        . ] .\r
+       jp p_char_rparen\r
 \r
 l1cf5h:\r
-       call p_A_comma          ;1cf5   cd b1 1e        . . .\r
-       jr l1d09h               ;1cf8   18 0f   . .\r
+       call p_A_comma\r
+       jr l1d09h\r
 l1cfah:\r
-       call p_arg_r            ;1cfa   cd 28 1e        . ( .\r
-       call p_char_comma       ;1cfd   cd b4 1e        . . .\r
-       ld a,(isprefix_ixiy)    ;1d00   3a f8 1f        : . .\r
-       and a                   ;1d03   a7      .\r
-       ld a,(iy+002h)          ;1d04   fd 7e 02        . ~ .\r
-       jr nz,l1d0ch            ;1d07   20 03     .\r
+       call p_arg_r\r
+       call p_char_comma\r
+       ld a,(isprefix_ixiy)\r
+       and a\r
+       ld a,(iy+002h)\r
+       jr nz,l1d0ch\r
 l1d09h:\r
-       ld a,(iy+001h)          ;1d09   fd 7e 01        . ~ .\r
+       ld a,(iy+001h)\r
 l1d0ch:\r
-       jp out_hex              ;1d0c   c3 18 02        . . .\r
-\r
-l1d0fh:\r
-       ld a,(iy+000h)          ;1d0f   fd 7e 00        . ~ .\r
-       and 018h                ;1d12   e6 18   . .\r
-       call p_arg_cc0          ;1d14   cd a0 1e        . . .\r
-       call p_char_comma       ;1d17   cd b4 1e        . . .\r
-l1d1ah:\r
-       ld c,(iy+001h)          ;1d1a   fd 4e 01        . N .\r
-       ld a,c                  ;1d1d   79      y\r
-       rla                     ;1d1e   17      .\r
-       sbc a,a                 ;1d1f   9f      .\r
-       ld b,a                  ;1d20   47      G\r
-       push iy                 ;1d21   fd e5   . .\r
-       pop hl                  ;1d23   e1      .\r
-       add hl,bc               ;1d24   09      .\r
-       inc hl                  ;1d25   23      #\r
-       inc hl                  ;1d26   23      #\r
-       jr l1d4eh               ;1d27   18 25   . %\r
+       jp out_hex\r
+\r
+p_arg_cc_jrel:\r
+       ld a,(iy+000h)\r
+       and 018h\r
+       call p_arg_cc0\r
+       call p_char_comma\r
+p_arg_jrel:\r
+       ld c,(iy+001h)\r
+       ld a,c\r
+       rla\r
+       sbc a,a\r
+       ld b,a\r
+       push iy\r
+       pop hl\r
+       add hl,bc\r
+       inc hl\r
+       inc hl\r
+       jr l1d4eh\r
+\r
 l1d29h:\r
-       call p_A_comma          ;1d29   cd b1 1e        . . .\r
+       call p_A_comma\r
 sub_1d2ch:\r
-       call p_char_lparen      ;1d2e   cd 5d 02        . ] .\r
-       ld a,(iy+001h)          ;1d31   fd 7e 01        . ~ .\r
-       jp l1e6bh               ;1d34   c3 6b 1e        . k .\r
+       call p_char_lparen\r
+       ld a,(iy+001h)\r
+       jp l1e6bh\r
 l1d37h:\r
-       call sub_1d2ch          ;1d37   cd 2c 1d        . , .\r
+       call sub_1d2ch\r
        jr p_char_comma_A\r
 \r
 p_arg_cc_mn:\r
-       call p_arg_cc           ;1d42   cd 9d 1e        . . .\r
-       call p_char_comma       ;1d45   cd b4 1e        . . .\r
+       call p_arg_cc\r
+       call p_char_comma\r
 p_arg_mn:\r
-       ld l,(iy+001h)          ;1d48   fd 6e 01        . n .\r
-       ld h,(iy+002h)          ;1d4b   fd 66 02        . f .\r
+       ld l,(iy+001h)\r
+       ld h,(iy+002h)\r
 l1d4eh:\r
-       ld a,002h               ;1d4e   3e 02   > .\r
+       ld a,002h\r
 sub_1d50h:\r
-       ld (l1ffdh),a           ;1d50   32 fd 1f        2 . .\r
-       ld (l1ffbh),hl          ;1d53   22 fb 1f        " . .\r
-       call out_hl             ;1d56   cd 13 02        . . .\r
-       ret                     ;1d59   c9      .\r
+       ld (disas_argtype),a\r
+       ld (disas_arg_16),hl\r
+       jp out_hl\r
+\r
 p_arg_ww_mn:\r
-       call p_arg_ww           ;1d5a   cd 8b 1e        . . .\r
-       call p_char_comma       ;1d5d   cd b4 1e        . . .\r
-       jr p_arg_mn             ;1d60   18 e6   . .\r
+       call p_arg_ww\r
+       call p_char_comma\r
+       jr p_arg_mn\r
 \r
 p_arg_addr_hl:\r
-       call sub_1e13h          ;1d62   cd 13 1e        . . .\r
-       call p_char_comma       ;1d65   cd b4 1e        . . .\r
-       jp p_arg_hlixiy         ;1d68   c3 7e 1e        . ~ .\r
+       call p_arg_addr\r
+       call p_char_comma\r
+       jp p_arg_hlixiy\r
+\r
 p_arg_hl_addr:\r
-       call p_arg_hlixiy       ;1d6b   cd 7e 1e        . ~ .\r
-       call p_char_comma       ;1d6e   cd b4 1e        . . .\r
-       jp sub_1e13h            ;1d71   c3 13 1e        . . .\r
+       call p_arg_hlixiy\r
+       call p_char_comma\r
+       jp p_arg_addr\r
 \r
 p_arg_addr_a:\r
-       call sub_1e13h          ;1d74   cd 13 1e        . . .\r
+       call p_arg_addr\r
 p_char_comma_A:\r
-       call p_char_comma       ;1d77   cd b4 1e        . . .\r
+       call p_char_comma\r
 p_char_A:\r
-       ld a,'A'                ;1d7a   3e 41   > A\r
-       jr outchar1             ;1d87   18 06   . .\r
+       ld a,'A'\r
+       jr outchar1\r
 p_arg_a_addr:\r
-       call p_A_comma          ;1d7f   cd b1 1e        . . .\r
-       jp sub_1e13h            ;1d82   c3 13 1e        . . .\r
+       call p_A_comma\r
+       jp p_arg_addr\r
 l1d85h:\r
-       ld a,'0'                ;1d85   3e 30   > 0\r
-       jr outchar1             ;1d87   18 06   . .\r
+       ld a,'0'\r
+       jr outchar1\r
 l1d89h:\r
-       ld a,'1'                ;1d89   3e 31   > 1\r
-       jr outchar1             ;1d8b   18 02   . .\r
+       ld a,'1'\r
+       jr outchar1\r
 l1d8dh:\r
-       ld a,'2'                ;1d8d   3e 32   > 2\r
-       jr outchar1             ;1d8b   18 02   . .\r
+       ld a,'2'\r
+       jr outchar1\r
 \r
 p_A_comma:\r
-       call p_char_A           ;1eb1   cd 3d 1d        . = .\r
+       call p_char_A\r
 p_char_comma:\r
-       ld a,','                ;1eb4   3e 2c   > ,\r
+       ld a,','\r
 outchar1:\r
-       jp outchar              ;1eb6   c3 5d 02        . ] .\r
+       jp outchar\r
 \r
 l1d92h:\r
-       ld hl,b_1da7_start      ;1d92   21 a7 1d        ! . .\r
-       jr l1da4h               ;1d95   18 0d   . .\r
+       ld hl,b_1da7_start\r
+       jr l1da4h\r
 l1d97h:\r
-       ld hl,l1daah            ;1d97   21 aa 1d        ! . .\r
-       jr l1da4h               ;1d9a   18 08   . .\r
+       ld hl,l1daah\r
+       jr l1da4h\r
 l1d9ch:\r
-       ld hl,l1dadh            ;1d9c   21 ad 1d        ! . .\r
-       jr l1da4h               ;1d9f   18 03   . .\r
+       ld hl,l1dadh\r
+       jr l1da4h\r
 l1da1h:\r
-       ld hl,l1db0h            ;1da1   21 b0 1d        ! . .\r
+       ld hl,l1db0h\r
 l1da4h:\r
-       jp pstr                 ;1da4   c3 88 02        . . .\r
+       jp pstr\r
 \r
 b_1da7_start:\r
        DC      'I,A'\r
@@ -4815,116 +5402,116 @@ l1db0h:
        DC      'A,R'\r
 \r
 p_arg_in_c:\r
-       call p_arg_r            ;1db3   cd 28 1e        . ( .\r
-       call p_char_comma       ;1db6   cd b4 1e        . . .\r
-       ld hl,t__C_             ;1db9   21 f4 1f        ! . .\r
-       jp pstr                 ;1dbc   c3 88 02        . . .\r
+       call p_arg_r\r
+       call p_char_comma\r
+       ld hl,t__C_\r
+       jp pstr\r
 \r
 p_arg_out_c:\r
-       ld hl,t__C_             ;1dbf   21 f4 1f        ! . .\r
-       call pstr               ;1dc2   cd 88 02        . . .\r
-       call p_char_comma       ;1dc5   cd b4 1e        . . .\r
-       jr p_arg_r              ;1dc8   18 5e   . ^\r
+       ld hl,t__C_\r
+       call pstr\r
+       call p_char_comma\r
+       jr p_arg_r\r
 \r
 l1dcah:\r
-       call p_arg_hlixiy       ;1dca   cd 7e 1e        . ~ .\r
-       call p_char_comma       ;1dcd   cd b4 1e        . . .\r
-       jp p_arg_ww             ;1dd0   c3 8b 1e        . . .\r
+       call p_arg_hlixiy\r
+       call p_char_comma\r
+       jp p_arg_ww\r
 \r
 p_arg_addr_ww:\r
-       call sub_1e13h          ;1dd3   cd 13 1e        . . .\r
-       call p_char_comma       ;1dd6   cd b4 1e        . . .\r
-       jp p_arg_ww             ;1dd9   c3 8b 1e        . . .\r
+       call p_arg_addr\r
+       call p_char_comma\r
+       jp p_arg_ww\r
 \r
 p_arg_ww_addr:\r
-       call p_arg_ww           ;1ddc   cd 8b 1e        . . .\r
-       call p_char_comma       ;1ddf   cd b4 1e        . . .\r
-       jr sub_1e13h            ;1de2   18 2f   . /\r
+       call p_arg_ww\r
+       call p_char_comma\r
+       jr p_arg_addr\r
 \r
 p_arg_bitop:\r
-       ld a,(isprefix_ixiy)    ;1de4   3a f8 1f        : . .\r
-       and a                   ;1de7   a7      .\r
-       jr nz,l1defh            ;1de8   20 05     .\r
-       ld a,(iy+001h)          ;1dea   fd 7e 01        . ~ .\r
-       jr l1df2h               ;1ded   18 03   . .\r
+       ld a,(isprefix_ixiy)\r
+       and a\r
+       jr nz,l1defh\r
+       ld a,(iy+001h)\r
+       jr l1df2h\r
 l1defh:\r
-       ld a,(iy+002h)          ;1def   fd 7e 02        . ~ .\r
+       ld a,(iy+002h)\r
 l1df2h:\r
-       push af                 ;1df2   f5      .\r
-       rra                     ;1df3   1f      .\r
-       rra                     ;1df4   1f      .\r
-       rra                     ;1df5   1f      .\r
-       and 007h                ;1df6   e6 07   . .\r
-       add a,'0'               ;1df8   c6 30   . 0\r
-       call outchar            ;1dfa   cd 5d 02        . ] .\r
-       call p_char_comma       ;1dfd   cd b4 1e        . . .\r
-       pop af                  ;1e00   f1      .\r
-       jr p_arg_r0             ;1e01   18 30   . 0\r
+       push af\r
+       rra\r
+       rra\r
+       rra\r
+       and 007h\r
+       add a,'0'\r
+       call outchar\r
+       call p_char_comma\r
+       pop af\r
+       jr p_arg_r0\r
 \r
 l1e03h:\r
-       ld a,(isprefix_ixiy)    ;1e03   3a f8 1f        : . .\r
-       and a                   ;1e06   a7      .\r
-       jr nz,l1e0eh            ;1e07   20 05     .\r
-       ld a,(iy+001h)          ;1e09   fd 7e 01        . ~ .\r
-       jr l1e11h               ;1e0c   18 03   . .\r
+       ld a,(isprefix_ixiy)\r
+       and a\r
+       jr nz,l1e0eh\r
+       ld a,(iy+001h)\r
+       jr l1e11h\r
 l1e0eh:\r
-       ld a,(iy+002h)          ;1e0e   fd 7e 02        . ~ .\r
+       ld a,(iy+002h)\r
 l1e11h:\r
-       jr p_arg_r0             ;1e11   18 20   .\r
+       jr p_arg_r0\r
 \r
-sub_1e13h:\r
-       call p_char_lparen      ;1e15   cd 5d 02        . ] .\r
-       ld l,(iy+001h)          ;1e18   fd 6e 01        . n .\r
-       ld h,(iy+002h)          ;1e1b   fd 66 02        . f .\r
-       ld a,001h               ;1e1e   3e 01   > .\r
-       call sub_1d50h          ;1e20   cd 50 1d        . P .\r
+p_arg_addr:\r
+       call p_char_lparen\r
+       ld l,(iy+001h)\r
+       ld h,(iy+002h)\r
+       ld a,001h\r
+       call sub_1d50h\r
 \r
 p_char_rparen:\r
-       ld a,')'                ;1e23   3e 29   > )\r
-       jp outchar              ;1e25   c3 5d 02        . ] .\r
+       ld a,')'\r
+       jp outchar\r
 \r
 p_arg_r:\r
-       ld a,(iy+000h)          ;1e28   fd 7e 00        . ~ .\r
-       rra                     ;1e2b   1f      .\r
-       rra                     ;1e2c   1f      .\r
-       rra                     ;1e2d   1f      .\r
-       jr p_arg_r0             ;1e2e   18 03   . .\r
+       ld a,(iy+000h)\r
+       rra\r
+       rra\r
+       rra\r
+       jr p_arg_r0\r
 p_arg_rs:\r
-       ld a,(iy+000h)          ;1e30   fd 7e 00        . ~ .\r
+       ld a,(iy+000h)\r
 p_arg_r0:\r
-       and 007h                ;1e33   e6 07   . .\r
-       cp 006h                 ;1e35   fe 06   . .\r
-       jr nz,p_arg_r1          ;1e37   20 3a     :\r
-       ld a,(isprefix_ixiy)    ;1e39   3a f8 1f        : . .\r
-       and a                   ;1e3c   a7      .\r
-       ld a,006h               ;1e3d   3e 06   > .\r
-       jr z,p_arg_r1           ;1e3f   28 32   ( 2\r
-       ld hl,b_1e78_start      ;1e41   21 78 1e        ! x .\r
-       ld a,(isprefix_ixiy)    ;1e44   3a f8 1f        : . .\r
-       dec a                   ;1e47   3d      =\r
-       jr z,l1e4dh             ;1e48   28 03   ( .\r
-       ld hl,l1e7bh            ;1e4a   21 7b 1e        ! { .\r
+       and 007h\r
+       cp 006h\r
+       jr nz,p_arg_r1\r
+       ld a,(isprefix_ixiy)\r
+       and a\r
+       ld a,006h\r
+       jr z,p_arg_r1\r
+       ld hl,b_1e78_start\r
+       ld a,(isprefix_ixiy)\r
+       dec a\r
+       jr z,l1e4dh\r
+       ld hl,l1e7bh\r
 l1e4dh:\r
-       call pstr               ;1e4d   cd 88 02        . . .\r
-       ld a,(iy+001h)          ;1e50   fd 7e 01        . ~ .\r
-       and a                   ;1e53   a7      .\r
-       jp m,l1e61h             ;1e54   fa 61 1e        . a .\r
-       ld a,'+'                ;1e57   3e 2b   > +\r
-       call outchar            ;1e59   cd 5d 02        . ] .\r
-       ld a,(iy+001h)          ;1e5c   fd 7e 01        . ~ .\r
-       jr l1e6bh               ;1e5f   18 0a   . .\r
+       call pstr\r
+       ld a,(iy+001h)\r
+       and a\r
+       jp m,l1e61h\r
+       call    pstr_inl\r
+       dc      '+'\r
+       ld a,(iy+001h)\r
+       jr l1e6bh\r
 l1e61h:\r
-       ld a,'-'                ;1e61   3e 2d   > -\r
-       call outchar            ;1e63   cd 5d 02        . ] .\r
-       ld a,(iy+001h)          ;1e66   fd 7e 01        . ~ .\r
-       neg                     ;1e69   ed 44   . D\r
+       call    pstr_inl\r
+       dc      '-'\r
+       ld a,(iy+001h)\r
+       neg\r
 l1e6bh:\r
-       call out_hex            ;1e6b   cd 18 02        . . .\r
+       call out_hex\r
        jr p_char_rparen\r
 \r
 p_arg_r1:\r
-       ld hl,t_BCDEHL_HL_A     ;1e73   21 96 1f        ! . .\r
-       jr p_arg                ;1e76   18 32   . 2\r
+       ld hl,t_BCDEHL_HL_A\r
+       jr p_arg\r
 \r
 b_1e78_start:\r
        DC      '(IX'\r
@@ -4932,47 +5519,39 @@ l1e7bh:
        DC      '(IY'\r
 \r
 p_arg_hlixiy:\r
-       ld a,(isprefix_ixiy)    ;1e7e   3a f8 1f        : . .\r
-       ld hl,t_HL.IX.IY        ;1e81   21 c6 1f        ! . .\r
-       jr p_arg                ;1e84   18 24   . $\r
+       ld a,(isprefix_ixiy)\r
+       ld hl,t_HL.IX.IY\r
+       jr p_arg\r
 p_arg_zz:\r
-       ld hl,t_BC.DE.HL.AF     ;1e86   21 ab 1f        ! . .\r
-       jr l1e8eh               ;1e89   18 03   . .\r
+       ld hl,t_BC.DE.HL.AF\r
+       jr l1e8eh\r
 p_arg_ww:\r
-       ld hl,t_BC.DE.HL.SP     ;1e8b   21 a2 1f        ! . .\r
+       ld hl,t_BC.DE.HL.SP\r
 l1e8eh:\r
-       ld a,(iy+000h)          ;1e8e   fd 7e 00        . ~ .\r
-       rra                     ;1e91   1f      .\r
-       rra                     ;1e92   1f      .\r
-       rra                     ;1e93   1f      .\r
-       rra                     ;1e94   1f      .\r
-       and 003h                ;1e95   e6 03   . .\r
-       cp 002h                 ;1e97   fe 02   . .\r
-       jr z,p_arg_hlixiy       ;1e99   28 e3   ( .\r
-       jr p_arg                ;1e9b   18 0d   . .\r
+       ld a,(iy+000h)\r
+       rra\r
+       rra\r
+       rra\r
+       rra\r
+       and 003h\r
+       cp 002h\r
+       jr z,p_arg_hlixiy\r
+       jr p_arg\r
 \r
 p_arg_cc:\r
-       ld a,(iy+000h)          ;1e9d   fd 7e 00        . ~ .\r
+       ld a,(iy+000h)\r
 p_arg_cc0:\r
-       rra                     ;1ea0   1f      .\r
-       rra                     ;1ea1   1f      .\r
-       rra                     ;1ea2   1f      .\r
-       and 007h                ;1ea3   e6 07   . .\r
-       ld hl,t_tstfl_ZCPS      ;1ea5   21 dc 1f        ! . .\r
+       rra\r
+       rra\r
+       rra\r
+       and 007h\r
+       ld hl,t_tstfl_ZCPS\r
 p_arg:\r
-       ld b,a                  ;1eaa   47      G\r
-       call sel_dc_string      ;1eab   cd 3d 03        . = .\r
-       jp pstr                 ;1eae   c3 88 02        . . .\r
-\r
-p_mnemonic:\r
-       call pstr               ;1eb9   cd 88 02        . . .\r
-l1ebch:\r
-       call outbl              ;1ebc   cd 9f 02        . . .\r
-       inc c                   ;1ebf   0c      .\r
-       ld a,c                  ;1ec0   79      y\r
-       cp 5                    ;1ec1   fe 05   . .\r
-       jr c,l1ebch             ;1ec3   20 f7     .\r
-       ret                     ;1ec5   c9      .\r
+       ld b,a\r
+       call sel_dc_string\r
+       jp pstr\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 t_MNEMONICS:\r
        DC      'ADC'\r
@@ -5125,36 +5704,40 @@ t__C_:
        DC      '(C)'\r
        DB      0\r
 \r
+;-------------------------------------------------------------------------------\r
+\r
 sub_1ffeh:\r
-       ld hl,(REG.PC)          ;1ffe   2a 60 00        * ` .\r
-       ld a,h                  ;2001   7c      |\r
-       or l                    ;2002   b5      .\r
-       jr z,l2037h             ;2003   28 32   ( 2\r
-       ld de,BDOS              ;2005   11 05 00        . . .\r
-       and a                   ;2008   a7      .\r
-       sbc hl,de               ;2009   ed 52   . R\r
-       ld hl,l20edh            ;200b   21 ed 20        ! .\r
-       jr z,l2031h             ;200e   28 21   ( !\r
-       ld iy,(REG.PC)          ;2010   fd 2a 60 00     . * ` .\r
-       call disas_get_instrlen ;2014   cd 8c 19        . . .\r
-       jp nc,ERROR             ;2017   d2 07 01        . . .\r
-       ld c,b                  ;201a   48      H\r
-       ld b,000h               ;201b   06 00   . .\r
-       ld hl,(REG.PC)          ;201d   2a 60 00        * ` .\r
-       add hl,bc               ;2020   09      .\r
-       call sub_09cah          ;2021   cd ca 09        . . .\r
-       ld iy,(REG.PC)          ;2024   fd 2a 60 00     . * ` .\r
-       ld hl,b_2039_start      ;2028   21 39 20        ! 9\r
-       call lookup_opc         ;202b   cd 97 1a        . . .\r
-       ccf                     ;202e   3f      ?\r
-       ret c                   ;202f   d8      .\r
-       ex de,hl                ;2030   eb      .\r
+       ld hl,(reg.pc)\r
+       ld a,h\r
+       or l\r
+       jr z,l2037h\r
+       ld de,BDOS\r
+       and a\r
+       sbc hl,de\r
+       ld hl,l20edh\r
+       jr z,l2031h\r
+       ld iy,(reg.pc)\r
+       call disas_get_instrlen\r
+       jp nc,ERROR\r
+       ld c,b\r
+       ld b,0\r
+       ld hl,(reg.pc)\r
+       add hl,bc\r
+       call sub_09cah\r
+       ld iy,(reg.pc)\r
+       ld hl,b_2039_start\r
+       call lookup_opc\r
+       ccf\r
+       ret c\r
+       ex de,hl\r
 l2031h:\r
-       call CALL_HL            ;2031   cd 0f 01        . . .\r
-       call c,sub_09cah        ;2034   dc ca 09        . . .\r
+       call CALL_HL\r
+       call c,sub_09cah\r
 l2037h:\r
-       scf                     ;2037   37      7\r
-       ret                     ;2038   c9      .\r
+       scf\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 b_2039_start:\r
        db 0ffh,0ddh,000h       ;Prefix DD\r
@@ -5189,227 +5772,245 @@ b_2048_start:
        dw l20c5h\r
        db 0\r
 \r
+;-------------------------------------------------------------------------------\r
+\r
 l2080h:\r
-       ld a,(b_21e2_start)     ;2080   3a e2 21        : . !\r
-       and a                   ;2083   a7      .\r
-       jr nz,l208bh            ;2084   20 05     .\r
-       ld a,(trace_call_flag)  ;2086   3a e3 21        : . !\r
-       and a                   ;2089   a7      .\r
-       ret nz                  ;208a   c0      .\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
 l208bh:\r
-       ld l,(iy+001h)          ;208b   fd 6e 01        . n .\r
-       ld h,(iy+002h)          ;208e   fd 66 02        . f .\r
-       scf                     ;2091   37      7\r
-       ret                     ;2092   c9      .\r
+       ld l,(iy+001h)\r
+       ld h,(iy+002h)\r
+       scf\r
+       ret\r
 l2093h:\r
-       ld c,(iy+001h)          ;2093   fd 4e 01        . N .\r
-       ld a,c                  ;2096   79      y\r
-       rla                     ;2097   17      .\r
-       sbc a,a                 ;2098   9f      .\r
-       ld b,a                  ;2099   47      G\r
-       ld hl,(REG.PC)          ;209a   2a 60 00        * ` .\r
-       add hl,bc               ;209d   09      .\r
-       inc hl                  ;209e   23      #\r
-       inc hl                  ;209f   23      #\r
-       scf                     ;20a0   37      7\r
-       ret                     ;20a1   c9      .\r
+       ld c,(iy+001h)\r
+       ld a,c\r
+       rla\r
+       sbc a,a\r
+       ld b,a\r
+       ld hl,(reg.pc)\r
+       add hl,bc\r
+       inc hl\r
+       inc hl\r
+       scf\r
+       ret\r
 l20a2h:\r
-       ld hl,(reg.l)           ;20a2   2a 5a 00        * Z .\r
-       scf                     ;20a5   37      7\r
-       ret                     ;20a6   c9      .\r
+       ld hl,(reg.l)\r
+       scf\r
+       ret\r
 l20a7h:\r
-       ld hl,(reg.ix)          ;20a7   2a 52 00        * R .\r
-       jr l20afh               ;20aa   18 03   . .\r
+       ld hl,(reg.ix)\r
+       jr l20afh\r
 l20ach:\r
-       ld hl,(reg.iy)          ;20ac   2a 50 00        * P .\r
+       ld hl,(reg.iy)\r
 l20afh:\r
-       ld a,(iy+001h)          ;20af   fd 7e 01        . ~ .\r
-       cp 0e9h                 ;20b2   fe e9   . .\r
-       scf                     ;20b4   37      7\r
-       ret z                   ;20b5   c8      .\r
-       and a                   ;20b6   a7      .\r
-       ret                     ;20b7   c9      .\r
+       ld a,(iy+001h)\r
+       cp 0e9h\r
+       scf\r
+       ret z\r
+       and a\r
+       ret\r
 l20b8h:\r
-       ld a,(iy+001h)          ;20b8   fd 7e 01        . ~ .\r
-       cp 04dh                 ;20bb   fe 4d   . M\r
-       jr z,l20dch             ;20bd   28 1d   ( .\r
-       cp 045h                 ;20bf   fe 45   . E\r
-       jr z,l20dch             ;20c1   28 19   ( .\r
-       and a                   ;20c3   a7      .\r
-       ret                     ;20c4   c9      .\r
+       ld a,(iy+001h)\r
+       cp 04dh\r
+       jr z,l20dch\r
+       cp 045h\r
+       jr z,l20dch\r
+       and a\r
+       ret\r
 l20c5h:\r
-       ld a,(iy+000h)          ;20c5   fd 7e 00        . ~ .\r
-       ld (l20d7h),a           ;20c8   32 d7 20        2 .\r
-       ld hl,(reg.f)           ;20cb   2a 54 00        * T .\r
-       push hl                 ;20ce   e5      .\r
-       pop af                  ;20cf   f1      .\r
-       call l20d7h             ;20d0   cd d7 20        . .\r
-       scf                     ;20d3   37      7\r
-       jr c,l20dch             ;20d4   38 06   8 .\r
-       ret                     ;20d6   c9      .\r
+       ld a,(iy+000h)\r
+       ld (l20d7h),a\r
+       ld hl,(reg.f)\r
+       push hl\r
+       pop af\r
+       call l20d7h\r
+       scf\r
+       jr c,l20dch\r
+       ret\r
 l20d7h:\r
-       nop                     ;20d7   00      .\r
-       and a                   ;20d8   a7      .\r
-       pop hl                  ;20d9   e1      .\r
-       inc hl                  ;20da   23      #\r
-       jp (hl)                 ;20db   e9      .\r
+       nop\r
+       and a\r
+       pop hl\r
+       inc hl\r
+       jp (hl)\r
 \r
 l20dch:\r
-       ld a,(b_21e2_start)     ;20dc   3a e2 21        : . !\r
-       and a                   ;20df   a7      .\r
-       jr nz,l20edh            ;20e0   20 0b     .\r
-       ld a,(trace_call_flag)  ;20e2   3a e3 21        : . !\r
-       and a                   ;20e5   a7      .\r
-       jr z,l20edh             ;20e6   28 05   ( .\r
-       call l20edh             ;20e8   cd ed 20        . .\r
-       pop hl                  ;20eb   e1      .\r
-       ret                     ;20ec   c9      .\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)          ;20ed   2a 5c 00        * \ .\r
-       ld e,(hl)               ;20f0   5e      ^\r
-       inc hl                  ;20f1   23      #\r
-       ld d,(hl)               ;20f2   56      V\r
-       ex de,hl                ;20f3   eb      .\r
-       call sub_09cah          ;20f4   cd ca 09        . . .\r
-       and a                   ;20f7   a7      .\r
-       ret                     ;20f8   c9      .\r
+       ld hl,(reg_sp)\r
+       ld e,(hl)\r
+       inc hl\r
+       ld d,(hl)\r
+       ex de,hl\r
+       call sub_09cah\r
+       and a\r
+       ret\r
 \r
 l20f9h:\r
-       ld a,(l0003h)           ;20f9   3a 03 00        : . .\r
-       cp (iy+000h)            ;20fc   fd be 00        . . .\r
-       ret z                   ;20ff   c8      .\r
-       ld a,(iy+000h)          ;2100   fd 7e 00        . ~ .\r
-       and 038h                ;2103   e6 38   . 8\r
-       ld l,a                  ;2105   6f      o\r
-       ld h,000h               ;2106   26 00   & .\r
-       ld a,(b_21e2_start)     ;2108   3a e2 21        : . !\r
-       and a                   ;210b   a7      .\r
-       jr nz,l2113h            ;210c   20 05     .\r
-       ld a,(trace_call_flag)  ;210e   3a e3 21        : . !\r
-       and a                   ;2111   a7      .\r
-       ret nz                  ;2112   c0      .\r
+       ld a,(l0003h)\r
+       cp (iy+000h)\r
+       ret z\r
+       ld a,(iy+000h)\r
+       and 038h\r
+       ld l,a\r
+       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
-       scf                     ;2113   37      7\r
-       ret                     ;2114   c9      .\r
+       scf\r
+       ret\r
 l2115h:\r
-       and a                   ;2115   a7      .\r
-       ret                     ;2116   c9      .\r
+       and a\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
+; >>C[N][J] [steps]\r
+; >>C[N][J] W expression\r
+; >>C[N][J] U expression\r
+;     trace over Calls [No list] [Jumps only] /.While./.Until.\r
+\r
 cmd_C:\r
-       ld hl,cmd_C             ;2117   21 17 21        ! . !\r
-       ld a,001h               ;211a   3e 01   > .\r
-       jr l2122h               ;211c   18 04   . .\r
+       ld hl,cmd_C\r
+       ld a,1\r
+       jr l2122h\r
+\r
+;-------------------------------------------------------------------------------\r
+; >>T[N][J] [steps]\r
+; >>T[N][J] W expression\r
+; >>T[N][J] U expression\r
+;      Trace [no List] [Jumps only] / .While. / .Until.\r
+\r
 cmd_T:\r
-       xor a                   ;211e   af      .\r
-       ld hl,cmd_T             ;211f   21 1e 21        ! . !\r
+       xor a\r
+       ld hl,cmd_T\r
 l2122h:\r
-       ld (cmd_rpt),hl         ;2122   22 68 00        " h .\r
-       ld (trace_call_flag),a  ;2125   32 e3 21        2 . !\r
-       ld a,(de)               ;2128   1a      .\r
-       sub 'N'                 ;2129   d6 4e   . N\r
-       jr nz,l212eh            ;212b   20 01     .\r
-       inc de                  ;212d   13      .\r
+       ld (cmd_rpt),hl\r
+       ld (trace_call_flag),a\r
+       call get_char_upper\r
+       sub 'N'\r
+       jr nz,l212eh\r
+       inc de\r
 l212eh:\r
-       ld (trace_N_flag),a     ;212e   32 e7 21        2 . !\r
-       ld a,(de)               ;2131   1a      .\r
-       sub 'J'                 ;2132   d6 4a   . J\r
-       jr nz,l2137h            ;2134   20 01     .\r
-       inc de                  ;2136   13      .\r
+       ld (trace_N_flag),a\r
+       call get_char_upper\r
+       sub 'J'\r
+       jr nz,l2137h\r
+       inc de\r
 l2137h:\r
-       ld (trace_J_flag),a     ;2137   32 e8 21        2 . !\r
-       call sub_21a6h          ;213a   cd a6 21        . . !\r
-       jr z,l2145h             ;213d   28 06   ( .\r
-       ld hl,1                 ;213f   21 01 00        ! . .\r
-       call get_lastarg_def    ;2142   cd 69 03        . i .\r
+       ld (trace_J_flag),a\r
+       call sub_21a6h\r
+       jr z,l2145h\r
+       ld hl,1\r
+       call get_lastarg_def\r
 l2145h:\r
-       ld (trace_count),hl     ;2145   22 e5 21        " . !\r
-       sub a                   ;2148   97      .\r
-       ld (l0941h),a           ;2149   32 41 09        2 A .\r
+       ld (trace_count),hl\r
+       sub a\r
+       ld (l0941h),a\r
 l214ch:\r
-       call sub_1ffeh          ;214c   cd fe 1f        . . .\r
-       jr l21a3h               ;214f   18 52   . R\r
+       call sub_1ffeh\r
+       jr l21a3h\r
 \r
 l2151h:\r
-       call bp_clr_temporary   ;2151   cd 54 07        . T .\r
-       ld a,(trace_J_flag)     ;2154   3a e8 21        : . !\r
-       and a                   ;2157   a7      .\r
-       jr nz,l216bh            ;2158   20 11     .\r
-       ld iy,(REG.PC)          ;215a   fd 2a 60 00     . * ` .\r
-       call sub_21c8h          ;215e   cd c8 21        . . !\r
-       jr z,l216bh             ;2161   28 08   ( .\r
-       ld hl,b_2048_start      ;2163   21 48 20        ! H\r
-       call lookup_opc         ;2166   cd 97 1a        . . .\r
-       jr nc,l214ch            ;2169   30 e1   0 .\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)    ;216b   3a e4 21        : . !\r
-       and a                   ;216e   a7      .\r
-       jr z,l2188h             ;216f   28 17   ( .\r
-       ld de,(trace_count)     ;2171   ed 5b e5 21     . [ . !\r
-       call expr               ;2175   cd be 03        . . .\r
-       ld a,h                  ;2178   7c      |\r
-       or l                    ;2179   b5      .\r
-       add a,0ffh              ;217a   c6 ff   . .\r
-       sbc a,a                 ;217c   9f      .\r
-       ld hl,trace_UW_flag     ;217d   21 e4 21        ! . !\r
-       xor (hl)                ;2180   ae      .\r
-       bit 1,a                 ;2181   cb 4f   . O\r
-       jr z,l2193h             ;2183   28 0e   ( .\r
+       ld a,(trace_UW_flag)\r
+       and a\r
+       jr z,l2188h\r
+       ld de,(trace_count)\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
+       xor (hl)\r
+       bit 1,a\r
+       jr z,l2193h\r
 l2185h:\r
-       jp l0902h               ;2185   c3 02 09        . . .\r
+       jp l0902h\r
 l2188h:\r
-       ld hl,(trace_count)     ;2188   2a e5 21        * . !\r
-       dec hl                  ;218b   2b      +\r
-       ld (trace_count),hl     ;218c   22 e5 21        " . !\r
-       ld a,h                  ;218f   7c      |\r
-       or l                    ;2190   b5      .\r
-       jr z,l2185h             ;2191   28 f2   ( .\r
+       ld hl,(trace_count)\r
+       dec hl\r
+       ld (trace_count),hl\r
+       ld a,h\r
+       or l\r
+       jr z,l2185h\r
 l2193h:\r
-       call sub_1ffeh          ;2193   cd fe 1f        . . .\r
-       jr nc,l2185h            ;2196   30 ed   0 .\r
-       ld a,(trace_N_flag)     ;2198   3a e7 21        : . !\r
-       ld b,a                  ;219b   47      G\r
-       ld a,(l0941h)           ;219c   3a 41 09        : A .\r
-       or b                    ;219f   b0      .\r
-       ld (l0941h),a           ;21a0   32 41 09        2 A .\r
+       call sub_1ffeh\r
+       jr nc,l2185h\r
+       ld a,(trace_N_flag)\r
+       ld b,a\r
+       ld a,(l0941h)\r
+       or b\r
+       ld (l0941h),a\r
 l21a3h:\r
-       jp user_go              ;21a3   c3 25 0a        . % .\r
+       jp user_go\r
 \r
 sub_21a6h:\r
-       call skipbl             ;21a6   cd bf 02        . . .\r
-       xor a                   ;21a9   af      .\r
-       ld (trace_UW_flag),a    ;21aa   32 e4 21        2 . !\r
-       ld a,(de)               ;21ad   1a      .\r
-       cp 'U'                  ;21ae   fe 55   . U\r
-       jr z,l21b5h             ;21b0   28 03   ( .\r
-       cp 'W'                  ;21b2   fe 57   . W\r
-       ret nz                  ;21b4   c0      .\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                  ;21b5   13      .\r
-       push af                 ;21b6   f5      .\r
-       push de                 ;21b7   d5      .\r
-       call expr               ;21b8   cd be 03        . . .\r
-       jp c,ERROR              ;21bb   da 07 01        . . .\r
-       call assert_eol         ;21be   cd d6 02        . . .\r
-       pop hl                  ;21c1   e1      .\r
-       pop af                  ;21c2   f1      .\r
-       ld (trace_UW_flag),a    ;21c3   32 e4 21        2 . !\r
-       sub a                   ;21c6   97      .\r
-       ret                     ;21c7   c9      .\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)          ;21c8   fd 7e 00        . ~ .\r
-       cp 0edh                 ;21cb   fe ed   . .\r
-       jr z,l21dah             ;21cd   28 0b   ( .\r
-       and 0dfh                ;21cf   e6 df   . .\r
-       cp 0ddh                 ;21d1   fe dd   . .\r
-       ret nz                  ;21d3   c0      .\r
-       ld a,(iy+001h)          ;21d4   fd 7e 01        . ~ .\r
-       cp 0e9h                 ;21d7   fe e9   . .\r
-       ret                     ;21d9   c9      .\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)          ;21da   fd 7e 01        . ~ .\r
-       and 0f7h                ;21dd   e6 f7   . .\r
-       cp 045h                 ;21df   fe 45   . E\r
-       ret                     ;21e1   c9      .\r
+       ld a,(iy+001h)\r
+       and 0f7h\r
+       cp 045h\r
+       ret\r
+\r
+;-------------------------------------------------------------------------------\r
 \r
 b_21e2_start:\r
        db      0\r
@@ -5468,7 +6069,7 @@ reloc:
 \r
        EXX\r
        LD      HL,(BDOS+1)\r
-       LD      (ldr_end+1),HL\r
+       LD      (ldr_end+(ddtz_bdos+1-ddtz_base)),HL\r
        LD      BC,ddtz_size-1\r
        LD      D,B\r
        LD      E,0FFH\r
@@ -5529,6 +6130,8 @@ current_cseg      defl    $
        ds      EXPR_BUF_SIZE - ($ - expr_buf)\r
 expr_bufe:\r
 \r
+;-------------------------------------------------------------------------------\r
+\r
 msg_Y:\r
        dc      'Yn'\r
 reg_Y:\r
@@ -5575,10 +6178,20 @@ isprefix_ixiy:
        db      0\r
 last_L:\r
        dw      TPA\r
-l1ffbh:\r
+disas_arg_16:\r
+       dw      0\r
+disas_argtype:\r
+       db      0\r
+\r
+pbl_loop_adr:\r
        dw      0\r
-l1ffdh:\r
+\r
+symlen_cur:            ;max length of symbols read so far\r
        db      0\r
+cur_fcb:\r
+       dw      0\r
+fcbsym:\r
+       ds      33\r
 \r
 ddtz_size      equ     $-ddtz_base\r
 ddtz_end:\r