summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/melps4/melps4op.inc
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/melps4/melps4op.inc')
-rw-r--r--src/emu/cpu/melps4/melps4op.inc17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/emu/cpu/melps4/melps4op.inc b/src/emu/cpu/melps4/melps4op.inc
index 1ac63b0f2a2..4d57c075905 100644
--- a/src/emu/cpu/melps4/melps4op.inc
+++ b/src/emu/cpu/melps4/melps4op.inc
@@ -67,8 +67,8 @@ void melps4_cpu_device::op_teab()
void melps4_cpu_device::op_tabe()
{
// TABE(undocumented): transfer E to A and B
- m_b = m_e >> 4;
m_a = m_e & 0xf;
+ m_b = m_e >> 4;
}
void melps4_cpu_device::op_tepa()
@@ -406,37 +406,40 @@ void melps4_cpu_device::op_szj()
void melps4_cpu_device::op_t1ab()
{
// T1AB: transfer A and B to timer 1
- op_illegal();
+ m_tmr_count[0] = m_b << 4 | m_a;
}
void melps4_cpu_device::op_trab()
{
// TRAB: transfer A and B to timer 2 reload
- op_illegal();
+ m_tmr_reload = m_b << 4 | m_a;
}
void melps4_cpu_device::op_t2ab()
{
// T2AB: transfer A and B to timer 2 and timer 2 reload
- //op_illegal();
+ m_tmr_reload = m_tmr_count[1] = m_b << 4 | m_a;
}
void melps4_cpu_device::op_tab1()
{
// TAB1: transfer timer 1 to A and B
- op_illegal();
+ m_a = m_tmr_count[0] & 0xf;
+ m_b = m_tmr_count[0] >> 4;
}
void melps4_cpu_device::op_tabr()
{
// TABR: transfer timer 2 reload to A and B
- op_illegal();
+ m_a = m_tmr_reload & 0xf;
+ m_b = m_tmr_reload >> 4;
}
void melps4_cpu_device::op_tab2()
{
// TAB2: transfer timer 2 to A and B
- op_illegal();
+ m_a = m_tmr_count[1] & 0xf;
+ m_b = m_tmr_count[1] >> 4;
}
void melps4_cpu_device::op_tva()