diff options
Diffstat (limited to 'src/mame/drivers/galaxia.cpp')
-rw-r--r-- | src/mame/drivers/galaxia.cpp | 74 |
1 files changed, 39 insertions, 35 deletions
diff --git a/src/mame/drivers/galaxia.cpp b/src/mame/drivers/galaxia.cpp index 05f09383f48..4cc2db75004 100644 --- a/src/mame/drivers/galaxia.cpp +++ b/src/mame/drivers/galaxia.cpp @@ -131,41 +131,45 @@ READ8_MEMBER(galaxia_state::galaxia_collision_clear) return 0xff; } -ADDRESS_MAP_START(galaxia_state::galaxia_mem_map) - AM_RANGE(0x0000, 0x13ff) AM_ROM - AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_RAM AM_SHARE("bullet_ram") - AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_0", s2636_device, read_data, write_data) - AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_1", s2636_device, read_data, write_data) - AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_2", s2636_device, read_data, write_data) - AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_READ(cvs_video_or_color_ram_r) AM_WRITE(galaxia_video_w) AM_SHARE("video_ram") - AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM - AM_RANGE(0x2000, 0x33ff) AM_ROM - AM_RANGE(0x7214, 0x7214) AM_READ_PORT("IN0") -ADDRESS_MAP_END - -ADDRESS_MAP_START(galaxia_state::astrowar_mem_map) - AM_RANGE(0x0000, 0x13ff) AM_ROM - AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_RAM - AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_0", s2636_device, read_data, write_data) - AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_READ(cvs_video_or_color_ram_r) AM_WRITE(galaxia_video_w) AM_SHARE("video_ram") - AM_RANGE(0x1c00, 0x1cff) AM_MIRROR(0x6000) AM_RAM AM_SHARE("bullet_ram") - AM_RANGE(0x2000, 0x33ff) AM_ROM -ADDRESS_MAP_END - -ADDRESS_MAP_START(galaxia_state::galaxia_io_map) - ADDRESS_MAP_UNMAP_HIGH - AM_RANGE(0x00, 0x00) AM_WRITE(galaxia_scroll_w) AM_READ_PORT("IN0") - AM_RANGE(0x02, 0x02) AM_READ_PORT("IN1") - AM_RANGE(0x05, 0x05) AM_READNOP - AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW0") - AM_RANGE(0x07, 0x07) AM_READ_PORT("DSW1") - AM_RANGE(0xac, 0xac) AM_READNOP -ADDRESS_MAP_END - -ADDRESS_MAP_START(galaxia_state::galaxia_data_map) - AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READWRITE(galaxia_collision_r, galaxia_ctrlport_w) - AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(galaxia_collision_clear, galaxia_dataport_w) -ADDRESS_MAP_END +void galaxia_state::galaxia_mem_map(address_map &map) +{ + map(0x0000, 0x13ff).rom(); + map(0x1400, 0x14ff).mirror(0x6000).ram().share("bullet_ram"); + map(0x1500, 0x15ff).mirror(0x6000).rw(m_s2636_0, FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); + map(0x1600, 0x16ff).mirror(0x6000).rw(m_s2636_1, FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); + map(0x1700, 0x17ff).mirror(0x6000).rw(m_s2636_2, FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); + map(0x1800, 0x1bff).mirror(0x6000).r(this, FUNC(galaxia_state::cvs_video_or_color_ram_r)).w(this, FUNC(galaxia_state::galaxia_video_w)).share("video_ram"); + map(0x1c00, 0x1fff).mirror(0x6000).ram(); + map(0x2000, 0x33ff).rom(); + map(0x7214, 0x7214).portr("IN0"); +} + +void galaxia_state::astrowar_mem_map(address_map &map) +{ + map(0x0000, 0x13ff).rom(); + map(0x1400, 0x14ff).mirror(0x6000).ram(); + map(0x1500, 0x15ff).mirror(0x6000).rw(m_s2636_0, FUNC(s2636_device::read_data), FUNC(s2636_device::write_data)); + map(0x1800, 0x1bff).mirror(0x6000).r(this, FUNC(galaxia_state::cvs_video_or_color_ram_r)).w(this, FUNC(galaxia_state::galaxia_video_w)).share("video_ram"); + map(0x1c00, 0x1cff).mirror(0x6000).ram().share("bullet_ram"); + map(0x2000, 0x33ff).rom(); +} + +void galaxia_state::galaxia_io_map(address_map &map) +{ + map.unmap_value_high(); + map(0x00, 0x00).w(this, FUNC(galaxia_state::galaxia_scroll_w)).portr("IN0"); + map(0x02, 0x02).portr("IN1"); + map(0x05, 0x05).nopr(); + map(0x06, 0x06).portr("DSW0"); + map(0x07, 0x07).portr("DSW1"); + map(0xac, 0xac).nopr(); +} + +void galaxia_state::galaxia_data_map(address_map &map) +{ + map(S2650_CTRL_PORT, S2650_CTRL_PORT).rw(this, FUNC(galaxia_state::galaxia_collision_r), FUNC(galaxia_state::galaxia_ctrlport_w)); + map(S2650_DATA_PORT, S2650_DATA_PORT).rw(this, FUNC(galaxia_state::galaxia_collision_clear), FUNC(galaxia_state::galaxia_dataport_w)); +} /*************************************************************************** |