summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/royalmah.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/royalmah.cpp')
-rw-r--r--src/mame/drivers/royalmah.cpp643
1 files changed, 338 insertions, 305 deletions
diff --git a/src/mame/drivers/royalmah.cpp b/src/mame/drivers/royalmah.cpp
index c36bdcc9de3..54dddb28642 100644
--- a/src/mame/drivers/royalmah.cpp
+++ b/src/mame/drivers/royalmah.cpp
@@ -606,217 +606,240 @@ WRITE8_MEMBER(royalmah_state::mjclub_bank_w)
}
-ADDRESS_MAP_START(royalmah_state::royalmah_map)
- AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITENOP
- AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "mainbank" ) // banked ROMs not present in royalmah
- AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_SHARE("videoram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::mjapinky_map)
- AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITENOP
- AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x7800, 0x7fff ) AM_RAM
- AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "mainbank" )
- AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_SHARE("videoram")
- AM_RANGE( 0x8000, 0x8000 ) AM_READ(mjapinky_dsw_r )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::tahjong_map)
- AM_RANGE( 0x0000, 0x3fff ) AM_ROM AM_WRITENOP
- AM_RANGE( 0x4000, 0x6fff ) AM_ROMBANK("mainbank")
- AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_SHARE("videoram")
-ADDRESS_MAP_END
-
-
-
-
-ADDRESS_MAP_START(royalmah_state::royalmah_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::ippatsu_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x12, 0x12 ) AM_READ_PORT("DSW2")
- AM_RANGE( 0x13, 0x13 ) AM_READ_PORT("DSW3")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::janyoup2_iomap)
- AM_IMPORT_FROM( ippatsu_iomap )
- AM_RANGE(0x20, 0x20) AM_DEVWRITE("crtc", mc6845_device, address_w)
- AM_RANGE(0x21, 0x21) AM_DEVWRITE("crtc", mc6845_device, register_w)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::seljan_map)
- AM_RANGE( 0x0000, 0x8fff ) AM_ROM AM_WRITENOP
- AM_RANGE( 0xe000, 0xefff ) AM_RAM AM_SHARE("nvram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::seljan_iomap)
- AM_RANGE( 0x0001, 0x0001 ) AM_MIRROR(0x7f00) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x0002, 0x0003 ) AM_MIRROR(0x7f00) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x0010, 0x0010 ) AM_MIRROR(0x7f00) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x0011, 0x0011 ) AM_MIRROR(0x7f00) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x0012, 0x0012 ) AM_MIRROR(0x7f00) AM_READ_PORT("DSW2") AM_DEVWRITE("crtc", mc6845_device, address_w)
- AM_RANGE( 0x0013, 0x0013 ) AM_MIRROR(0x7f00) AM_READ_PORT("DSW3") AM_DEVWRITE("crtc", mc6845_device, register_w)
+void royalmah_state::royalmah_map(address_map &map)
+{
+ map(0x0000, 0x6fff).rom().nopw();
+ map(0x7000, 0x7fff).ram().share("nvram");
+ map(0x8000, 0xffff).bankr("mainbank"); // banked ROMs not present in royalmah
+ map(0x8000, 0xffff).writeonly().share("videoram");
+}
+
+void royalmah_state::mjapinky_map(address_map &map)
+{
+ map(0x0000, 0x6fff).rom().nopw();
+ map(0x7000, 0x77ff).ram().share("nvram");
+ map(0x7800, 0x7fff).ram();
+ map(0x8000, 0xffff).bankr("mainbank");
+ map(0x8000, 0xffff).writeonly().share("videoram");
+ map(0x8000, 0x8000).r(this, FUNC(royalmah_state::mjapinky_dsw_r));
+}
+
+void royalmah_state::tahjong_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom().nopw();
+ map(0x4000, 0x6fff).bankr("mainbank");
+ map(0x7000, 0x7fff).ram().share("nvram");
+ map(0x8000, 0xffff).writeonly().share("videoram");
+}
+
+
+
+
+void royalmah_state::royalmah_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+}
+
+void royalmah_state::ippatsu_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x12, 0x12).portr("DSW2");
+ map(0x13, 0x13).portr("DSW3");
+}
+
+void royalmah_state::janyoup2_iomap(address_map &map)
+{
+ ippatsu_iomap(map);
+ map(0x20, 0x20).w("crtc", FUNC(mc6845_device::address_w));
+ map(0x21, 0x21).w("crtc", FUNC(mc6845_device::register_w));
+}
+
+void royalmah_state::seljan_map(address_map &map)
+{
+ map(0x0000, 0x8fff).rom().nopw();
+ map(0xe000, 0xefff).ram().share("nvram");
+}
+
+void royalmah_state::seljan_iomap(address_map &map)
+{
+ map(0x0001, 0x0001).mirror(0x7f00).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x0002, 0x0003).mirror(0x7f00).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x0010, 0x0010).mirror(0x7f00).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x0011, 0x0011).mirror(0x7f00).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x0012, 0x0012).mirror(0x7f00).portr("DSW2").w("crtc", FUNC(mc6845_device::address_w));
+ map(0x0013, 0x0013).mirror(0x7f00).portr("DSW3").w("crtc", FUNC(mc6845_device::register_w));
// TODO: following actually starts at 0x8000, needs custom 6845 routine because it uses start address register.
- AM_RANGE( 0x7e00, 0xffff ) AM_RAM AM_SHARE("videoram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::tahjong_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x12, 0x12 ) AM_WRITE(tahjong_bank_w)
- AM_RANGE( 0x13, 0x13 ) AM_READ_PORT("DSW2")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::suzume_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x80, 0x80 ) AM_READ(suzume_dsw_r )
- AM_RANGE( 0x81, 0x81 ) AM_WRITE(suzume_bank_w )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::mjyarou_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x12, 0x12 ) AM_READ_PORT("DSW2")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::dondenmj_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x85, 0x85 ) AM_READ_PORT("DSW2") // DSW2
- AM_RANGE( 0x86, 0x86 ) AM_READ_PORT("DSW3") // DSW3
- AM_RANGE( 0x87, 0x87 ) AM_WRITE(dynax_bank_w )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::makaijan_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x84, 0x84 ) AM_READ_PORT("DSW2") // DSW2
- AM_RANGE( 0x85, 0x85 ) AM_READ_PORT("DSW3") // DSW3
- AM_RANGE( 0x86, 0x86 ) AM_WRITE(dynax_bank_w )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::daisyari_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0xc0, 0xc0 ) AM_READWRITE(daisyari_dsw_r, daisyari_bank_w )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::mjclub_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x00, 0x00 ) AM_READWRITE(mjclub_dsw_r, mjclub_bank_w )
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::mjdiplob_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x61, 0x61 ) AM_WRITE(tontonb_bank_w)
- AM_RANGE( 0x62, 0x62 ) AM_READ_PORT("DSW2") // DSW2
- AM_RANGE( 0x63, 0x63 ) AM_READ_PORT("DSW3") // DSW3
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::tontonb_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x44, 0x44 ) AM_WRITE(tontonb_bank_w )
- AM_RANGE( 0x46, 0x46 ) AM_READ_PORT("DSW2") // DSW2
- AM_RANGE( 0x47, 0x47 ) AM_READ_PORT("DSW3") // DSW3
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::majs101b_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(royalmah_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x00, 0x00 ) AM_READWRITE(majs101b_dsw_r, dynax_bank_w )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::mjderngr_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
+ map(0x7e00, 0xffff).ram().share("videoram");
+}
+
+void royalmah_state::tahjong_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x12, 0x12).w(this, FUNC(royalmah_state::tahjong_bank_w));
+ map(0x13, 0x13).portr("DSW2");
+}
+
+void royalmah_state::suzume_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x80, 0x80).r(this, FUNC(royalmah_state::suzume_dsw_r));
+ map(0x81, 0x81).w(this, FUNC(royalmah_state::suzume_bank_w));
+}
+
+void royalmah_state::mjyarou_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x12, 0x12).portr("DSW2");
+}
+
+void royalmah_state::dondenmj_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x85, 0x85).portr("DSW2"); // DSW2
+ map(0x86, 0x86).portr("DSW3"); // DSW3
+ map(0x87, 0x87).w(this, FUNC(royalmah_state::dynax_bank_w));
+}
+
+void royalmah_state::makaijan_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x84, 0x84).portr("DSW2"); // DSW2
+ map(0x85, 0x85).portr("DSW3"); // DSW3
+ map(0x86, 0x86).w(this, FUNC(royalmah_state::dynax_bank_w));
+}
+
+void royalmah_state::daisyari_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0xc0, 0xc0).rw(this, FUNC(royalmah_state::daisyari_dsw_r), FUNC(royalmah_state::daisyari_bank_w));
+}
+
+void royalmah_state::mjclub_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).rw(this, FUNC(royalmah_state::mjclub_dsw_r), FUNC(royalmah_state::mjclub_bank_w));
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+}
+
+void royalmah_state::mjdiplob_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x61, 0x61).w(this, FUNC(royalmah_state::tontonb_bank_w));
+ map(0x62, 0x62).portr("DSW2"); // DSW2
+ map(0x63, 0x63).portr("DSW3"); // DSW3
+}
+
+void royalmah_state::tontonb_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x44, 0x44).w(this, FUNC(royalmah_state::tontonb_bank_w));
+ map(0x46, 0x46).portr("DSW2"); // DSW2
+ map(0x47, 0x47).portr("DSW3"); // DSW3
+}
+
+void royalmah_state::majs101b_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::royalmah_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x00, 0x00).rw(this, FUNC(royalmah_state::majs101b_dsw_r), FUNC(royalmah_state::dynax_bank_w));
+}
+
+void royalmah_state::mjderngr_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
// AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1")
- AM_RANGE( 0x10, 0x10 ) AM_WRITE(mjderngr_coin_w ) // palette bank is set separately
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x20, 0x20 ) AM_WRITE(dynax_bank_w )
- AM_RANGE( 0x40, 0x40 ) AM_READ_PORT("DSW2")
- AM_RANGE( 0x4c, 0x4c ) AM_READ_PORT("DSW1")
- AM_RANGE( 0x60, 0x60 ) AM_WRITE(mjderngr_palbank_w )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::mjapinky_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE( 0x00, 0x00 ) AM_WRITE(mjapinky_bank_w )
- AM_RANGE( 0x01, 0x01 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x02, 0x03 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x04, 0x04 ) AM_READ_PORT("DSW2")
- AM_RANGE( 0x10, 0x10 ) AM_READ_PORT("DSW1") AM_WRITE(mjapinky_palbank_w )
- AM_RANGE( 0x11, 0x11 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::janoh_map)
- AM_RANGE( 0x0000, 0x6fff ) AM_ROM AM_WRITENOP
- AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_SHARE("videoram")
-ADDRESS_MAP_END
+ map(0x10, 0x10).w(this, FUNC(royalmah_state::mjderngr_coin_w)); // palette bank is set separately
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x20, 0x20).w(this, FUNC(royalmah_state::dynax_bank_w));
+ map(0x40, 0x40).portr("DSW2");
+ map(0x4c, 0x4c).portr("DSW1");
+ map(0x60, 0x60).w(this, FUNC(royalmah_state::mjderngr_palbank_w));
+}
+
+void royalmah_state::mjapinky_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).w(this, FUNC(royalmah_state::mjapinky_bank_w));
+ map(0x01, 0x01).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x04, 0x04).portr("DSW2");
+ map(0x10, 0x10).portr("DSW1").w(this, FUNC(royalmah_state::mjapinky_palbank_w));
+ map(0x11, 0x11).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+}
+
+void royalmah_state::janoh_map(address_map &map)
+{
+ map(0x0000, 0x6fff).rom().nopw();
+ map(0x7000, 0x7fff).ram().share("nvram");
+ map(0x8000, 0xffff).writeonly().share("videoram");
+}
/* this CPU makes little sense - what is it for? why so many addresses accessed?
-- it puts a value in shared ram to allow the main CPU to boot, then.. ?
*/
-ADDRESS_MAP_START(royalmah_state::janoh_sub_map)
- AM_RANGE( 0x0000, 0x3fff ) AM_ROM
- AM_RANGE( 0x4100, 0x413f ) AM_RAM
- AM_RANGE( 0x6000, 0x607f ) AM_RAM
- AM_RANGE( 0x7000, 0x7000 ) AM_READNOP
- AM_RANGE( 0x7200, 0x7200 ) AM_WRITENOP
- AM_RANGE( 0xf000, 0xffff ) AM_RAM AM_SHARE("nvram")
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(royalmah_state::janoh_sub_iomap)
-ADDRESS_MAP_END
+void royalmah_state::janoh_sub_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom();
+ map(0x4100, 0x413f).ram();
+ map(0x6000, 0x607f).ram();
+ map(0x7000, 0x7000).nopr();
+ map(0x7200, 0x7200).nopw();
+ map(0xf000, 0xffff).ram().share("nvram");
+}
+
+void royalmah_state::janoh_sub_iomap(address_map &map)
+{
+}
/****************************************************************************
Jansou
@@ -900,46 +923,50 @@ WRITE8_MEMBER(royalmah_state::jansou_sound_w)
m_audiocpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE);
}
-ADDRESS_MAP_START(royalmah_state::jansou_map)
- AM_RANGE( 0x0000, 0x3fff ) AM_ROM AM_WRITENOP
-
- AM_RANGE( 0x6000, 0x600f ) AM_WRITE(jansou_colortable_w)
- AM_RANGE( 0x6400, 0x6400 ) AM_WRITE(jansou_6400_w)
- AM_RANGE( 0x6401, 0x6401 ) AM_WRITE(jansou_6401_w)
- AM_RANGE( 0x6402, 0x6402 ) AM_WRITE(jansou_6402_w)
- AM_RANGE( 0x6403, 0x6403 ) AM_READ(jansou_6403_r)
- AM_RANGE( 0x6404, 0x6404 ) AM_READ(jansou_6404_r)
- AM_RANGE( 0x6405, 0x6405 ) AM_READ(jansou_6405_r)
- AM_RANGE( 0x6406, 0x6406 ) AM_WRITE(jansou_dsw_sel_w)
- AM_RANGE( 0x6407, 0x6407 ) AM_READ(jansou_dsw_r)
- AM_RANGE( 0x6800, 0x6800 ) AM_WRITE(jansou_sound_w)
-
- AM_RANGE( 0x7000, 0x77ff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_SHARE("videoram")
-ADDRESS_MAP_END
+void royalmah_state::jansou_map(address_map &map)
+{
+ map(0x0000, 0x3fff).rom().nopw();
+
+ map(0x6000, 0x600f).w(this, FUNC(royalmah_state::jansou_colortable_w));
+ map(0x6400, 0x6400).w(this, FUNC(royalmah_state::jansou_6400_w));
+ map(0x6401, 0x6401).w(this, FUNC(royalmah_state::jansou_6401_w));
+ map(0x6402, 0x6402).w(this, FUNC(royalmah_state::jansou_6402_w));
+ map(0x6403, 0x6403).r(this, FUNC(royalmah_state::jansou_6403_r));
+ map(0x6404, 0x6404).r(this, FUNC(royalmah_state::jansou_6404_r));
+ map(0x6405, 0x6405).r(this, FUNC(royalmah_state::jansou_6405_r));
+ map(0x6406, 0x6406).w(this, FUNC(royalmah_state::jansou_dsw_sel_w));
+ map(0x6407, 0x6407).r(this, FUNC(royalmah_state::jansou_dsw_r));
+ map(0x6800, 0x6800).w(this, FUNC(royalmah_state::jansou_sound_w));
+
+ map(0x7000, 0x77ff).ram().share("nvram");
+ map(0x8000, 0xffff).writeonly().share("videoram");
+}
-ADDRESS_MAP_START(royalmah_state::jansou_sub_map)
- AM_RANGE( 0x0000, 0xffff ) AM_ROM AM_WRITENOP // tries to write to the stack at irq generation
-ADDRESS_MAP_END
+void royalmah_state::jansou_sub_map(address_map &map)
+{
+ map(0x0000, 0xffff).rom().nopw(); // tries to write to the stack at irq generation
+}
-ADDRESS_MAP_START(royalmah_state::jansou_sub_iomap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x00) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_DEVWRITE("dac", dac_byte_interface, write)
-ADDRESS_MAP_END
+void royalmah_state::jansou_sub_iomap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x00).r(m_soundlatch, FUNC(generic_latch_8_device::read)).w("dac", FUNC(dac_byte_interface::write));
+}
/****************************************************************************
Janputer '96
****************************************************************************/
-ADDRESS_MAP_START(royalmah_state::janptr96_map)
- AM_RANGE( 0x0000, 0x5fff ) AM_ROM
- AM_RANGE( 0x6000, 0x6fff ) AM_RAMBANK("bank3") AM_SHARE("nvram") // nvram
- AM_RANGE( 0x7000, 0x7fff ) AM_RAMBANK("rambank") // banked nvram
- AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("mainbank")
- AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_SHARE("videoram")
-ADDRESS_MAP_END
+void royalmah_state::janptr96_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom();
+ map(0x6000, 0x6fff).bankrw("bank3").share("nvram"); // nvram
+ map(0x7000, 0x7fff).bankrw("rambank"); // banked nvram
+ map(0x8000, 0xffff).bankr("mainbank");
+ map(0x8000, 0xffff).writeonly().share("videoram");
+}
WRITE8_MEMBER(royalmah_state::janptr96_dswsel_w)
{
@@ -981,17 +1008,18 @@ WRITE8_MEMBER(royalmah_state::janptr96_coin_counter_w)
machine().bookkeeping().coin_counter_w(1,data & 1); // out
}
-ADDRESS_MAP_START(royalmah_state::janptr96_iomap)
- AM_RANGE( 0x00, 0x00 ) AM_MIRROR(0xff00) AM_WRITE(janptr96_rombank_w ) // BANK ROM Select
- AM_RANGE( 0x20, 0x20 ) AM_MIRROR(0xff00) AM_READWRITE(janptr96_unknown_r, janptr96_rambank_w )
- AM_RANGE( 0x50, 0x50 ) AM_MIRROR(0xff00) AM_WRITE(mjderngr_palbank_w )
- AM_RANGE( 0x60, 0x6f ) AM_MIRROR(0xff00) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE( 0x81, 0x81 ) AM_MIRROR(0xff00) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x82, 0x83 ) AM_MIRROR(0xff00) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x93, 0x93 ) AM_MIRROR(0xff00) AM_WRITE(input_port_select_w )
- AM_RANGE( 0xd8, 0xd8 ) AM_MIRROR(0xff00) AM_WRITE(janptr96_coin_counter_w )
- AM_RANGE( 0xd9, 0xd9 ) AM_MIRROR(0xff00) AM_READ_PORT("SYSTEM") AM_WRITENOP // second input select?
-ADDRESS_MAP_END
+void royalmah_state::janptr96_iomap(address_map &map)
+{
+ map(0x00, 0x00).mirror(0xff00).w(this, FUNC(royalmah_state::janptr96_rombank_w)); // BANK ROM Select
+ map(0x20, 0x20).mirror(0xff00).rw(this, FUNC(royalmah_state::janptr96_unknown_r), FUNC(royalmah_state::janptr96_rambank_w));
+ map(0x50, 0x50).mirror(0xff00).w(this, FUNC(royalmah_state::mjderngr_palbank_w));
+ map(0x60, 0x6f).mirror(0xff00).rw(m_rtc, FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x81, 0x81).mirror(0xff00).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x82, 0x83).mirror(0xff00).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x93, 0x93).mirror(0xff00).w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0xd8, 0xd8).mirror(0xff00).w(this, FUNC(royalmah_state::janptr96_coin_counter_w));
+ map(0xd9, 0xd9).mirror(0xff00).portr("SYSTEM").nopw(); // second input select?
+}
/****************************************************************************
Mahjong If
@@ -1056,13 +1084,14 @@ WRITE8_MEMBER(royalmah_state::mjifb_videoram_w)
m_videoram[offset + 0x4000] = data;
}
-ADDRESS_MAP_START(royalmah_state::mjifb_map)
- AM_RANGE( 0x0000, 0x6fff ) AM_ROM
- AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjifb_rom_io_r, mjifb_rom_io_w) AM_SHARE("videoram")
- AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITE(mjifb_videoram_w)
+void royalmah_state::mjifb_map(address_map &map)
+{
+ map(0x0000, 0x6fff).rom();
+ map(0x7000, 0x7fff).ram().share("nvram");
+ map(0x8000, 0xbfff).rw(this, FUNC(royalmah_state::mjifb_rom_io_r), FUNC(royalmah_state::mjifb_rom_io_w)).share("videoram");
+ map(0xc000, 0xffff).rom().w(this, FUNC(royalmah_state::mjifb_videoram_w));
// AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITEONLY This should, but doesn't work
-ADDRESS_MAP_END
+}
READ8_MEMBER(royalmah_state::mjifb_p3_r)
{
@@ -1146,12 +1175,13 @@ WRITE8_MEMBER(royalmah_state::mjdejavu_rom_io_w)
logerror("%04X: unmapped input write at %04X = %02X\n", m_maincpu->pc(), offset,data);
}
-ADDRESS_MAP_START(royalmah_state::mjdejavu_map)
- AM_RANGE( 0x0000, 0x6fff ) AM_ROM
- AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xbfff ) AM_READWRITE(mjdejavu_rom_io_r, mjdejavu_rom_io_w) AM_SHARE("videoram")
- AM_RANGE( 0xc000, 0xffff ) AM_ROM AM_WRITE(mjifb_videoram_w)
-ADDRESS_MAP_END
+void royalmah_state::mjdejavu_map(address_map &map)
+{
+ map(0x0000, 0x6fff).rom();
+ map(0x7000, 0x7fff).ram().share("nvram");
+ map(0x8000, 0xbfff).rw(this, FUNC(royalmah_state::mjdejavu_rom_io_r), FUNC(royalmah_state::mjdejavu_rom_io_w)).share("videoram");
+ map(0xc000, 0xffff).rom().w(this, FUNC(royalmah_state::mjifb_videoram_w));
+}
/****************************************************************************
@@ -1178,21 +1208,22 @@ WRITE8_MEMBER(royalmah_state::mjtensin_6ff3_w)
mjtensin_update_rombank();
}
-ADDRESS_MAP_START(royalmah_state::mjtensin_map)
- AM_RANGE( 0x0000, 0x5fff ) AM_ROM
- AM_RANGE( 0x6000, 0x6fbf ) AM_RAM
- AM_RANGE( 0x6fc1, 0x6fc1 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x6fc2, 0x6fc3 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x6fd0, 0x6fd0 ) AM_WRITE(janptr96_coin_counter_w )
- AM_RANGE( 0x6fd1, 0x6fd1 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x6fe0, 0x6fef ) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE( 0x6ff0, 0x6ff0 ) AM_READWRITE(janptr96_dsw_r, janptr96_dswsel_w )
- AM_RANGE( 0x6ff1, 0x6ff1 ) AM_WRITE(mjderngr_palbank_w )
- AM_RANGE( 0x6ff3, 0x6ff3 ) AM_WRITE(mjtensin_6ff3_w )
- AM_RANGE( 0x7000, 0x7fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "mainbank" )
- AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_SHARE("videoram")
-ADDRESS_MAP_END
+void royalmah_state::mjtensin_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom();
+ map(0x6000, 0x6fbf).ram();
+ map(0x6fc1, 0x6fc1).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x6fc2, 0x6fc3).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x6fd0, 0x6fd0).w(this, FUNC(royalmah_state::janptr96_coin_counter_w));
+ map(0x6fd1, 0x6fd1).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x6fe0, 0x6fef).rw(m_rtc, FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x6ff0, 0x6ff0).rw(this, FUNC(royalmah_state::janptr96_dsw_r), FUNC(royalmah_state::janptr96_dswsel_w));
+ map(0x6ff1, 0x6ff1).w(this, FUNC(royalmah_state::mjderngr_palbank_w));
+ map(0x6ff3, 0x6ff3).w(this, FUNC(royalmah_state::mjtensin_6ff3_w));
+ map(0x7000, 0x7fff).ram().share("nvram");
+ map(0x8000, 0xffff).bankr("mainbank");
+ map(0x8000, 0xffff).writeonly().share("videoram");
+}
/****************************************************************************
@@ -1241,23 +1272,24 @@ WRITE8_MEMBER(royalmah_state::cafetime_7fe3_w)
// popmessage("%02x",data);
}
-ADDRESS_MAP_START(royalmah_state::cafetime_map)
- AM_RANGE( 0x0000, 0x5fff ) AM_ROM
- AM_RANGE( 0x6000, 0x7eff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x7fc1, 0x7fc1 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x7fc2, 0x7fc3 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x7fd0, 0x7fd0 ) AM_WRITE(janptr96_coin_counter_w )
- AM_RANGE( 0x7fd1, 0x7fd1 ) AM_READ_PORT("SYSTEM") AM_WRITENOP
- AM_RANGE( 0x7fd3, 0x7fd3 ) AM_WRITE(input_port_select_w )
- AM_RANGE( 0x7fe0, 0x7fe0 ) AM_READ(cafetime_dsw_r )
- AM_RANGE( 0x7fe1, 0x7fe1 ) AM_WRITE(cafetime_dsw_w )
- AM_RANGE( 0x7fe2, 0x7fe2 ) AM_WRITE(mjderngr_palbank_w )
- AM_RANGE( 0x7fe3, 0x7fe3 ) AM_WRITE(cafetime_7fe3_w )
- AM_RANGE( 0x7fe4, 0x7fe4 ) AM_READ(cafetime_7fe4_r )
- AM_RANGE( 0x7ff0, 0x7fff ) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
- AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK( "mainbank" )
- AM_RANGE( 0x8000, 0xffff ) AM_WRITEONLY AM_SHARE("videoram")
-ADDRESS_MAP_END
+void royalmah_state::cafetime_map(address_map &map)
+{
+ map(0x0000, 0x5fff).rom();
+ map(0x6000, 0x7eff).ram().share("nvram");
+ map(0x7fc1, 0x7fc1).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x7fc2, 0x7fc3).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x7fd0, 0x7fd0).w(this, FUNC(royalmah_state::janptr96_coin_counter_w));
+ map(0x7fd1, 0x7fd1).portr("SYSTEM").nopw();
+ map(0x7fd3, 0x7fd3).w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x7fe0, 0x7fe0).r(this, FUNC(royalmah_state::cafetime_dsw_r));
+ map(0x7fe1, 0x7fe1).w(this, FUNC(royalmah_state::cafetime_dsw_w));
+ map(0x7fe2, 0x7fe2).w(this, FUNC(royalmah_state::mjderngr_palbank_w));
+ map(0x7fe3, 0x7fe3).w(this, FUNC(royalmah_state::cafetime_7fe3_w));
+ map(0x7fe4, 0x7fe4).r(this, FUNC(royalmah_state::cafetime_7fe4_r));
+ map(0x7ff0, 0x7fff).rw(m_rtc, FUNC(msm6242_device::read), FUNC(msm6242_device::write));
+ map(0x8000, 0xffff).bankr("mainbank");
+ map(0x8000, 0xffff).writeonly().share("videoram");
+}
/****************************************************************************
@@ -1331,26 +1363,27 @@ READ8_MEMBER(royalmah_state::mjvegasa_12500_r)
return 0xff;
}
-ADDRESS_MAP_START(royalmah_state::mjvegasa_map)
+void royalmah_state::mjvegasa_map(address_map &map)
+{
- AM_RANGE( 0x00000, 0x05fff ) AM_ROM
- AM_RANGE( 0x06000, 0x07fff ) AM_RAM AM_SHARE("nvram")
- AM_RANGE( 0x08000, 0x0ffff ) AM_READWRITE(mjvegasa_rom_io_r, mjvegasa_rom_io_w) AM_SHARE("videoram")
+ map(0x00000, 0x05fff).rom();
+ map(0x06000, 0x07fff).ram().share("nvram");
+ map(0x08000, 0x0ffff).rw(this, FUNC(royalmah_state::mjvegasa_rom_io_r), FUNC(royalmah_state::mjvegasa_rom_io_w)).share("videoram");
- AM_RANGE( 0x10001, 0x10001 ) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE( 0x10002, 0x10003 ) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
- AM_RANGE( 0x10010, 0x10010 ) AM_WRITE(mjvegasa_coin_counter_w )
- AM_RANGE( 0x10011, 0x10011 ) AM_READ_PORT("SYSTEM") AM_WRITE(input_port_select_w )
- AM_RANGE( 0x10013, 0x10013 ) AM_WRITE(input_port_select_w )
+ map(0x10001, 0x10001).r(m_ay, FUNC(ay8910_device::data_r));
+ map(0x10002, 0x10003).w(m_ay, FUNC(ay8910_device::data_address_w));
+ map(0x10010, 0x10010).w(this, FUNC(royalmah_state::mjvegasa_coin_counter_w));
+ map(0x10011, 0x10011).portr("SYSTEM").w(this, FUNC(royalmah_state::input_port_select_w));
+ map(0x10013, 0x10013).w(this, FUNC(royalmah_state::input_port_select_w));
- AM_RANGE( 0x12000, 0x12000 ) AM_WRITE(mjvegasa_rombank_w )
- AM_RANGE( 0x12100, 0x12100 ) AM_READ(cafetime_dsw_r )
- AM_RANGE( 0x12200, 0x12200 ) AM_WRITE(cafetime_dsw_w )
- AM_RANGE( 0x12300, 0x12300 ) AM_WRITE(mjderngr_palbank_w )
- AM_RANGE( 0x12400, 0x12400 ) AM_WRITE(mjvegasa_12400_w )
- AM_RANGE( 0x12500, 0x12500 ) AM_READ(mjvegasa_12500_r )
+ map(0x12000, 0x12000).w(this, FUNC(royalmah_state::mjvegasa_rombank_w));
+ map(0x12100, 0x12100).r(this, FUNC(royalmah_state::cafetime_dsw_r));
+ map(0x12200, 0x12200).w(this, FUNC(royalmah_state::cafetime_dsw_w));
+ map(0x12300, 0x12300).w(this, FUNC(royalmah_state::mjderngr_palbank_w));
+ map(0x12400, 0x12400).w(this, FUNC(royalmah_state::mjvegasa_12400_w));
+ map(0x12500, 0x12500).r(this, FUNC(royalmah_state::mjvegasa_12500_r));
-ADDRESS_MAP_END
+}