From 443b12f77eeeac7e515ceb897341346a01733e57 Mon Sep 17 00:00:00 2001 From: edmccard Date: Mon, 26 Mar 2012 14:47:48 -0400 Subject: [PATCH] Strict mode fix for page-crossings --- src/d6502/cpu.d | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/d6502/cpu.d b/src/d6502/cpu.d index f88f6bf..e16d3db 100644 --- a/src/d6502/cpu.d +++ b/src/d6502/cpu.d @@ -285,7 +285,10 @@ class Cpu(bool strict, bool cumulative) : CpuBase!(strict, cumulative) final ushort tryShortcut(bool noShortcut, ushort goodAddress) { badAddress = (baseAddress & 0xFF00) | cast(ubyte)goodAddress; - if (noShortcut || (badAddress != goodAddress)) peek(*spuriousAddress); + if (badAddress != goodAddress) + peek(*spuriousAddress); + else if (noShortcut) + peek(goodAddress); return goodAddress; }