From 02132b2cac376b6aeaa69d1f0b219eb6701714fa Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Thu, 21 Jan 2016 22:39:22 -0800 Subject: [PATCH] LR35902: Fix DAA --- src/lr35902/isa-lr35902.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/lr35902/isa-lr35902.c b/src/lr35902/isa-lr35902.c index 5e66b10a9..e590fb19a 100644 --- a/src/lr35902/isa-lr35902.c +++ b/src/lr35902/isa-lr35902.c @@ -598,15 +598,17 @@ DEFINE_INSTRUCTION_LR35902(DAA, cpu->a += 0xA0; } } else { + int a = cpu->a; if ((cpu->a & 0xF) > 0x9 || cpu->f.h) { - cpu->a += 0x6; + a += 0x6; } - if ((cpu->a & 0xF0) > 0x90 || cpu->f.c) { - cpu->a += 0x60; + if ((a & 0x1F0) > 0x90 || cpu->f.c) { + a += 0x60; cpu->f.c = 1; } else { cpu->f.c = 0; } + cpu->a = a; } cpu->f.h = 0; cpu->f.z = !cpu->a;)