summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/quasar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/quasar.cpp')
-rw-r--r--src/mame/drivers/quasar.cpp63
1 files changed, 34 insertions, 29 deletions
diff --git a/src/mame/drivers/quasar.cpp b/src/mame/drivers/quasar.cpp
index 11d091150a7..9e878e50a12 100644
--- a/src/mame/drivers/quasar.cpp
+++ b/src/mame/drivers/quasar.cpp
@@ -110,28 +110,31 @@ READ_LINE_MEMBER(quasar_state::audio_t1_r)
// memory map taken from the manual
-ADDRESS_MAP_START(quasar_state::quasar)
- AM_RANGE(0x0000, 0x13ff) AM_ROM
- AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_READ(cvs_bullet_ram_or_palette_r) AM_WRITE(quasar_bullet_w) AM_SHARE("bullet_ram")
- AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_s2636_0_or_character_ram_r, cvs_s2636_0_or_character_ram_w)
- AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_s2636_1_or_character_ram_r, cvs_s2636_1_or_character_ram_w)
- AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_READWRITE(cvs_s2636_2_or_character_ram_r, cvs_s2636_2_or_character_ram_w)
- AM_RANGE(0x1800, 0x1bff) AM_MIRROR(0x6000) AM_READ(cvs_video_or_color_ram_r) AM_WRITE(quasar_video_w) AM_SHARE("video_ram")
- AM_RANGE(0x1c00, 0x1fff) AM_MIRROR(0x6000) AM_RAM
- AM_RANGE(0x2000, 0x33ff) AM_ROM
- AM_RANGE(0x4000, 0x53ff) AM_ROM
- AM_RANGE(0x6000, 0x73ff) AM_ROM
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(quasar_state::quasar_io)
- AM_RANGE(0x00, 0x03) AM_READWRITE(quasar_IO_r, video_page_select_w)
- AM_RANGE(0x08, 0x0b) AM_WRITE(io_page_select_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(quasar_state::quasar_data)
- AM_RANGE(S2650_CTRL_PORT, S2650_CTRL_PORT) AM_READ(cvs_collision_r) AM_WRITENOP
- AM_RANGE(S2650_DATA_PORT, S2650_DATA_PORT) AM_READWRITE(cvs_collision_clear, quasar_sh_command_w)
-ADDRESS_MAP_END
+void quasar_state::quasar(address_map &map)
+{
+ map(0x0000, 0x13ff).rom();
+ map(0x1400, 0x14ff).mirror(0x6000).r(this, FUNC(quasar_state::cvs_bullet_ram_or_palette_r)).w(this, FUNC(quasar_state::quasar_bullet_w)).share("bullet_ram");
+ map(0x1500, 0x15ff).mirror(0x6000).rw(this, FUNC(quasar_state::cvs_s2636_0_or_character_ram_r), FUNC(quasar_state::cvs_s2636_0_or_character_ram_w));
+ map(0x1600, 0x16ff).mirror(0x6000).rw(this, FUNC(quasar_state::cvs_s2636_1_or_character_ram_r), FUNC(quasar_state::cvs_s2636_1_or_character_ram_w));
+ map(0x1700, 0x17ff).mirror(0x6000).rw(this, FUNC(quasar_state::cvs_s2636_2_or_character_ram_r), FUNC(quasar_state::cvs_s2636_2_or_character_ram_w));
+ map(0x1800, 0x1bff).mirror(0x6000).r(this, FUNC(quasar_state::cvs_video_or_color_ram_r)).w(this, FUNC(quasar_state::quasar_video_w)).share("video_ram");
+ map(0x1c00, 0x1fff).mirror(0x6000).ram();
+ map(0x2000, 0x33ff).rom();
+ map(0x4000, 0x53ff).rom();
+ map(0x6000, 0x73ff).rom();
+}
+
+void quasar_state::quasar_io(address_map &map)
+{
+ map(0x00, 0x03).rw(this, FUNC(quasar_state::quasar_IO_r), FUNC(quasar_state::video_page_select_w));
+ map(0x08, 0x0b).w(this, FUNC(quasar_state::io_page_select_w));
+}
+
+void quasar_state::quasar_data(address_map &map)
+{
+ map(S2650_CTRL_PORT, S2650_CTRL_PORT).r(this, FUNC(quasar_state::cvs_collision_r)).nopw();
+ map(S2650_DATA_PORT, S2650_DATA_PORT).rw(this, FUNC(quasar_state::cvs_collision_clear), FUNC(quasar_state::quasar_sh_command_w));
+}
/*************************************
*
@@ -139,14 +142,16 @@ ADDRESS_MAP_END
*
*************************************/
-ADDRESS_MAP_START(quasar_state::sound_map)
- AM_RANGE(0x0000, 0x07ff) AM_ROM
-ADDRESS_MAP_END
+void quasar_state::sound_map(address_map &map)
+{
+ map(0x0000, 0x07ff).rom();
+}
-ADDRESS_MAP_START(quasar_state::sound_portmap)
- AM_RANGE(0x00, 0x7f) AM_RAM
- AM_RANGE(0x80, 0x80) AM_READ(quasar_sh_command_r)
-ADDRESS_MAP_END
+void quasar_state::sound_portmap(address_map &map)
+{
+ map(0x00, 0x7f).ram();
+ map(0x80, 0x80).r(this, FUNC(quasar_state::quasar_sh_command_r));
+}
/************************************************************************