summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/supbtime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/supbtime.cpp')
-rw-r--r--src/mame/drivers/supbtime.cpp140
1 files changed, 72 insertions, 68 deletions
diff --git a/src/mame/drivers/supbtime.cpp b/src/mame/drivers/supbtime.cpp
index dc2e688aaae..f80b715df58 100644
--- a/src/mame/drivers/supbtime.cpp
+++ b/src/mame/drivers/supbtime.cpp
@@ -116,78 +116,82 @@ private:
// ADDRESS MAPS
//**************************************************************************
-ADDRESS_MAP_START(supbtime_state::supbtime_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x103fff) AM_RAM
- AM_RANGE(0x104000, 0x11ffff) AM_WRITENOP // Nothing there
- AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x120800, 0x13ffff) AM_WRITENOP // Nothing there
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x180000, 0x180001) AM_READ_PORT("INPUTS")
- AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW")
- AM_RANGE(0x180008, 0x180009) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x18000a, 0x18000b) AM_READ(vblank_ack_r)
- AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP // ?
- AM_RANGE(0x1a0000, 0x1a0001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf_control_r, pf_control_w)
- AM_RANGE(0x320000, 0x321fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf1_data_r, pf1_data_w)
- AM_RANGE(0x322000, 0x323fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf2_data_r, pf2_data_w)
- AM_RANGE(0x340000, 0x3407ff) AM_RAM AM_SHARE("pf1_rowscroll")
- AM_RANGE(0x342000, 0x3427ff) AM_RAM AM_SHARE("pf2_rowscroll")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(supbtime_state::chinatwn_map)
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x100001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x120000, 0x1207ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x180000, 0x180001) AM_READ_PORT("INPUTS")
- AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW")
- AM_RANGE(0x180008, 0x180009) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x18000a, 0x18000b) AM_READ(vblank_ack_r)
- AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP // ?
- AM_RANGE(0x1a0000, 0x1a3fff) AM_RAM
- AM_RANGE(0x300000, 0x30000f) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf_control_r, pf_control_w)
- AM_RANGE(0x320000, 0x321fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf1_data_r, pf1_data_w)
- AM_RANGE(0x322000, 0x323fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf2_data_r, pf2_data_w)
- AM_RANGE(0x340000, 0x3407ff) AM_RAM AM_SHARE("pf1_rowscroll") // unused
- AM_RANGE(0x342000, 0x3427ff) AM_RAM AM_SHARE("pf2_rowscroll") // unused
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(supbtime_state::tumblep_map)
+void supbtime_state::supbtime_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0x100000, 0x103fff).ram();
+ map(0x104000, 0x11ffff).nopw(); // Nothing there
+ map(0x120000, 0x1207ff).ram().share("spriteram");
+ map(0x120800, 0x13ffff).nopw(); // Nothing there
+ map(0x140000, 0x1407ff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
+ map(0x180000, 0x180001).portr("INPUTS");
+ map(0x180002, 0x180003).portr("DSW");
+ map(0x180008, 0x180009).portr("SYSTEM");
+ map(0x18000a, 0x18000b).r(this, FUNC(supbtime_state::vblank_ack_r));
+ map(0x18000a, 0x18000d).nopw(); // ?
+ map(0x1a0001, 0x1a0001).w("soundlatch", FUNC(generic_latch_8_device::write));
+ map(0x300000, 0x30000f).rw(m_deco_tilegen1, FUNC(deco16ic_device::pf_control_r), FUNC(deco16ic_device::pf_control_w));
+ map(0x320000, 0x321fff).rw(m_deco_tilegen1, FUNC(deco16ic_device::pf1_data_r), FUNC(deco16ic_device::pf1_data_w));
+ map(0x322000, 0x323fff).rw(m_deco_tilegen1, FUNC(deco16ic_device::pf2_data_r), FUNC(deco16ic_device::pf2_data_w));
+ map(0x340000, 0x3407ff).ram().share("pf1_rowscroll");
+ map(0x342000, 0x3427ff).ram().share("pf2_rowscroll");
+}
+
+void supbtime_state::chinatwn_map(address_map &map)
+{
+ map(0x000000, 0x03ffff).rom();
+ map(0x100001, 0x100001).w("soundlatch", FUNC(generic_latch_8_device::write));
+ map(0x120000, 0x1207ff).ram().share("spriteram");
+ map(0x140000, 0x1407ff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
+ map(0x180000, 0x180001).portr("INPUTS");
+ map(0x180002, 0x180003).portr("DSW");
+ map(0x180008, 0x180009).portr("SYSTEM");
+ map(0x18000a, 0x18000b).r(this, FUNC(supbtime_state::vblank_ack_r));
+ map(0x18000a, 0x18000d).nopw(); // ?
+ map(0x1a0000, 0x1a3fff).ram();
+ map(0x300000, 0x30000f).rw(m_deco_tilegen1, FUNC(deco16ic_device::pf_control_r), FUNC(deco16ic_device::pf_control_w));
+ map(0x320000, 0x321fff).rw(m_deco_tilegen1, FUNC(deco16ic_device::pf1_data_r), FUNC(deco16ic_device::pf1_data_w));
+ map(0x322000, 0x323fff).rw(m_deco_tilegen1, FUNC(deco16ic_device::pf2_data_r), FUNC(deco16ic_device::pf2_data_w));
+ map(0x340000, 0x3407ff).ram().share("pf1_rowscroll"); // unused
+ map(0x342000, 0x3427ff).ram().share("pf2_rowscroll"); // unused
+}
+
+void supbtime_state::tumblep_map(address_map &map)
+{
#if TUMBLEP_HACK
- AM_RANGE(0x000000, 0x07ffff) AM_WRITEONLY // To write levels modifications
+ map(0x000000, 0x07ffff).writeonly(); // To write levels modifications
#endif
- AM_RANGE(0x000000, 0x07ffff) AM_ROM
- AM_RANGE(0x100000, 0x100001) AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
- AM_RANGE(0x120000, 0x123fff) AM_RAM
- AM_RANGE(0x140000, 0x1407ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
- AM_RANGE(0x180000, 0x180001) AM_READ_PORT("INPUTS")
- AM_RANGE(0x180002, 0x180003) AM_READ_PORT("DSW")
- AM_RANGE(0x180008, 0x180009) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x18000a, 0x18000b) AM_READ(vblank_ack_r)
- AM_RANGE(0x18000a, 0x18000d) AM_WRITENOP // ?
- AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x300000, 0x30000f) AM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w)
- AM_RANGE(0x320000, 0x320fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf1_data_r, pf1_data_w)
- AM_RANGE(0x322000, 0x322fff) AM_DEVREADWRITE("tilegen1", deco16ic_device, pf2_data_r, pf2_data_w)
- AM_RANGE(0x340000, 0x3407ff) AM_WRITEONLY AM_SHARE("pf1_rowscroll") // unused
- AM_RANGE(0x342000, 0x3427ff) AM_WRITEONLY AM_SHARE("pf2_rowscroll") // unused
-ADDRESS_MAP_END
+ map(0x000000, 0x07ffff).rom();
+ map(0x100001, 0x100001).w("soundlatch", FUNC(generic_latch_8_device::write));
+ map(0x120000, 0x123fff).ram();
+ map(0x140000, 0x1407ff).ram().w("palette", FUNC(palette_device::write16)).share("palette");
+ map(0x180000, 0x180001).portr("INPUTS");
+ map(0x180002, 0x180003).portr("DSW");
+ map(0x180008, 0x180009).portr("SYSTEM");
+ map(0x18000a, 0x18000b).r(this, FUNC(supbtime_state::vblank_ack_r));
+ map(0x18000a, 0x18000d).nopw(); // ?
+ map(0x1a0000, 0x1a07ff).ram().share("spriteram");
+ map(0x300000, 0x30000f).w(m_deco_tilegen1, FUNC(deco16ic_device::pf_control_w));
+ map(0x320000, 0x320fff).rw(m_deco_tilegen1, FUNC(deco16ic_device::pf1_data_r), FUNC(deco16ic_device::pf1_data_w));
+ map(0x322000, 0x322fff).rw(m_deco_tilegen1, FUNC(deco16ic_device::pf2_data_r), FUNC(deco16ic_device::pf2_data_w));
+ map(0x340000, 0x3407ff).writeonly().share("pf1_rowscroll"); // unused
+ map(0x342000, 0x3427ff).writeonly().share("pf2_rowscroll"); // unused
+}
// Physical memory map (21 bits)
-ADDRESS_MAP_START(supbtime_state::sound_map)
- ADDRESS_MAP_GLOBAL_MASK(0x1fffff)
- AM_RANGE(0x000000, 0x00ffff) AM_ROM
- AM_RANGE(0x100000, 0x100001) AM_NOP // YM2203 - this board doesn't have one
- AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ymsnd", ym2151_device, read, write)
- AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0x130000, 0x130001) AM_NOP // This board only has 1 oki chip
- AM_RANGE(0x140000, 0x140001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
- AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK("bank8")
- AM_RANGE(0x1fec00, 0x1fec01) AM_DEVWRITE("audiocpu", h6280_device, timer_w)
- AM_RANGE(0x1ff400, 0x1ff403) AM_DEVWRITE("audiocpu", h6280_device, irq_status_w)
-ADDRESS_MAP_END
+void supbtime_state::sound_map(address_map &map)
+{
+ map.global_mask(0x1fffff);
+ map(0x000000, 0x00ffff).rom();
+ map(0x100000, 0x100001).noprw(); // YM2203 - this board doesn't have one
+ map(0x110000, 0x110001).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write));
+ map(0x120000, 0x120001).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0x130000, 0x130001).noprw(); // This board only has 1 oki chip
+ map(0x140000, 0x140001).r("soundlatch", FUNC(generic_latch_8_device::read));
+ map(0x1f0000, 0x1f1fff).bankrw("bank8");
+ map(0x1fec00, 0x1fec01).w("audiocpu", FUNC(h6280_device::timer_w));
+ map(0x1ff400, 0x1ff403).w("audiocpu", FUNC(h6280_device::irq_status_w));
+}
//**************************************************************************