summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/mc68hc11/hc11ops.c
diff options
context:
space:
mode:
author Angelo Salese <angelosa@users.noreply.github.com>2009-06-26 18:41:04 +0000
committer Angelo Salese <angelosa@users.noreply.github.com>2009-06-26 18:41:04 +0000
commit604e49b30325450e2bef760920de85e29c8cc3be (patch)
tree1642f7caa56517f19dbfaca014b43a3889bf89c7 /src/emu/cpu/mc68hc11/hc11ops.c
parentb05ddea7569127e6d1ea463efb32bcf4dbed40eb (diff)
mc68hc11: added STX DIR, STY DIR opcodes
Diffstat (limited to 'src/emu/cpu/mc68hc11/hc11ops.c')
-rw-r--r--src/emu/cpu/mc68hc11/hc11ops.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/emu/cpu/mc68hc11/hc11ops.c b/src/emu/cpu/mc68hc11/hc11ops.c
index 56ee70af433..b23830ad47a 100644
--- a/src/emu/cpu/mc68hc11/hc11ops.c
+++ b/src/emu/cpu/mc68hc11/hc11ops.c
@@ -2920,6 +2920,18 @@ static void HC11OP(std_indy)(hc11_state *cpustate)
CYCLES(cpustate, 6);
}
+/* STX DIR 0xDF */
+static void HC11OP(stx_dir)(hc11_state *cpustate)
+{
+ UINT8 adr = FETCH(cpustate);
+ UINT16 r = cpustate->ix;
+ CLEAR_NZV(cpustate);
+ WRITE8(cpustate, adr, (r & 0xff00) >> 8);
+ WRITE8(cpustate, adr + 1, (r & 0xff));
+ SET_N16(r);
+ SET_Z16(r);
+ CYCLES(cpustate, 4);
+}
/* STX EXT 0xFF */
static void HC11OP(stx_ext)(hc11_state *cpustate)
@@ -2962,6 +2974,19 @@ static void HC11OP(stx_indy)(hc11_state *cpustate)
CYCLES(cpustate, 6);
}
+/* STY DIR 0x18 0xDF */
+static void HC11OP(sty_dir)(hc11_state *cpustate)
+{
+ UINT8 adr = FETCH(cpustate);
+ UINT16 r = cpustate->iy;
+ CLEAR_NZV(cpustate);
+ WRITE8(cpustate, adr, (r & 0xff00) >> 8);
+ WRITE8(cpustate, adr + 1, (r & 0xff));
+ SET_N16(r);
+ SET_Z16(r);
+ CYCLES(cpustate, 5);
+}
+
/* STY EXT 0x18 0xFF */
static void HC11OP(sty_ext)(hc11_state *cpustate)