summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/mquake.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/mquake.cpp')
-rw-r--r--src/mame/drivers/mquake.cpp70
1 files changed, 37 insertions, 33 deletions
diff --git a/src/mame/drivers/mquake.cpp b/src/mame/drivers/mquake.cpp
index 6fa024175fc..c02b5147190 100644
--- a/src/mame/drivers/mquake.cpp
+++ b/src/mame/drivers/mquake.cpp
@@ -84,9 +84,10 @@ READ8_MEMBER( mquake_state::es5503_sample_r )
return m_es5503_rom[offset + (m_es5503->get_channel_strobe() * 0x10000)];
}
-ADDRESS_MAP_START(mquake_state::mquake_es5503_map)
- AM_RANGE(0x000000, 0x1ffff) AM_READ(es5503_sample_r)
-ADDRESS_MAP_END
+void mquake_state::mquake_es5503_map(address_map &map)
+{
+ map(0x000000, 0x1ffff).r(this, FUNC(mquake_state::es5503_sample_r));
+}
WRITE16_MEMBER( mquake_state::output_w )
{
@@ -122,36 +123,39 @@ WRITE16_MEMBER( mquake_state::coin_chip_w )
*
*************************************/
-ADDRESS_MAP_START(mquake_state::overlay_512kb_map)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000000, 0x07ffff) AM_MIRROR(0x180000) AM_RAM AM_SHARE("chip_ram")
- AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("kickstart", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mquake_state::a500_mem)
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16)
- AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(cia_r, cia_w)
- AM_RANGE(0xc00000, 0xd7ffff) AM_READWRITE(custom_chip_r, custom_chip_w)
- AM_RANGE(0xd80000, 0xddffff) AM_NOP
- AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
- AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
- AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
- AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
- AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(mquake_state::main_map)
- AM_IMPORT_FROM(a500_mem)
- AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x204000, 0x2041ff) AM_DEVREADWRITE8("es5503", es5503_device, read, write, 0x00ff)
- AM_RANGE(0x282000, 0x282001) AM_READ_PORT("SW.LO")
- AM_RANGE(0x282002, 0x282003) AM_READ_PORT("SW.HI")
- AM_RANGE(0x284000, 0x28400f) AM_WRITE(output_w)
- AM_RANGE(0x286000, 0x28600f) AM_READWRITE(coin_chip_r, coin_chip_w)
- AM_RANGE(0x300000, 0x3bffff) AM_ROM AM_REGION("user2", 0)
- AM_RANGE(0xf00000, 0xfbffff) AM_ROM AM_REGION("user2", 0) /* Custom ROM */
-ADDRESS_MAP_END
+void mquake_state::overlay_512kb_map(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000000, 0x07ffff).mirror(0x180000).ram().share("chip_ram");
+ map(0x200000, 0x27ffff).rom().region("kickstart", 0);
+}
+
+void mquake_state::a500_mem(address_map &map)
+{
+ map.unmap_value_high();
+ map(0x000000, 0x1fffff).m(m_overlay, FUNC(address_map_bank_device::amap16));
+ map(0xa00000, 0xbfffff).rw(this, FUNC(mquake_state::cia_r), FUNC(mquake_state::cia_w));
+ map(0xc00000, 0xd7ffff).rw(this, FUNC(mquake_state::custom_chip_r), FUNC(mquake_state::custom_chip_w));
+ map(0xd80000, 0xddffff).noprw();
+ map(0xde0000, 0xdeffff).rw(this, FUNC(mquake_state::custom_chip_r), FUNC(mquake_state::custom_chip_w));
+ map(0xdf0000, 0xdfffff).rw(this, FUNC(mquake_state::custom_chip_r), FUNC(mquake_state::custom_chip_w));
+ map(0xe00000, 0xe7ffff).nopw().r(this, FUNC(mquake_state::rom_mirror_r));
+ map(0xe80000, 0xefffff).noprw(); // autoconfig space (installed by devices)
+ map(0xf80000, 0xffffff).rom().region("kickstart", 0);
+}
+
+void mquake_state::main_map(address_map &map)
+{
+ a500_mem(map);
+ map(0x200000, 0x203fff).ram().share("nvram");
+ map(0x204000, 0x2041ff).rw(m_es5503, FUNC(es5503_device::read), FUNC(es5503_device::write)).umask16(0x00ff);
+ map(0x282000, 0x282001).portr("SW.LO");
+ map(0x282002, 0x282003).portr("SW.HI");
+ map(0x284000, 0x28400f).w(this, FUNC(mquake_state::output_w));
+ map(0x286000, 0x28600f).rw(this, FUNC(mquake_state::coin_chip_r), FUNC(mquake_state::coin_chip_w));
+ map(0x300000, 0x3bffff).rom().region("user2", 0);
+ map(0xf00000, 0xfbffff).rom().region("user2", 0); /* Custom ROM */
+}