From aba1cc152167e44af0404c14391b093898b09b5f Mon Sep 17 00:00:00 2001 From: Andrew Jacobs Date: Fri, 22 Mar 2019 13:25:48 +0000 Subject: [PATCH] Fixed carry generation in CMP, CPX and CPY --- emu816.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/emu816.h b/emu816.h index bcc568c..26ea273 100644 --- a/emu816.h +++ b/emu816.h @@ -769,7 +769,7 @@ private: if (e || p.f_m) { Byte data = getByte(ea); - Word temp = data - a.b; + Word temp = data - a.b - 1; setc(temp & 0x100); setnz_b(lo(temp)); @@ -777,7 +777,7 @@ private: } else { Word data = getWord(ea); - Addr temp = data - a.w; + Addr temp = data - a.w - 1; setc(temp & 0x10000L); setnz_w((Word)temp); @@ -820,7 +820,7 @@ private: if (e || p.f_x) { Byte data = getByte(ea); - Word temp = data - x.b; + Word temp = data - x.b - 1; setc(temp & 0x100); setnz_b(lo(temp)); @@ -828,7 +828,7 @@ private: } else { Word data = getWord(ea); - Addr temp = data - x.w; + Addr temp = data - x.w - 1; setc(temp & 0x10000); setnz_w((Word) temp); @@ -842,7 +842,7 @@ private: if (e || p.f_x) { Byte data = getByte(ea); - Word temp = data - y.b; + Word temp = data - y.b - 1; setc(temp & 0x100); setnz_b(lo(temp)); @@ -850,7 +850,7 @@ private: } else { Word data = getWord(ea); - Addr temp = data - y.w; + Addr temp = data - y.w - 1; setc(temp & 0x10000); setnz_w((Word) temp);