diff --git a/src/emu/cpu/mc68hc11/hc11ops.c b/src/emu/cpu/mc68hc11/hc11ops.c index d67825c1360..91a00e8379e 100644 --- a/src/emu/cpu/mc68hc11/hc11ops.c +++ b/src/emu/cpu/mc68hc11/hc11ops.c @@ -1388,6 +1388,21 @@ static void HC11OP(iny)(hc11_state *cpustate) CYCLES(cpustate, 4); } +/* JMP IND X 0x6E */ +static void HC11OP(jmp_indx)(hc11_state *cpustate) +{ + UINT16 adr = FETCH(cpustate); + SET_PC(cpustate, cpustate->ix + adr); + CYCLES(cpustate, 3); +} + +/* JMP IND Y 0x18 0x6E */ +static void HC11OP(jmp_indy)(hc11_state *cpustate) +{ + UINT16 adr = FETCH(cpustate); + SET_PC(cpustate, cpustate->iy + adr); + CYCLES(cpustate, 4); +} /* JMP EXT 0x7E */ static void HC11OP(jmp_ext)(hc11_state *cpustate) diff --git a/src/emu/cpu/mc68hc11/hc11ops.h b/src/emu/cpu/mc68hc11/hc11ops.h index c6c88ff3238..c069b5cc3cb 100644 --- a/src/emu/cpu/mc68hc11/hc11ops.h +++ b/src/emu/cpu/mc68hc11/hc11ops.h @@ -79,7 +79,7 @@ static const hc11_opcode_list_struct hc11_opcode_list[] = { 0, 0x91, HC11OP(cmpa_dir) }, { 0, 0xb1, HC11OP(cmpa_ext) }, { 0, 0xa1, HC11OP(cmpa_indx) }, - { 0x18, 0x81, HC11OP(cmpa_indy) }, + { 0x18, 0xa1, HC11OP(cmpa_indy) }, { 0, 0xc1, HC11OP(cmpb_imm) }, { 0, 0xd1, HC11OP(cmpb_dir) }, { 0, 0xf1, HC11OP(cmpb_ext) }, @@ -111,6 +111,8 @@ static const hc11_opcode_list_struct hc11_opcode_list[] = { 0, 0x4c, HC11OP(inca) }, { 0, 0x08, HC11OP(inx) }, { 0x18, 0x08, HC11OP(iny) }, + { 0, 0x6e, HC11OP(jmp_indx) }, + { 0x18, 0x6e, HC11OP(jmp_indy) }, { 0, 0x7e, HC11OP(jmp_ext) }, { 0, 0x9d, HC11OP(jsr_dir) }, { 0, 0xbd, HC11OP(jsr_ext) }, diff --git a/src/emu/cpu/mc68hc11/mc68hc11.c b/src/emu/cpu/mc68hc11/mc68hc11.c index c5ced5d9020..4c6813e26da 100644 --- a/src/emu/cpu/mc68hc11/mc68hc11.c +++ b/src/emu/cpu/mc68hc11/mc68hc11.c @@ -256,7 +256,8 @@ static void hc11_regs_w(hc11_state *cpustate, UINT32 address, UINT8 value) return; } - fatalerror("HC11: regs_w %02X, %02X", reg, value); + + logerror("HC11: regs_w %02X, %02X\n", reg, value); } /*****************************************************************************/