summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/subsino.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/subsino.cpp')
-rw-r--r--src/mame/drivers/subsino.cpp284
1 files changed, 147 insertions, 137 deletions
diff --git a/src/mame/drivers/subsino.cpp b/src/mame/drivers/subsino.cpp
index 26d0f5b4299..7deb141c386 100644
--- a/src/mame/drivers/subsino.cpp
+++ b/src/mame/drivers/subsino.cpp
@@ -843,52 +843,54 @@ WRITE8_MEMBER(subsino_state::subsino_out_b_w)
* Memory Maps *
***************************************************************************/
-ADDRESS_MAP_START(subsino_state::srider_map)
- AM_RANGE( 0x00000, 0x0bfff ) AM_ROM
+void subsino_state::srider_map(address_map &map)
+{
+ map(0x00000, 0x0bfff).rom();
- AM_RANGE( 0x0c000, 0x0cfff ) AM_RAM
+ map(0x0c000, 0x0cfff).ram();
- AM_RANGE( 0x0d000, 0x0d002 ) AM_DEVREAD("ppi1", i8255_device, read)
- AM_RANGE( 0x0d004, 0x0d006 ) AM_DEVREAD("ppi2", i8255_device, read)
+ map(0x0d000, 0x0d002).r("ppi1", FUNC(i8255_device::read));
+ map(0x0d004, 0x0d006).r("ppi2", FUNC(i8255_device::read));
- AM_RANGE( 0x0d009, 0x0d009 ) AM_WRITE(subsino_out_b_w )
- AM_RANGE( 0x0d00a, 0x0d00a ) AM_WRITE(subsino_out_a_w )
+ map(0x0d009, 0x0d009).w(this, FUNC(subsino_state::subsino_out_b_w));
+ map(0x0d00a, 0x0d00a).w(this, FUNC(subsino_state::subsino_out_a_w));
- AM_RANGE( 0x0d00c, 0x0d00c ) AM_READ_PORT( "INC" )
+ map(0x0d00c, 0x0d00c).portr("INC");
- AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
+ map(0x0d016, 0x0d017).w("ymsnd", FUNC(ym3812_device::write));
- AM_RANGE( 0x0d018, 0x0d018 ) AM_DEVWRITE("oki", okim6295_device, write)
+ map(0x0d018, 0x0d018).w("oki", FUNC(okim6295_device::write));
- AM_RANGE( 0x0d01b, 0x0d01b ) AM_WRITE(subsino_tiles_offset_w )
+ map(0x0d01b, 0x0d01b).w(this, FUNC(subsino_state::subsino_tiles_offset_w));
- AM_RANGE( 0x0e000, 0x0e7ff ) AM_RAM_WRITE(subsino_colorram_w ) AM_SHARE("colorram")
- AM_RANGE( 0x0e800, 0x0efff ) AM_RAM_WRITE(subsino_videoram_w ) AM_SHARE("videoram")
-ADDRESS_MAP_END
+ map(0x0e000, 0x0e7ff).ram().w(this, FUNC(subsino_state::subsino_colorram_w)).share("colorram");
+ map(0x0e800, 0x0efff).ram().w(this, FUNC(subsino_state::subsino_videoram_w)).share("videoram");
+}
-ADDRESS_MAP_START(subsino_state::sharkpy_map)
- AM_RANGE( 0x00000, 0x13fff ) AM_ROM //overlap unmapped regions
- AM_RANGE( 0x09800, 0x09fff ) AM_RAM
+void subsino_state::sharkpy_map(address_map &map)
+{
+ map(0x00000, 0x13fff).rom(); //overlap unmapped regions
+ map(0x09800, 0x09fff).ram();
- AM_RANGE( 0x09000, 0x09002 ) AM_DEVREAD("ppi1", i8255_device, read)
- AM_RANGE( 0x09004, 0x09006 ) AM_DEVREAD("ppi2", i8255_device, read)
+ map(0x09000, 0x09002).r("ppi1", FUNC(i8255_device::read));
+ map(0x09004, 0x09006).r("ppi2", FUNC(i8255_device::read));
- AM_RANGE( 0x09009, 0x09009 ) AM_WRITE(subsino_out_b_w )
- AM_RANGE( 0x0900a, 0x0900a ) AM_WRITE(subsino_out_a_w )
+ map(0x09009, 0x09009).w(this, FUNC(subsino_state::subsino_out_b_w));
+ map(0x0900a, 0x0900a).w(this, FUNC(subsino_state::subsino_out_a_w));
- AM_RANGE( 0x0900c, 0x0900c ) AM_READ_PORT( "INC" )
+ map(0x0900c, 0x0900c).portr("INC");
- AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
+ map(0x09016, 0x09017).w("ymsnd", FUNC(ym3812_device::write));
- AM_RANGE( 0x09018, 0x09018 ) AM_DEVWRITE("oki", okim6295_device, write)
+ map(0x09018, 0x09018).w("oki", FUNC(okim6295_device::write));
- AM_RANGE( 0x0901b, 0x0901b ) AM_WRITE(subsino_tiles_offset_w )
+ map(0x0901b, 0x0901b).w(this, FUNC(subsino_state::subsino_tiles_offset_w));
- AM_RANGE( 0x07800, 0x07fff ) AM_RAM
- AM_RANGE( 0x08000, 0x087ff ) AM_RAM_WRITE(subsino_colorram_w ) AM_SHARE("colorram")
- AM_RANGE( 0x08800, 0x08fff ) AM_RAM_WRITE(subsino_videoram_w ) AM_SHARE("videoram")
-ADDRESS_MAP_END
+ map(0x07800, 0x07fff).ram();
+ map(0x08000, 0x087ff).ram().w(this, FUNC(subsino_state::subsino_colorram_w)).share("colorram");
+ map(0x08800, 0x08fff).ram().w(this, FUNC(subsino_state::subsino_videoram_w)).share("videoram");
+}
/*
Victor 21 protection is absolutely trivial. At every number of presetted hands, there's an animation
@@ -896,32 +898,33 @@ that announces to the player that the card deck changes. If the protection check
this event makes the game to reset without any money in the bank.
*/
-ADDRESS_MAP_START(subsino_state::victor21_map)
- AM_RANGE( 0x00000, 0x08fff ) AM_ROM //overlap unmapped regions
+void subsino_state::victor21_map(address_map &map)
+{
+ map(0x00000, 0x08fff).rom(); //overlap unmapped regions
- AM_RANGE( 0x09800, 0x09fff ) AM_RAM
+ map(0x09800, 0x09fff).ram();
- AM_RANGE( 0x09000, 0x09003 ) AM_DEVREADWRITE("ppi", i8255_device, read, write)
- AM_RANGE( 0x09004, 0x09004 ) AM_READ_PORT( "INA" )
- AM_RANGE( 0x09005, 0x09005 ) AM_READ_PORT( "INB" )
- AM_RANGE( 0x09006, 0x09006 ) AM_READ_PORT( "SW1" )
- AM_RANGE( 0x09007, 0x09007 ) AM_READ_PORT( "SW2" )
- AM_RANGE( 0x09008, 0x09008 ) AM_READ_PORT( "SW3" )
+ map(0x09000, 0x09003).rw("ppi", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x09004, 0x09004).portr("INA");
+ map(0x09005, 0x09005).portr("INB");
+ map(0x09006, 0x09006).portr("SW1");
+ map(0x09007, 0x09007).portr("SW2");
+ map(0x09008, 0x09008).portr("SW3");
- AM_RANGE( 0x0900b, 0x0900b ) AM_RAM //protection
+ map(0x0900b, 0x0900b).ram(); //protection
// AM_RANGE( 0x0900c, 0x0900c ) AM_DEVWRITE("oki", okim6295_device, write)
- AM_RANGE( 0x0900e, 0x0900f ) AM_DEVWRITE("ymsnd", ym2413_device, write)
+ map(0x0900e, 0x0900f).w("ymsnd", FUNC(ym2413_device::write));
- AM_RANGE( 0x0900d, 0x0900d ) AM_WRITE(subsino_tiles_offset_w )
+ map(0x0900d, 0x0900d).w(this, FUNC(subsino_state::subsino_tiles_offset_w));
- AM_RANGE( 0x07800, 0x07fff ) AM_RAM
- AM_RANGE( 0x08000, 0x087ff ) AM_RAM_WRITE(subsino_videoram_w ) AM_SHARE("videoram")
- AM_RANGE( 0x08800, 0x08fff ) AM_RAM_WRITE(subsino_colorram_w ) AM_SHARE("colorram")
+ map(0x07800, 0x07fff).ram();
+ map(0x08000, 0x087ff).ram().w(this, FUNC(subsino_state::subsino_videoram_w)).share("videoram");
+ map(0x08800, 0x08fff).ram().w(this, FUNC(subsino_state::subsino_colorram_w)).share("colorram");
- AM_RANGE( 0x10000, 0x13fff ) AM_ROM
-ADDRESS_MAP_END
+ map(0x10000, 0x13fff).rom();
+}
/*
@@ -975,11 +978,12 @@ WRITE8_MEMBER(subsino_state::flash_w)
}
}
-ADDRESS_MAP_START(subsino_state::victor5_map)
- AM_IMPORT_FROM( victor21_map )
- AM_RANGE( 0x0900a, 0x0900a ) AM_READWRITE(flash_r, flash_w )
- AM_RANGE( 0x0900b, 0x0900b ) AM_READNOP //"flash" status, bit 0
-ADDRESS_MAP_END
+void subsino_state::victor5_map(address_map &map)
+{
+ victor21_map(map);
+ map(0x0900a, 0x0900a).rw(this, FUNC(subsino_state::flash_r), FUNC(subsino_state::flash_w));
+ map(0x0900b, 0x0900b).nopr(); //"flash" status, bit 0
+}
READ8_MEMBER(subsino_state::hwcheck_r)
@@ -988,38 +992,39 @@ READ8_MEMBER(subsino_state::hwcheck_r)
return 0x55;
}
-ADDRESS_MAP_START(subsino_state::crsbingo_map)
- AM_RANGE( 0x00000, 0x8fff ) AM_ROM //overlap unmapped regions
+void subsino_state::crsbingo_map(address_map &map)
+{
+ map(0x00000, 0x8fff).rom(); //overlap unmapped regions
- AM_RANGE( 0x09800, 0x09fff ) AM_RAM
+ map(0x09800, 0x09fff).ram();
- AM_RANGE( 0x09000, 0x09000 ) AM_READ_PORT( "SW1" )
- AM_RANGE( 0x09001, 0x09001 ) AM_READ_PORT( "SW2" )
- AM_RANGE( 0x09002, 0x09002 ) AM_READ_PORT( "INA" )
- AM_RANGE( 0x09003, 0x09003 ) AM_READ_PORT( "INB" )
- AM_RANGE( 0x09004, 0x09004 ) AM_READ_PORT( "INC" )
- AM_RANGE( 0x09005, 0x09005 ) AM_WRITE(subsino_out_a_w )
+ map(0x09000, 0x09000).portr("SW1");
+ map(0x09001, 0x09001).portr("SW2");
+ map(0x09002, 0x09002).portr("INA");
+ map(0x09003, 0x09003).portr("INB");
+ map(0x09004, 0x09004).portr("INC");
+ map(0x09005, 0x09005).w(this, FUNC(subsino_state::subsino_out_a_w));
- AM_RANGE( 0x09008, 0x09008 ) AM_READ_PORT( "SW4" )
- AM_RANGE( 0x09009, 0x09009 ) AM_READ_PORT( "SW3" ) // AM_WRITE(subsino_out_a_w )
- AM_RANGE( 0x0900a, 0x0900a ) AM_READWRITE(hwcheck_r, subsino_out_b_w )
+ map(0x09008, 0x09008).portr("SW4");
+ map(0x09009, 0x09009).portr("SW3"); // AM_WRITE(subsino_out_a_w )
+ map(0x0900a, 0x0900a).rw(this, FUNC(subsino_state::hwcheck_r), FUNC(subsino_state::subsino_out_b_w));
- AM_RANGE( 0x09010, 0x09010 ) AM_READWRITE(flash_r, flash_w )
+ map(0x09010, 0x09010).rw(this, FUNC(subsino_state::flash_r), FUNC(subsino_state::flash_w));
// AM_RANGE( 0x09011, 0x09011 ) //"flash" status, bit 0
// AM_RANGE( 0x0900c, 0x0900c ) AM_READ_PORT( "INC" )
- AM_RANGE( 0x0900c, 0x0900d ) AM_DEVWRITE("ymsnd", ym2413_device, write)
+ map(0x0900c, 0x0900d).w("ymsnd", FUNC(ym2413_device::write));
// AM_RANGE( 0x09018, 0x09018 ) AM_DEVWRITE("oki", okim6295_device, write)
// AM_RANGE( 0x0900d, 0x0900d ) AM_WRITE(subsino_tiles_offset_w )
- AM_RANGE( 0x07800, 0x07fff ) AM_RAM
- AM_RANGE( 0x08000, 0x087ff ) AM_RAM_WRITE(subsino_videoram_w ) AM_SHARE("videoram")
- AM_RANGE( 0x08800, 0x08fff ) AM_RAM_WRITE(subsino_colorram_w ) AM_SHARE("colorram")
+ map(0x07800, 0x07fff).ram();
+ map(0x08000, 0x087ff).ram().w(this, FUNC(subsino_state::subsino_videoram_w)).share("videoram");
+ map(0x08800, 0x08fff).ram().w(this, FUNC(subsino_state::subsino_colorram_w)).share("colorram");
- AM_RANGE( 0x10000, 0x13fff ) AM_ROM //overlap unmapped regions
+ map(0x10000, 0x13fff).rom(); //overlap unmapped regions
-ADDRESS_MAP_END
+}
WRITE8_MEMBER(subsino_state::subsino_out_c_w)
{
@@ -1036,45 +1041,47 @@ WRITE8_MEMBER(subsino_state::subsino_out_c_w)
// popmessage("data %02x\n",data);
}
-ADDRESS_MAP_START(subsino_state::tisub_map)
- AM_RANGE( 0x00000, 0x0bfff ) AM_ROM // overlap unmapped regions
- AM_RANGE( 0x09800, 0x09fff ) AM_RAM
+void subsino_state::tisub_map(address_map &map)
+{
+ map(0x00000, 0x0bfff).rom(); // overlap unmapped regions
+ map(0x09800, 0x09fff).ram();
- AM_RANGE( 0x09000, 0x09002 ) AM_DEVREAD("ppi1", i8255_device, read)
- AM_RANGE( 0x09004, 0x09006 ) AM_DEVREAD("ppi2", i8255_device, read)
+ map(0x09000, 0x09002).r("ppi1", FUNC(i8255_device::read));
+ map(0x09004, 0x09006).r("ppi2", FUNC(i8255_device::read));
/* 0x09008: is marked as OUTPUT C in the test mode. */
- AM_RANGE( 0x09008, 0x09008 ) AM_WRITE(subsino_out_c_w )
- AM_RANGE( 0x09009, 0x09009 ) AM_WRITE(subsino_out_b_w )
- AM_RANGE( 0x0900a, 0x0900a ) AM_WRITE(subsino_out_a_w )
+ map(0x09008, 0x09008).w(this, FUNC(subsino_state::subsino_out_c_w));
+ map(0x09009, 0x09009).w(this, FUNC(subsino_state::subsino_out_b_w));
+ map(0x0900a, 0x0900a).w(this, FUNC(subsino_state::subsino_out_a_w));
- AM_RANGE( 0x0900c, 0x0900c ) AM_READ_PORT( "INC" )
+ map(0x0900c, 0x0900c).portr("INC");
- AM_RANGE( 0x09016, 0x09017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
+ map(0x09016, 0x09017).w("ymsnd", FUNC(ym3812_device::write));
// AM_RANGE( 0x0900c, 0x0900c ) AM_DEVWRITE("oki", okim6295_device, write)
- AM_RANGE( 0x0901b, 0x0901b ) AM_WRITE(subsino_tiles_offset_w )
+ map(0x0901b, 0x0901b).w(this, FUNC(subsino_state::subsino_tiles_offset_w));
- AM_RANGE( 0x07800, 0x07fff ) AM_RAM
- AM_RANGE( 0x08800, 0x08fff ) AM_RAM_WRITE(subsino_videoram_w ) AM_SHARE("videoram")
- AM_RANGE( 0x08000, 0x087ff ) AM_RAM_WRITE(subsino_colorram_w ) AM_SHARE("colorram")
+ map(0x07800, 0x07fff).ram();
+ map(0x08800, 0x08fff).ram().w(this, FUNC(subsino_state::subsino_videoram_w)).share("videoram");
+ map(0x08000, 0x087ff).ram().w(this, FUNC(subsino_state::subsino_colorram_w)).share("colorram");
- AM_RANGE( 0x10000, 0x13fff ) AM_ROM
- AM_RANGE( 0x14000, 0x14fff ) AM_ROM // reads the card face data here (see rom copy in rom loading)
+ map(0x10000, 0x13fff).rom();
+ map(0x14000, 0x14fff).rom(); // reads the card face data here (see rom copy in rom loading)
- AM_RANGE( 0x150c0, 0x150ff ) AM_RAM AM_SHARE("reel3_scroll")
- AM_RANGE( 0x15140, 0x1517f ) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE( 0x15180, 0x151bf ) AM_RAM AM_SHARE("reel1_scroll")
+ map(0x150c0, 0x150ff).ram().share("reel3_scroll");
+ map(0x15140, 0x1517f).ram().share("reel2_scroll");
+ map(0x15180, 0x151bf).ram().share("reel1_scroll");
- AM_RANGE( 0x15800, 0x159ff ) AM_RAM_WRITE(subsino_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE( 0x15a00, 0x15bff ) AM_RAM_WRITE(subsino_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE( 0x15c00, 0x15dff ) AM_RAM_WRITE(subsino_reel3_ram_w) AM_SHARE("reel3_ram")
-ADDRESS_MAP_END
+ map(0x15800, 0x159ff).ram().w(this, FUNC(subsino_state::subsino_reel1_ram_w)).share("reel1_ram");
+ map(0x15a00, 0x15bff).ram().w(this, FUNC(subsino_state::subsino_reel2_ram_w)).share("reel2_ram");
+ map(0x15c00, 0x15dff).ram().w(this, FUNC(subsino_state::subsino_reel3_ram_w)).share("reel3_ram");
+}
-ADDRESS_MAP_START(subsino_state::ramdac_map)
- AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac", ramdac_device, ramdac_pal_r, ramdac_rgb666_w)
-ADDRESS_MAP_END
+void subsino_state::ramdac_map(address_map &map)
+{
+ map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb666_w));
+}
// this stuff is banked..
// not 100% sure on the bank bits.. other bits are also set
@@ -1127,82 +1134,85 @@ READ8_MEMBER(subsino_state::reel_scrollattr_r)
return m_reel1_attr[offset];
}
-ADDRESS_MAP_START(subsino_state::stbsub_map)
- AM_RANGE( 0x00000, 0x0bfff ) AM_ROM
+void subsino_state::stbsub_map(address_map &map)
+{
+ map(0x00000, 0x0bfff).rom();
- AM_RANGE( 0x0c000, 0x0cfff ) AM_RAM
+ map(0x0c000, 0x0cfff).ram();
- AM_RANGE( 0x0d000, 0x0d002 ) AM_DEVREAD("ppi1", i8255_device, read)
- AM_RANGE( 0x0d004, 0x0d006 ) AM_DEVREAD("ppi2", i8255_device, read)
+ map(0x0d000, 0x0d002).r("ppi1", FUNC(i8255_device::read));
+ map(0x0d004, 0x0d006).r("ppi2", FUNC(i8255_device::read));
- AM_RANGE( 0x0d008, 0x0d008 ) AM_RAM AM_SHARE("stbsub_out_c")
+ map(0x0d008, 0x0d008).ram().share("stbsub_out_c");
- AM_RANGE( 0x0d009, 0x0d009 ) AM_WRITE(subsino_out_b_w )
- AM_RANGE( 0x0d00a, 0x0d00a ) AM_WRITE(subsino_out_a_w )
+ map(0x0d009, 0x0d009).w(this, FUNC(subsino_state::subsino_out_b_w));
+ map(0x0d00a, 0x0d00a).w(this, FUNC(subsino_state::subsino_out_a_w));
- AM_RANGE( 0x0d00c, 0x0d00c ) AM_READ_PORT( "INC" )
+ map(0x0d00c, 0x0d00c).portr("INC");
- AM_RANGE( 0x0d010, 0x0d010 ) AM_DEVWRITE("ramdac", ramdac_device, index_w)
- AM_RANGE( 0x0d011, 0x0d011 ) AM_DEVWRITE("ramdac", ramdac_device, pal_w)
- AM_RANGE( 0x0d012, 0x0d012 ) AM_DEVWRITE("ramdac", ramdac_device, mask_w)
+ map(0x0d010, 0x0d010).w("ramdac", FUNC(ramdac_device::index_w));
+ map(0x0d011, 0x0d011).w("ramdac", FUNC(ramdac_device::pal_w));
+ map(0x0d012, 0x0d012).w("ramdac", FUNC(ramdac_device::mask_w));
- AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
+ map(0x0d016, 0x0d017).w("ymsnd", FUNC(ym3812_device::write));
// AM_RANGE( 0x0d01b, 0x0d01b ) AM_WRITE(subsino_tiles_offset_w )
- AM_RANGE( 0x0e000, 0x0e7ff ) AM_RAM_WRITE(subsino_colorram_w ) AM_SHARE("colorram")
- AM_RANGE( 0x0e800, 0x0efff ) AM_RAM_WRITE(subsino_videoram_w ) AM_SHARE("videoram")
+ map(0x0e000, 0x0e7ff).ram().w(this, FUNC(subsino_state::subsino_colorram_w)).share("colorram");
+ map(0x0e800, 0x0efff).ram().w(this, FUNC(subsino_state::subsino_videoram_w)).share("videoram");
- AM_RANGE( 0xf000, 0xf7ff ) AM_READWRITE(reel_scrollattr_r, reel_scrollattr_w)
+ map(0xf000, 0xf7ff).rw(this, FUNC(subsino_state::reel_scrollattr_r), FUNC(subsino_state::reel_scrollattr_w));
- AM_RANGE( 0xf800, 0xf9ff ) AM_RAM_WRITE(subsino_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE( 0xfa00, 0xfbff ) AM_RAM_WRITE(subsino_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE( 0xfc00, 0xfdff ) AM_RAM_WRITE(subsino_reel3_ram_w) AM_SHARE("reel3_ram")
-ADDRESS_MAP_END
+ map(0xf800, 0xf9ff).ram().w(this, FUNC(subsino_state::subsino_reel1_ram_w)).share("reel1_ram");
+ map(0xfa00, 0xfbff).ram().w(this, FUNC(subsino_state::subsino_reel2_ram_w)).share("reel2_ram");
+ map(0xfc00, 0xfdff).ram().w(this, FUNC(subsino_state::subsino_reel3_ram_w)).share("reel3_ram");
+}
/***************************************************************************
Magic Train (Clear NVRAM ROM?)
***************************************************************************/
-ADDRESS_MAP_START(subsino_state::mtrainnv_map)
- AM_RANGE( 0x00000, 0x0bfff ) AM_ROM
+void subsino_state::mtrainnv_map(address_map &map)
+{
+ map(0x00000, 0x0bfff).rom();
- AM_RANGE( 0x0c000, 0x0cfff ) AM_RAM
+ map(0x0c000, 0x0cfff).ram();
- AM_RANGE( 0x0d000, 0x0d002 ) AM_DEVREAD("ppi1", i8255_device, read)
- AM_RANGE( 0x0d004, 0x0d006 ) AM_DEVREAD("ppi2", i8255_device, read)
+ map(0x0d000, 0x0d002).r("ppi1", FUNC(i8255_device::read));
+ map(0x0d004, 0x0d006).r("ppi2", FUNC(i8255_device::read));
- AM_RANGE( 0x0d008, 0x0d008 ) AM_RAM AM_SHARE("stbsub_out_c")
+ map(0x0d008, 0x0d008).ram().share("stbsub_out_c");
// AM_RANGE( 0x0d009, 0x0d009 ) AM_WRITE
// AM_RANGE( 0x0d00a, 0x0d00a ) AM_WRITE
// AM_RANGE( 0x0d00b, 0x0d00b ) AM_WRITE
- AM_RANGE( 0x0d00c, 0x0d00c ) AM_READ_PORT( "INC" )
+ map(0x0d00c, 0x0d00c).portr("INC");
- AM_RANGE( 0x0d010, 0x0d010 ) AM_DEVWRITE("ramdac", ramdac_device, index_w)
- AM_RANGE( 0x0d011, 0x0d011 ) AM_DEVWRITE("ramdac", ramdac_device, pal_w)
- AM_RANGE( 0x0d012, 0x0d012 ) AM_DEVWRITE("ramdac", ramdac_device, mask_w)
+ map(0x0d010, 0x0d010).w("ramdac", FUNC(ramdac_device::index_w));
+ map(0x0d011, 0x0d011).w("ramdac", FUNC(ramdac_device::pal_w));
+ map(0x0d012, 0x0d012).w("ramdac", FUNC(ramdac_device::mask_w));
// AM_RANGE( 0x0d012, 0x0d012 ) AM_WRITE
- AM_RANGE( 0x0d016, 0x0d017 ) AM_DEVWRITE("ymsnd", ym3812_device, write)
+ map(0x0d016, 0x0d017).w("ymsnd", FUNC(ym3812_device::write));
// AM_RANGE( 0x0d018, 0x0d018 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE( 0x0e000, 0x0e7ff ) AM_RAM_WRITE(subsino_colorram_w ) AM_SHARE("colorram")
- AM_RANGE( 0x0e800, 0x0efff ) AM_RAM_WRITE(subsino_videoram_w ) AM_SHARE("videoram")
+ map(0x0e000, 0x0e7ff).ram().w(this, FUNC(subsino_state::subsino_colorram_w)).share("colorram");
+ map(0x0e800, 0x0efff).ram().w(this, FUNC(subsino_state::subsino_videoram_w)).share("videoram");
- AM_RANGE( 0xf000, 0xf7ff ) AM_READWRITE(reel_scrollattr_r, reel_scrollattr_w)
+ map(0xf000, 0xf7ff).rw(this, FUNC(subsino_state::reel_scrollattr_r), FUNC(subsino_state::reel_scrollattr_w));
- AM_RANGE( 0xf800, 0xf9ff ) AM_RAM_WRITE(subsino_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE( 0xfa00, 0xfbff ) AM_RAM_WRITE(subsino_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE( 0xfc00, 0xfdff ) AM_RAM_WRITE(subsino_reel3_ram_w) AM_SHARE("reel3_ram")
-ADDRESS_MAP_END
+ map(0xf800, 0xf9ff).ram().w(this, FUNC(subsino_state::subsino_reel1_ram_w)).share("reel1_ram");
+ map(0xfa00, 0xfbff).ram().w(this, FUNC(subsino_state::subsino_reel2_ram_w)).share("reel2_ram");
+ map(0xfc00, 0xfdff).ram().w(this, FUNC(subsino_state::subsino_reel3_ram_w)).share("reel3_ram");
+}
-ADDRESS_MAP_START(subsino_state::subsino_iomap)
- AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs
-ADDRESS_MAP_END
+void subsino_state::subsino_iomap(address_map &map)
+{
+ map(0x0000, 0x003f).ram(); // internal regs
+}
/***************************************************************************