From 4e506a4d3c7538920ce694218b6a815ce03745ef Mon Sep 17 00:00:00 2001 From: MadMaurice Date: Tue, 29 Aug 2023 23:46:09 +0200 Subject: [PATCH] cpu/decoder - Implement LD HL, SP + e8 --- cpu/decoder.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cpu/decoder.cpp b/cpu/decoder.cpp index f50a8b4..5767112 100644 --- a/cpu/decoder.cpp +++ b/cpu/decoder.cpp @@ -474,6 +474,20 @@ void Cpu::executeInstruction() mcycles = 4; } break; + case 0xF8: // LD HL, SP + e8 + { + u32 lhs = state.SP; + s32 rhs = (s8)readPC8(); + u32 low_add = (lhs & 0x0FFF) + (rhs & 0x0FFF); + state.halfcarry = (low_add & 0x1000); + u32 res32 = lhs + rhs; + state.carry = (res32 & 0x10000); + state.HL = (u16)res32; + state.zero = false; + state.subtract = false; + mcycles = 3; + } + break; default: panic("Unknown opcode 0x%x\n",op);