summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/m6809
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2017-12-09 18:08:01 -0500
committer AJR <ajrhacker@users.noreply.github.com>2017-12-09 18:08:01 -0500
commit7c0d98451440e22cc5d1a0d4552b692a64a06096 (patch)
tree46802cf4b376c8490f8942d8e139e4218b06c71d /src/devices/cpu/m6809
parent6c7c1e8a67d2c718f501a27b432827dbf9c5afc0 (diff)
hd6309: Create HD6309E variant that fixes ajax regression (nw)
Diffstat (limited to 'src/devices/cpu/m6809')
-rw-r--r--src/devices/cpu/m6809/hd6309.cpp15
-rw-r--r--src/devices/cpu/m6809/hd6309.h15
2 files changed, 27 insertions, 3 deletions
diff --git a/src/devices/cpu/m6809/hd6309.cpp b/src/devices/cpu/m6809/hd6309.cpp
index 1b40d17e06f..0937a575542 100644
--- a/src/devices/cpu/m6809/hd6309.cpp
+++ b/src/devices/cpu/m6809/hd6309.cpp
@@ -126,19 +126,30 @@ March 2013 NPW:
//**************************************************************************
DEFINE_DEVICE_TYPE(HD6309, hd6309_device, "hd6309", "HD6309")
+DEFINE_DEVICE_TYPE(HD6309E, hd6309e_device, "hd6309e", "HD6309E")
//-------------------------------------------------
// hd6309_device - constructor
//-------------------------------------------------
-hd6309_device::hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
- m6809_base_device(mconfig, tag, owner, clock, HD6309, 4),
+hd6309_device::hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, device_type type, int divider) :
+ m6809_base_device(mconfig, tag, owner, clock, type, divider),
m_md(0),
m_temp_im(0)
{
}
+hd6309_device::hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ hd6309_device(mconfig, tag, owner, clock, HD6309, 4)
+{
+}
+
+hd6309e_device::hd6309e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ hd6309_device(mconfig, tag, owner, clock, HD6309E, 1)
+{
+}
+
//-------------------------------------------------
// device_start - device-specific startup
//-------------------------------------------------
diff --git a/src/devices/cpu/m6809/hd6309.h b/src/devices/cpu/m6809/hd6309.h
index 8e209f9f7b2..26352b6fe57 100644
--- a/src/devices/cpu/m6809/hd6309.h
+++ b/src/devices/cpu/m6809/hd6309.h
@@ -20,8 +20,9 @@
// TYPE DEFINITIONS
//**************************************************************************
-// device type definition
+// device type definitions
DECLARE_DEVICE_TYPE(HD6309, hd6309_device)
+DECLARE_DEVICE_TYPE(HD6309E, hd6309e_device)
// ======================> hd6309_device
@@ -32,6 +33,9 @@ public:
hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
+ // delegating constructor
+ hd6309_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, device_type type, int divider);
+
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
@@ -138,6 +142,15 @@ enum
HD6309_ZERO_WORD
};
+// ======================> hd6309e_device
+
+class hd6309e_device : public hd6309_device
+{
+public:
+ // construction/destruction
+ hd6309e_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+};
+
#define HD6309_IRQ_LINE M6809_IRQ_LINE /* 0 - IRQ line number */
#define HD6309_FIRQ_LINE M6809_FIRQ_LINE /* 1 - FIRQ line number */