summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/scramble.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/scramble.cpp')
-rw-r--r--src/mame/drivers/scramble.cpp605
1 files changed, 312 insertions, 293 deletions
diff --git a/src/mame/drivers/scramble.cpp b/src/mame/drivers/scramble.cpp
index e6bc6278f8c..5a8c67f496a 100644
--- a/src/mame/drivers/scramble.cpp
+++ b/src/mame/drivers/scramble.cpp
@@ -40,26 +40,27 @@ Notes:
#include "speaker.h"
-ADDRESS_MAP_START(scramble_state::scramble_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror address */
- AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x5040, 0x505f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5060, 0x507f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x5080, 0x50ff) AM_RAM
- AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_w)
- AM_RANGE(0x6804, 0x6804) AM_WRITE(galaxold_stars_enable_w)
- AM_RANGE(0x6806, 0x6806) AM_WRITE(galaxold_flip_screen_x_w)
- AM_RANGE(0x6807, 0x6807) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0x7000, 0x7000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x7800, 0x7800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x8100, 0x8103) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
- AM_RANGE(0x8110, 0x8113) AM_DEVREAD("ppi8255_0", i8255_device, read) /* mirror for Frog */
- AM_RANGE(0x8200, 0x8203) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
-ADDRESS_MAP_END
+void scramble_state::scramble_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x47ff).ram();
+ map(0x4800, 0x4bff).ram().w(this, FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x4c00, 0x4fff).rw(this, FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)); /* mirror address */
+ map(0x5000, 0x503f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x5040, 0x505f).ram().share("spriteram");
+ map(0x5060, 0x507f).ram().share("bulletsram");
+ map(0x5080, 0x50ff).ram();
+ map(0x6801, 0x6801).w(this, FUNC(scramble_state::galaxold_nmi_enable_w));
+ map(0x6802, 0x6802).w(this, FUNC(scramble_state::galaxold_coin_counter_w));
+ map(0x6804, 0x6804).w(this, FUNC(scramble_state::galaxold_stars_enable_w));
+ map(0x6806, 0x6806).w(this, FUNC(scramble_state::galaxold_flip_screen_x_w));
+ map(0x6807, 0x6807).w(this, FUNC(scramble_state::galaxold_flip_screen_y_w));
+ map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x7800, 0x7800).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x8100, 0x8103).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x8110, 0x8113).r(m_ppi8255_0, FUNC(i8255_device::read)); /* mirror for Frog */
+ map(0x8200, 0x8203).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
+}
READ8_MEMBER(scramble_state::scramble_soundram_r)
{
@@ -71,37 +72,40 @@ WRITE8_MEMBER(scramble_state::scramble_soundram_w)
m_soundram[offset & 0x03ff] = data;
}
-ADDRESS_MAP_START(scramble_state::scramble_sound_map)
- AM_RANGE(0x0000, 0x2fff) AM_ROM
- AM_RANGE(0x8000, 0x8fff) AM_READWRITE(scramble_soundram_r, scramble_soundram_w) AM_SHARE("soundram")
- AM_RANGE(0x9000, 0x9fff) AM_WRITE(scramble_filter_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(scramble_state::scramble_sound_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x10, 0x10) AM_DEVWRITE("8910.1", ay8910_device, address_w)
- AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("8910.1", ay8910_device, data_r, data_w)
- AM_RANGE(0x40, 0x40) AM_DEVWRITE("8910.2", ay8910_device, address_w)
- AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("8910.2", ay8910_device, data_r, data_w)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(scramble_state::ckongs_map)
- AM_RANGE(0x0000, 0x5fff) AM_ROM
- AM_RANGE(0x6000, 0x6bff) AM_RAM
- AM_RANGE(0x7000, 0x7003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
- AM_RANGE(0x7800, 0x7803) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
- AM_RANGE(0x9000, 0x93ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x9800, 0x983f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x9840, 0x985f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x9860, 0x987f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x9880, 0x98ff) AM_RAM
- AM_RANGE(0xa801, 0xa801) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0xa802, 0xa802) AM_WRITE(galaxold_coin_counter_w)
- AM_RANGE(0xa806, 0xa806) AM_WRITE(galaxold_flip_screen_x_w)
- AM_RANGE(0xa807, 0xa807) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0xb000, 0xb000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
-ADDRESS_MAP_END
+void scramble_state::scramble_sound_map(address_map &map)
+{
+ map(0x0000, 0x2fff).rom();
+ map(0x8000, 0x8fff).rw(this, FUNC(scramble_state::scramble_soundram_r), FUNC(scramble_state::scramble_soundram_w)).share("soundram");
+ map(0x9000, 0x9fff).w(this, FUNC(scramble_state::scramble_filter_w));
+}
+
+void scramble_state::scramble_sound_io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x10, 0x10).w("8910.1", FUNC(ay8910_device::address_w));
+ map(0x20, 0x20).rw("8910.1", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0x40, 0x40).w("8910.2", FUNC(ay8910_device::address_w));
+ map(0x80, 0x80).rw("8910.2", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+}
+
+
+void scramble_state::ckongs_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom();
+ map(0x6000, 0x6bff).ram();
+ map(0x7000, 0x7003).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x7800, 0x7803).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x9000, 0x93ff).ram().w(this, FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x9800, 0x983f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x9840, 0x985f).ram().share("spriteram");
+ map(0x9860, 0x987f).ram().share("bulletsram");
+ map(0x9880, 0x98ff).ram();
+ map(0xa801, 0xa801).w(this, FUNC(scramble_state::galaxold_nmi_enable_w));
+ map(0xa802, 0xa802).w(this, FUNC(scramble_state::galaxold_coin_counter_w));
+ map(0xa806, 0xa806).w(this, FUNC(scramble_state::galaxold_flip_screen_x_w));
+ map(0xa807, 0xa807).w(this, FUNC(scramble_state::galaxold_flip_screen_y_w));
+ map(0xb000, 0xb000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+}
@@ -125,205 +129,215 @@ WRITE8_MEMBER(scramble_state::mars_ppi8255_1_w)
m_ppi8255_1->write(space, ((offset >> 2) & 0x02) | ((offset >> 1) & 0x01), data);
}
-ADDRESS_MAP_START(scramble_state::mars_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x4c00, 0x4fff) AM_READ(galaxold_videoram_r)
- AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x5040, 0x505f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5060, 0x507f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x5080, 0x50ff) AM_RAM
- AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_1_w)
- AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_stars_enable_w)
- AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0x6808, 0x6808) AM_WRITE(galaxold_coin_counter_0_w)
- AM_RANGE(0x6809, 0x6809) AM_WRITE(galaxold_flip_screen_x_w)
- AM_RANGE(0x680b, 0x680b) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0x7000, 0x7000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x7000, 0x7000) AM_READNOP
- AM_RANGE(0x8100, 0x810f) AM_READWRITE(mars_ppi8255_0_r, mars_ppi8255_0_w)
- AM_RANGE(0x8200, 0x820f) AM_READWRITE(mars_ppi8255_1_r, mars_ppi8255_1_w)
-ADDRESS_MAP_END
-
-
-
-ADDRESS_MAP_START(scramble_state::newsin7_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x4c00, 0x4fff) AM_READ(galaxold_videoram_r)
- AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x5040, 0x505f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5060, 0x507f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x5080, 0x50ff) AM_RAM
- AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_1_w)
- AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_stars_enable_w)
+void scramble_state::mars_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x47ff).ram();
+ map(0x4800, 0x4bff).ram().w(this, FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x4c00, 0x4fff).r(this, FUNC(scramble_state::galaxold_videoram_r));
+ map(0x5000, 0x503f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x5040, 0x505f).ram().share("spriteram");
+ map(0x5060, 0x507f).ram().share("bulletsram");
+ map(0x5080, 0x50ff).ram();
+ map(0x6800, 0x6800).w(this, FUNC(scramble_state::galaxold_coin_counter_1_w));
+ map(0x6801, 0x6801).w(this, FUNC(scramble_state::galaxold_stars_enable_w));
+ map(0x6802, 0x6802).w(this, FUNC(scramble_state::galaxold_nmi_enable_w));
+ map(0x6808, 0x6808).w(this, FUNC(scramble_state::galaxold_coin_counter_0_w));
+ map(0x6809, 0x6809).w(this, FUNC(scramble_state::galaxold_flip_screen_x_w));
+ map(0x680b, 0x680b).w(this, FUNC(scramble_state::galaxold_flip_screen_y_w));
+ map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x7000, 0x7000).nopr();
+ map(0x8100, 0x810f).rw(this, FUNC(scramble_state::mars_ppi8255_0_r), FUNC(scramble_state::mars_ppi8255_0_w));
+ map(0x8200, 0x820f).rw(this, FUNC(scramble_state::mars_ppi8255_1_r), FUNC(scramble_state::mars_ppi8255_1_w));
+}
+
+
+
+void scramble_state::newsin7_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x47ff).ram();
+ map(0x4800, 0x4bff).ram().w(this, FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x4c00, 0x4fff).r(this, FUNC(scramble_state::galaxold_videoram_r));
+ map(0x5000, 0x503f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x5040, 0x505f).ram().share("spriteram");
+ map(0x5060, 0x507f).ram().share("bulletsram");
+ map(0x5080, 0x50ff).ram();
+ map(0x6800, 0x6800).w(this, FUNC(scramble_state::galaxold_coin_counter_1_w));
+ map(0x6801, 0x6801).w(this, FUNC(scramble_state::galaxold_stars_enable_w));
//AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0x6808, 0x6808) AM_WRITE(galaxold_coin_counter_0_w)
- AM_RANGE(0x6809, 0x6809) AM_WRITE(galaxold_flip_screen_x_w)
- AM_RANGE(0x680b, 0x680b) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0x7000, 0x7000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x8200, 0x820f) AM_READWRITE(mars_ppi8255_1_r, mars_ppi8255_1_w)
- AM_RANGE(0xa000, 0xafff) AM_ROM
- AM_RANGE(0xc100, 0xc10f) AM_READWRITE(mars_ppi8255_0_r, mars_ppi8255_0_w)
-ADDRESS_MAP_END
-
-
-
-ADDRESS_MAP_START(scramble_state::mrkougar_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w)
- AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x5040, 0x505f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5060, 0x507f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x5080, 0x50ff) AM_RAM
- AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_1_w)
- AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0x6808, 0x6808) AM_WRITE(galaxold_coin_counter_0_w)
- AM_RANGE(0x6809, 0x6809) AM_WRITE(galaxold_flip_screen_x_w)
- AM_RANGE(0x680b, 0x680b) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0x7000, 0x7000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x8100, 0x810f) AM_READWRITE(mars_ppi8255_0_r, mars_ppi8255_0_w)
- AM_RANGE(0x8200, 0x820f) AM_READWRITE(mars_ppi8255_1_r, mars_ppi8255_1_w)
-ADDRESS_MAP_END
-
-
-
-ADDRESS_MAP_START(scramble_state::hotshock_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x4c00, 0x4fff) AM_READ(galaxold_videoram_r)
- AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x5040, 0x505f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5060, 0x507f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x5080, 0x50ff) AM_RAM
- AM_RANGE(0x6000, 0x6000) AM_WRITE(galaxold_coin_counter_2_w)
- AM_RANGE(0x6002, 0x6002) AM_WRITE(galaxold_coin_counter_1_w)
- AM_RANGE(0x6004, 0x6004) AM_WRITE(hotshock_flip_screen_w)
- AM_RANGE(0x6005, 0x6005) AM_WRITE(galaxold_coin_counter_0_w)
- AM_RANGE(0x6006, 0x6006) AM_WRITE(galaxold_gfxbank_w)
- AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0x7000, 0x7000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
- AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0") AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x8001, 0x8001) AM_READ_PORT("IN1")
- AM_RANGE(0x8002, 0x8002) AM_READ_PORT("IN2")
- AM_RANGE(0x8003, 0x8003) AM_READ_PORT("IN3")
- AM_RANGE(0x9000, 0x9000) AM_WRITE(hotshock_sh_irqtrigger_w)
-ADDRESS_MAP_END
-
-
-
-ADDRESS_MAP_START(scramble_state::hunchbks_map)
- AM_RANGE(0x0000, 0x0fff) AM_ROM
- AM_RANGE(0x1210, 0x1213) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
- AM_RANGE(0x1400, 0x143f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x1440, 0x145f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x1460, 0x147f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x1480, 0x14ff) AM_RAM
- AM_RANGE(0x1500, 0x1503) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
- AM_RANGE(0x1606, 0x1606) AM_WRITE(galaxold_flip_screen_x_w)
- AM_RANGE(0x1607, 0x1607) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0x1680, 0x1680) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x1780, 0x1780) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x1800, 0x1bff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x1c00, 0x1fff) AM_RAM
- AM_RANGE(0x2000, 0x2fff) AM_ROM
- AM_RANGE(0x3000, 0x3fff) AM_READWRITE(hunchbks_mirror_r, hunchbks_mirror_w)
- AM_RANGE(0x4000, 0x4fff) AM_ROM
- AM_RANGE(0x5000, 0x5fff) AM_READWRITE(hunchbks_mirror_r, hunchbks_mirror_w)
- AM_RANGE(0x6000, 0x6fff) AM_ROM
- AM_RANGE(0x7000, 0x7fff) AM_READWRITE(hunchbks_mirror_r, hunchbks_mirror_w)
-ADDRESS_MAP_END
-
-
-
-ADDRESS_MAP_START(scramble_state::mimonscr_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x43ff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror address?, probably not */
- AM_RANGE(0x4400, 0x47ff) AM_RAM
- AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x5040, 0x505f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5060, 0x507f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x5080, 0x50ff) AM_RAM
- AM_RANGE(0x6800, 0x6802) AM_WRITE(galaxold_gfxbank_w)
- AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0x6806, 0x6806) AM_WRITE(galaxold_flip_screen_x_w)
- AM_RANGE(0x6807, 0x6807) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0x7000, 0x7000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x8100, 0x8103) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
- AM_RANGE(0x8200, 0x8203) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
- AM_RANGE(0xc000, 0xffff) AM_ROM
-ADDRESS_MAP_END
-
-
-
-ADDRESS_MAP_START(scramble_state::ad2083_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x4800, 0x4bff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x5040, 0x505f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5060, 0x507f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x6004, 0x6004) AM_WRITE(hotshock_flip_screen_w)
- AM_RANGE(0x6800, 0x6800) AM_WRITE(galaxold_coin_counter_2_w)
- AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_0_w)
- AM_RANGE(0x6803, 0x6803) AM_WRITE(scrambold_background_blue_w)
- AM_RANGE(0x6805, 0x6805) AM_WRITE(galaxold_coin_counter_1_w)
- AM_RANGE(0x6806, 0x6806) AM_WRITE(scrambold_background_red_w)
- AM_RANGE(0x6807, 0x6807) AM_WRITE(scrambold_background_green_w)
- AM_RANGE(0x8000, 0x8000) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
- AM_RANGE(0x9000, 0x9000) AM_WRITE(hotshock_sh_irqtrigger_w)
- AM_RANGE(0x7000, 0x7000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x8000, 0x8000) AM_READ_PORT("IN0")
- AM_RANGE(0x8001, 0x8001) AM_READ_PORT("IN1")
- AM_RANGE(0x8002, 0x8002) AM_READ_PORT("IN2")
- AM_RANGE(0x8003, 0x8003) AM_READ_PORT("IN3")
- AM_RANGE(0xa000, 0xdfff) AM_ROM
- AM_RANGE(0xe800, 0xebff) AM_RAM
-ADDRESS_MAP_END
-
-
-
-ADDRESS_MAP_START(scramble_state::triplep_map)
- AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x4000, 0x47ff) AM_RAM
- AM_RANGE(0x4800, 0x4bff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) /* mirror address */
- AM_RANGE(0x5000, 0x503f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x5040, 0x505f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x5060, 0x507f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x5080, 0x50ff) AM_RAM
- AM_RANGE(0x5800, 0x67ff) AM_ROM
- AM_RANGE(0x6801, 0x6801) AM_WRITE(galaxold_nmi_enable_w)
- AM_RANGE(0x6802, 0x6802) AM_WRITE(galaxold_coin_counter_w)
- AM_RANGE(0x6804, 0x6804) AM_WRITE(galaxold_stars_enable_w)
- AM_RANGE(0x6806, 0x6806) AM_WRITE(galaxold_flip_screen_x_w)
- AM_RANGE(0x6807, 0x6807) AM_WRITE(galaxold_flip_screen_y_w)
- AM_RANGE(0x7000, 0x7000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
- AM_RANGE(0x8100, 0x8103) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(scramble_state::triplep_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x01) AM_DEVWRITE("8910.1", ay8910_device, data_address_w)
- AM_RANGE(0x01, 0x01) AM_DEVREAD("8910.1", ay8910_device, data_r)
- AM_RANGE(0x02, 0x02) AM_READ(triplep_pip_r)
- AM_RANGE(0x03, 0x03) AM_READ(triplep_pap_r)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(scramble_state::hotshock_sound_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x10, 0x10) AM_DEVWRITE("8910.1", ay8910_device, address_w)
- AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("8910.1", ay8910_device, data_r, data_w)
- AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("8910.2", ay8910_device, data_r, data_w)
- AM_RANGE(0x80, 0x80) AM_DEVWRITE("8910.2", ay8910_device, address_w)
-ADDRESS_MAP_END
+ map(0x6808, 0x6808).w(this, FUNC(scramble_state::galaxold_coin_counter_0_w));
+ map(0x6809, 0x6809).w(this, FUNC(scramble_state::galaxold_flip_screen_x_w));
+ map(0x680b, 0x680b).w(this, FUNC(scramble_state::galaxold_flip_screen_y_w));
+ map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x8200, 0x820f).rw(this, FUNC(scramble_state::mars_ppi8255_1_r), FUNC(scramble_state::mars_ppi8255_1_w));
+ map(0xa000, 0xafff).rom();
+ map(0xc100, 0xc10f).rw(this, FUNC(scramble_state::mars_ppi8255_0_r), FUNC(scramble_state::mars_ppi8255_0_w));
+}
+
+
+
+void scramble_state::mrkougar_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x47ff).ram();
+ map(0x4800, 0x4bff).ram().w(this, FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x4c00, 0x4fff).rw(this, FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w));
+ map(0x5000, 0x503f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x5040, 0x505f).ram().share("spriteram");
+ map(0x5060, 0x507f).ram().share("bulletsram");
+ map(0x5080, 0x50ff).ram();
+ map(0x6800, 0x6800).w(this, FUNC(scramble_state::galaxold_coin_counter_1_w));
+ map(0x6801, 0x6801).w(this, FUNC(scramble_state::galaxold_nmi_enable_w));
+ map(0x6808, 0x6808).w(this, FUNC(scramble_state::galaxold_coin_counter_0_w));
+ map(0x6809, 0x6809).w(this, FUNC(scramble_state::galaxold_flip_screen_x_w));
+ map(0x680b, 0x680b).w(this, FUNC(scramble_state::galaxold_flip_screen_y_w));
+ map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x8100, 0x810f).rw(this, FUNC(scramble_state::mars_ppi8255_0_r), FUNC(scramble_state::mars_ppi8255_0_w));
+ map(0x8200, 0x820f).rw(this, FUNC(scramble_state::mars_ppi8255_1_r), FUNC(scramble_state::mars_ppi8255_1_w));
+}
+
+
+
+void scramble_state::hotshock_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x47ff).ram();
+ map(0x4800, 0x4bff).ram().w(this, FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x4c00, 0x4fff).r(this, FUNC(scramble_state::galaxold_videoram_r));
+ map(0x5000, 0x503f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x5040, 0x505f).ram().share("spriteram");
+ map(0x5060, 0x507f).ram().share("bulletsram");
+ map(0x5080, 0x50ff).ram();
+ map(0x6000, 0x6000).w(this, FUNC(scramble_state::galaxold_coin_counter_2_w));
+ map(0x6002, 0x6002).w(this, FUNC(scramble_state::galaxold_coin_counter_1_w));
+ map(0x6004, 0x6004).w(this, FUNC(scramble_state::hotshock_flip_screen_w));
+ map(0x6005, 0x6005).w(this, FUNC(scramble_state::galaxold_coin_counter_0_w));
+ map(0x6006, 0x6006).w(this, FUNC(scramble_state::galaxold_gfxbank_w));
+ map(0x6801, 0x6801).w(this, FUNC(scramble_state::galaxold_nmi_enable_w));
+ map(0x7000, 0x7000).w("watchdog", FUNC(watchdog_timer_device::reset_w));
+ map(0x8000, 0x8000).portr("IN0").w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x8001, 0x8001).portr("IN1");
+ map(0x8002, 0x8002).portr("IN2");
+ map(0x8003, 0x8003).portr("IN3");
+ map(0x9000, 0x9000).w(this, FUNC(scramble_state::hotshock_sh_irqtrigger_w));
+}
+
+
+
+void scramble_state::hunchbks_map(address_map &map)
+{
+ map(0x0000, 0x0fff).rom();
+ map(0x1210, 0x1213).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x1400, 0x143f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x1440, 0x145f).ram().share("spriteram");
+ map(0x1460, 0x147f).ram().share("bulletsram");
+ map(0x1480, 0x14ff).ram();
+ map(0x1500, 0x1503).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x1606, 0x1606).w(this, FUNC(scramble_state::galaxold_flip_screen_x_w));
+ map(0x1607, 0x1607).w(this, FUNC(scramble_state::galaxold_flip_screen_y_w));
+ map(0x1680, 0x1680).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x1780, 0x1780).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x1800, 0x1bff).ram().w(this, FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x1c00, 0x1fff).ram();
+ map(0x2000, 0x2fff).rom();
+ map(0x3000, 0x3fff).rw(this, FUNC(scramble_state::hunchbks_mirror_r), FUNC(scramble_state::hunchbks_mirror_w));
+ map(0x4000, 0x4fff).rom();
+ map(0x5000, 0x5fff).rw(this, FUNC(scramble_state::hunchbks_mirror_r), FUNC(scramble_state::hunchbks_mirror_w));
+ map(0x6000, 0x6fff).rom();
+ map(0x7000, 0x7fff).rw(this, FUNC(scramble_state::hunchbks_mirror_r), FUNC(scramble_state::hunchbks_mirror_w));
+}
+
+
+
+void scramble_state::mimonscr_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x43ff).rw(this, FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)); /* mirror address?, probably not */
+ map(0x4400, 0x47ff).ram();
+ map(0x4800, 0x4bff).ram().w(this, FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x5000, 0x503f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x5040, 0x505f).ram().share("spriteram");
+ map(0x5060, 0x507f).ram().share("bulletsram");
+ map(0x5080, 0x50ff).ram();
+ map(0x6800, 0x6802).w(this, FUNC(scramble_state::galaxold_gfxbank_w));
+ map(0x6801, 0x6801).w(this, FUNC(scramble_state::galaxold_nmi_enable_w));
+ map(0x6806, 0x6806).w(this, FUNC(scramble_state::galaxold_flip_screen_x_w));
+ map(0x6807, 0x6807).w(this, FUNC(scramble_state::galaxold_flip_screen_y_w));
+ map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x8100, 0x8103).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x8200, 0x8203).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xc000, 0xffff).rom();
+}
+
+
+
+void scramble_state::ad2083_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x47ff).ram();
+ map(0x4800, 0x4bff).rw(this, FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x5000, 0x503f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x5040, 0x505f).ram().share("spriteram");
+ map(0x5060, 0x507f).ram().share("bulletsram");
+ map(0x6004, 0x6004).w(this, FUNC(scramble_state::hotshock_flip_screen_w));
+ map(0x6800, 0x6800).w(this, FUNC(scramble_state::galaxold_coin_counter_2_w));
+ map(0x6801, 0x6801).w(this, FUNC(scramble_state::galaxold_nmi_enable_w));
+ map(0x6802, 0x6802).w(this, FUNC(scramble_state::galaxold_coin_counter_0_w));
+ map(0x6803, 0x6803).w(this, FUNC(scramble_state::scrambold_background_blue_w));
+ map(0x6805, 0x6805).w(this, FUNC(scramble_state::galaxold_coin_counter_1_w));
+ map(0x6806, 0x6806).w(this, FUNC(scramble_state::scrambold_background_red_w));
+ map(0x6807, 0x6807).w(this, FUNC(scramble_state::scrambold_background_green_w));
+ map(0x8000, 0x8000).w(m_soundlatch, FUNC(generic_latch_8_device::write));
+ map(0x9000, 0x9000).w(this, FUNC(scramble_state::hotshock_sh_irqtrigger_w));
+ map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x8000, 0x8000).portr("IN0");
+ map(0x8001, 0x8001).portr("IN1");
+ map(0x8002, 0x8002).portr("IN2");
+ map(0x8003, 0x8003).portr("IN3");
+ map(0xa000, 0xdfff).rom();
+ map(0xe800, 0xebff).ram();
+}
+
+
+
+void scramble_state::triplep_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4000, 0x47ff).ram();
+ map(0x4800, 0x4bff).ram().w(this, FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x4c00, 0x4fff).rw(this, FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)); /* mirror address */
+ map(0x5000, 0x503f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x5040, 0x505f).ram().share("spriteram");
+ map(0x5060, 0x507f).ram().share("bulletsram");
+ map(0x5080, 0x50ff).ram();
+ map(0x5800, 0x67ff).rom();
+ map(0x6801, 0x6801).w(this, FUNC(scramble_state::galaxold_nmi_enable_w));
+ map(0x6802, 0x6802).w(this, FUNC(scramble_state::galaxold_coin_counter_w));
+ map(0x6804, 0x6804).w(this, FUNC(scramble_state::galaxold_stars_enable_w));
+ map(0x6806, 0x6806).w(this, FUNC(scramble_state::galaxold_flip_screen_x_w));
+ map(0x6807, 0x6807).w(this, FUNC(scramble_state::galaxold_flip_screen_y_w));
+ map(0x7000, 0x7000).r("watchdog", FUNC(watchdog_timer_device::reset_r));
+ map(0x8100, 0x8103).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
+}
+
+void scramble_state::triplep_io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x01).w("8910.1", FUNC(ay8910_device::data_address_w));
+ map(0x01, 0x01).r("8910.1", FUNC(ay8910_device::data_r));
+ map(0x02, 0x02).r(this, FUNC(scramble_state::triplep_pip_r));
+ map(0x03, 0x03).r(this, FUNC(scramble_state::triplep_pap_r));
+}
+
+void scramble_state::hotshock_sound_io_map(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x10, 0x10).w("8910.1", FUNC(ay8910_device::address_w));
+ map(0x20, 0x20).rw("8910.1", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0x40, 0x40).rw("8910.2", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0x80, 0x80).w("8910.2", FUNC(ay8910_device::address_w));
+}
@@ -335,68 +349,73 @@ READ8_MEMBER(scramble_state::hncholms_prot_r)
return 0;
}
-ADDRESS_MAP_START(scramble_state::hunchbks_readport)
- AM_RANGE(0x00, 0x00) AM_READ(hncholms_prot_r)
-ADDRESS_MAP_END
+void scramble_state::hunchbks_readport(address_map &map)
+{
+ map(0x00, 0x00).r(this, FUNC(scramble_state::hncholms_prot_r));
+}
// Harem
-ADDRESS_MAP_START(scramble_state::harem_map)
- AM_RANGE(0x0000, 0x1fff) AM_ROM
+void scramble_state::harem_map(address_map &map)
+{
+ map(0x0000, 0x1fff).rom();
- AM_RANGE(0x2000, 0x27ff) AM_RAM
+ map(0x2000, 0x27ff).ram();
- AM_RANGE(0x4000, 0x403f) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
- AM_RANGE(0x4040, 0x405f) AM_RAM AM_SHARE("spriteram")
- AM_RANGE(0x4060, 0x407f) AM_RAM AM_SHARE("bulletsram")
- AM_RANGE(0x4080, 0x47ff) AM_RAM
+ map(0x4000, 0x403f).ram().w(this, FUNC(scramble_state::galaxold_attributesram_w)).share("attributesram");
+ map(0x4040, 0x405f).ram().share("spriteram");
+ map(0x4060, 0x407f).ram().share("bulletsram");
+ map(0x4080, 0x47ff).ram();
- AM_RANGE(0x4800, 0x4bff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) AM_SHARE("videoram")
- AM_RANGE(0x4c00, 0x4fff) AM_READWRITE(galaxold_videoram_r, galaxold_videoram_w) // mirror address
+ map(0x4800, 0x4bff).rw(this, FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)).share("videoram");
+ map(0x4c00, 0x4fff).rw(this, FUNC(scramble_state::galaxold_videoram_r), FUNC(scramble_state::galaxold_videoram_w)); // mirror address
- AM_RANGE(0x5000, 0x5000) AM_RAM_WRITE(racknrol_tiles_bank_w) AM_SHARE("racknrol_tbank") // high bits of tiles, 1 bit every 4 columns
- AM_RANGE(0x5800, 0x5800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_WRITE(galaxold_nmi_enable_w)
+ map(0x5000, 0x5000).ram().w(this, FUNC(scramble_state::racknrol_tiles_bank_w)).share("racknrol_tbank"); // high bits of tiles, 1 bit every 4 columns
+ map(0x5800, 0x5800).r("watchdog", FUNC(watchdog_timer_device::reset_r)).w(this, FUNC(scramble_state::galaxold_nmi_enable_w));
- AM_RANGE(0x5801, 0x5801) AM_WRITE(harem_decrypt_clk_w) // run-time bitswap selection
- AM_RANGE(0x5802, 0x5802) AM_WRITE(harem_decrypt_bit_w)
- AM_RANGE(0x5803, 0x5803) AM_WRITE(harem_decrypt_rst_w)
+ map(0x5801, 0x5801).w(this, FUNC(scramble_state::harem_decrypt_clk_w)); // run-time bitswap selection
+ map(0x5802, 0x5802).w(this, FUNC(scramble_state::harem_decrypt_bit_w));
+ map(0x5803, 0x5803).w(this, FUNC(scramble_state::harem_decrypt_rst_w));
- AM_RANGE(0x5804, 0x5804) AM_WRITE(galaxold_coin_counter_w)
- AM_RANGE(0x5805, 0x5805) AM_WRITE(galaxold_gfxbank_w) // bit 0 = sprite tiles high bit
- AM_RANGE(0x5806, 0x5806) AM_WRITE(galaxold_flip_screen_x_w) // maybe (0 at boot)
- AM_RANGE(0x5807, 0x5807) AM_WRITE(galaxold_flip_screen_y_w) // ""
+ map(0x5804, 0x5804).w(this, FUNC(scramble_state::galaxold_coin_counter_w));
+ map(0x5805, 0x5805).w(this, FUNC(scramble_state::galaxold_gfxbank_w)); // bit 0 = sprite tiles high bit
+ map(0x5806, 0x5806).w(this, FUNC(scramble_state::galaxold_flip_screen_x_w)); // maybe (0 at boot)
+ map(0x5807, 0x5807).w(this, FUNC(scramble_state::galaxold_flip_screen_y_w)); // ""
- AM_RANGE(0x6100, 0x6103) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
- AM_RANGE(0x6200, 0x6203) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
+ map(0x6100, 0x6103).rw(m_ppi8255_0, FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x6200, 0x6203).rw(m_ppi8255_1, FUNC(i8255_device::read), FUNC(i8255_device::write));
- AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("rombank") // bitswapped rom
-ADDRESS_MAP_END
+ map(0x8000, 0x9fff).bankr("rombank"); // bitswapped rom
+}
-ADDRESS_MAP_START(scramble_state::decrypted_opcodes_map)
- AM_RANGE(0x0000, 0x1fff) AM_ROM AM_REGION("maincpu", 0)
- AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("rombank_decrypted")
-ADDRESS_MAP_END
+void scramble_state::decrypted_opcodes_map(address_map &map)
+{
+ map(0x0000, 0x1fff).rom().region("maincpu", 0);
+ map(0x8000, 0x9fff).bankr("rombank_decrypted");
+}
-ADDRESS_MAP_START(scramble_state::harem_sound_map)
- AM_RANGE(0x0000, 0x2fff) AM_ROM
- AM_RANGE(0x6000, 0x6000) AM_READ(harem_digitalker_intr_r)
- AM_RANGE(0x8000, 0x83ff) AM_RAM
- AM_RANGE(0xa000, 0xafff) AM_WRITE(scramble_filter_w)
-ADDRESS_MAP_END
+void scramble_state::harem_sound_map(address_map &map)
+{
+ map(0x0000, 0x2fff).rom();
+ map(0x6000, 0x6000).r(this, FUNC(scramble_state::harem_digitalker_intr_r));
+ map(0x8000, 0x83ff).ram();
+ map(0xa000, 0xafff).w(this, FUNC(scramble_state::scramble_filter_w));
+}
-ADDRESS_MAP_START(scramble_state::harem_sound_io_map)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
+void scramble_state::harem_sound_io_map(address_map &map)
+{
+ map.global_mask(0xff);
// ports->speech:
- AM_RANGE(0x04, 0x04) AM_DEVWRITE("8910.3", ay8910_device, address_w)
- AM_RANGE(0x08, 0x08) AM_DEVREADWRITE("8910.3", ay8910_device, data_r, data_w)
+ map(0x04, 0x04).w("8910.3", FUNC(ay8910_device::address_w));
+ map(0x08, 0x08).rw("8910.3", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
// same as scramble:
- AM_RANGE(0x10, 0x10) AM_DEVWRITE("8910.1", ay8910_device, address_w)
- AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("8910.1", ay8910_device, data_r, data_w)
- AM_RANGE(0x40, 0x40) AM_DEVWRITE("8910.2", ay8910_device, address_w)
- AM_RANGE(0x80, 0x80) AM_DEVREADWRITE("8910.2", ay8910_device, data_r, data_w) // read soundlatch
-ADDRESS_MAP_END
+ map(0x10, 0x10).w("8910.1", FUNC(ay8910_device::address_w));
+ map(0x20, 0x20).rw("8910.1", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0x40, 0x40).w("8910.2", FUNC(ay8910_device::address_w));
+ map(0x80, 0x80).rw("8910.2", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)); // read soundlatch
+}