diff options
Diffstat (limited to 'src/mame/drivers/gradius3.cpp')
-rw-r--r-- | src/mame/drivers/gradius3.cpp | 87 |
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(); +} |