diff options
Diffstat (limited to 'src/mame/drivers/flower.cpp')
-rw-r--r-- | src/mame/drivers/flower.cpp | 62 |
1 files changed, 32 insertions, 30 deletions
diff --git a/src/mame/drivers/flower.cpp b/src/mame/drivers/flower.cpp index fc1a66688c1..01561e7d7f7 100644 --- a/src/mame/drivers/flower.cpp +++ b/src/mame/drivers/flower.cpp @@ -335,36 +335,38 @@ WRITE8_MEMBER(flower_state::fgvram_w) m_fg_tilemap->mark_tile_dirty(offset & 0xff); } -ADDRESS_MAP_START(flower_state::shared_map) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0xc000, 0xdfff) AM_RAM AM_SHARE("workram") - AM_RANGE(0xa000, 0xa000) AM_WRITENOP - AM_RANGE(0xa001, 0xa001) AM_WRITE(flipscreen_w) - AM_RANGE(0xa002, 0xa002) AM_WRITENOP // master irq related (0 at start, 1 at end) - AM_RANGE(0xa003, 0xa003) AM_WRITENOP // slave irq related (0 at start, 1 at end) - AM_RANGE(0xa004, 0xa004) AM_WRITE(coin_counter_w) - AM_RANGE(0xa005, 0xa005) AM_WRITENOP - AM_RANGE(0xa100, 0xa100) AM_READ_PORT("P1") - AM_RANGE(0xa101, 0xa101) AM_READ_PORT("P2") - AM_RANGE(0xa102, 0xa102) AM_READ_PORT("DSW1") - AM_RANGE(0xa103, 0xa103) AM_READ_PORT("DSW2") - AM_RANGE(0xa400, 0xa400) AM_WRITE(sound_command_w) - AM_RANGE(0xe000, 0xefff) AM_RAM AM_SHARE("txvram") - AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(fgvram_w) AM_SHARE("fgvram") - AM_RANGE(0xf200, 0xf200) AM_RAM AM_SHARE("fgscroll") - AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(bgvram_w) AM_SHARE("bgvram") - AM_RANGE(0xfa00, 0xfa00) AM_RAM AM_SHARE("bgscroll") -ADDRESS_MAP_END - -ADDRESS_MAP_START(flower_state::audio_map) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x4000) AM_WRITENOP // audio irq related (0 at start, 1 at end) - AM_RANGE(0x4001, 0x4001) AM_WRITE(audio_nmi_mask_w) - AM_RANGE(0x6000, 0x6000) AM_DEVREAD("soundlatch", generic_latch_8_device, read) - AM_RANGE(0x8000, 0x803f) AM_DEVWRITE("flower", flower_sound_device, lower_write) - AM_RANGE(0xa000, 0xa03f) AM_DEVWRITE("flower", flower_sound_device, upper_write) - AM_RANGE(0xc000, 0xc7ff) AM_RAM -ADDRESS_MAP_END +void flower_state::shared_map(address_map &map) +{ + map(0x0000, 0x7fff).rom(); + map(0xc000, 0xdfff).ram().share("workram"); + map(0xa000, 0xa000).nopw(); + map(0xa001, 0xa001).w(this, FUNC(flower_state::flipscreen_w)); + map(0xa002, 0xa002).nopw(); // master irq related (0 at start, 1 at end) + map(0xa003, 0xa003).nopw(); // slave irq related (0 at start, 1 at end) + map(0xa004, 0xa004).w(this, FUNC(flower_state::coin_counter_w)); + map(0xa005, 0xa005).nopw(); + map(0xa100, 0xa100).portr("P1"); + map(0xa101, 0xa101).portr("P2"); + map(0xa102, 0xa102).portr("DSW1"); + map(0xa103, 0xa103).portr("DSW2"); + map(0xa400, 0xa400).w(this, FUNC(flower_state::sound_command_w)); + map(0xe000, 0xefff).ram().share("txvram"); + map(0xf000, 0xf1ff).ram().w(this, FUNC(flower_state::fgvram_w)).share("fgvram"); + map(0xf200, 0xf200).ram().share("fgscroll"); + map(0xf800, 0xf9ff).ram().w(this, FUNC(flower_state::bgvram_w)).share("bgvram"); + map(0xfa00, 0xfa00).ram().share("bgscroll"); +} + +void flower_state::audio_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0x4000, 0x4000).nopw(); // audio irq related (0 at start, 1 at end) + map(0x4001, 0x4001).w(this, FUNC(flower_state::audio_nmi_mask_w)); + map(0x6000, 0x6000).r(m_soundlatch, FUNC(generic_latch_8_device::read)); + map(0x8000, 0x803f).w("flower", FUNC(flower_sound_device::lower_write)); + map(0xa000, 0xa03f).w("flower", FUNC(flower_sound_device::upper_write)); + map(0xc000, 0xc7ff).ram(); +} INPUT_CHANGED_MEMBER(flower_state::coin_inserted) { |