summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/unsp/unspfe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/unsp/unspfe.cpp')
-rw-r--r--src/devices/cpu/unsp/unspfe.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/devices/cpu/unsp/unspfe.cpp b/src/devices/cpu/unsp/unspfe.cpp
index 3d2cd6f6855..f93423379a1 100644
--- a/src/devices/cpu/unsp/unspfe.cpp
+++ b/src/devices/cpu/unsp/unspfe.cpp
@@ -24,7 +24,7 @@ unsp_frontend::unsp_frontend(unsp_device *unsp, uint32_t window_start, uint32_t
inline uint16_t unsp_frontend::read_op_word(opcode_desc &desc, int offset)
{
- return m_cpu->m_pr16(desc.physpc + offset);
+ return m_cpu->m_cache.read_word(desc.physpc + offset);
}
/*-------------------------------------------------
@@ -67,6 +67,8 @@ bool unsp_frontend::describe(opcode_desc &desc, const opcode_desc *prev)
case 9: // JA
case 10: // JLE
case 11: // JG
+ case 12: // JVC
+ case 13: // JVS
desc.regin[0] |= 1 << unsp_device::REG_SR;
desc.regout[0] |= 1 << unsp_device::REG_SR;
desc.regout[0] |= 1 << unsp_device::REG_PC;
@@ -186,6 +188,8 @@ bool unsp_frontend::describe(opcode_desc &desc, const opcode_desc *prev)
case 1:
case 2:
case 3:
+ case 4:
+ case 5:
case 8:
case 9:
case 12:
@@ -195,6 +199,17 @@ bool unsp_frontend::describe(opcode_desc &desc, const opcode_desc *prev)
}
return false;
+ case 0x06:
+ case 0x07: // MULS
+ desc.regin[0] |= 1 << opa;
+ desc.regin[0] |= 1 << opb;
+ desc.regout[0] |= 1 << opa;
+ desc.regout[0] |= 1 << opb;
+ desc.regout[0] |= 1 << unsp_device::REG_R3;
+ desc.regout[0] |= 1 << unsp_device::REG_R4;
+ desc.flags = OPFLAG_READS_MEMORY | OPFLAG_WRITES_MEMORY;
+ return true;
+
default:
return false;
}