]> cloudbase.mooo.com Git - ddt180.git/commitdiff
Commands B,Y: Print symbols. Command HS: Tabulate symbols
authorLeo C <erbl259-lmu@yahoo.de>
Fri, 12 Aug 2016 20:39:45 +0000 (22:39 +0200)
committerLeo C <erbl259-lmu@yahoo.de>
Fri, 12 Aug 2016 20:39:45 +0000 (22:39 +0200)
Makefile
ddt180.z80

index 43e9909ddef6fcbae1dbf649433da5b92d6da3db..7694f5ba417461ef9c837bfec5948edd850848e7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -6,7 +6,7 @@ SRC     := $(PROG).z80
 
 OBJ    := $(SRC:.z80=.rel)
 
-AS_OPT := MF
+AS_OPT := MFS
 
 ASM  := zxcc slrz80.com
 LINK := zxcc link80.com
index 862dbc2b83242042532d6298efd7ff70ff62a54b..93df19a857717b387fa268bda87cc5796816d7bd 100644 (file)
@@ -1042,6 +1042,7 @@ fact_reg.Y:
        call get.decdigit\r
        jr c,error4\r
        inc de\r
+get_y_val:\r
        add a,a\r
        ld hl,reg_Y\r
        call add_hl_a\r
@@ -1485,24 +1486,24 @@ l075ah:
 \r
 cmd_B:\r
        call skipbl\r
-       jr z,l07b7h\r
+       jr z,bp_print\r
        inc de\r
        cp 'X'\r
-       jr z,l077dh\r
+       jr z,bp_clr0\r
        dec de\r
        ld a,001h\r
        jp bp_enter\r
-l077dh:\r
+bp_clr0:\r
        call skipbl\r
        jr z,bp_clr_all\r
-l0782h:\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 l0782h\r
+       jr bp_clr_next\r
 \r
 bp_clr_all:\r
        scf\r
@@ -1526,12 +1527,12 @@ l07aeh:
        djnz l0799h\r
        ret\r
 \r
-l07b7h:\r
+bp_print:\r
        ld b,BP_CNT\r
        ld ix,bp_tab\r
-l07bdh:\r
+bp_pr_l:\r
        bit 0,(ix+000h)\r
-       jr z,l0808h\r
+       jr z,bp_pr_cont\r
        ld a,'R'\r
        bit 4,(ix+000h)\r
        jr nz,l07cdh\r
@@ -1542,9 +1543,10 @@ l07cdh:
        ld l,(ix+002h)\r
        ld h,(ix+003h)\r
        call out.hl.@\r
-       call outbl2\r
-       ld a,':'\r
-       call outchar\r
+       ld a,82h\r
+       call p_sym_space\r
+       call    pstr_inl\r
+       dc      ':'\r
        ld l,(ix+004h)\r
        ld h,(ix+005h)\r
        call out_hl\r
@@ -1560,10 +1562,10 @@ l07cdh:
        call pstr\r
 l0805h:\r
        call crlf\r
-l0808h:\r
+bp_pr_cont:\r
        ld de,BP_SIZE\r
        add ix,de\r
-       djnz l07bdh\r
+       djnz bp_pr_l\r
        ret\r
 \r
 ; Add break points to list\r
@@ -1575,10 +1577,10 @@ bp_enter:
        call skipbl\r
        ret z\r
        cp 'R'\r
-       jr nz,l081ch\r
+       jr nz,bp_e_1\r
        inc de\r
        set 4,b\r
-l081ch:\r
+bp_e_1:\r
        push bc\r
        call expr\r
        jp c,ERROR\r
@@ -1608,7 +1610,7 @@ l081ch:
 bp_get_freeslot:\r
        ld b,BP_CNT\r
        ld ix,bp_tab\r
-l085ah:\r
+bp_gf_l:\r
        ld a,(ix+000h)\r
        and 00fh\r
        ret z\r
@@ -1616,7 +1618,7 @@ l085ah:
        ld bc,BP_SIZE\r
        add ix,bc\r
        pop bc\r
-       djnz l085ah\r
+       djnz bp_gf_l\r
        jp ERROR\r
 \r
 bp_get_count:\r
@@ -1958,7 +1960,11 @@ l0bc3h:
 l0bc7h:\r
        push af\r
        call sub_0bdch\r
-       call outbl4\r
+       pop af\r
+       push af\r
+       call get_y_val\r
+       ld a,82h\r
+       call p_sym_space\r
        pop af\r
        inc a\r
        bit 0,a\r
@@ -2383,55 +2389,118 @@ l0e5eh:
        call outbl\r
        ld a,l\r
        call out.ascii\r
-       call outbl\r
-       call p_symbol\r
+       ld a,80h\r
+       call p_sym_space\r
        jp crlf\r
 \r
 p_symbols:\r
        inc     de\r
        call    assert_eol\r
        ld      hl,ddtz_base+2\r
