]> cloudbase.mooo.com Git - ddt180.git/commitdiff
Don't save values in alternate registers over BDOS calls.
authorLeo C <erbl259-lmu@yahoo.de>
Tue, 16 Aug 2016 10:10:00 +0000 (12:10 +0200)
committerLeo C <erbl259-lmu@yahoo.de>
Tue, 16 Aug 2016 10:10:00 +0000 (12:10 +0200)
I.e replace ex af,af' by push/pop

ddt180.z80

index 41968619395db2b68146eceaca025ccc4e6f3d53..cc5ca41c0e34e548f6dbced670e4c399e5f794ea 100644 (file)
@@ -350,7 +350,8 @@ l01c9h:
        jr outchar\r
 \r
 out.ascii:\r
-       push af\r
+       push bc\r
+       ld c,a\r
        res 7,a\r
        cp ' '\r
        push af\r
@@ -359,22 +360,20 @@ out.ascii:
        pop af\r
        jr nc,l0242h\r
        sub 0c0h\r
-       ex af,af'\r
+       ld b,a\r
        call    pstr_inl\r
        dc      '^'\r
-       ex af,af'\r
+       ld a,b\r
 l0242h:\r
        call outchar\r
        cp ''''\r
        call z,outchar\r
-       ex af,af'\r
        call outquote\r
-       pop af\r
-       or a\r
+       sla c\r
+       pop bc\r
+       ret nc\r
        ld a,'.'\r
-       call m,outchar\r
-       ex af,af'\r
-       ret\r
+       jr outchar\r
 \r
 outbl6:\r
        call outbl2\r
@@ -1406,24 +1405,21 @@ l063eh:
        push de\r
        ld iy,(reg.pc)\r
        call p_disas_instr\r
-       exx\r
-       ex af,af'\r
+       pop de\r
+       ex (sp),hl\r
+       push af\r
        call crlf\r
        call p_f2\r
        call outbl2\r
-       pop de\r
-       pop hl\r
        ld b,7\r
 l065bh:\r
        call p_regs\r
        djnz l065bh\r
-       exx\r
-       ex af,af'\r
+       pop af\r
+       pop hl\r
        and a\r
-       jr z,l066bh\r
-       call outbl6\r
-       call p_offset\r
-l066bh:\r
+       call nz,outbl6\r
+       call nz,p_offset\r
        jp crlf\r
 \r
 p_f:\r
@@ -1438,6 +1434,7 @@ p_f2:
        ld a,(reg.f2)\r
        call p_flags\r
        jp outbl\r
+\r
 p_flags:\r
        ld b,a\r
        ld a,'S'\r
@@ -1459,7 +1456,6 @@ sub_06aah:
        jp outbl\r
 \r
 p_regs:\r
-       push bc\r
        push de\r
        call pstr\r
        call    pstr_inl\r
@@ -1474,13 +1470,11 @@ p_regs:
        push hl\r
        and a\r
        jr z,l06deh\r
-       push af\r
-       ld a,(de)\r
-       ld l,a\r
-       inc de\r
-       ld a,(de)\r
-       ld h,a\r
-       pop af\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
@@ -1496,7 +1490,6 @@ l06e2h:
        call outbl\r
        pop de\r
        pop hl\r
-       pop bc\r
        ret\r
 \r
 b_06e9_start:\r
@@ -2149,12 +2142,15 @@ l0c5fh:
        call sub_0c6ah\r
        ld (reg.f2),a\r
        ret\r
+\r
 sub_0c6ah:\r
-       ex af,af'\r
+       push af\r
        ld b,000h\r
        call outbl\r
        call assert_eol\r
        call get_line\r
+       pop af\r
+       ex af,af'\r
 l0c76h:\r
        call skipbl\r
        ld a,b\r
@@ -2690,7 +2686,7 @@ sub_0f58h:
        push bc\r
        push de\r
        push hl\r
-       ex af,af'\r
+       push af\r
 l0f5ch:\r
        call out.hl.@\r
        call z,outbl2\r
@@ -2722,15 +2718,16 @@ l0f86h:
        inc hl\r
        dec e\r
        jr nz,l0f86h\r
-       ex af,af'\r
+       pop af\r
+       push af\r
        jr nc,l0f97h\r
        ld (last_D),hl\r
 l0f97h:\r
-       ex af,af'\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