From dfec2468ff106556e035c8e702edf5a7d0e50e68 Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Wed, 6 Feb 2019 08:54:09 -0800 Subject: Fixes to DAA, SCF and CCF to pass ZEXALL in new Z80 core --- z80.cpu | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'z80.cpu') diff --git a/z80.cpu b/z80.cpu index e31be38..db19837 100644 --- a/z80.cpu +++ b/z80.cpu @@ -1439,6 +1439,9 @@ ed 01DDD100 neg 00111111 ccf local tmp 8 + and 0x80 last_flag_result last_flag_result + and 0x7F a tmp + or tmp last_flag_result last_flag_result and 0x80 chflags chflags lsr chflags 4 tmp or tmp chflags chflags @@ -1446,6 +1449,10 @@ ed 01DDD100 neg update_flags N0 00110111 scf + local tmp 8 + and 0x80 last_flag_result last_flag_result + and 0x7F a tmp + or tmp last_flag_result last_flag_result update_flags H0N0C1 00000000 nop @@ -2217,24 +2224,28 @@ ed 10111001 cpdr if tmp or 0x60 diff diff + update_flags C1 else - cmp 0xA0 a + cmp 0x9A a if >=U or 0x60 diff diff + update_flags C1 + else + update_flags C0 end end if nflag sub diff a a - update_flags SZYHPXC + update_flags SZYHPX else add diff a a - update_flags SZYHPXC + update_flags SZYHPX end -- cgit v1.2.3