hphybrid: fixed indirect EXE instruction

This commit is contained in:
fulivi 2016-10-05 18:02:19 +02:00
parent 7657035662
commit d030ab2755

View File

@ -265,7 +265,15 @@ UINT16 hp_hybrid_cpu_device::execute_one(UINT16 opcode)
if ((opcode & 0x7fe0) == 0x7000) { if ((opcode & 0x7fe0) == 0x7000) {
// EXE // EXE
m_icount -= 8; m_icount -= 8;
return RM(opcode & 0x1f); // Indirect addressing in EXE instruction seems to use AEC case A instead of case C
// (because it's an opcode fetch)
UINT16 reg = RM(opcode & 0x1f);
if (BIT(opcode , 15)) {
m_icount -= 6;
return RM(add_mae(AEC_CASE_A , reg));
} else {
return reg;
}
} else { } else {
m_reg_P = execute_one_sub(opcode); m_reg_P = execute_one_sub(opcode);
return fetch(); return fetch();