diff options
Diffstat (limited to 'src/mame/drivers/hcastle.cpp')
-rw-r--r-- | src/mame/drivers/hcastle.cpp | 78 |
1 files changed, 40 insertions, 38 deletions
diff --git a/src/mame/drivers/hcastle.cpp b/src/mame/drivers/hcastle.cpp index 8116878c3ac..ee56ed4aa9a 100644 --- a/src/mame/drivers/hcastle.cpp +++ b/src/mame/drivers/hcastle.cpp @@ -41,31 +41,32 @@ WRITE8_MEMBER(hcastle_state::hcastle_coin_w) -ADDRESS_MAP_START(hcastle_state::hcastle_map) - AM_RANGE(0x0000, 0x0007) AM_WRITE(hcastle_pf1_control_w) - AM_RANGE(0x0020, 0x003f) AM_RAM /* rowscroll? */ - AM_RANGE(0x0200, 0x0207) AM_WRITE(hcastle_pf2_control_w) - AM_RANGE(0x0220, 0x023f) AM_RAM /* rowscroll? */ - AM_RANGE(0x0400, 0x0400) AM_WRITE(hcastle_bankswitch_w) - AM_RANGE(0x0404, 0x0404) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0x0408, 0x0408) AM_WRITE(hcastle_soundirq_w) - AM_RANGE(0x040c, 0x040c) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) - AM_RANGE(0x0410, 0x0410) AM_READ_PORT("SYSTEM") AM_WRITE(hcastle_coin_w) - AM_RANGE(0x0411, 0x0411) AM_READ_PORT("P1") - AM_RANGE(0x0412, 0x0412) AM_READ_PORT("P2") - AM_RANGE(0x0413, 0x0413) AM_READ_PORT("DSW3") - AM_RANGE(0x0414, 0x0414) AM_READ_PORT("DSW1") - AM_RANGE(0x0415, 0x0415) AM_READ_PORT("DSW2") - AM_RANGE(0x0418, 0x0418) AM_READWRITE(hcastle_gfxbank_r, hcastle_gfxbank_w) - AM_RANGE(0x0600, 0x06ff) AM_RAM_DEVWRITE("palette", palette_device, write_indirect) AM_SHARE("palette") - AM_RANGE(0x0700, 0x1fff) AM_RAM - AM_RANGE(0x2000, 0x2fff) AM_RAM_WRITE(hcastle_pf1_video_w) AM_SHARE("pf1_videoram") - AM_RANGE(0x3000, 0x3fff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x4000, 0x4fff) AM_RAM_WRITE(hcastle_pf2_video_w) AM_SHARE("pf2_videoram") - AM_RANGE(0x5000, 0x5fff) AM_RAM AM_SHARE("spriteram2") - AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1") - AM_RANGE(0x8000, 0xffff) AM_ROM -ADDRESS_MAP_END +void hcastle_state::hcastle_map(address_map &map) +{ + map(0x0000, 0x0007).w(this, FUNC(hcastle_state::hcastle_pf1_control_w)); + map(0x0020, 0x003f).ram(); /* rowscroll? */ + map(0x0200, 0x0207).w(this, FUNC(hcastle_state::hcastle_pf2_control_w)); + map(0x0220, 0x023f).ram(); /* rowscroll? */ + map(0x0400, 0x0400).w(this, FUNC(hcastle_state::hcastle_bankswitch_w)); + map(0x0404, 0x0404).w("soundlatch", FUNC(generic_latch_8_device::write)); + map(0x0408, 0x0408).w(this, FUNC(hcastle_state::hcastle_soundirq_w)); + map(0x040c, 0x040c).w("watchdog", FUNC(watchdog_timer_device::reset_w)); + map(0x0410, 0x0410).portr("SYSTEM").w(this, FUNC(hcastle_state::hcastle_coin_w)); + map(0x0411, 0x0411).portr("P1"); + map(0x0412, 0x0412).portr("P2"); + map(0x0413, 0x0413).portr("DSW3"); + map(0x0414, 0x0414).portr("DSW1"); + map(0x0415, 0x0415).portr("DSW2"); + map(0x0418, 0x0418).rw(this, FUNC(hcastle_state::hcastle_gfxbank_r), FUNC(hcastle_state::hcastle_gfxbank_w)); + map(0x0600, 0x06ff).ram().w(m_palette, FUNC(palette_device::write_indirect)).share("palette"); + map(0x0700, 0x1fff).ram(); + map(0x2000, 0x2fff).ram().w(this, FUNC(hcastle_state::hcastle_pf1_video_w)).share("pf1_videoram"); + map(0x3000, 0x3fff).ram().share("spriteram"); + map(0x4000, 0x4fff).ram().w(this, FUNC(hcastle_state::hcastle_pf2_video_w)).share("pf2_videoram"); + map(0x5000, 0x5fff).ram().share("spriteram2"); + map(0x6000, 0x7fff).bankr("bank1"); + map(0x8000, 0xffff).rom(); +} /*****************************************************************************/ @@ -76,19 +77,20 @@ WRITE8_MEMBER(hcastle_state::sound_bank_w) m_k007232->set_bank(bank_A, bank_B ); } -ADDRESS_MAP_START(hcastle_state::sound_map) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM - AM_RANGE(0x9800, 0x987f) AM_DEVREADWRITE("k051649", k051649_device, k051649_waveform_r, k051649_waveform_w) - AM_RANGE(0x9880, 0x9889) AM_DEVWRITE("k051649", k051649_device, k051649_frequency_w) - AM_RANGE(0x988a, 0x988e) AM_DEVWRITE("k051649", k051649_device, k051649_volume_w) - AM_RANGE(0x988f, 0x988f) AM_DEVWRITE("k051649", k051649_device, k051649_keyonoff_w) - AM_RANGE(0x98e0, 0x98ff) AM_DEVREADWRITE("k051649", k051649_device, k051649_test_r, k051649_test_w) - AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ymsnd", ym3812_device, read, write) - AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("k007232", k007232_device, read, write) - AM_RANGE(0xc000, 0xc000) AM_WRITE(sound_bank_w) /* 7232 bankswitch */ - AM_RANGE(0xd000, 0xd000) AM_DEVREAD("soundlatch", generic_latch_8_device, read) -ADDRESS_MAP_END +void hcastle_state::sound_map(address_map &map) +{ + map(0x0000, 0x7fff).rom(); + map(0x8000, 0x87ff).ram(); + map(0x9800, 0x987f).rw("k051649", FUNC(k051649_device::k051649_waveform_r), FUNC(k051649_device::k051649_waveform_w)); + map(0x9880, 0x9889).w("k051649", FUNC(k051649_device::k051649_frequency_w)); + map(0x988a, 0x988e).w("k051649", FUNC(k051649_device::k051649_volume_w)); + map(0x988f, 0x988f).w("k051649", FUNC(k051649_device::k051649_keyonoff_w)); + map(0x98e0, 0x98ff).rw("k051649", FUNC(k051649_device::k051649_test_r), FUNC(k051649_device::k051649_test_w)); + map(0xa000, 0xa001).rw("ymsnd", FUNC(ym3812_device::read), FUNC(ym3812_device::write)); + map(0xb000, 0xb00d).rw(m_k007232, FUNC(k007232_device::read), FUNC(k007232_device::write)); + map(0xc000, 0xc000).w(this, FUNC(hcastle_state::sound_bank_w)); /* 7232 bankswitch */ + map(0xd000, 0xd000).r("soundlatch", FUNC(generic_latch_8_device::read)); +} /*****************************************************************************/ |