diff options
Diffstat (limited to 'src/emu/cpu/melps4/melps4op.inc')
-rw-r--r-- | src/emu/cpu/melps4/melps4op.inc | 17 |
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() |