summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/namcos11.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/namcos11.cpp')
-rw-r--r--src/mame/drivers/namcos11.cpp144
1 files changed, 75 insertions, 69 deletions
diff --git a/src/mame/drivers/namcos11.cpp b/src/mame/drivers/namcos11.cpp
index ed257fda765..7a33f11b913 100644
--- a/src/mame/drivers/namcos11.cpp
+++ b/src/mame/drivers/namcos11.cpp
@@ -464,75 +464,81 @@ WRITE16_MEMBER( namcos11_state::c76_shared_w )
COMBINE_DATA( &m_sharedram.target()[ offset ] );
}
-ADDRESS_MAP_START(namcos11_state::namcos11_map)
- AM_RANGE(0x1fa04000, 0x1fa0ffff) AM_READWRITE16(c76_shared_r, c76_shared_w, 0xffffffff) /* shared ram with C76 */
- AM_RANGE(0x1fa20000, 0x1fa2001f) AM_DEVREADWRITE16("keycus", ns11_keycus_device, read, write, 0xffffffff)
- AM_RANGE(0x1fa30000, 0x1fa30fff) AM_DEVREADWRITE8("at28c16", at28c16_device, read, write, 0x00ff00ff) /* eeprom */
- AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITENOP /* ?? */
- AM_RANGE(0x1fbf6000, 0x1fbf6003) AM_WRITENOP /* ?? */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(namcos11_state::rom8_map)
- AM_IMPORT_FROM(namcos11_map)
-
- AM_RANGE(0x1f000000, 0x1f0fffff) AM_ROMBANK("bank1")
- AM_RANGE(0x1f100000, 0x1f1fffff) AM_ROMBANK("bank2")
- AM_RANGE(0x1f200000, 0x1f2fffff) AM_ROMBANK("bank3")
- AM_RANGE(0x1f300000, 0x1f3fffff) AM_ROMBANK("bank4")
- AM_RANGE(0x1f400000, 0x1f4fffff) AM_ROMBANK("bank5")
- AM_RANGE(0x1f500000, 0x1f5fffff) AM_ROMBANK("bank6")
- AM_RANGE(0x1f600000, 0x1f6fffff) AM_ROMBANK("bank7")
- AM_RANGE(0x1f700000, 0x1f7fffff) AM_ROMBANK("bank8")
- AM_RANGE(0x1fa10020, 0x1fa1002f) AM_WRITE16(rom8_w, 0xffffffff)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(namcos11_state::rom8_64_map)
- AM_IMPORT_FROM(namcos11_map)
-
- AM_RANGE(0x1f000000, 0x1f0fffff) AM_ROMBANK("bank1")
- AM_RANGE(0x1f100000, 0x1f1fffff) AM_ROMBANK("bank2")
- AM_RANGE(0x1f200000, 0x1f2fffff) AM_ROMBANK("bank3")
- AM_RANGE(0x1f300000, 0x1f3fffff) AM_ROMBANK("bank4")
- AM_RANGE(0x1f400000, 0x1f4fffff) AM_ROMBANK("bank5")
- AM_RANGE(0x1f500000, 0x1f5fffff) AM_ROMBANK("bank6")
- AM_RANGE(0x1f600000, 0x1f6fffff) AM_ROMBANK("bank7")
- AM_RANGE(0x1f700000, 0x1f7fffff) AM_ROMBANK("bank8")
- AM_RANGE(0x1f080000, 0x1f080003) AM_WRITE16(rom8_64_upper_w, 0xffffffff)
- AM_RANGE(0x1fa10020, 0x1fa1002f) AM_READNOP AM_WRITE16(rom8_64_w, 0xffffffff)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(namcos11_state::ptblank2ua_map)
- AM_IMPORT_FROM(rom8_64_map)
-
- AM_RANGE(0x1f780000, 0x1f78000f) AM_READ16(lightgun_r, 0xffffffff)
- AM_RANGE(0x1f788000, 0x1f788003) AM_WRITE16(lightgun_w, 0xffffffff)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(namcos11_state::c76_map)
- AM_RANGE(0x002000, 0x002fff) AM_DEVREADWRITE("c352", c352_device, read, write)
- AM_RANGE(0x001000, 0x001001) AM_READ_PORT("PLAYER4")
- AM_RANGE(0x001002, 0x001003) AM_READ_PORT("SWITCH")
- AM_RANGE(0x001004, 0x001005) AM_READ_PORT("PLAYER1")
- AM_RANGE(0x001006, 0x001007) AM_READ_PORT("PLAYER2")
- AM_RANGE(0x004000, 0x00bfff) AM_RAM AM_SHARE("sharedram")
- AM_RANGE(0x080000, 0x0fffff) AM_ROM AM_REGION("c76", 0)
- AM_RANGE(0x200000, 0x27ffff) AM_ROM AM_REGION("c76", 0)
- AM_RANGE(0x280000, 0x2fffff) AM_ROM AM_REGION("c76", 0)
- AM_RANGE(0x300000, 0x300001) AM_WRITENOP
- AM_RANGE(0x301000, 0x301001) AM_WRITENOP
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(namcos11_state::c76_io_map)
- AM_RANGE(M37710_ADC0_H, M37710_ADC7_H) AM_READNOP
- AM_RANGE(M37710_ADC0_L, M37710_ADC0_L) AM_READ_PORT("ADC0")
- AM_RANGE(M37710_ADC1_L, M37710_ADC1_L) AM_READ_PORT("ADC1")
- AM_RANGE(M37710_ADC2_L, M37710_ADC2_L) AM_READ_PORT("ADC2")
- AM_RANGE(M37710_ADC3_L, M37710_ADC3_L) AM_READ_PORT("ADC3")
- AM_RANGE(M37710_ADC4_L, M37710_ADC4_L) AM_READ_PORT("ADC4")
- AM_RANGE(M37710_ADC5_L, M37710_ADC5_L) AM_READ_PORT("ADC5")
- AM_RANGE(M37710_ADC6_L, M37710_ADC6_L) AM_READ_PORT("ADC6")
- AM_RANGE(M37710_ADC7_L, M37710_ADC7_L) AM_READ_PORT("ADC7")
-ADDRESS_MAP_END
+void namcos11_state::namcos11_map(address_map &map)
+{
+ map(0x1fa04000, 0x1fa0ffff).rw(this, FUNC(namcos11_state::c76_shared_r), FUNC(namcos11_state::c76_shared_w)); /* shared ram with C76 */
+ map(0x1fa20000, 0x1fa2001f).rw("keycus", FUNC(ns11_keycus_device::read), FUNC(ns11_keycus_device::write));
+ map(0x1fa30000, 0x1fa30fff).rw("at28c16", FUNC(at28c16_device::read), FUNC(at28c16_device::write)).umask32(0x00ff00ff); /* eeprom */
+ map(0x1fb00000, 0x1fb00003).nopw(); /* ?? */
+ map(0x1fbf6000, 0x1fbf6003).nopw(); /* ?? */
+}
+
+void namcos11_state::rom8_map(address_map &map)
+{
+ namcos11_map(map);
+
+ map(0x1f000000, 0x1f0fffff).bankr("bank1");
+ map(0x1f100000, 0x1f1fffff).bankr("bank2");
+ map(0x1f200000, 0x1f2fffff).bankr("bank3");
+ map(0x1f300000, 0x1f3fffff).bankr("bank4");
+ map(0x1f400000, 0x1f4fffff).bankr("bank5");
+ map(0x1f500000, 0x1f5fffff).bankr("bank6");
+ map(0x1f600000, 0x1f6fffff).bankr("bank7");
+ map(0x1f700000, 0x1f7fffff).bankr("bank8");
+ map(0x1fa10020, 0x1fa1002f).w(this, FUNC(namcos11_state::rom8_w));
+}
+
+void namcos11_state::rom8_64_map(address_map &map)
+{
+ namcos11_map(map);
+
+ map(0x1f000000, 0x1f0fffff).bankr("bank1");
+ map(0x1f100000, 0x1f1fffff).bankr("bank2");
+ map(0x1f200000, 0x1f2fffff).bankr("bank3");
+ map(0x1f300000, 0x1f3fffff).bankr("bank4");
+ map(0x1f400000, 0x1f4fffff).bankr("bank5");
+ map(0x1f500000, 0x1f5fffff).bankr("bank6");
+ map(0x1f600000, 0x1f6fffff).bankr("bank7");
+ map(0x1f700000, 0x1f7fffff).bankr("bank8");
+ map(0x1f080000, 0x1f080003).w(this, FUNC(namcos11_state::rom8_64_upper_w));
+ map(0x1fa10020, 0x1fa1002f).nopr().w(this, FUNC(namcos11_state::rom8_64_w));
+}
+
+void namcos11_state::ptblank2ua_map(address_map &map)
+{
+ rom8_64_map(map);
+
+ map(0x1f780000, 0x1f78000f).r(this, FUNC(namcos11_state::lightgun_r));
+ map(0x1f788000, 0x1f788003).w(this, FUNC(namcos11_state::lightgun_w));
+}
+
+void namcos11_state::c76_map(address_map &map)
+{
+ map(0x002000, 0x002fff).rw("c352", FUNC(c352_device::read), FUNC(c352_device::write));
+ map(0x001000, 0x001001).portr("PLAYER4");
+ map(0x001002, 0x001003).portr("SWITCH");
+ map(0x001004, 0x001005).portr("PLAYER1");
+ map(0x001006, 0x001007).portr("PLAYER2");
+ map(0x004000, 0x00bfff).ram().share("sharedram");
+ map(0x080000, 0x0fffff).rom().region("c76", 0);
+ map(0x200000, 0x27ffff).rom().region("c76", 0);
+ map(0x280000, 0x2fffff).rom().region("c76", 0);
+ map(0x300000, 0x300001).nopw();
+ map(0x301000, 0x301001).nopw();
+}
+
+void namcos11_state::c76_io_map(address_map &map)
+{
+ map(M37710_ADC0_H, M37710_ADC7_H).nopr();
+ map(M37710_ADC0_L, M37710_ADC0_L).portr("ADC0");
+ map(M37710_ADC1_L, M37710_ADC1_L).portr("ADC1");
+ map(M37710_ADC2_L, M37710_ADC2_L).portr("ADC2");
+ map(M37710_ADC3_L, M37710_ADC3_L).portr("ADC3");
+ map(M37710_ADC4_L, M37710_ADC4_L).portr("ADC4");
+ map(M37710_ADC5_L, M37710_ADC5_L).portr("ADC5");
+ map(M37710_ADC6_L, M37710_ADC6_L).portr("ADC6");
+ map(M37710_ADC7_L, M37710_ADC7_L).portr("ADC7");
+}
READ16_MEMBER(namcos11_state::c76_speedup_r)
{