From 863110323dd0372102bf989fcb18f6573582de37 Mon Sep 17 00:00:00 2001 From: Ian C Date: Thu, 29 Dec 2022 16:41:33 +0000 Subject: Fixed LDD[R] and LDI[R] --- z80_decode.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/z80_decode.c b/z80_decode.c index 2385ac8..aecd26a 100644 --- a/z80_decode.c +++ b/z80_decode.c @@ -542,7 +542,7 @@ do { \ */ #define LDI \ do { \ - Z80Byte b; \ + Z80Byte b,a1; \ \ b=PEEK(cpu->HL.w); \ POKE(cpu->DE.w,b); \ @@ -558,12 +558,14 @@ do { \ else \ CLRFLAG(P_Z80); \ \ - SETHIDDEN(cpu->AF.b.hi+b); \ + a1=cpu->AF.b.hi+b; \ + if (a1&2) SETFLAG(B5_Z80); else CLRFLAG(B5_Z80); \ + if (a1&B3_Z80) SETFLAG(B3_Z80); else CLRFLAG(B3_Z80); \ } while(0) #define LDD \ do { \ - Z80Byte b; \ + Z80Byte b,a1; \ \ b=PEEK(cpu->HL.w); \ POKE(cpu->DE.w,b); \ @@ -579,7 +581,9 @@ do { \ else \ CLRFLAG(P_Z80); \ \ - SETHIDDEN(cpu->AF.b.hi+b); \ + a1=cpu->AF.b.hi+b; \ + if (a1&2) SETFLAG(B5_Z80); else CLRFLAG(B5_Z80); \ + if (a1&B3_Z80) SETFLAG(B3_Z80); else CLRFLAG(B3_Z80); \ } while(0) #define CPI \ -- cgit v1.2.3