summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2018-10-12 18:00:52 -0400
committer AJR <ajrhacker@users.noreply.github.com>2018-10-12 18:00:52 -0400
commitd885856a8e06930619736f1ae80755839fc59ff0 (patch)
tree1855ee75454b7f0710198efa0a978c62dbcad324
parent5be1f787fd234acd4fcdd0cc2ad6079f41ec2ebd (diff)
tms9980a: Add TMS9981 type (nw)
-rw-r--r--src/devices/cpu/tms9900/tms9980a.cpp17
-rw-r--r--src/devices/cpu/tms9900/tms9980a.h9
2 files changed, 25 insertions, 1 deletions
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<util::disasm_interface> 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