I.e replace ex af,af' by push/pop
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
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
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
ld a,(reg.f2)\r
call p_flags\r
jp outbl\r
+\r
p_flags:\r
ld b,a\r
ld a,'S'\r
jp outbl\r
\r
p_regs:\r
- push bc\r
push de\r
call pstr\r
call pstr_inl\r
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
call outbl\r
pop de\r
pop hl\r
- pop bc\r
ret\r
\r
b_06e9_start:\r
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
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
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