summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/hcastle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/hcastle.cpp')
-rw-r--r--src/mame/drivers/hcastle.cpp78
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));
+}
/*****************************************************************************/