From bdeb48df1d46cb3b88858a092129341708b1ecc9 Mon Sep 17 00:00:00 2001 From: Keith Bourdon <33245078+celerizer@users.noreply.github.com> Date: Tue, 31 Dec 2024 13:25:19 -0600 Subject: [PATCH] fix opcode 68/69 --- emu.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/emu.c b/emu.c index 83052f9..fca15f6 100644 --- a/emu.c +++ b/emu.c @@ -2262,14 +2262,22 @@ H8_OP(op67) H8_OP(op68) { - /** MOV.B @ERs, Rd */ - ms_rd_b(system, er(system, system->dbus.bh), rd_b(system, system->dbus.bl), movb); + if (system->dbus.bh & B1000) + /** MOV.B Rs, @ERd */ + rs_md_b(system, *rd_b(system, system->dbus.bl), er(system, system->dbus.bh), movb); + else + /** MOV.B @ERs, Rd */ + ms_rd_b(system, er(system, system->dbus.bh), rd_b(system, system->dbus.bl), movb); } H8_OP(op69) { - /** MOV.W @ERs, Rd */ - ms_rd_w(system, er(system, system->dbus.bh), rd_w(system, system->dbus.bl), movw); + if (system->dbus.bh & B1000) + /** MOV.W Rs, @ERd */ + rs_md_w(system, *rd_w(system, system->dbus.bl), er(system, system->dbus.bh), movw); + else + /** MOV.W @ERs, Rd */ + ms_rd_w(system, er(system, system->dbus.bh), rd_w(system, system->dbus.bl), movw); } H8_OP(op6a)