From 67b5b7a615feb8aaaca93ea5cae543370ae9c11a Mon Sep 17 00:00:00 2001 From: Jared Burce Date: Sat, 3 Apr 2021 01:14:51 -0700 Subject: [PATCH] emu: modrm8 r8 decode had HI/LO registers backwards --- src/emu/i8088.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/emu/i8088.rs b/src/emu/i8088.rs index cf0865f..62dd8da 100644 --- a/src/emu/i8088.rs +++ b/src/emu/i8088.rs @@ -271,14 +271,14 @@ macro_rules! step { (@r8 $cookie:tt, $cpu:expr, $bus:expr, $prefix:tt, ($modrm_val:ident, $modrm:tt, $modrm16:tt, $modrm8:tt)) => { // TODO: Should these also be passed into the macro like the modrm specs? match $modrm_val >> 3 & 0x7 { - 0 => step!(@arg $cookie, RegHi { reg: &$cpu.a } ), - 1 => step!(@arg $cookie, RegHi { reg: &$cpu.c } ), - 2 => step!(@arg $cookie, RegHi { reg: &$cpu.d } ), - 3 => step!(@arg $cookie, RegHi { reg: &$cpu.b } ), - 4 => step!(@arg $cookie, RegLo { reg: &$cpu.a } ), - 5 => step!(@arg $cookie, RegLo { reg: &$cpu.c } ), - 6 => step!(@arg $cookie, RegLo { reg: &$cpu.d } ), - 7 => step!(@arg $cookie, RegLo { reg: &$cpu.b } ), + 0 => step!(@arg $cookie, RegLo { reg: &$cpu.a } ), + 1 => step!(@arg $cookie, RegLo { reg: &$cpu.c } ), + 2 => step!(@arg $cookie, RegLo { reg: &$cpu.d } ), + 3 => step!(@arg $cookie, RegLo { reg: &$cpu.b } ), + 4 => step!(@arg $cookie, RegHi { reg: &$cpu.a } ), + 5 => step!(@arg $cookie, RegHi { reg: &$cpu.c } ), + 6 => step!(@arg $cookie, RegHi { reg: &$cpu.d } ), + 7 => step!(@arg $cookie, RegHi { reg: &$cpu.b } ), _ => unreachable!() }; };