From d885856a8e06930619736f1ae80755839fc59ff0 Mon Sep 17 00:00:00 2001 From: AJR Date: Fri, 12 Oct 2018 18:00:52 -0400 Subject: tms9980a: Add TMS9981 type (nw) --- src/devices/cpu/tms9900/tms9980a.cpp | 17 ++++++++++++++++- src/devices/cpu/tms9900/tms9980a.h | 9 +++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/devices/cpu/tms9900/tms9980a.cpp b/src/devices/cpu/tms9900/tms9980a.cpp index aebe26f9575..ff450ccfd22 100644 --- a/src/devices/cpu/tms9900/tms9980a.cpp +++ b/src/devices/cpu/tms9900/tms9980a.cpp @@ -46,6 +46,10 @@ - The 9980A has the same external instructions as the TMS9900, but it indicates the command via A0, A1, and A13 (instead of A0-A2). + TMS9981 is almost identical to TMS9980A except for deleting the -5V Vbb input + and allowing a crystal oscillator to be connected to pins 34 and 33 (OSCOUT). + The D0-D7, INT0-2 and /PHI3 pins are shifted to accommodate this feature. + For pin definitions see tms9900.c Michael Zapf, 2012 @@ -76,8 +80,18 @@ Constructor ****************************************************************************/ +tms9980a_device::tms9980a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) + : tms99xx_device(mconfig, type, tag, 8, 14, 11, owner, clock) +{ +} + tms9980a_device::tms9980a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : tms99xx_device(mconfig, TMS9980A, tag, 8, 14, 11, owner, clock) + : tms9980a_device(mconfig, TMS9980A, tag, owner, clock) +{ +} + +tms9981_device::tms9981_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) + : tms9980a_device(mconfig, TMS9981, tag, owner, clock) { } @@ -294,3 +308,4 @@ std::unique_ptr tms9980a_device::create_disassembler() } DEFINE_DEVICE_TYPE(TMS9980A, tms9980a_device, "tms9980a", "Texas Instruments TMS9980A") +DEFINE_DEVICE_TYPE(TMS9981, tms9981_device, "tms9981", "Texas Instruments TMS9981") diff --git a/src/devices/cpu/tms9900/tms9980a.h b/src/devices/cpu/tms9900/tms9980a.h index 970a5f70839..963d2e7d2fb 100644 --- a/src/devices/cpu/tms9900/tms9980a.h +++ b/src/devices/cpu/tms9900/tms9980a.h @@ -30,6 +30,8 @@ public: tms9980a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); protected: + tms9980a_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + void mem_read(void) override; void mem_write(void) override; void acquire_instruction(void) override; @@ -50,7 +52,14 @@ protected: address_space_config m_io_config80; }; +class tms9981_device : public tms9980a_device +{ +public: + tms9981_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); +}; + // device type definition DECLARE_DEVICE_TYPE(TMS9980A, tms9980a_device) +DECLARE_DEVICE_TYPE(TMS9981, tms9981_device) #endif // MAME_CPU_TMS9900_TMS9980A_H -- cgit v1.2.3