diff options
Diffstat (limited to 'src/devices/cpu/h8500/h8534.cpp')
-rw-r--r-- | src/devices/cpu/h8500/h8534.cpp | 23 |
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); } |