summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-09-12 09:20:55 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-09-12 09:20:55 -0400
commit8edc2c5f91aaaa6dbc81400b54c584bb489b619d (patch)
treeb62ae06a1c9173e128edc3cf885a296f744de185 /src/devices/cpu
parentacc811887c6f7162f5bc3c6e7e63bf566e73c63a (diff)
New machines marked as NOT_WORKING
---------------------------------- Sony Trinitron Color Video Monitor BVM-20F1E [Corrado Tomaselli]
Diffstat (limited to 'src/devices/cpu')
-rw-r--r--src/devices/cpu/h8500/h8534.cpp32
-rw-r--r--src/devices/cpu/h8500/h8534.h24
2 files changed, 53 insertions, 3 deletions
diff --git a/src/devices/cpu/h8500/h8534.cpp b/src/devices/cpu/h8500/h8534.cpp
index 065d83adc5e..dd33af71128 100644
--- a/src/devices/cpu/h8500/h8534.cpp
+++ b/src/devices/cpu/h8500/h8534.cpp
@@ -2,7 +2,7 @@
// copyright-holders:AJR
/***************************************************************************
- Hitachi H8/534
+ Hitachi H8/534 & H8/536
***************************************************************************/
@@ -10,9 +10,15 @@
#include "h8534.h"
DEFINE_DEVICE_TYPE(HD6475348, hd6475348_device, "hd6475348", "Hitachi HD6475348 (H8/534)")
+DEFINE_DEVICE_TYPE(HD6435368, hd6435368_device, "hd6435368", "Hitachi HD6435368 (H8/536)")
+
+h8534_device::h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map)
+ : h8500_device(mconfig, type, tag, owner, clock, 20, 8, 11, map)
+{
+}
h8534_device::h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
- : h8500_device(mconfig, type, tag, owner, clock, 20, 8, 11, address_map_constructor(FUNC(h8534_device::internal_map), this))
+ : h8534_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(h8534_device::internal_map), this))
{
}
@@ -21,9 +27,31 @@ hd6475348_device::hd6475348_device(const machine_config &mconfig, const char *ta
{
}
+h8536_device::h8536_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
+ : h8534_device(mconfig, type, tag, owner, clock, address_map_constructor(FUNC(h8536_device::internal_map), this))
+{
+}
+
+hd6435368_device::hd6435368_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : h8536_device(mconfig, HD6435368, tag, owner, clock)
+{
+}
+
void h8534_device::internal_map(address_map &map)
{
map(0x0000, 0x7fff).rom().region(DEVICE_SELF, 0); // modes 2, 4, 7
+ register_field_map(map);
+}
+
+void h8536_device::internal_map(address_map &map)
+{
+ //map(0x0000, 0xee7f).rom().region(DEVICE_SELF, 0); // mode 2?
+ //map(0x0000, 0xf67f).rom().region(DEVICE_SELF, 0); // modes 4, 7
+ register_field_map(map);
+}
+
+void h8534_device::register_field_map(address_map &map)
+{
#if 0
map(0xfe80, 0xfe80).w(FUNC(h8534_device::p1ddr_w));
map(0xfe81, 0xfe81).w(FUNC(h8534_device::p2ddr_w));
diff --git a/src/devices/cpu/h8500/h8534.h b/src/devices/cpu/h8500/h8534.h
index 7b375ba8351..8e5c357ff1b 100644
--- a/src/devices/cpu/h8500/h8534.h
+++ b/src/devices/cpu/h8500/h8534.h
@@ -11,8 +11,13 @@
class h8534_device : public h8500_device
{
protected:
+ // delegating constructor
h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
+ h8534_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock, address_map_constructor map);
+
+ void register_field_map(address_map &map);
+
private:
void internal_map(address_map &map);
};
@@ -24,6 +29,23 @@ public:
hd6475348_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
};
+class h8536_device : public h8534_device
+{
+protected:
+ h8536_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
+
+private:
+ void internal_map(address_map &map);
+};
+
+class hd6435368_device : public h8536_device
+{
+public:
+ // device type constructor
+ hd6435368_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
+};
+
DECLARE_DEVICE_TYPE(HD6475348, hd6475348_device)
+DECLARE_DEVICE_TYPE(HD6435368, hd6435368_device)
-#endif // MAME_CPU_H8500_H8532_H
+#endif // MAME_CPU_H8500_H8534_H