summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/namcos1.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/namcos1.cpp')
-rw-r--r--src/mame/drivers/namcos1.cpp117
1 files changed, 61 insertions, 56 deletions
diff --git a/src/mame/drivers/namcos1.cpp b/src/mame/drivers/namcos1.cpp
index d4085dacc2a..2bb8847bde0 100644
--- a/src/mame/drivers/namcos1.cpp
+++ b/src/mame/drivers/namcos1.cpp
@@ -339,7 +339,6 @@ C - uses sub board with support for player 3 and 4 controls
#include "includes/namcos1.h"
#include "cpu/m6809/m6809.h"
-#include "cpu/m6800/m6801.h"
#include "machine/nvram.h"
#include "sound/volt_reg.h"
#include "sound/ym2151.h"
@@ -394,61 +393,67 @@ WRITE8_MEMBER(namcos1_state::dac_gain_w)
-ADDRESS_MAP_START(namcos1_state::main_map)
- AM_RANGE(0x0000, 0xffff) AM_DEVREADWRITE("c117", namco_c117_device, main_r, main_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(namcos1_state::sub_map)
- AM_RANGE(0x0000, 0xffff) AM_DEVREADWRITE("c117", namco_c117_device, sub_r, sub_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(namcos1_state::virtual_map)
- AM_RANGE(0x2c0000, 0x2c1fff) AM_WRITE(_3dcs_w)
- AM_RANGE(0x2e0000, 0x2e7fff) AM_DEVREADWRITE("c116", namco_c116_device, read, write)
- AM_RANGE(0x2f0000, 0x2f7fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x2f8000, 0x2f9fff) AM_READWRITE(no_key_r, no_key_w)
- AM_RANGE(0x2fc000, 0x2fcfff) AM_RAM_WRITE(spriteram_w) AM_SHARE("spriteram")
- AM_RANGE(0x2fd000, 0x2fd01f) AM_RAM AM_SHARE("pfcontrol") AM_MIRROR(0xfe0)
- AM_RANGE(0x2fe000, 0x2fe3ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) AM_MIRROR(0xc00) /* PSG ( Shared ) */
- AM_RANGE(0x2ff000, 0x2ff7ff) AM_RAM AM_SHARE("triram") AM_MIRROR(0x800)
- AM_RANGE(0x300000, 0x307fff) AM_RAM
- AM_RANGE(0x400000, 0x7fffff) AM_ROM AM_REGION("user1", 0)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(namcos1_state::sound_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROMBANK("soundbank") /* Banked ROMs */
- AM_RANGE(0x4000, 0x4001) AM_DEVREADWRITE("ymsnd", ym2151_device, status_r, write)
- AM_RANGE(0x5000, 0x53ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) AM_MIRROR(0x400) /* PSG ( Shared ) */
- AM_RANGE(0x7000, 0x77ff) AM_RAM AM_SHARE("triram")
- AM_RANGE(0x8000, 0x9fff) AM_RAM /* Sound RAM 3 */
- AM_RANGE(0xc000, 0xc001) AM_WRITE(sound_bankswitch_w) /* ROM bank selector */
- AM_RANGE(0xd001, 0xd001) AM_DEVWRITE("c117", namco_c117_device, sound_watchdog_w)
- AM_RANGE(0xe000, 0xe000) AM_WRITE(audiocpu_irq_ack_w)
- AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("audiocpu", 0)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(namcos1_state::mcu_map)
- AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE("mcu", hd63701_cpu_device, m6801_io_r, m6801_io_w)
- AM_RANGE(0x0080, 0x00ff) AM_RAM /* built in RAM */
- AM_RANGE(0x1000, 0x1003) AM_READ(dsw_r)
- AM_RANGE(0x1400, 0x1400) AM_READ_PORT("CONTROL0")
- AM_RANGE(0x1401, 0x1401) AM_READ_PORT("CONTROL1")
- AM_RANGE(0x4000, 0xbfff) AM_ROMBANK("mcubank") /* banked external ROM */
- AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("triram")
- AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("nvram") /* EEPROM */
- AM_RANGE(0xd000, 0xd000) AM_DEVWRITE("dac0", dac_byte_interface, write)
- AM_RANGE(0xd400, 0xd400) AM_DEVWRITE("dac1", dac_byte_interface, write)
- AM_RANGE(0xd800, 0xd800) AM_WRITE(mcu_bankswitch_w) /* ROM bank selector */
- AM_RANGE(0xf000, 0xf000) AM_WRITE(mcu_irq_ack_w)
- AM_RANGE(0xf000, 0xffff) AM_ROM AM_REGION("mcu", 0) /* internal ROM */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(namcos1_state::mcu_port_map)
- AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("COIN") AM_WRITE(coin_w)
- AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READNOP AM_WRITE(dac_gain_w)
-ADDRESS_MAP_END
+void namcos1_state::main_map(address_map &map)
+{
+ map(0x0000, 0xffff).rw(m_c117, FUNC(namco_c117_device::main_r), FUNC(namco_c117_device::main_w));
+}
+
+void namcos1_state::sub_map(address_map &map)
+{
+ map(0x0000, 0xffff).rw(m_c117, FUNC(namco_c117_device::sub_r), FUNC(namco_c117_device::sub_w));
+}
+
+void namcos1_state::virtual_map(address_map &map)
+{
+ map(0x2c0000, 0x2c1fff).w(this, FUNC(namcos1_state::_3dcs_w));
+ map(0x2e0000, 0x2e7fff).rw(m_c116, FUNC(namco_c116_device::read), FUNC(namco_c116_device::write));
+ map(0x2f0000, 0x2f7fff).ram().w(this, FUNC(namcos1_state::videoram_w)).share("videoram");
+ map(0x2f8000, 0x2f9fff).rw(this, FUNC(namcos1_state::no_key_r), FUNC(namcos1_state::no_key_w));
+ map(0x2fc000, 0x2fcfff).ram().w(this, FUNC(namcos1_state::spriteram_w)).share("spriteram");
+ map(0x2fd000, 0x2fd01f).ram().share("pfcontrol").mirror(0xfe0);
+ map(0x2fe000, 0x2fe3ff).rw("namco", FUNC(namco_cus30_device::namcos1_cus30_r), FUNC(namco_cus30_device::namcos1_cus30_w)).mirror(0xc00); /* PSG ( Shared ) */
+ map(0x2ff000, 0x2ff7ff).ram().share("triram").mirror(0x800);
+ map(0x300000, 0x307fff).ram();
+ map(0x400000, 0x7fffff).rom().region("user1", 0);
+}
+
+
+void namcos1_state::sound_map(address_map &map)
+{
+ map(0x0000, 0x3fff).bankr("soundbank"); /* Banked ROMs */
+ map(0x4000, 0x4001).rw("ymsnd", FUNC(ym2151_device::status_r), FUNC(ym2151_device::write));
+ map(0x5000, 0x53ff).rw("namco", FUNC(namco_cus30_device::namcos1_cus30_r), FUNC(namco_cus30_device::namcos1_cus30_w)).mirror(0x400); /* PSG ( Shared ) */
+ map(0x7000, 0x77ff).ram().share("triram");
+ map(0x8000, 0x9fff).ram(); /* Sound RAM 3 */
+ map(0xc000, 0xc001).w(this, FUNC(namcos1_state::sound_bankswitch_w)); /* ROM bank selector */
+ map(0xd001, 0xd001).w(m_c117, FUNC(namco_c117_device::sound_watchdog_w));
+ map(0xe000, 0xe000).w(this, FUNC(namcos1_state::audiocpu_irq_ack_w));
+ map(0xc000, 0xffff).rom().region("audiocpu", 0);
+}
+
+
+void namcos1_state::mcu_map(address_map &map)
+{
+ map(0x0000, 0x001f).rw(m_mcu, FUNC(hd63701_cpu_device::m6801_io_r), FUNC(hd63701_cpu_device::m6801_io_w));
+ map(0x0080, 0x00ff).ram(); /* built in RAM */
+ map(0x1000, 0x1003).r(this, FUNC(namcos1_state::dsw_r));
+ map(0x1400, 0x1400).portr("CONTROL0");
+ map(0x1401, 0x1401).portr("CONTROL1");
+ map(0x4000, 0xbfff).bankr("mcubank"); /* banked external ROM */
+ map(0xc000, 0xc7ff).ram().share("triram");
+ map(0xc800, 0xcfff).ram().share("nvram"); /* EEPROM */
+ map(0xd000, 0xd000).w(m_dac0, FUNC(dac_byte_interface::write));
+ map(0xd400, 0xd400).w(m_dac1, FUNC(dac_byte_interface::write));
+ map(0xd800, 0xd800).w(this, FUNC(namcos1_state::mcu_bankswitch_w)); /* ROM bank selector */
+ map(0xf000, 0xf000).w(this, FUNC(namcos1_state::mcu_irq_ack_w));
+ map(0xf000, 0xffff).rom().region("mcu", 0); /* internal ROM */
+}
+
+void namcos1_state::mcu_port_map(address_map &map)
+{
+ map(M6801_PORT1, M6801_PORT1).portr("COIN").w(this, FUNC(namcos1_state::coin_w));
+ map(M6801_PORT2, M6801_PORT2).nopr().w(this, FUNC(namcos1_state::dac_gain_w));
+}
// #define PRIORITY_EASINESS_TO_PLAY