summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-03-24 16:12:27 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-03-24 16:12:27 -0400
commitd8515a26ea20f45163c6c4a4acfd6179937adc5d (patch)
tree47ac9e7b94fc84115c025e114181cf3001881343 /src/devices
parent5017f9f28d9c8aee3f89950cfde5e127ecddc480 (diff)
i8x9x: Add more device types, some with 16-bit buses
Diffstat (limited to 'src/devices')
-rw-r--r--src/devices/cpu/mcs96/i8x9x.cpp24
-rw-r--r--src/devices/cpu/mcs96/i8x9x.h20
2 files changed, 34 insertions, 10 deletions
diff --git a/src/devices/cpu/mcs96/i8x9x.cpp b/src/devices/cpu/mcs96/i8x9x.cpp
index 13ee6a874e6..9a43dc78350 100644
--- a/src/devices/cpu/mcs96/i8x9x.cpp
+++ b/src/devices/cpu/mcs96/i8x9x.cpp
@@ -12,8 +12,8 @@
#include "i8x9x.h"
#include "i8x9xd.h"
-i8x9x_device::i8x9x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock) :
- mcs96_device(mconfig, type, tag, owner, clock, 8, address_map_constructor(FUNC(i8x9x_device::internal_regs), this)),
+i8x9x_device::i8x9x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int data_width) :
+ mcs96_device(mconfig, type, tag, owner, clock, data_width, address_map_constructor(FUNC(i8x9x_device::internal_regs), this)),
m_ach_cb(*this),
m_hso_cb(*this),
m_serial_tx_cb(*this),
@@ -491,17 +491,29 @@ void i8x9x_device::internal_update(u64 current_time)
recompute_bcount(event_time);
}
-c8095_device::c8095_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
- i8x9x_device(mconfig, C8095, tag, owner, clock)
+c8095_90_device::c8095_90_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
+ i8x9x_device(mconfig, C8095_90, tag, owner, clock, 16)
+{
+}
+
+n8097bh_device::n8097bh_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
+ i8x9x_device(mconfig, N8097BH, tag, owner, clock, 16)
{
}
p8098_device::p8098_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
- i8x9x_device(mconfig, P8098, tag, owner, clock)
+ i8x9x_device(mconfig, P8098, tag, owner, clock, 8)
+{
+}
+
+p8798_device::p8798_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock) :
+ i8x9x_device(mconfig, P8798, tag, owner, clock, 8)
{
}
-DEFINE_DEVICE_TYPE(C8095, c8095_device, "c8095", "Intel C8095")
+DEFINE_DEVICE_TYPE(C8095_90, c8095_90_device, "c8095_90", "Intel C8095-90")
+DEFINE_DEVICE_TYPE(N8097BH, n8097bh_device, "n8097bh", "Intel N8097BH")
DEFINE_DEVICE_TYPE(P8098, p8098_device, "p8098", "Intel P8098")
+DEFINE_DEVICE_TYPE(P8798, p8798_device, "p8798", "Intel P8798")
#include "cpu/mcs96/i8x9x.hxx"
diff --git a/src/devices/cpu/mcs96/i8x9x.h b/src/devices/cpu/mcs96/i8x9x.h
index 4d0c78252d8..3a8f459865f 100644
--- a/src/devices/cpu/mcs96/i8x9x.h
+++ b/src/devices/cpu/mcs96/i8x9x.h
@@ -53,7 +53,7 @@ public:
void serial_w(u8 val);
protected:
- i8x9x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
+ i8x9x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, int data_width);
virtual void device_resolve_objects() override;
virtual void device_start() override;
@@ -147,9 +147,14 @@ private:
void serial_send_done();
};
-class c8095_device : public i8x9x_device {
+class c8095_90_device : public i8x9x_device {
public:
- c8095_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+ c8095_90_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+};
+
+class n8097bh_device : public i8x9x_device {
+public:
+ n8097bh_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
class p8098_device : public i8x9x_device {
@@ -157,7 +162,14 @@ public:
p8098_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
-DECLARE_DEVICE_TYPE(C8095, c8095_device)
+class p8798_device : public i8x9x_device {
+public:
+ p8798_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+};
+
+DECLARE_DEVICE_TYPE(C8095_90, c8095_90_device)
+DECLARE_DEVICE_TYPE(N8097BH, n8097bh_device)
DECLARE_DEVICE_TYPE(P8098, p8098_device)
+DECLARE_DEVICE_TYPE(P8798, p8798_device)
#endif // MAME_CPU_MCS96_I8X9X_H