From 8fa2629a7e2300a21799ba8518f2569cfc4f6619 Mon Sep 17 00:00:00 2001 From: AJR Date: Mon, 6 May 2019 13:44:46 -0400 Subject: upd7807: Running on MT (nw) --- src/devices/cpu/upd7810/upd7810.cpp | 1 + src/devices/cpu/upd7810/upd7810.h | 2 ++ src/devices/cpu/upd7810/upd7810_macros.h | 1 + src/devices/cpu/upd7810/upd7810_opcodes.cpp | 6 ++++++ src/devices/cpu/upd7810/upd7810_table.cpp | 2 +- 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/devices/cpu/upd7810/upd7810.cpp b/src/devices/cpu/upd7810/upd7810.cpp index 158eab94fc8..c2e5c3952a8 100644 --- a/src/devices/cpu/upd7810/upd7810.cpp +++ b/src/devices/cpu/upd7810/upd7810.cpp @@ -1630,6 +1630,7 @@ void upd7810_device::base_device_start() save_item(NAME(m_mc)); save_item(NAME(m_mm)); save_item(NAME(m_mf)); + save_item(NAME(m_mt)); // TODO: uPD7807 only save_item(NAME(m_tmm)); save_item(NAME(m_etmm)); save_item(NAME(m_eom)); diff --git a/src/devices/cpu/upd7810/upd7810.h b/src/devices/cpu/upd7810/upd7810.h index 5ceebd86813..2387a3333eb 100644 --- a/src/devices/cpu/upd7810/upd7810.h +++ b/src/devices/cpu/upd7810/upd7810.h @@ -258,6 +258,7 @@ protected: uint8_t m_mc; /* port C input or output mask */ uint8_t m_mm; /* memory mapping */ uint8_t m_mf; /* port F input or output mask */ + uint8_t m_mt; /* port T input threshold level */ uint8_t m_tmm; /* timer 0 and timer 1 operating parameters */ uint8_t m_etmm; /* 16-bit multifunction timer/event counter */ uint8_t m_eom; /* 16-bit timer/event counter output control */ @@ -483,6 +484,7 @@ protected: void MOV_TXB_A(); void MOV_TM0_A(); void MOV_TM1_A(); + void MOV_MT_A(); void MOV_ZCM_A(); void ANA_V_A(); void ANA_A_A(); diff --git a/src/devices/cpu/upd7810/upd7810_macros.h b/src/devices/cpu/upd7810/upd7810_macros.h index 8331bf69432..82c0f3f2138 100644 --- a/src/devices/cpu/upd7810/upd7810_macros.h +++ b/src/devices/cpu/upd7810/upd7810_macros.h @@ -67,6 +67,7 @@ #define MC m_mc #define MM m_mm #define MF m_mf +#define MT m_mt #define TMM m_tmm #define ETMM m_etmm #define EOM m_eom diff --git a/src/devices/cpu/upd7810/upd7810_opcodes.cpp b/src/devices/cpu/upd7810/upd7810_opcodes.cpp index 6ee8d02d688..868856456f6 100644 --- a/src/devices/cpu/upd7810/upd7810_opcodes.cpp +++ b/src/devices/cpu/upd7810/upd7810_opcodes.cpp @@ -1087,6 +1087,12 @@ void upd7810_device::MOV_TM1_A() TM1 = A; } +/* 4d e5: 0100 1101 1110 0101 (7807 only) */ +void upd7810_device::MOV_MT_A() +{ + MT = A; +} + /* 4d e8: 0100 1101 1110 1000 */ void upd7810_device::MOV_ZCM_A() { diff --git a/src/devices/cpu/upd7810/upd7810_table.cpp b/src/devices/cpu/upd7810/upd7810_table.cpp index f150af4fc2f..86fc8f25323 100644 --- a/src/devices/cpu/upd7810/upd7810_table.cpp +++ b/src/devices/cpu/upd7810/upd7810_table.cpp @@ -812,7 +812,7 @@ const struct upd7810_device::opcode_s upd7810_device::s_op4D[256] = {&upd7810_device::illegal2, 2,10,10,L0|L1}, /* e2: 0100 1101 1110 0010 */ {&upd7810_device::illegal2, 2,10,10,L0|L1}, /* e3: 0100 1101 1110 0011 */ {&upd7810_device::illegal2, 2,10,10,L0|L1}, /* e4: 0100 1101 1110 0100 */ - {&upd7810_device::illegal2, 2,10,10,L0|L1}, /* e5: 0100 1101 1110 0101 */ + {&upd7810_device::MOV_MT_A, 2,10,10,L0|L1}, /* e5: 0100 1101 1110 0101 */ /* 7807 */ {&upd7810_device::illegal2, 2,10,10,L0|L1}, /* e6: 0100 1101 1110 0110 */ {&upd7810_device::illegal2, 2,10,10,L0|L1}, /* e7: 0100 1101 1110 0111 */ {&upd7810_device::MOV_ZCM_A, 2,10,10,L0|L1}, /* e8: 0100 1101 1110 1000 */ -- cgit v1.2.3