summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/terracre.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/terracre.cpp')
-rw-r--r--src/mame/drivers/terracre.cpp136
1 files changed, 71 insertions, 65 deletions
diff --git a/src/mame/drivers/terracre.cpp b/src/mame/drivers/terracre.cpp
index 0d3cb8bbadb..091871f6154 100644
--- a/src/mame/drivers/terracre.cpp
+++ b/src/mame/drivers/terracre.cpp
@@ -231,71 +231,77 @@ MACHINE_START_MEMBER(terracre_state,amazon)
save_item(NAME(m_mAmazonProtReg));
}
-ADDRESS_MAP_START(terracre_state::terracre_map)
- AM_RANGE(0x000000, 0x01ffff) AM_ROM
- AM_RANGE(0x020000, 0x0201ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x020200, 0x021fff) AM_RAM
- AM_RANGE(0x022000, 0x022fff) AM_WRITE(amazon_background_w) AM_SHARE("bg_videoram")
- AM_RANGE(0x023000, 0x023fff) AM_RAM
- AM_RANGE(0x024000, 0x024001) AM_READ_PORT("P1")
- AM_RANGE(0x024002, 0x024003) AM_READ_PORT("P2")
- AM_RANGE(0x024004, 0x024005) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x024006, 0x024007) AM_READ_PORT("DSW")
- AM_RANGE(0x026000, 0x026001) AM_WRITE(amazon_flipscreen_w) /* flip screen & coin counters */
- AM_RANGE(0x026002, 0x026003) AM_WRITE(amazon_scrollx_w)
- AM_RANGE(0x026004, 0x026005) AM_READNOP AM_WRITE(amazon_scrolly_w)
- AM_RANGE(0x02600a, 0x02600b) AM_NOP // video related
- AM_RANGE(0x02600c, 0x02600d) AM_WRITE(amazon_sound_w)
- AM_RANGE(0x02600e, 0x02600f) AM_NOP // video related
- AM_RANGE(0x028000, 0x0287ff) AM_RAM_WRITE(amazon_foreground_w) AM_SHARE("fg_videoram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(terracre_state::amazon_base_map)
- AM_RANGE(0x000000, 0x01ffff) AM_ROM
- AM_RANGE(0x040000, 0x0401ff) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x040200, 0x040fff) AM_RAM
- AM_RANGE(0x042000, 0x042fff) AM_WRITE(amazon_background_w) AM_SHARE("bg_videoram")
- AM_RANGE(0x044000, 0x044001) AM_READ_PORT("IN0")
- AM_RANGE(0x044002, 0x044003) AM_READ_PORT("IN1")
- AM_RANGE(0x044004, 0x044005) AM_READ_PORT("IN2")
- AM_RANGE(0x044006, 0x044007) AM_READ_PORT("IN3")
- AM_RANGE(0x046000, 0x046001) AM_WRITE(amazon_flipscreen_w) /* flip screen & coin counters */
- AM_RANGE(0x046002, 0x046003) AM_WRITE(amazon_scrollx_w)
- AM_RANGE(0x046004, 0x046005) AM_READNOP AM_WRITE(amazon_scrolly_w)
- AM_RANGE(0x04600a, 0x04600b) AM_NOP // video related
- AM_RANGE(0x04600c, 0x04600d) AM_WRITE(amazon_sound_w)
- AM_RANGE(0x04600e, 0x04600f) AM_NOP // video related
- AM_RANGE(0x050000, 0x050fff) AM_RAM_WRITE(amazon_foreground_w) AM_SHARE("fg_videoram")
- AM_RANGE(0x070000, 0x070003) AM_NOP // protection (nop for bootlegs)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(terracre_state::amazon_1412m2_map)
- AM_IMPORT_FROM( amazon_base_map )
- AM_RANGE(0x070000, 0x070003) AM_READWRITE(amazon_protection_r, amazon_protection_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(terracre_state::sound_map)
- AM_RANGE(0x0000, 0xbfff) AM_ROM
- AM_RANGE(0xc000, 0xcfff) AM_RAM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(terracre_state::sound_3526_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_DEVWRITE("ymsnd", ym3526_device, write)
- AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac1", dac_byte_interface, write)
- AM_RANGE(0x03, 0x03) AM_DEVWRITE("dac2", dac_byte_interface, write)
- AM_RANGE(0x04, 0x04) AM_READ(soundlatch_clear_r)
- AM_RANGE(0x06, 0x06) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(terracre_state::sound_2203_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_DEVWRITE("ym1", ym2203_device, write)
- AM_RANGE(0x02, 0x02) AM_DEVWRITE("dac1", dac_byte_interface, write)
- AM_RANGE(0x03, 0x03) AM_DEVWRITE("dac2", dac_byte_interface, write)
- AM_RANGE(0x04, 0x04) AM_READ(soundlatch_clear_r)
- AM_RANGE(0x06, 0x06) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
-ADDRESS_MAP_END
+void terracre_state::terracre_map(address_map &map)
+{
+ map(0x000000, 0x01ffff).rom();
+ map(0x020000, 0x0201ff).ram().share("spriteram");
+ map(0x020200, 0x021fff).ram();
+ map(0x022000, 0x022fff).w(this, FUNC(terracre_state::amazon_background_w)).share("bg_videoram");
+ map(0x023000, 0x023fff).ram();
+ map(0x024000, 0x024001).portr("P1");
+ map(0x024002, 0x024003).portr("P2");
+ map(0x024004, 0x024005).portr("SYSTEM");
+ map(0x024006, 0x024007).portr("DSW");
+ map(0x026000, 0x026001).w(this, FUNC(terracre_state::amazon_flipscreen_w)); /* flip screen & coin counters */
+ map(0x026002, 0x026003).w(this, FUNC(terracre_state::amazon_scrollx_w));
+ map(0x026004, 0x026005).nopr().w(this, FUNC(terracre_state::amazon_scrolly_w));
+ map(0x02600a, 0x02600b).noprw(); // video related
+ map(0x02600c, 0x02600d).w(this, FUNC(terracre_state::amazon_sound_w));
+ map(0x02600e, 0x02600f).noprw(); // video related
+ map(0x028000, 0x0287ff).ram().w(this, FUNC(terracre_state::amazon_foreground_w)).share("fg_videoram");
+}
+
+void terracre_state::amazon_base_map(address_map &map)
+{
+ map(0x000000, 0x01ffff).rom();
+ map(0x040000, 0x0401ff).ram().share("spriteram");
+ map(0x040200, 0x040fff).ram();
+ map(0x042000, 0x042fff).w(this, FUNC(terracre_state::amazon_background_w)).share("bg_videoram");
+ map(0x044000, 0x044001).portr("IN0");
+ map(0x044002, 0x044003).portr("IN1");
+ map(0x044004, 0x044005).portr("IN2");
+ map(0x044006, 0x044007).portr("IN3");
+ map(0x046000, 0x046001).w(this, FUNC(terracre_state::amazon_flipscreen_w)); /* flip screen & coin counters */
+ map(0x046002, 0x046003).w(this, FUNC(terracre_state::amazon_scrollx_w));
+ map(0x046004, 0x046005).nopr().w(this, FUNC(terracre_state::amazon_scrolly_w));
+ map(0x04600a, 0x04600b).noprw(); // video related
+ map(0x04600c, 0x04600d).w(this, FUNC(terracre_state::amazon_sound_w));
+ map(0x04600e, 0x04600f).noprw(); // video related
+ map(0x050000, 0x050fff).ram().w(this, FUNC(terracre_state::amazon_foreground_w)).share("fg_videoram");
+ map(0x070000, 0x070003).noprw(); // protection (nop for bootlegs)
+}
+
+void terracre_state::amazon_1412m2_map(address_map &map)
+{
+ amazon_base_map(map);
+ map(0x070000, 0x070003).rw(this, FUNC(terracre_state::amazon_protection_r), FUNC(terracre_state::amazon_protection_w));
+}
+
+void terracre_state::sound_map(address_map &map)
+{
+ map(0x0000, 0xbfff).rom();
+ map(0xc000, 0xcfff).ram();
+}
+
+void terracre_state::sound_3526_io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w("ymsnd", FUNC(ym3526_device::write));
+ map(0x02, 0x02).w("dac1", FUNC(dac_byte_interface::write));
+ map(0x03, 0x03).w("dac2", FUNC(dac_byte_interface::write));
+ map(0x04, 0x04).r(this, FUNC(terracre_state::soundlatch_clear_r));
+ map(0x06, 0x06).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+}
+
+void terracre_state::sound_2203_io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w("ym1", FUNC(ym2203_device::write));
+ map(0x02, 0x02).w("dac1", FUNC(dac_byte_interface::write));
+ map(0x03, 0x03).w("dac2", FUNC(dac_byte_interface::write));
+ map(0x04, 0x04).r(this, FUNC(terracre_state::soundlatch_clear_r));
+ map(0x06, 0x06).r(m_soundlatch, FUNC(generic_latch_8_device::read));
+}
static INPUT_PORTS_START( terracre )
PORT_START("P1")