diff options
Diffstat (limited to 'src/mame/drivers/pacland.cpp')
-rw-r--r-- | src/mame/drivers/pacland.cpp | 70 |
1 files changed, 36 insertions, 34 deletions
diff --git a/src/mame/drivers/pacland.cpp b/src/mame/drivers/pacland.cpp index 8ada3ecf98e..643bf6226ae 100644 --- a/src/mame/drivers/pacland.cpp +++ b/src/mame/drivers/pacland.cpp @@ -194,7 +194,6 @@ Notes: #include "includes/pacland.h" #include "cpu/m6809/m6809.h" -#include "cpu/m6800/m6801.h" #include "machine/watchdog.h" #include "speaker.h" @@ -260,33 +259,35 @@ WRITE8_MEMBER(pacland_state::irq_2_ctrl_w) -ADDRESS_MAP_START(pacland_state::main_map) - AM_RANGE(0x0000, 0x0fff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram") - AM_RANGE(0x1000, 0x1fff) AM_RAM_WRITE(videoram2_w) AM_SHARE("videoram2") - AM_RANGE(0x2000, 0x37ff) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0x3800, 0x3801) AM_WRITE(scroll0_w) - AM_RANGE(0x3a00, 0x3a01) AM_WRITE(scroll1_w) - AM_RANGE(0x3c00, 0x3c00) AM_WRITE(bankswitch_w) - AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1") - AM_RANGE(0x6800, 0x6bff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */ - AM_RANGE(0x7000, 0x7fff) AM_WRITE(irq_1_ctrl_w) - AM_RANGE(0x7800, 0x7fff) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) - AM_RANGE(0x8000, 0xffff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_WRITE(subreset_w) - AM_RANGE(0x9000, 0x9fff) AM_WRITE(flipscreen_w) -ADDRESS_MAP_END - -ADDRESS_MAP_START(pacland_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 - AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */ - AM_RANGE(0x2000, 0x3fff) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w) /* watchdog? */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(irq_2_ctrl_w) - AM_RANGE(0x8000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc7ff) AM_RAM - AM_RANGE(0xd000, 0xd003) AM_READ(input_r) - AM_RANGE(0xf000, 0xffff) AM_ROM -ADDRESS_MAP_END +void pacland_state::main_map(address_map &map) +{ + map(0x0000, 0x0fff).ram().w(this, FUNC(pacland_state::videoram_w)).share("videoram"); + map(0x1000, 0x1fff).ram().w(this, FUNC(pacland_state::videoram2_w)).share("videoram2"); + map(0x2000, 0x37ff).ram().share("spriteram"); + map(0x3800, 0x3801).w(this, FUNC(pacland_state::scroll0_w)); + map(0x3a00, 0x3a01).w(this, FUNC(pacland_state::scroll1_w)); + map(0x3c00, 0x3c00).w(this, FUNC(pacland_state::bankswitch_w)); + map(0x4000, 0x5fff).bankr("bank1"); + map(0x6800, 0x6bff).rw(m_cus30, FUNC(namco_cus30_device::namcos1_cus30_r), FUNC(namco_cus30_device::namcos1_cus30_w)); /* PSG device, shared RAM */ + map(0x7000, 0x7fff).w(this, FUNC(pacland_state::irq_1_ctrl_w)); + map(0x7800, 0x7fff).r("watchdog", FUNC(watchdog_timer_device::reset_r)); + map(0x8000, 0xffff).rom(); + map(0x8000, 0x8fff).w(this, FUNC(pacland_state::subreset_w)); + map(0x9000, 0x9fff).w(this, FUNC(pacland_state::flipscreen_w)); +} + +void pacland_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(); + map(0x1000, 0x13ff).rw(m_cus30, FUNC(namco_cus30_device::namcos1_cus30_r), FUNC(namco_cus30_device::namcos1_cus30_w)); /* PSG device, shared RAM */ + map(0x2000, 0x3fff).w("watchdog", FUNC(watchdog_timer_device::reset_w)); /* watchdog? */ + map(0x4000, 0x7fff).w(this, FUNC(pacland_state::irq_2_ctrl_w)); + map(0x8000, 0xbfff).rom(); + map(0xc000, 0xc7ff).ram(); + map(0xd000, 0xd003).r(this, FUNC(pacland_state::input_r)); + map(0xf000, 0xffff).rom(); +} READ8_MEMBER(pacland_state::readFF) @@ -294,12 +295,13 @@ READ8_MEMBER(pacland_state::readFF) return 0xff; } -ADDRESS_MAP_START(pacland_state::mcu_port_map) - AM_RANGE(M6801_PORT1, M6801_PORT1) AM_READ_PORT("IN2") - AM_RANGE(M6801_PORT1, M6801_PORT1) AM_WRITE(coin_w) - AM_RANGE(M6801_PORT2, M6801_PORT2) AM_READ(readFF) /* leds won't work otherwise */ - AM_RANGE(M6801_PORT2, M6801_PORT2) AM_WRITE(led_w) -ADDRESS_MAP_END +void pacland_state::mcu_port_map(address_map &map) +{ + map(M6801_PORT1, M6801_PORT1).portr("IN2"); + map(M6801_PORT1, M6801_PORT1).w(this, FUNC(pacland_state::coin_w)); + map(M6801_PORT2, M6801_PORT2).r(this, FUNC(pacland_state::readFF)); /* leds won't work otherwise */ + map(M6801_PORT2, M6801_PORT2).w(this, FUNC(pacland_state::led_w)); +} |