summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/h8500/h8534.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/h8500/h8534.cpp')
-rw-r--r--src/devices/cpu/h8500/h8534.cpp23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/devices/cpu/h8500/h8534.cpp b/src/devices/cpu/h8500/h8534.cpp
index dd33af71128..06c9b0dc24f 100644
--- a/src/devices/cpu/h8500/h8534.cpp
+++ b/src/devices/cpu/h8500/h8534.cpp
@@ -9,11 +9,13 @@
#include "emu.h"
#include "h8534.h"
+DEFINE_DEVICE_TYPE(HD6435348, hd6435348_device, "hd6435348", "Hitachi HD6435348 (H8/534)")
DEFINE_DEVICE_TYPE(HD6475348, hd6475348_device, "hd6475348", "Hitachi HD6475348 (H8/534)")
DEFINE_DEVICE_TYPE(HD6435368, hd6435368_device, "hd6435368", "Hitachi HD6435368 (H8/536)")
+DEFINE_DEVICE_TYPE(HD6475368, hd6475368_device, "hd6475368", "Hitachi HD6475368 (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)
+ : h8500_device(mconfig, type, tag, owner, clock, 20, 8, 11, 4, map)
{
}
@@ -22,6 +24,11 @@ h8534_device::h8534_device(const machine_config &mconfig, device_type type, cons
{
}
+hd6435348_device::hd6435348_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : h8534_device(mconfig, HD6435348, tag, owner, clock)
+{
+}
+
hd6475348_device::hd6475348_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
: h8534_device(mconfig, HD6475348, tag, owner, clock)
{
@@ -37,16 +44,24 @@ hd6435368_device::hd6435368_device(const machine_config &mconfig, const char *ta
{
}
+hd6475368_device::hd6475368_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : h8536_device(mconfig, HD6475368, tag, owner, clock)
+{
+}
+
void h8534_device::internal_map(address_map &map)
{
- map(0x0000, 0x7fff).rom().region(DEVICE_SELF, 0); // modes 2, 4, 7
+ if (mode_control() == 2 || mode_control() == 4 || mode_control() == 7)
+ map(0x0000, 0x7fff).rom().region(DEVICE_SELF, 0);
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
+ if (mode_control() == 2)
+ map(0x0000, 0xee7f).rom().region(DEVICE_SELF, 0);
+ else if (mode_control() == 4 || mode_control() == 7)
+ map(0x0000, 0xf67f).rom().region(DEVICE_SELF, 0);
register_field_map(map);
}