summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/phoenix.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/phoenix.cpp')
-rw-r--r--src/mame/drivers/phoenix.cpp67
1 files changed, 35 insertions, 32 deletions
diff --git a/src/mame/drivers/phoenix.cpp b/src/mame/drivers/phoenix.cpp
index 6e6f9eb9caa..55a16758c89 100644
--- a/src/mame/drivers/phoenix.cpp
+++ b/src/mame/drivers/phoenix.cpp
@@ -56,38 +56,41 @@ Pleiads:
#include "speaker.h"
-ADDRESS_MAP_START(phoenix_state::phoenix_memory_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x4fff) AM_READ_BANK("bank1") AM_WRITE(phoenix_videoram_w) /* 2 pages selected by bit 0 of the video register */
- AM_RANGE(0x5000, 0x53ff) AM_WRITE(phoenix_videoreg_w)
- AM_RANGE(0x5800, 0x5bff) AM_WRITE(phoenix_scroll_w)
- AM_RANGE(0x6000, 0x63ff) AM_DEVWRITE("cust", phoenix_sound_device, control_a_w)
- AM_RANGE(0x6800, 0x6bff) AM_DEVWRITE("cust", phoenix_sound_device, control_b_w)
- AM_RANGE(0x7000, 0x73ff) AM_READ_PORT("IN0") /* IN0 or IN1 */
- AM_RANGE(0x7800, 0x7bff) AM_READ_PORT("DSW0") /* DSW */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(phoenix_state::pleiads_memory_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x4fff) AM_READ_BANK("bank1") AM_WRITE(phoenix_videoram_w) /* 2 pages selected by bit 0 of the video register */
- AM_RANGE(0x5000, 0x53ff) AM_WRITE(pleiads_videoreg_w)
- AM_RANGE(0x5800, 0x5bff) AM_WRITE(phoenix_scroll_w)
- AM_RANGE(0x6000, 0x63ff) AM_DEVWRITE("pleiads_custom", pleiads_sound_device, control_a_w)
- AM_RANGE(0x6800, 0x6bff) AM_DEVWRITE("pleiads_custom", pleiads_sound_device, control_b_w)
- AM_RANGE(0x7000, 0x73ff) AM_READ_PORT("IN0") /* IN0 or IN1 + protection */
- AM_RANGE(0x7800, 0x7bff) AM_READ_PORT("DSW0") /* DSW */
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(phoenix_state::survival_memory_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x4fff) AM_READ_BANK("bank1") AM_WRITE(phoenix_videoram_w) /* 2 pages selected by bit 0 of the video register */
- AM_RANGE(0x5000, 0x53ff) AM_WRITE(phoenix_videoreg_w)
- AM_RANGE(0x5800, 0x5bff) AM_WRITE(phoenix_scroll_w)
- AM_RANGE(0x6800, 0x68ff) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0x6900, 0x69ff) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w)
- AM_RANGE(0x7000, 0x73ff) AM_READ(survival_input_port_0_r) /* IN0 or IN1 */
- AM_RANGE(0x7800, 0x7bff) AM_READ_PORT("DSW0") /* DSW */
-ADDRESS_MAP_END
+void phoenix_state::phoenix_memory_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x4fff).bankr("bank1").w(this, FUNC(phoenix_state::phoenix_videoram_w)); /* 2 pages selected by bit 0 of the video register */
+ map(0x5000, 0x53ff).w(this, FUNC(phoenix_state::phoenix_videoreg_w));
+ map(0x5800, 0x5bff).w(this, FUNC(phoenix_state::phoenix_scroll_w));
+ map(0x6000, 0x63ff).w("cust", FUNC(phoenix_sound_device::control_a_w));
+ map(0x6800, 0x6bff).w("cust", FUNC(phoenix_sound_device::control_b_w));
+ map(0x7000, 0x73ff).portr("IN0"); /* IN0 or IN1 */
+ map(0x7800, 0x7bff).portr("DSW0"); /* DSW */
+}
+
+void phoenix_state::pleiads_memory_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x4fff).bankr("bank1").w(this, FUNC(phoenix_state::phoenix_videoram_w)); /* 2 pages selected by bit 0 of the video register */
+ map(0x5000, 0x53ff).w(this, FUNC(phoenix_state::pleiads_videoreg_w));
+ map(0x5800, 0x5bff).w(this, FUNC(phoenix_state::phoenix_scroll_w));
+ map(0x6000, 0x63ff).w(m_pleiads_custom, FUNC(pleiads_sound_device::control_a_w));
+ map(0x6800, 0x6bff).w(m_pleiads_custom, FUNC(pleiads_sound_device::control_b_w));
+ map(0x7000, 0x73ff).portr("IN0"); /* IN0 or IN1 + protection */
+ map(0x7800, 0x7bff).portr("DSW0"); /* DSW */
+}
+
+void phoenix_state::survival_memory_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x4fff).bankr("bank1").w(this, FUNC(phoenix_state::phoenix_videoram_w)); /* 2 pages selected by bit 0 of the video register */
+ map(0x5000, 0x53ff).w(this, FUNC(phoenix_state::phoenix_videoreg_w));
+ map(0x5800, 0x5bff).w(this, FUNC(phoenix_state::phoenix_scroll_w));
+ map(0x6800, 0x68ff).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0x6900, 0x69ff).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0x7000, 0x73ff).r(this, FUNC(phoenix_state::survival_input_port_0_r)); /* IN0 or IN1 */
+ map(0x7800, 0x7bff).portr("DSW0"); /* DSW */
+}