-psym_l:\r
+\r
+       ld      a,(symlen_max)\r
+       add     a,8\r
+       ld      b,a\r
+       ld      a,80                    ;screen width\r
+       ld      c,-1\r
+psym_1:\r
+       inc     c\r
+       sub     a,b\r
+       jr      nc,psym_1\r
+\r
+psym_nxtline:\r
+       ld      b,c\r
+psym_nxtcol:\r
        ld      d,(hl)\r
        dec     hl\r
        ld      e,(hl)\r
        dec     hl\r
-       ld      b,(hl)\r
-       dec     hl\r
-       ld      a,b\r
+       ld      a,(hl)\r
+       call    sub_hl_a1\r
        cp      0c3h\r
-       ret     z\r
+       jr      z,psym_e\r
 \r
        ex      de,hl\r
        call    out_hl\r
-       ex      de,hl\r
        call    outbl\r
-psymch_l:\r
-       ld      a,(hl)\r
-       dec     hl\r
-       call    outchar\r
-       djnz    psymch_l\r
+       ld      a,3\r
+       call    p_sym_space\r
+       ex      de,hl\r
+       djnz    psym_nxtcol\r
        call    crlf\r
-       jr      psym_l\r
+       jr      psym_nxtline\r
+psym_e:\r
+       ld      a,b\r
+       cp      c\r
+       ret     z\r
+       jp      crlf\r
 \r
 \r
-p_symbol:\r
+p_sym_space:\r
   if 0\r
        ld      a,(dash_flag)\r
        or      a\r
        ret     nz\r
   endif\r
+\r
+       push    hl\r
+       push    bc\r
+       ld      c,a\r
+       ld      a,(con_col)\r
+       ld      b,a\r
        call    sym_getname\r
-       ret     z\r
+       jr      z,psb_align\r
+       bit     7,c\r
+       jr      z,psb_nd\r
+       ld      a,' '\r
+       call    outchar\r
        ld      a,'.'\r
        call    outchar\r
+psb_nd:\r
+       call    p_symstr\r
+\r
+psb_align:\r
+       ld      a,(con_col)\r
+       sub     b\r
+       ld      b,a\r
+       ld      a,(symlen_max)\r
+       bit     7,c\r
+       jr      z,$+4\r
+       add     a,2\r
+       res     7,c\r
+       add     c\r
+       sub     b\r
+       ld      b,a\r
+       jr      z,psb_e\r
+psb_a_l:\r
+       call    outbl\r
+       djnz    psb_a_l\r
+psb_e:\r
+       pop     bc\r
+       pop     hl\r
+       ret\r
+\r
+\r
+p_symbol:\r
+  if 0\r
+       ld      a,(dash_flag)\r
+       or      a\r
+       ret     nz\r
+  endif\r
+       call    sym_getname\r
+       ret     z\r
+       call    pstr_inl\r
+       dc      ' .'\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
+       pop     bc\r
        ret\r
 \r
 p_label:\r
@@ -2451,6 +2520,7 @@ pl_e:
        pop     hl\r
        ret\r
 \r
+\r
 sym_getname:\r
        push    de\r
        push    hl\r
@@ -3057,12 +3127,11 @@ read_symfile:
 \r
        dec de\r
        call file_open\r
-;------------------------------------------------------------------------\r
 rs_1:\r
        call    read_byte\r
 rs_2:\r
        cp      1ah\r
-       jr      z,p_max_high\r
+       jp      z,p_max_high\r
        cp      '!'\r
        jr      c,rs_1\r
        call    read_hexbyte0\r
@@ -3127,13 +3196,18 @@ rs_61:
        ex      de,hl           ;\r
        pop     de              ;\r
        ld      (hl),e          ; symlen\r
+       ld      a,e\r
        inc     hl              ;\r
        pop     de              ; symval\r
        ld      (hl),e          ;\r
        inc     hl              ;\r
        ld      (hl),d          ;\r
+       ld      hl,symlen_max\r
+       cp      (hl)\r
+       jr      c,$+3\r
+       ld      (hl),a\r
        jp      rs_1            ;\r
-;------------------------------------------------------------------------\r
+\r
 \r
 p_max_high0:\r
        call assert_eol\r
@@ -3233,9 +3307,9 @@ l1211h:
        ld de,(var.@)\r
        ld a,d\r
        or e\r
-       ld b,011h\r
+       ld b,17\r
        jr z,l122dh\r
-       ld b,019h\r
+       ld b,25\r
 l122dh:\r
        call outbl\r
        ld a,(con_col)\r
@@ -4424,7 +4498,6 @@ p_disas_line:
        call p_disas_instr\r
        and a\r
        ret z\r
-\r
 l193fh:\r
        call outbl\r
        ld a,(con_col)\r
@@ -5883,6 +5956,8 @@ l1ffbh:
 l1ffdh:\r
        db      0\r
 \r
+symlen_max:            ;max length of symbols read so far\r
+       db      0\r
 cur_fcb:\r
        dw      0\r
 fcbsym:\r