summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/svi318.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/svi318.cpp')
-rw-r--r--src/mame/drivers/svi318.cpp49
1 files changed, 26 insertions, 23 deletions
diff --git a/src/mame/drivers/svi318.cpp b/src/mame/drivers/svi318.cpp
index e067658a9ad..fabdb21f088 100644
--- a/src/mame/drivers/svi318.cpp
+++ b/src/mame/drivers/svi318.cpp
@@ -133,29 +133,32 @@ private:
// ADDRESS MAPS
//**************************************************************************
-ADDRESS_MAP_START(svi3x8_state::svi3x8_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0xffff) AM_READWRITE(mreq_r, mreq_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(svi3x8_state::svi3x8_io)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0xff) AM_DEVICE("io", address_map_bank_device, amap8)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(svi3x8_state::svi3x8_io_bank)
- AM_RANGE(0x000, 0x0ff) AM_DEVREADWRITE("exp", svi_expander_device, iorq_r, iorq_w)
- AM_RANGE(0x100, 0x17f) AM_DEVREADWRITE("exp", svi_expander_device, iorq_r, iorq_w)
- AM_RANGE(0x180, 0x180) AM_MIRROR(0x22) AM_DEVWRITE("vdp", tms9928a_device, vram_write)
- AM_RANGE(0x181, 0x181) AM_MIRROR(0x22) AM_DEVWRITE("vdp", tms9928a_device, register_write)
- AM_RANGE(0x184, 0x184) AM_MIRROR(0x22) AM_DEVREAD("vdp", tms9928a_device, vram_read)
- AM_RANGE(0x185, 0x185) AM_MIRROR(0x22) AM_DEVREAD("vdp", tms9928a_device, register_read)
- AM_RANGE(0x188, 0x188) AM_MIRROR(0x23) AM_DEVWRITE("psg", ay8910_device, address_w)
- AM_RANGE(0x18c, 0x18c) AM_MIRROR(0x23) AM_DEVWRITE("psg", ay8910_device, data_w)
- AM_RANGE(0x190, 0x190) AM_MIRROR(0x23) AM_DEVREAD("psg", ay8910_device, data_r)
- AM_RANGE(0x194, 0x197) AM_DEVWRITE("ppi", i8255_device, write)
- AM_RANGE(0x198, 0x19a) AM_DEVREAD("ppi", i8255_device, read)
-ADDRESS_MAP_END
+void svi3x8_state::svi3x8_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x0000, 0xffff).rw(this, FUNC(svi3x8_state::mreq_r), FUNC(svi3x8_state::mreq_w));
+}
+
+void svi3x8_state::svi3x8_io(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0xff).m(m_io, FUNC(address_map_bank_device::amap8));
+}
+
+void svi3x8_state::svi3x8_io_bank(address_map &map)
+{
+ map(0x000, 0x0ff).rw(m_expander, FUNC(svi_expander_device::iorq_r), FUNC(svi_expander_device::iorq_w));
+ map(0x100, 0x17f).rw(m_expander, FUNC(svi_expander_device::iorq_r), FUNC(svi_expander_device::iorq_w));
+ map(0x180, 0x180).mirror(0x22).w(m_vdp, FUNC(tms9928a_device::vram_write));
+ map(0x181, 0x181).mirror(0x22).w(m_vdp, FUNC(tms9928a_device::register_write));
+ map(0x184, 0x184).mirror(0x22).r(m_vdp, FUNC(tms9928a_device::vram_read));
+ map(0x185, 0x185).mirror(0x22).r(m_vdp, FUNC(tms9928a_device::register_read));
+ map(0x188, 0x188).mirror(0x23).w("psg", FUNC(ay8910_device::address_w));
+ map(0x18c, 0x18c).mirror(0x23).w("psg", FUNC(ay8910_device::data_w));
+ map(0x190, 0x190).mirror(0x23).r("psg", FUNC(ay8910_device::data_r));
+ map(0x194, 0x197).w("ppi", FUNC(i8255_device::write));
+ map(0x198, 0x19a).r("ppi", FUNC(i8255_device::read));
+}
//**************************************************************************