From: Leo C Date: Tue, 16 Aug 2016 10:10:00 +0000 (+0200) Subject: Don't save values in alternate registers over BDOS calls. X-Git-Tag: v0.3~3 X-Git-Url: http://cloudbase.mooo.com/gitweb/ddt180.git/commitdiff_plain/d24eec894e877b19b848303a46ba6a81b7ccc5b0 Don't save values in alternate registers over BDOS calls. I.e replace ex af,af' by push/pop --- diff --git a/ddt180.z80 b/ddt180.z80 index 4196861..cc5ca41 100644 --- a/ddt180.z80 +++ b/ddt180.z80 @@ -350,7 +350,8 @@ l01c9h: jr outchar out.ascii: - push af + push bc + ld c,a res 7,a cp ' ' push af @@ -359,22 +360,20 @@ out.ascii: pop af jr nc,l0242h sub 0c0h - ex af,af' + ld b,a call pstr_inl dc '^' - ex af,af' + ld a,b l0242h: call outchar cp '''' call z,outchar - ex af,af' call outquote - pop af - or a + sla c + pop bc + ret nc ld a,'.' - call m,outchar - ex af,af' - ret + jr outchar outbl6: call outbl2 @@ -1406,24 +1405,21 @@ l063eh: push de ld iy,(reg.pc) call p_disas_instr - exx - ex af,af' + pop de + ex (sp),hl + push af call crlf call p_f2 call outbl2 - pop de - pop hl ld b,7 l065bh: call p_regs djnz l065bh - exx - ex af,af' + pop af + pop hl and a - jr z,l066bh - call outbl6 - call p_offset -l066bh: + call nz,outbl6 + call nz,p_offset jp crlf p_f: @@ -1438,6 +1434,7 @@ p_f2: ld a,(reg.f2) call p_flags jp outbl + p_flags: ld b,a ld a,'S' @@ -1459,7 +1456,6 @@ sub_06aah: jp outbl p_regs: - push bc push de call pstr call pstr_inl @@ -1474,13 +1470,11 @@ p_regs: push hl and a jr z,l06deh - push af - ld a,(de) - ld l,a - inc de - ld a,(de) - ld h,a - pop af + ex de,hl + ld e,(hl) + inc hl + ld d,(hl) + ex de,hl dec a jr z,l06d9h call out.hl.@ @@ -1496,7 +1490,6 @@ l06e2h: call outbl pop de pop hl - pop bc ret b_06e9_start: @@ -2149,12 +2142,15 @@ l0c5fh: call sub_0c6ah ld (reg.f2),a ret + sub_0c6ah: - ex af,af' + push af ld b,000h call outbl call assert_eol call get_line + pop af + ex af,af' l0c76h: call skipbl ld a,b @@ -2690,7 +2686,7 @@ sub_0f58h: push bc push de push hl - ex af,af' + push af l0f5ch: call out.hl.@ call z,outbl2 @@ -2722,15 +2718,16 @@ l0f86h: inc hl dec e jr nz,l0f86h - ex af,af' + pop af + push af jr nc,l0f97h ld (last_D),hl l0f97h: - ex af,af' call crlf ld a,b or c jr nz,l0f5ch + pop af pop hl pop de pop bc