summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/gradius3.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/gradius3.cpp')
-rw-r--r--src/mame/drivers/gradius3.cpp87
1 files changed, 45 insertions, 42 deletions
diff --git a/src/mame/drivers/gradius3.cpp b/src/mame/drivers/gradius3.cpp
index 4816f6709fb..40cb27fd3e6 100644
--- a/src/mame/drivers/gradius3.cpp
+++ b/src/mame/drivers/gradius3.cpp
@@ -149,48 +149,51 @@ WRITE8_MEMBER(gradius3_state::sound_bank_w)
-ADDRESS_MAP_START(gradius3_state::gradius3_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x040000, 0x043fff) AM_RAM
- AM_RANGE(0x080000, 0x080fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x0c0000, 0x0c0001) AM_WRITE(cpuA_ctrl_w) /* halt cpu B, irq enable, priority, coin counters, other? */
- AM_RANGE(0x0c8000, 0x0c8001) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x0c8002, 0x0c8003) AM_READ_PORT("P1")
- AM_RANGE(0x0c8004, 0x0c8005) AM_READ_PORT("P2")
- AM_RANGE(0x0c8006, 0x0c8007) AM_READ_PORT("DSW3")
- AM_RANGE(0x0d0000, 0x0d0001) AM_READ_PORT("DSW1")
- AM_RANGE(0x0d0002, 0x0d0003) AM_READ_PORT("DSW2")
- AM_RANGE(0x0d8000, 0x0d8001) AM_WRITE(cpuB_irqtrigger_w)
- AM_RANGE(0x0e0000, 0x0e0001) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
- AM_RANGE(0x0e8000, 0x0e8001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0xff00)
- AM_RANGE(0x0f0000, 0x0f0001) AM_WRITE(sound_irq_w)
- AM_RANGE(0x100000, 0x103fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x14c000, 0x153fff) AM_READWRITE(k052109_halfword_r, k052109_halfword_w)
- AM_RANGE(0x180000, 0x19ffff) AM_RAM_WRITE(gradius3_gfxram_w) AM_SHARE("k052109")
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(gradius3_state::gradius3_map2)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x100000, 0x103fff) AM_RAM
- AM_RANGE(0x140000, 0x140001) AM_WRITE(cpuB_irqenable_w)
- AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("share1")
- AM_RANGE(0x24c000, 0x253fff) AM_READWRITE(k052109_halfword_r, k052109_halfword_w)
- AM_RANGE(0x280000, 0x29ffff) AM_RAM_WRITE(gradius3_gfxram_w) AM_SHARE("k052109")
- AM_RANGE(0x2c0000, 0x2c000f) AM_READWRITE(k051937_halfword_r, k051937_halfword_w)
- AM_RANGE(0x2c0800, 0x2c0fff) AM_READWRITE(k051960_halfword_r, k051960_halfword_w)
- AM_RANGE(0x400000, 0x5fffff) AM_READ(gradius3_gfxrom_r) /* gfx ROMs are mapped here, and copied to RAM */
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(gradius3_state::gradius3_s_map)
- AM_RANGE(0x0000, 0xefff) AM_ROM
- AM_RANGE(0xf000, 0xf000) AM_WRITE(sound_bank_w) /* 007232 bankswitch */
- AM_RANGE(0xf010, 0xf010) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0xf020, 0xf02d) AM_DEVREADWRITE("k007232", k007232_device, read, write)
- AM_RANGE(0xf030, 0xf031) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0xf800, 0xffff) AM_RAM
-ADDRESS_MAP_END
+void gradius3_state::gradius3_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0x040000, 0x043fff).ram();
+ map(0x080000, 0x080fff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
+ map(0x0c0000, 0x0c0001).w(this, FUNC(gradius3_state::cpuA_ctrl_w)); /* halt cpu B, irq enable, priority, coin counters, other? */
+ map(0x0c8000, 0x0c8001).portr("SYSTEM");
+ map(0x0c8002, 0x0c8003).portr("P1");
+ map(0x0c8004, 0x0c8005).portr("P2");
+ map(0x0c8006, 0x0c8007).portr("DSW3");
+ map(0x0d0000, 0x0d0001).portr("DSW1");
+ map(0x0d0002, 0x0d0003).portr("DSW2");
+ map(0x0d8000, 0x0d8001).w(this, FUNC(gradius3_state::cpuB_irqtrigger_w));
+ map(0x0e0000, 0x0e0001).w("watchdog", FUNC(watchdog_timer_device::reset16_w));
+ map(0x0e8000, 0x0e8000).w("soundlatch", FUNC(generic_latch_8_device::write));
+ map(0x0f0000, 0x0f0001).w(this, FUNC(gradius3_state::sound_irq_w));
+ map(0x100000, 0x103fff).ram().share("share1");
+ map(0x14c000, 0x153fff).rw(this, FUNC(gradius3_state::k052109_halfword_r), FUNC(gradius3_state::k052109_halfword_w));
+ map(0x180000, 0x19ffff).ram().w(this, FUNC(gradius3_state::gradius3_gfxram_w)).share("k052109");
+}
+
+
+void gradius3_state::gradius3_map2(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom();
+ map(0x100000, 0x103fff).ram();
+ map(0x140000, 0x140001).w(this, FUNC(gradius3_state::cpuB_irqenable_w));
+ map(0x200000, 0x203fff).ram().share("share1");
+ map(0x24c000, 0x253fff).rw(this, FUNC(gradius3_state::k052109_halfword_r), FUNC(gradius3_state::k052109_halfword_w));
+ map(0x280000, 0x29ffff).ram().w(this, FUNC(gradius3_state::gradius3_gfxram_w)).share("k052109");
+ map(0x2c0000, 0x2c000f).rw(this, FUNC(gradius3_state::k051937_halfword_r), FUNC(gradius3_state::k051937_halfword_w));
+ map(0x2c0800, 0x2c0fff).rw(this, FUNC(gradius3_state::k051960_halfword_r), FUNC(gradius3_state::k051960_halfword_w));
+ map(0x400000, 0x5fffff).r(this, FUNC(gradius3_state::gradius3_gfxrom_r)); /* gfx ROMs are mapped here, and copied to RAM */
+}
+
+
+void gradius3_state::gradius3_s_map(address_map &map)
+{
+ map(0x0000, 0xefff).rom();
+ map(0xf000, 0xf000).w(this, FUNC(gradius3_state::sound_bank_w)); /* 007232 bankswitch */
+ map(0xf010, 0xf010).r("soundlatch", FUNC(generic_latch_8_device::read));
+ map(0xf020, 0xf02d).rw(m_k007232, FUNC(k007232_device::read), FUNC(k007232_device::write));
+ map(0xf030, 0xf031).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0xf800, 0xffff).ram();
+}