]> cloudbase.mooo.com Git - ddt180.git/blobdiff - ddt180.z80
Rewrite p_flags; refactor out_rparen,p_A_comma,p_arg_a_addr,p_arg_addr,p_arg_nn_rp...
[ddt180.git] / ddt180.z80
index 3d4e6e7d272d485b2b3d84695911d0a08c56981b..ed3d7f2649cf58590580d579f19f22c6d400ed71 100644 (file)
@@ -402,10 +402,6 @@ outbl:
        ld a,' '\r
        jr outchar\r
 \r
-p_char_lparen:\r
-       ld a,'('\r
-       jr outchar\r
-\r
 outquote:\r
        ld a,''''\r
 outchar:\r
@@ -1458,24 +1454,25 @@ p_f2:
        jp outbl\r
 \r
 p_flags:\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\r
-       jp c,outchar\r
-       jp outbl\r
+       push    hl\r
+       ld      hl,t_flag_names+7\r
+       ld      c,a\r
+       ld      b,8\r
+fl_loop:\r
+       ld      a,' '\r
+       cp      (hl)\r
+       ld      a,c\r
+       rlca\r
+       ld      c,a\r
+       jr      z,fl_skip\r
+       ld      a,(hl)\r
+       call    c,outchar\r
+       call    nc,outbl\r
+fl_skip:\r
+       dec     hl\r
+       djnz    fl_loop\r
+       pop     hl\r
+       ret\r
 \r
 p_regs:\r
        push de\r
@@ -5277,8 +5274,7 @@ l1ce5h:
 sub_1ce8h:\r
        call p_char_lparen\r
        call p_arg_ww\r
-out_rparen:\r
-       jp p_char_rparen\r
+       jr out_rparen\r
 \r
 l1cf5h:\r
        call p_A_comma\r
@@ -5318,7 +5314,11 @@ l1d29h:
 sub_1d2ch:\r
        call p_char_lparen\r
        ld a,(iy+001h)\r
-       jp l1e6bh\r
+p_arg_nn_rp:\r
+       call out_hex\r
+out_rparen:\r
+       jr p_char_rparen\r
+\r
 l1d37h:\r
        call sub_1d2ch\r
        jr p_char_comma_A\r
@@ -5355,27 +5355,30 @@ p_arg_addr_a:
        call p_arg_addr\r
 p_char_comma_A:\r
        call p_char_comma\r
+       jr p_char_A\r
+\r
+p_A_comma:\r
+       call p_char_A\r
+p_char_comma:\r
+       ld a,','\r
+       db 021h\r
 p_char_A:\r
        ld a,'A'\r
-       jr outchar1\r
-p_arg_a_addr:\r
-       call p_A_comma\r
-       jp p_arg_addr\r
+       db 021h\r
 l1d85h:\r
        ld a,'0'\r
-       jr outchar1\r
+       db 021h\r
 l1d89h:\r
        ld a,'1'\r
-       jr outchar1\r
+       db 021h\r
 l1d8dh:\r
        ld a,'2'\r
-       jr outchar1\r
-\r
-p_A_comma:\r
-       call p_char_A\r
-p_char_comma:\r
-       ld a,','\r
-outchar1:\r
+       db 021h\r
+p_char_rparen:\r
+       ld a,')'\r
+       db 021h\r
+p_char_lparen:\r
+       ld a,'('\r
        jp outchar\r
 \r
 l1d92h:\r
@@ -5426,7 +5429,16 @@ p_arg_addr_ww:
 p_arg_ww_addr:\r
        call p_arg_ww\r
        call p_char_comma\r
-       jr p_arg_addr\r
+\r
+p_arg_a_addr:\r
+       call p_A_comma\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
+       jr p_char_rparen\r
 \r
 p_arg_bitop:\r
        ld a,(isprefix_ixiy)\r
@@ -5459,17 +5471,6 @@ l1e0eh:
 l1e11h:\r
        jr p_arg_r0\r
 \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,')'\r
-       jp outchar\r
-\r
 p_arg_r:\r
        ld a,(iy+000h)\r
        rra\r
@@ -5494,20 +5495,18 @@ p_arg_r0:
 l1e4dh:\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
-       call    pstr_inl\r
-       dc      '-'\r
-       ld a,(iy+001h)\r
+       push af\r
+       rlca\r
+       ld a,'+'\r
+       jr nc,l1e61h\r
+       pop af\r
        neg\r
-l1e6bh:\r
-       call out_hex\r
-       jr p_char_rparen\r
+       push af\r
+       ld a,'-'\r
+l1e61h:\r
+       call outchar\r
+       pop af\r
+       jp p_arg_nn_rp\r
 \r
 p_arg_r1:\r
        ld hl,t_BCDEHL_HL_A\r