summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2011-05-08 18:07:36 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2011-05-08 18:07:36 +0000
commitb734d88389ad76f0109beec0ff4213ec5ee82f50 (patch)
treebed2e5cad0201f2e3953b548a6c88307d61a6fdf
parent91276001f27a9463fefdca808a2ebe0386b03592 (diff)
- Removed difference between handling driver and device address maps
- Updated modern macros to propagate device so it is possible to make modern maps for devices too - Updated bsmt2000.c and mie.c as examples of modern address map devices
-rw-r--r--src/emu/addrmap.c20
-rw-r--r--src/emu/addrmap.h49
-rw-r--r--src/emu/memory.c16
-rw-r--r--src/emu/sound/bsmt2000.c19
-rw-r--r--src/mame/machine/mie.c40
5 files changed, 67 insertions, 77 deletions
diff --git a/src/emu/addrmap.c b/src/emu/addrmap.c
index 12985a49ba7..a55ce994754 100644
--- a/src/emu/addrmap.c
+++ b/src/emu/addrmap.c
@@ -50,9 +50,7 @@
inline void map_handler_data::set_tag(const device_t &device, const char *tag)
{
- if (tag == NULL)
- m_tag = NULL;
- else if (strcmp(tag, DEVICE_SELF) == 0)
+ if (strcmp(tag, DEVICE_SELF) == 0)
m_tag = device.tag();
else if (strcmp(tag, DEVICE_SELF_OWNER) == 0)
{
@@ -275,7 +273,7 @@ void address_map_entry::internal_set_handler(const device_t &device, const char
{
assert(!func.isnull());
assert(unitmask_is_appropriate(8, unitmask, func.name()));
- m_read.m_type = (tag == NULL) ? AMH_DRIVER_DELEGATE : AMH_DEVICE_DELEGATE;
+ m_read.m_type = AMH_DEVICE_DELEGATE;
m_read.m_bits = 8;
m_read.m_mask = unitmask;
m_read.m_name = func.name();
@@ -288,7 +286,7 @@ void address_map_entry::internal_set_handler(const device_t &device, const char
{
assert(!func.isnull());
assert(unitmask_is_appropriate(8, unitmask, func.name()));
- m_write.m_type = (tag == NULL) ? AMH_DRIVER_DELEGATE : AMH_DEVICE_DELEGATE;;
+ m_write.m_type = AMH_DEVICE_DELEGATE;
m_write.m_bits = 8;
m_write.m_mask = unitmask;
m_write.m_name = func.name();
@@ -377,7 +375,7 @@ void address_map_entry::internal_set_handler(const device_t &device, const char
{
assert(!func.isnull());
assert(unitmask_is_appropriate(16, unitmask, func.name()));
- m_read.m_type = (tag == NULL) ? AMH_DRIVER_DELEGATE : AMH_DEVICE_DELEGATE;;
+ m_read.m_type = AMH_DEVICE_DELEGATE;
m_read.m_bits = 16;
m_read.m_mask = unitmask;
m_read.m_name = func.name();
@@ -390,7 +388,7 @@ void address_map_entry::internal_set_handler(const device_t &device, const char
{
assert(!func.isnull());
assert(unitmask_is_appropriate(16, unitmask, func.name()));
- m_write.m_type = (tag == NULL) ? AMH_DRIVER_DELEGATE : AMH_DEVICE_DELEGATE;;
+ m_write.m_type = AMH_DEVICE_DELEGATE;
m_write.m_bits = 16;
m_write.m_mask = unitmask;
m_write.m_name = func.name();
@@ -479,7 +477,7 @@ void address_map_entry::internal_set_handler(const device_t &device, const char
{
assert(!func.isnull());
assert(unitmask_is_appropriate(32, unitmask, func.name()));
- m_read.m_type = (tag == NULL) ? AMH_DRIVER_DELEGATE : AMH_DEVICE_DELEGATE;;
+ m_read.m_type = AMH_DEVICE_DELEGATE;
m_read.m_bits = 32;
m_read.m_mask = unitmask;
m_read.m_name = func.name();
@@ -492,7 +490,7 @@ void address_map_entry::internal_set_handler(const device_t &device, const char
{
assert(!func.isnull());
assert(unitmask_is_appropriate(32, unitmask, func.name()));
- m_write.m_type = (tag == NULL) ? AMH_DRIVER_DELEGATE : AMH_DEVICE_DELEGATE;;
+ m_write.m_type = AMH_DEVICE_DELEGATE;
m_write.m_bits = 32;
m_write.m_mask = unitmask;
m_write.m_name = func.name();
@@ -581,7 +579,7 @@ void address_map_entry::internal_set_handler(const device_t &device, const char
{
assert(!func.isnull());
assert(unitmask_is_appropriate(64, unitmask, func.name()));
- m_read.m_type = (tag == NULL) ? AMH_DRIVER_DELEGATE : AMH_DEVICE_DELEGATE;;
+ m_read.m_type = AMH_DEVICE_DELEGATE;
m_read.m_bits = 64;
m_read.m_mask = 0;
m_read.m_name = func.name();
@@ -594,7 +592,7 @@ void address_map_entry::internal_set_handler(const device_t &device, const char
{
assert(!func.isnull());
assert(unitmask_is_appropriate(64, unitmask, func.name()));
- m_write.m_type = (tag == NULL) ? AMH_DRIVER_DELEGATE : AMH_DEVICE_DELEGATE;;
+ m_write.m_type = AMH_DEVICE_DELEGATE;
m_write.m_bits = 64;
m_write.m_mask = 0;
m_write.m_name = func.name();
diff --git a/src/emu/addrmap.h b/src/emu/addrmap.h
index 9f297b61b21..d6b0f80f3c4 100644
--- a/src/emu/addrmap.h
+++ b/src/emu/addrmap.h
@@ -60,7 +60,6 @@ enum map_handler_type
AMH_ROM,
AMH_NOP,
AMH_UNMAP,
- AMH_DRIVER_DELEGATE,
AMH_DEVICE_DELEGATE,
AMH_LEGACY_SPACE_HANDLER,
AMH_LEGACY_DEVICE_HANDLER,
@@ -858,86 +857,86 @@ void ADDRESS_MAP_NAME(_name)(address_map &map, const device_t &device) \
// driver data base reads
#define AM_READ_BASE(_class, _handler) \
- curentry->set_handler(device, NULL, read_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0)); \
+ curentry->set_handler(device, DEVICE_SELF, read_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0)); \
#define AM_READ8_BASE(_class, _handler, _unitmask) \
- curentry->set_handler(device, NULL, read8_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read8_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
#define AM_READ16_BASE(_class, _handler, _unitmask) \
- curentry->set_handler(device, NULL, read16_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read16_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
#define AM_READ32_BASE(_class, _handler, _unitmask) \
- curentry->set_handler(device, NULL, read32_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read32_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
// driver data base writes
#define AM_WRITE_BASE(_class, _handler) \
- curentry->set_handler(device, NULL, write_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0)); \
+ curentry->set_handler(device, DEVICE_SELF, write_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0)); \
#define AM_WRITE8_BASE(_class, _handler, _unitmask) \
- curentry->set_handler(device, NULL, write8_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, write8_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
#define AM_WRITE16_BASE(_class, _handler, _unitmask) \
- curentry->set_handler(device, NULL, write16_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, write16_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
#define AM_WRITE32_BASE(_class, _handler, _unitmask) \
- curentry->set_handler(device, NULL, write32_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, write32_delegate(&_class::_handler, "driver_data::" #_handler, (_class *)0), _unitmask); \
// driver data base reads/writes
#define AM_READWRITE_BASE(_class, _rhandler, _whandler) \
- curentry->set_handler(device, NULL, read_delegate(&_class::_rhandler, "driver_data::" #_rhandler, (_class *)0), write_delegate(&_class::_whandler, "driver_data::" #_whandler, (_class *)0)); \
+ curentry->set_handler(device, DEVICE_SELF, read_delegate(&_class::_rhandler, "driver_data::" #_rhandler, (_class *)0), write_delegate(&_class::_whandler, "driver_data::" #_whandler, (_class *)0)); \
#define AM_READWRITE8_BASE(_class, _rhandler, _whandler, _unitmask) \
- curentry->set_handler(device, NULL, read8_delegate(&_class::_rhandler, "driver_data::" #_rhandler, (_class *)0), write8_delegate(&_class::_whandler, "driver_data::" #_whandler, (_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read8_delegate(&_class::_rhandler, "driver_data::" #_rhandler, (_class *)0), write8_delegate(&_class::_whandler, "driver_data::" #_whandler, (_class *)0), _unitmask); \
#define AM_READWRITE16_BASE(_class, _rhandler, _whandler, _unitmask) \
- curentry->set_handler(device, NULL, read16_delegate(&_class::_rhandler, "driver_data::" #_rhandler, (_class *)0), write16_delegate(&_class::_whandler, "driver_data::" #_whandler, (_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read16_delegate(&_class::_rhandler, "driver_data::" #_rhandler, (_class *)0), write16_delegate(&_class::_whandler, "driver_data::" #_whandler, (_class *)0), _unitmask); \
#define AM_READWRITE32_BASE(_class, _rhandler, _whandler, _unitmask) \
- curentry->set_handler(device, NULL, read32_delegate(&_class::_rhandler, "driver_data::" #_rhandler, (_class *)0), write32_delegate(&_class::_whandler, "driver_data::" #_whandler, (_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read32_delegate(&_class::_rhandler, "driver_data::" #_rhandler, (_class *)0), write32_delegate(&_class::_whandler, "driver_data::" #_whandler, (_class *)0), _unitmask); \
// driver data reads
#define AM_READ(_handler) \
- curentry->set_handler(device, NULL, read_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0)); \
+ curentry->set_handler(device, DEVICE_SELF, read_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0)); \
#define AM_READ8(_handler, _unitmask) \
- curentry->set_handler(device, NULL, read8_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read8_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
#define AM_READ16(_handler, _unitmask) \
- curentry->set_handler(device, NULL, read16_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read16_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
#define AM_READ32(_handler, _unitmask) \
- curentry->set_handler(device, NULL, read32_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read32_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
// driver data writes
#define AM_WRITE(_handler) \
- curentry->set_handler(device, NULL, write_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0)); \
+ curentry->set_handler(device, DEVICE_SELF, write_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0)); \
#define AM_WRITE8(_handler, _unitmask) \
- curentry->set_handler(device, NULL, write8_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, write8_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
#define AM_WRITE16(_handler, _unitmask) \
- curentry->set_handler(device, NULL, write16_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, write16_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
#define AM_WRITE32(_handler, _unitmask) \
- curentry->set_handler(device, NULL, write32_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, write32_delegate(&drivdata_class::_handler, "driver_data::" #_handler, (drivdata_class *)0), _unitmask); \
// driver data reads/writes
#define AM_READWRITE(_rhandler, _whandler) \
- curentry->set_handler(device, NULL, read_delegate(&drivdata_class::_rhandler, "driver_data::" #_rhandler, (drivdata_class *)0), write_delegate(&drivdata_class::_whandler, "driver_data::" #_whandler, (drivdata_class *)0)); \
+ curentry->set_handler(device, DEVICE_SELF, read_delegate(&drivdata_class::_rhandler, "driver_data::" #_rhandler, (drivdata_class *)0), write_delegate(&drivdata_class::_whandler, "driver_data::" #_whandler, (drivdata_class *)0)); \
#define AM_READWRITE8(_rhandler, _whandler, _unitmask) \
- curentry->set_handler(device, NULL, read8_delegate(&drivdata_class::_rhandler, "driver_data::" #_rhandler, (drivdata_class *)0), write8_delegate(&drivdata_class::_whandler, "driver_data::" #_whandler, (drivdata_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read8_delegate(&drivdata_class::_rhandler, "driver_data::" #_rhandler, (drivdata_class *)0), write8_delegate(&drivdata_class::_whandler, "driver_data::" #_whandler, (drivdata_class *)0), _unitmask); \
#define AM_READWRITE16(_rhandler, _whandler, _unitmask) \
- curentry->set_handler(device, NULL, read16_delegate(&drivdata_class::_rhandler, "driver_data::" #_rhandler, (drivdata_class *)0), write16_delegate(&drivdata_class::_whandler, "driver_data::" #_whandler, (drivdata_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read16_delegate(&drivdata_class::_rhandler, "driver_data::" #_rhandler, (drivdata_class *)0), write16_delegate(&drivdata_class::_whandler, "driver_data::" #_whandler, (drivdata_class *)0), _unitmask); \
#define AM_READWRITE32(_rhandler, _whandler, _unitmask) \
- curentry->set_handler(device, NULL, read32_delegate(&drivdata_class::_rhandler, "driver_data::" #_rhandler, (drivdata_class *)0), write32_delegate(&drivdata_class::_whandler, "driver_data::" #_whandler, (drivdata_class *)0), _unitmask); \
+ curentry->set_handler(device, DEVICE_SELF, read32_delegate(&drivdata_class::_rhandler, "driver_data::" #_rhandler, (drivdata_class *)0), write32_delegate(&drivdata_class::_whandler, "driver_data::" #_whandler, (drivdata_class *)0), _unitmask); \
// device reads
diff --git a/src/emu/memory.c b/src/emu/memory.c
index 4519745ebfa..ea139da4c8f 100644
--- a/src/emu/memory.c
+++ b/src/emu/memory.c
@@ -2066,20 +2066,10 @@ void address_space::populate_map_entry(const address_map_entry &entry, read_or_w
unmap_generic(entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmirror, readorwrite, false);
break;
- case AMH_DRIVER_DELEGATE:
case AMH_DEVICE_DELEGATE:
- if (data.m_type == AMH_DRIVER_DELEGATE)
- {
- object = machine().driver_data<driver_device>();
- if (object == NULL)
- throw emu_fatalerror("Attempted to map a driver delegate in space %s of device '%s' when there is no driver data\n", m_name, m_device.tag());
- }
- else
- {
- object = machine().device(data.m_tag);
- if (object == NULL)
- throw emu_fatalerror("Attempted to map a non-existent device '%s' in space %s of device '%s'\n", data.m_tag, m_name, m_device.tag());
- }
+ object = machine().device(data.m_tag);
+ if (object == NULL)
+ throw emu_fatalerror("Attempted to map a non-existent device '%s' in space %s of device '%s'\n", data.m_tag, m_name, m_device.tag());
if (readorwrite == ROW_READ)
switch (data.m_bits)
diff --git a/src/emu/sound/bsmt2000.c b/src/emu/sound/bsmt2000.c
index 2eb7d4b824c..057bd39a01e 100644
--- a/src/emu/sound/bsmt2000.c
+++ b/src/emu/sound/bsmt2000.c
@@ -41,6 +41,7 @@
Trivia: BSMT stands for "Brian Schmidt's Mouse Trap"
***************************************************************************/
+#define ADDRESS_MAP_MODERN
#include "emu.h"
#include "bsmt2000.h"
@@ -55,20 +56,20 @@ const device_type BSMT2000 = &device_creator<bsmt2000_device>;
//**************************************************************************
// program map for the DSP (points to internal ROM)
-static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16 )
+static ADDRESS_MAP_START( tms_program_map, AS_PROGRAM, 16, bsmt2000_device)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x000, 0xfff) AM_ROM
ADDRESS_MAP_END
// I/O map for the DSP
-static ADDRESS_MAP_START( tms_io_map, AS_IO, 16 )
- AM_RANGE(0, 0) AM_DEVREADWRITE_MODERN(DEVICE_SELF, bsmt2000_device, tms_register_r, tms_rom_addr_w)
- AM_RANGE(1, 1) AM_DEVREADWRITE_MODERN(DEVICE_SELF, bsmt2000_device, tms_data_r, tms_rom_bank_w)
- AM_RANGE(2, 2) AM_DEVREAD_MODERN(DEVICE_SELF, bsmt2000_device, tms_rom_r)
- AM_RANGE(3, 3) AM_DEVWRITE_MODERN(DEVICE_SELF, bsmt2000_device, tms_left_w)
- AM_RANGE(7, 7) AM_DEVWRITE_MODERN(DEVICE_SELF, bsmt2000_device, tms_right_w)
- AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_DEVREAD_MODERN(DEVICE_SELF, bsmt2000_device, tms_write_pending_r)
+static ADDRESS_MAP_START( tms_io_map, AS_IO, 16, bsmt2000_device)
+ AM_RANGE(0, 0) AM_READWRITE(tms_register_r, tms_rom_addr_w)
+ AM_RANGE(1, 1) AM_READWRITE(tms_data_r, tms_rom_bank_w)
+ AM_RANGE(2, 2) AM_READ(tms_rom_r)
+ AM_RANGE(3, 3) AM_WRITE(tms_left_w)
+ AM_RANGE(7, 7) AM_WRITE(tms_right_w)
+ AM_RANGE(TMS32010_BIO, TMS32010_BIO) AM_READ(tms_write_pending_r)
ADDRESS_MAP_END
@@ -83,7 +84,7 @@ MACHINE_CONFIG_END
// default address map for the external memory interface
// the BSMT can address a full 32 bits but typically only 24 are used
-static ADDRESS_MAP_START( bsmt2000, AS_0, 8 )
+static ADDRESS_MAP_START( bsmt2000, AS_0, 8, bsmt2000_device)
AM_RANGE(0x00000, 0xffffff) AM_ROM
ADDRESS_MAP_END
diff --git a/src/mame/machine/mie.c b/src/mame/machine/mie.c
index f7be77fe016..a20b93587b6 100644
--- a/src/mame/machine/mie.c
+++ b/src/mame/machine/mie.c
@@ -1,3 +1,5 @@
+#define ADDRESS_MAP_MODERN
+
#include "emu.h"
#include "mie.h"
#include "maple-dc.h"
@@ -16,30 +18,30 @@
const device_type MIE = &device_creator<mie_device>;
const device_type MIE_JVS = &device_creator<mie_jvs_device>;
-static ADDRESS_MAP_START( mie_map, AS_PROGRAM, 8 )
+static ADDRESS_MAP_START( mie_map, AS_PROGRAM, 8, mie_device)
AM_RANGE(0x0000, 0x07ff) AM_ROM
- AM_RANGE(0x0800, 0x6fff) AM_DEVREAD_MODERN(DEVICE_SELF, mie_device, read_ff)
- AM_RANGE(0x7000, 0x7002) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, control_r, control_w) AM_MIRROR(0x07c0)
- AM_RANGE(0x7003, 0x7003) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, lreg_r, lreg_w) AM_MIRROR(0x07c0)
- AM_RANGE(0x7004, 0x7023) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, tbuf_r, tbuf_w) AM_MIRROR(0x07c0)
- AM_RANGE(0x7024, 0x703f) AM_DEVREAD_MODERN(DEVICE_SELF, mie_device, read_00) AM_MIRROR(0x07c0)
- AM_RANGE(0x7800, 0x7fff) AM_DEVREAD_MODERN(DEVICE_SELF, mie_device, read_78xx)
+ AM_RANGE(0x0800, 0x6fff) AM_READ(read_ff)
+ AM_RANGE(0x7000, 0x7002) AM_READWRITE(control_r, control_w) AM_MIRROR(0x07c0)
+ AM_RANGE(0x7003, 0x7003) AM_READWRITE(lreg_r, lreg_w) AM_MIRROR(0x07c0)
+ AM_RANGE(0x7004, 0x7023) AM_READWRITE(tbuf_r, tbuf_w) AM_MIRROR(0x07c0)
+ AM_RANGE(0x7024, 0x703f) AM_READ(read_00) AM_MIRROR(0x07c0)
+ AM_RANGE(0x7800, 0x7fff) AM_READ(read_78xx)
AM_RANGE(0x8000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( mie_port, AS_IO, 8 )
+static ADDRESS_MAP_START( mie_port, AS_IO, 8, mie_device)
ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x07) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, gpio_r, gpio_w)
- AM_RANGE(0x08, 0x08) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, gpiodir_r, gpiodir_w)
- AM_RANGE(0x0f, 0x0f) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, adc_r, adc_w)
- AM_RANGE(0x10, 0x10) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, jvs_r, jvs_w)
- AM_RANGE(0x12, 0x12) AM_DEVWRITE_MODERN(DEVICE_SELF, mie_device, jvs_dest_w)
- AM_RANGE(0x15, 0x15) AM_DEVREAD_MODERN(DEVICE_SELF, mie_device, jvs_status_r)
- AM_RANGE(0x30, 0x30) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, irq_enable_r, irq_enable_w)
- AM_RANGE(0x50, 0x50) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, maple_irqlevel_r, maple_irqlevel_w)
- AM_RANGE(0x70, 0x70) AM_DEVREADWRITE_MODERN(DEVICE_SELF, mie_device, irq_pending_r, irq_pending_w)
- AM_RANGE(0x90, 0x90) AM_DEVWRITE_MODERN(DEVICE_SELF, mie_device, jvs_control_w)
- AM_RANGE(0x91, 0x91) AM_DEVREAD_MODERN(DEVICE_SELF, mie_device, jvs_sense_r)
+ AM_RANGE(0x00, 0x07) AM_READWRITE(gpio_r, gpio_w)
+ AM_RANGE(0x08, 0x08) AM_READWRITE(gpiodir_r, gpiodir_w)
+ AM_RANGE(0x0f, 0x0f) AM_READWRITE(adc_r, adc_w)
+ AM_RANGE(0x10, 0x10) AM_READWRITE(jvs_r, jvs_w)
+ AM_RANGE(0x12, 0x12) AM_WRITE(jvs_dest_w)
+ AM_RANGE(0x15, 0x15) AM_READ(jvs_status_r)
+ AM_RANGE(0x30, 0x30) AM_READWRITE(irq_enable_r, irq_enable_w)
+ AM_RANGE(0x50, 0x50) AM_READWRITE(maple_irqlevel_r, maple_irqlevel_w)
+ AM_RANGE(0x70, 0x70) AM_READWRITE(irq_pending_r, irq_pending_w)
+ AM_RANGE(0x90, 0x90) AM_WRITE(jvs_control_w)
+ AM_RANGE(0x91, 0x91) AM_READ(jvs_sense_r)
ADDRESS_MAP_END
static MACHINE_CONFIG_FRAGMENT( mie )