summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/wgp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/wgp.cpp')
-rw-r--r--src/mame/drivers/wgp.cpp83
1 files changed, 43 insertions, 40 deletions
diff --git a/src/mame/drivers/wgp.cpp b/src/mame/drivers/wgp.cpp
index d12739b038e..be0e4f3d272 100644
--- a/src/mame/drivers/wgp.cpp
+++ b/src/mame/drivers/wgp.cpp
@@ -609,54 +609,57 @@ WRITE8_MEMBER(wgp_state::sound_bankswitch_w)
MEMORY STRUCTURES
*****************************************************************/
-ADDRESS_MAP_START(wgp_state::main_map)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM
- AM_RANGE(0x100000, 0x10ffff) AM_RAM /* main CPUA ram */
- AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0x180000, 0x18000f) AM_DEVREADWRITE8("tc0220ioc", tc0220ioc_device, read, write, 0xff00)
- AM_RANGE(0x1c0000, 0x1c0001) AM_WRITE(cpua_ctrl_w)
- AM_RANGE(0x200000, 0x20000f) AM_READWRITE(adinput_r, adinput_w)
- AM_RANGE(0x300000, 0x30ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
- AM_RANGE(0x320000, 0x32000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
- AM_RANGE(0x400000, 0x40bfff) AM_RAM AM_SHARE("spritemap") /* sprite tilemaps */
- AM_RANGE(0x40c000, 0x40dfff) AM_RAM AM_SHARE("spriteram") /* sprite ram */
- AM_RANGE(0x40fff0, 0x40fff1) AM_WRITENOP /* ?? (writes 0x8000 and 0 alternately - Wgp2 just 0) */
- AM_RANGE(0x500000, 0x501fff) AM_RAM /* unknown/unused */
- AM_RANGE(0x502000, 0x517fff) AM_RAM_WRITE(pivram_word_w) AM_SHARE("pivram") /* piv tilemaps */
- AM_RANGE(0x520000, 0x52001f) AM_RAM_WRITE(piv_ctrl_word_w) AM_SHARE("piv_ctrlram")
- AM_RANGE(0x600000, 0x600003) AM_WRITE(rotate_port_w) /* rotation control ? */
- AM_RANGE(0x700000, 0x701fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(wgp_state::cpu2_map) /* LAN areas not mapped... */
- AM_RANGE(0x000000, 0x03ffff) AM_ROM
- AM_RANGE(0x100000, 0x103fff) AM_RAM
- AM_RANGE(0x140000, 0x143fff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0x200000, 0x200001) AM_DEVWRITE8("tc0140syt", tc0140syt_device, master_port_w, 0x00ff)
- AM_RANGE(0x200002, 0x200003) AM_DEVREADWRITE8("tc0140syt", tc0140syt_device, master_comm_r, master_comm_w, 0x00ff)
+void wgp_state::main_map(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom();
+ map(0x100000, 0x10ffff).ram(); /* main CPUA ram */
+ map(0x140000, 0x143fff).ram().share("sharedram");
+ map(0x180000, 0x18000f).rw(m_tc0220ioc, FUNC(tc0220ioc_device::read), FUNC(tc0220ioc_device::write)).umask16(0xff00);
+ map(0x1c0000, 0x1c0001).w(this, FUNC(wgp_state::cpua_ctrl_w));
+ map(0x200000, 0x20000f).rw(this, FUNC(wgp_state::adinput_r), FUNC(wgp_state::adinput_w));
+ map(0x300000, 0x30ffff).rw(m_tc0100scn, FUNC(tc0100scn_device::word_r), FUNC(tc0100scn_device::word_w)); /* tilemaps */
+ map(0x320000, 0x32000f).rw(m_tc0100scn, FUNC(tc0100scn_device::ctrl_word_r), FUNC(tc0100scn_device::ctrl_word_w));
+ map(0x400000, 0x40bfff).ram().share("spritemap"); /* sprite tilemaps */
+ map(0x40c000, 0x40dfff).ram().share("spriteram"); /* sprite ram */
+ map(0x40fff0, 0x40fff1).nopw(); /* ?? (writes 0x8000 and 0 alternately - Wgp2 just 0) */
+ map(0x500000, 0x501fff).ram(); /* unknown/unused */
+ map(0x502000, 0x517fff).ram().w(this, FUNC(wgp_state::pivram_word_w)).share("pivram"); /* piv tilemaps */
+ map(0x520000, 0x52001f).ram().w(this, FUNC(wgp_state::piv_ctrl_word_w)).share("piv_ctrlram");
+ map(0x600000, 0x600003).w(this, FUNC(wgp_state::rotate_port_w)); /* rotation control ? */
+ map(0x700000, 0x701fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette");
+}
+
+void wgp_state::cpu2_map(address_map &map)
+{ /* LAN areas not mapped... */
+ map(0x000000, 0x03ffff).rom();
+ map(0x100000, 0x103fff).ram();
+ map(0x140000, 0x143fff).ram().share("sharedram");
+ map(0x200001, 0x200001).w(m_tc0140syt, FUNC(tc0140syt_device::master_port_w));
+ map(0x200003, 0x200003).rw(m_tc0140syt, FUNC(tc0140syt_device::master_comm_r), FUNC(tc0140syt_device::master_comm_w));
// AM_RANGE(0x380000, 0x383fff) AM_READONLY // LAN RAM
// AM_RANGE(0x380000, 0x383fff) AM_WRITEONLY // LAN RAM
- AM_RANGE(0x380000, 0x380001) AM_READ(lan_status_r) // ??
+ map(0x380000, 0x380001).r(this, FUNC(wgp_state::lan_status_r)); // ??
// a lan input area is read somewhere above the status
// (make the status return 0 and log)...
-ADDRESS_MAP_END
+}
/***************************************************************************/
-ADDRESS_MAP_START(wgp_state::z80_sound_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("z80bank")
- AM_RANGE(0xc000, 0xdfff) AM_RAM
- AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ymsnd", ym2610_device, read, write)
- AM_RANGE(0xe200, 0xe200) AM_READNOP AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w)
- AM_RANGE(0xe201, 0xe201) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r, slave_comm_w)
- AM_RANGE(0xe400, 0xe403) AM_WRITENOP /* pan */
- AM_RANGE(0xea00, 0xea00) AM_READNOP
- AM_RANGE(0xee00, 0xee00) AM_WRITENOP /* ? */
- AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* ? */
- AM_RANGE(0xf200, 0xf200) AM_WRITE(sound_bankswitch_w)
-ADDRESS_MAP_END
+void wgp_state::z80_sound_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x7fff).bankr("z80bank");
+ map(0xc000, 0xdfff).ram();
+ map(0xe000, 0xe003).rw("ymsnd", FUNC(ym2610_device::read), FUNC(ym2610_device::write));
+ map(0xe200, 0xe200).nopr().w(m_tc0140syt, FUNC(tc0140syt_device::slave_port_w));
+ map(0xe201, 0xe201).rw(m_tc0140syt, FUNC(tc0140syt_device::slave_comm_r), FUNC(tc0140syt_device::slave_comm_w));
+ map(0xe400, 0xe403).nopw(); /* pan */
+ map(0xea00, 0xea00).nopr();
+ map(0xee00, 0xee00).nopw(); /* ? */
+ map(0xf000, 0xf000).nopw(); /* ? */
+ map(0xf200, 0xf200).w(this, FUNC(wgp_state::sound_bankswitch_w));
+}
/***********************************************************