summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/goldstar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/goldstar.cpp')
-rw-r--r--src/mame/drivers/goldstar.cpp690
1 files changed, 355 insertions, 335 deletions
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp
index d6ef9482f94..a81e62f4409 100644
--- a/src/mame/drivers/goldstar.cpp
+++ b/src/mame/drivers/goldstar.cpp
@@ -330,73 +330,76 @@ WRITE8_MEMBER(goldstar_state::p2_lamps_w)
}
-ADDRESS_MAP_START(goldstar_state::goldstar_map)
- AM_RANGE(0x0000, 0xb7ff) AM_ROM
- AM_RANGE(0xb800, 0xbfff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xc000, 0xc7ff) AM_ROM
- AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(goldstar_fg_vidram_w ) AM_SHARE("fg_vidram")
- AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(goldstar_fg_atrram_w ) AM_SHARE("fg_atrram")
- AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(goldstar_reel1_ram_w ) AM_SHARE("reel1_ram")
- AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(goldstar_reel2_ram_w ) AM_SHARE("reel2_ram")
- AM_RANGE(0xe800, 0xe9ff) AM_RAM_WRITE(goldstar_reel3_ram_w ) AM_SHARE("reel3_ram")
- AM_RANGE(0xf040, 0xf07f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xf080, 0xf0bf) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xf0c0, 0xf0ff) AM_RAM AM_SHARE("reel3_scroll")
-
- AM_RANGE(0xf800, 0xf800) AM_READ_PORT("IN0")
- AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1") /* Test Mode */
- AM_RANGE(0xf802, 0xf802) AM_READ_PORT("DSW1")
+void goldstar_state::goldstar_map(address_map &map)
+{
+ map(0x0000, 0xb7ff).rom();
+ map(0xb800, 0xbfff).ram().share("nvram");
+ map(0xc000, 0xc7ff).rom();
+ map(0xc800, 0xcfff).ram().w(this, FUNC(goldstar_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0xd000, 0xd7ff).ram().w(this, FUNC(goldstar_state::goldstar_fg_atrram_w)).share("fg_atrram");
+ map(0xd800, 0xd9ff).ram().w(this, FUNC(goldstar_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xe000, 0xe1ff).ram().w(this, FUNC(goldstar_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xe800, 0xe9ff).ram().w(this, FUNC(goldstar_state::goldstar_reel3_ram_w)).share("reel3_ram");
+ map(0xf040, 0xf07f).ram().share("reel1_scroll");
+ map(0xf080, 0xf0bf).ram().share("reel2_scroll");
+ map(0xf0c0, 0xf0ff).ram().share("reel3_scroll");
+
+ map(0xf800, 0xf800).portr("IN0");
+ map(0xf801, 0xf801).portr("IN1"); /* Test Mode */
+ map(0xf802, 0xf802).portr("DSW1");
// AM_RANGE(0xf803, 0xf803)
// AM_RANGE(0xf804, 0xf804)
- AM_RANGE(0xf805, 0xf805) AM_READ_PORT("DSW4") /* DSW 4 (also appears in 8910 port) */
- AM_RANGE(0xf806, 0xf806) AM_READ_PORT("DSW7") /* (don't know to which one of the */
- AM_RANGE(0xf810, 0xf810) AM_READ_PORT("UNK1")
- AM_RANGE(0xf811, 0xf811) AM_READ_PORT("UNK2")
- AM_RANGE(0xf820, 0xf820) AM_READ_PORT("DSW2")
- AM_RANGE(0xf830, 0xf830) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w)
- AM_RANGE(0xf840, 0xf840) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0xf900, 0xf900) AM_WRITE(p1_lamps_w)
- AM_RANGE(0xfa00, 0xfa00) AM_WRITE(goldstar_fa00_w)
- AM_RANGE(0xfb00, 0xfb00) AM_DEVREADWRITE("oki", okim6295_device, read, write)
- AM_RANGE(0xfd00, 0xfdff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0xfe00, 0xfe00) AM_READWRITE(protection_r,protection_w)
-ADDRESS_MAP_END
+ map(0xf805, 0xf805).portr("DSW4"); /* DSW 4 (also appears in 8910 port) */
+ map(0xf806, 0xf806).portr("DSW7"); /* (don't know to which one of the */
+ map(0xf810, 0xf810).portr("UNK1");
+ map(0xf811, 0xf811).portr("UNK2");
+ map(0xf820, 0xf820).portr("DSW2");
+ map(0xf830, 0xf830).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0xf840, 0xf840).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0xf900, 0xf900).w(this, FUNC(goldstar_state::p1_lamps_w));
+ map(0xfa00, 0xfa00).w(this, FUNC(goldstar_state::goldstar_fa00_w));
+ map(0xfb00, 0xfb00).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+ map(0xfd00, 0xfdff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0xfe00, 0xfe00).rw(this, FUNC(goldstar_state::protection_r), FUNC(goldstar_state::protection_w));
+}
-ADDRESS_MAP_START(goldstar_state::goldstar_readport)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x10, 0x10) AM_READ_PORT("DSW6")
-ADDRESS_MAP_END
+void goldstar_state::goldstar_readport(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x10, 0x10).portr("DSW6");
+}
-ADDRESS_MAP_START(sanghopm_state::star100_map)
- AM_RANGE(0x0000, 0xbfff) AM_ROM
+void sanghopm_state::star100_map(address_map &map)
+{
+ map(0x0000, 0xbfff).rom();
- AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(fg_vidram_w) AM_SHARE("fg_vidram") // videoram 1
- AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(fg_atrram_w) AM_SHARE("fg_atrram") // atrram 1
+ map(0xc800, 0xcfff).ram().w(this, FUNC(sanghopm_state::fg_vidram_w)).share("fg_vidram"); // videoram 1
+ map(0xd000, 0xd7ff).ram().w(this, FUNC(sanghopm_state::fg_atrram_w)).share("fg_atrram"); // atrram 1
- AM_RANGE(0xd800, 0xd83f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xd840, 0xd9ff) AM_RAM
- AM_RANGE(0xda00, 0xda3f) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xda40, 0xdbff) AM_RAM
- AM_RANGE(0xdc00, 0xdc3f) AM_RAM AM_SHARE("reel3_scroll")
- AM_RANGE(0xdc40, 0xdfff) AM_RAM
+ map(0xd800, 0xd83f).ram().share("reel1_scroll");
+ map(0xd840, 0xd9ff).ram();
+ map(0xda00, 0xda3f).ram().share("reel2_scroll");
+ map(0xda40, 0xdbff).ram();
+ map(0xdc00, 0xdc3f).ram().share("reel3_scroll");
+ map(0xdc40, 0xdfff).ram();
- AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE(0xe200, 0xe3ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE(0xe400, 0xe5ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_SHARE("reel3_ram")
+ map(0xe000, 0xe1ff).ram().w(this, FUNC(sanghopm_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xe200, 0xe3ff).ram().w(this, FUNC(sanghopm_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xe400, 0xe5ff).ram().w(this, FUNC(sanghopm_state::goldstar_reel3_ram_w)).share("reel3_ram");
- AM_RANGE(0xe600, 0xe7ff) AM_RAM_WRITE(bg_vidram_w) AM_SHARE("bg_vidram") // videoram 2
+ map(0xe600, 0xe7ff).ram().w(this, FUNC(sanghopm_state::bg_vidram_w)).share("bg_vidram"); // videoram 2
- AM_RANGE(0xe800, 0xe9ff) AM_RAM_WRITE(reel1_attrram_w) AM_SHARE("reel1_attrram")
- AM_RANGE(0xea00, 0xebff) AM_RAM_WRITE(reel2_attrram_w) AM_SHARE("reel2_attrram")
- AM_RANGE(0xec00, 0xedff) AM_RAM_WRITE(reel3_attrram_w) AM_SHARE("reel3_attrram")
+ map(0xe800, 0xe9ff).ram().w(this, FUNC(sanghopm_state::reel1_attrram_w)).share("reel1_attrram");
+ map(0xea00, 0xebff).ram().w(this, FUNC(sanghopm_state::reel2_attrram_w)).share("reel2_attrram");
+ map(0xec00, 0xedff).ram().w(this, FUNC(sanghopm_state::reel3_attrram_w)).share("reel3_attrram");
- AM_RANGE(0xee00, 0xefff) AM_RAM_WRITE(bg_atrram_w) AM_SHARE("bg_atrram") // atrram 2
+ map(0xee00, 0xefff).ram().w(this, FUNC(sanghopm_state::bg_atrram_w)).share("bg_atrram"); // atrram 2
- AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xf800, 0xffff) AM_RAM
+ map(0xf000, 0xf7ff).ram().share("nvram");
+ map(0xf800, 0xffff).ram();
-ADDRESS_MAP_END
+}
WRITE8_MEMBER(sanghopm_state::coincount_w)
@@ -423,34 +426,35 @@ WRITE8_MEMBER(sanghopm_state::enable_w)
m_enable_reg = data;
}
-ADDRESS_MAP_START(sanghopm_state::star100_readport)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
+void sanghopm_state::star100_readport(address_map &map)
+{
+ map.global_mask(0xff);
- AM_RANGE(0x08, 0x08) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w)
- AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("aysnd", ay8910_device, address_w)
+ map(0x08, 0x08).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0x0c, 0x0c).w("aysnd", FUNC(ay8910_device::address_w));
- AM_RANGE(0x10, 0x10) AM_READ_PORT("IN0")
- AM_RANGE(0x11, 0x11) AM_READ_PORT("IN1")
- AM_RANGE(0x12, 0x12) AM_READ_PORT("IN2")
- AM_RANGE(0x13, 0x13) AM_READ_PORT("IN3")
- AM_RANGE(0x14, 0x14) AM_READ_PORT("DSW1")
+ map(0x10, 0x10).portr("IN0");
+ map(0x11, 0x11).portr("IN1");
+ map(0x12, 0x12).portr("IN2");
+ map(0x13, 0x13).portr("IN3");
+ map(0x14, 0x14).portr("DSW1");
- AM_RANGE(0x1c, 0x1c) AM_DEVWRITE("ramdac", ramdac_device, index_w)
- AM_RANGE(0x1d ,0x1d) AM_DEVWRITE("ramdac", ramdac_device, pal_w)
- AM_RANGE(0x1e ,0x1e) AM_DEVWRITE("ramdac", ramdac_device, mask_w)
+ map(0x1c, 0x1c).w("ramdac", FUNC(ramdac_device::index_w));
+ map(0x1d, 0x1d).w("ramdac", FUNC(ramdac_device::pal_w));
+ map(0x1e, 0x1e).w("ramdac", FUNC(ramdac_device::mask_w));
- AM_RANGE(0x20, 0x20) AM_READ_PORT("DSW4-0") // the first 4 bits map to DSW4 1 to 4.
- AM_RANGE(0x21, 0x21) AM_READ_PORT("DSW4-1") // the first 4 bits map to DSW4 5 to 8.
+ map(0x20, 0x20).portr("DSW4-0"); // the first 4 bits map to DSW4 1 to 4.
+ map(0x21, 0x21).portr("DSW4-1"); // the first 4 bits map to DSW4 5 to 8.
- AM_RANGE(0x24, 0x24) AM_WRITE(coincount_w) // coin counters.
+ map(0x24, 0x24).w(this, FUNC(sanghopm_state::coincount_w)); // coin counters.
- AM_RANGE(0x25, 0x25) AM_READ_PORT("DSW2")
- AM_RANGE(0x26, 0x26) AM_READ_PORT("DSW3")
+ map(0x25, 0x25).portr("DSW2");
+ map(0x26, 0x26).portr("DSW3");
- AM_RANGE(0xe0, 0xe0) AM_WRITENOP // Writing 0's and 1's constantly. Watchdog feeder?
- AM_RANGE(0xe1, 0xe1) AM_WRITE(enable_w) // enable/disable reels register.
+ map(0xe0, 0xe0).nopw(); // Writing 0's and 1's constantly. Watchdog feeder?
+ map(0xe1, 0xe1).w(this, FUNC(sanghopm_state::enable_w)); // enable/disable reels register.
-ADDRESS_MAP_END
+}
/*
08: W (3F) AY8910 data
@@ -601,30 +605,31 @@ WRITE8_MEMBER(goldstar_state::ncb3_port81_w)
}
-ADDRESS_MAP_START(cb3_state::ncb3_map)
- AM_RANGE(0x0000, 0xb7ff) AM_ROM
- AM_RANGE(0xb800, 0xbfff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xc000, 0xc7ff) AM_ROM
- AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_SHARE("fg_vidram")
- AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_SHARE("fg_atrram")
- AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE(0xe800, 0xe9ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_SHARE("reel3_ram")
- AM_RANGE(0xf040, 0xf07f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xf080, 0xf0bf) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xf100, 0xf17f) AM_RAM AM_SHARE("reel3_scroll") // moved compared to goldstar
-
- AM_RANGE(0xf800, 0xf803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0xf810, 0xf813) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0xf820, 0xf823) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) /* Input/Output Ports */
- AM_RANGE(0xf822, 0xf822) AM_WRITE(goldstar_fa00_w) // hack (connected to ppi output port?, needed for colour banking)
-
- AM_RANGE(0xf830, 0xf830) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w)
- AM_RANGE(0xf840, 0xf840) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0xf850, 0xf850) AM_WRITE(p1_lamps_w) /* Control Set 1 lamps */
- AM_RANGE(0xf860, 0xf860) AM_WRITE(p2_lamps_w) /* Control Set 2 lamps */
- AM_RANGE(0xf870, 0xf870) AM_DEVWRITE("snsnd", sn76489_device, write) /* guess... device is initialized, but doesn't seems to be used.*/
-ADDRESS_MAP_END
+void cb3_state::ncb3_map(address_map &map)
+{
+ map(0x0000, 0xb7ff).rom();
+ map(0xb800, 0xbfff).ram().share("nvram");
+ map(0xc000, 0xc7ff).rom();
+ map(0xc800, 0xcfff).ram().w(this, FUNC(cb3_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0xd000, 0xd7ff).ram().w(this, FUNC(cb3_state::goldstar_fg_atrram_w)).share("fg_atrram");
+ map(0xd800, 0xd9ff).ram().w(this, FUNC(cb3_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xe000, 0xe1ff).ram().w(this, FUNC(cb3_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xe800, 0xe9ff).ram().w(this, FUNC(cb3_state::goldstar_reel3_ram_w)).share("reel3_ram");
+ map(0xf040, 0xf07f).ram().share("reel1_scroll");
+ map(0xf080, 0xf0bf).ram().share("reel2_scroll");
+ map(0xf100, 0xf17f).ram().share("reel3_scroll"); // moved compared to goldstar
+
+ map(0xf800, 0xf803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0xf810, 0xf813).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0xf820, 0xf823).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input/Output Ports */
+ map(0xf822, 0xf822).w(this, FUNC(cb3_state::goldstar_fa00_w)); // hack (connected to ppi output port?, needed for colour banking)
+
+ map(0xf830, 0xf830).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0xf840, 0xf840).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0xf850, 0xf850).w(this, FUNC(cb3_state::p1_lamps_w)); /* Control Set 1 lamps */
+ map(0xf860, 0xf860).w(this, FUNC(cb3_state::p2_lamps_w)); /* Control Set 2 lamps */
+ map(0xf870, 0xf870).w("snsnd", FUNC(sn76489_device::write)); /* guess... device is initialized, but doesn't seems to be used.*/
+}
ADDRESS_MAP_START(goldstar_state::ncb3_readwriteport)
ADDRESS_MAP_GLOBAL_MASK(0xff)
@@ -669,38 +674,40 @@ ADDRESS_MAP_END
*/
-ADDRESS_MAP_START(goldstar_state::wcherry_map)
- AM_RANGE(0x0000, 0xb7ff) AM_ROM
- AM_RANGE(0xb800, 0xbfff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xc000, 0xc7ff) AM_ROM
+void goldstar_state::wcherry_map(address_map &map)
+{
+ map(0x0000, 0xb7ff).rom();
+ map(0xb800, 0xbfff).ram().share("nvram");
+ map(0xc000, 0xc7ff).rom();
/* Video RAM and reels stuff are there just as placeholder, and obviously in wrong offset */
- AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE(goldstar_fg_vidram_w ) AM_SHARE("fg_vidram")
- AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(goldstar_fg_atrram_w ) AM_SHARE("fg_atrram")
- AM_RANGE(0xd800, 0xd9ff) AM_RAM_WRITE(goldstar_reel1_ram_w ) AM_SHARE("reel1_ram")
- AM_RANGE(0xe000, 0xe1ff) AM_RAM_WRITE(goldstar_reel2_ram_w ) AM_SHARE("reel2_ram")
- AM_RANGE(0xe800, 0xe9ff) AM_RAM_WRITE(goldstar_reel3_ram_w ) AM_SHARE("reel3_ram")
- AM_RANGE(0xf040, 0xf07f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xf080, 0xf0bf) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xf0c0, 0xf0ff) AM_RAM AM_SHARE("reel3_scroll")
+ map(0xc800, 0xcfff).ram().w(this, FUNC(goldstar_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0xd000, 0xd7ff).ram().w(this, FUNC(goldstar_state::goldstar_fg_atrram_w)).share("fg_atrram");
+ map(0xd800, 0xd9ff).ram().w(this, FUNC(goldstar_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xe000, 0xe1ff).ram().w(this, FUNC(goldstar_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xe800, 0xe9ff).ram().w(this, FUNC(goldstar_state::goldstar_reel3_ram_w)).share("reel3_ram");
+ map(0xf040, 0xf07f).ram().share("reel1_scroll");
+ map(0xf080, 0xf0bf).ram().share("reel2_scroll");
+ map(0xf0c0, 0xf0ff).ram().share("reel3_scroll");
/* Not really PPI's... They are emulated/simulated inside the CPLDs */
- AM_RANGE(0xf600, 0xf603) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0xf610, 0xf613) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0xf620, 0xf623) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) /* Input/Output Ports */
+ map(0xf600, 0xf603).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0xf610, 0xf613).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0xf620, 0xf623).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input/Output Ports */
- AM_RANGE(0xf630, 0xf630) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w)
- AM_RANGE(0xf640, 0xf640) AM_DEVWRITE("aysnd", ay8910_device, address_w)
- AM_RANGE(0xf650, 0xf650) AM_WRITENOP // AM_WRITE(output_w) // unknown register: 0x3e
- AM_RANGE(0xf660, 0xf660) AM_WRITENOP // AM_WRITE(output_w) // unknown register: 0x3e
- AM_RANGE(0xf670, 0xf670) AM_DEVWRITE("snsnd", sn76489_device, write) /* guess... device is initialized, but doesn't seems to be used.*/
+ map(0xf630, 0xf630).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0xf640, 0xf640).w("aysnd", FUNC(ay8910_device::address_w));
+ map(0xf650, 0xf650).nopw(); // AM_WRITE(output_w) // unknown register: 0x3e
+ map(0xf660, 0xf660).nopw(); // AM_WRITE(output_w) // unknown register: 0x3e
+ map(0xf670, 0xf670).w("snsnd", FUNC(sn76489_device::write)); /* guess... device is initialized, but doesn't seems to be used.*/
- AM_RANGE(0xf800, 0xffff) AM_RAM
-ADDRESS_MAP_END
+ map(0xf800, 0xffff).ram();
+}
-ADDRESS_MAP_START(goldstar_state::wcherry_readwriteport)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- ADDRESS_MAP_END
+void goldstar_state::wcherry_readwriteport(address_map &map)
+{
+ map.global_mask(0xff);
+ }
/* wcherry findings...
@@ -723,27 +730,28 @@ ADDRESS_MAP_START(goldstar_state::wcherry_readwriteport)
*/
-ADDRESS_MAP_START(goldstar_state::cm_map)
- AM_RANGE(0x0000, 0xcfff) AM_ROM AM_WRITENOP
+void goldstar_state::cm_map(address_map &map)
+{
+ map(0x0000, 0xcfff).rom().nopw();
- AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0xd800, 0xdfff) AM_RAM
+ map(0xd000, 0xd7ff).ram().share("nvram");
+ map(0xd800, 0xdfff).ram();
- AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_SHARE("fg_vidram")
- AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_SHARE("fg_atrram")
+ map(0xe000, 0xe7ff).ram().w(this, FUNC(goldstar_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0xe800, 0xefff).ram().w(this, FUNC(goldstar_state::goldstar_fg_atrram_w)).share("fg_atrram");
- AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(goldstar_reel1_ram_w ) AM_SHARE("reel1_ram")
- AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE(goldstar_reel2_ram_w ) AM_SHARE("reel2_ram")
- AM_RANGE(0xf400, 0xf5ff) AM_RAM_WRITE(goldstar_reel3_ram_w ) AM_SHARE("reel3_ram")
- AM_RANGE(0xf600, 0xf7ff) AM_RAM
+ map(0xf000, 0xf1ff).ram().w(this, FUNC(goldstar_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xf200, 0xf3ff).ram().w(this, FUNC(goldstar_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xf400, 0xf5ff).ram().w(this, FUNC(goldstar_state::goldstar_reel3_ram_w)).share("reel3_ram");
+ map(0xf600, 0xf7ff).ram();
- AM_RANGE(0xf800, 0xf87f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xf880, 0xf9ff) AM_RAM
- AM_RANGE(0xfa00, 0xfa7f) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xfa80, 0xfbff) AM_RAM
- AM_RANGE(0xfc00, 0xfc7f) AM_RAM AM_SHARE("reel3_scroll")
- AM_RANGE(0xfc80, 0xffff) AM_RAM
-ADDRESS_MAP_END
+ map(0xf800, 0xf87f).ram().share("reel1_scroll");
+ map(0xf880, 0xf9ff).ram();
+ map(0xfa00, 0xfa7f).ram().share("reel2_scroll");
+ map(0xfa80, 0xfbff).ram();
+ map(0xfc00, 0xfc7f).ram().share("reel3_scroll");
+ map(0xfc80, 0xffff).ram();
+}
ADDRESS_MAP_START(goldstar_state::nfm_map)
@@ -793,76 +801,81 @@ WRITE8_MEMBER(goldstar_state::cm_coincount_w)
popmessage("counters: %02X", data);
}
-ADDRESS_MAP_START(cmaster_state::cm_portmap)
- 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(0x04, 0x07) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Inputs */
- AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* DIP switches */
- AM_RANGE(0x10, 0x10) AM_WRITE(outport0_w)
- AM_RANGE(0x11, 0x11) AM_WRITE(cm_coincount_w)
- AM_RANGE(0x12, 0x12) AM_WRITE(p1_lamps_w)
- AM_RANGE(0x13, 0x13) AM_WRITE(background_col_w)
- AM_RANGE(0x14, 0x14) AM_WRITE(girl_scroll_w)
-ADDRESS_MAP_END
+void cmaster_state::cm_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w("aysnd", FUNC(ay8910_device::data_address_w));
+ map(0x04, 0x07).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Inputs */
+ map(0x08, 0x0b).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* DIP switches */
+ map(0x10, 0x10).w(this, FUNC(cmaster_state::outport0_w));
+ map(0x11, 0x11).w(this, FUNC(cmaster_state::cm_coincount_w));
+ map(0x12, 0x12).w(this, FUNC(cmaster_state::p1_lamps_w));
+ map(0x13, 0x13).w(this, FUNC(cmaster_state::background_col_w));
+ map(0x14, 0x14).w(this, FUNC(cmaster_state::girl_scroll_w));
+}
-ADDRESS_MAP_START(goldstar_state::pkrmast_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
+void goldstar_state::pkrmast_portmap(address_map &map)
+{
+ map.global_mask(0xff);
- AM_RANGE(0x04, 0x04) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE(0x08, 0x08) AM_DEVWRITE("aysnd", ay8910_device, data_w)
- AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("aysnd", ay8910_device, address_w)
+ map(0x04, 0x04).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x08, 0x08).w("aysnd", FUNC(ay8910_device::data_w));
+ map(0x0c, 0x0c).w("aysnd", FUNC(ay8910_device::address_w));
- AM_RANGE(0x10, 0x10) AM_READ_PORT("IN0")
- AM_RANGE(0x11, 0x11) AM_READ_PORT("IN1")
- AM_RANGE(0x12, 0x12) AM_READ_PORT("IN2")
+ map(0x10, 0x10).portr("IN0");
+ map(0x11, 0x11).portr("IN1");
+ map(0x12, 0x12).portr("IN2");
- AM_RANGE(0x20, 0x20) AM_READ_PORT("DSW3-0")
- AM_RANGE(0x21, 0x21) AM_READ_PORT("DSW3-1")
- AM_RANGE(0x22, 0x22) AM_WRITE(p1_lamps_w)
+ map(0x20, 0x20).portr("DSW3-0");
+ map(0x21, 0x21).portr("DSW3-1");
+ map(0x22, 0x22).w(this, FUNC(goldstar_state::p1_lamps_w));
- AM_RANGE(0x24, 0x24) AM_WRITE(cm_coincount_w)
- AM_RANGE(0x25, 0x25) AM_READ_PORT("DSW1")
- AM_RANGE(0x26, 0x26) AM_READ_PORT("DSW2")
+ map(0x24, 0x24).w(this, FUNC(goldstar_state::cm_coincount_w));
+ map(0x25, 0x25).portr("DSW1");
+ map(0x26, 0x26).portr("DSW2");
- AM_RANGE(0xf0, 0xf0) AM_WRITENOP /* Writing 0's and 1's constantly. Watchdog feeder? */
-ADDRESS_MAP_END
+ map(0xf0, 0xf0).nopw(); /* Writing 0's and 1's constantly. Watchdog feeder? */
+}
-ADDRESS_MAP_START(goldstar_state::cmast91_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
- AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* DIP switches */
- AM_RANGE(0x21, 0x21) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE(0x22, 0x23) AM_DEVWRITE("aysnd", ay8910_device, data_address_w)
-ADDRESS_MAP_END
+void goldstar_state::cmast91_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x00, 0x03).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0x10, 0x13).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* DIP switches */
+ map(0x21, 0x21).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x22, 0x23).w("aysnd", FUNC(ay8910_device::data_address_w));
+}
-ADDRESS_MAP_START(cmaster_state::amcoe1_portmap)
- 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(0x04, 0x07) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* DIP switches */
- AM_RANGE(0x10, 0x10) AM_WRITE(outport0_w)
- AM_RANGE(0x11, 0x11) AM_WRITE(cm_coincount_w)
- AM_RANGE(0x12, 0x12) AM_WRITE(p1_lamps_w)
- AM_RANGE(0x13, 0x13) AM_WRITE(background_col_w)
- AM_RANGE(0x20, 0x20) AM_DEVREADWRITE("oki", okim6295_device, read, write)
-ADDRESS_MAP_END
+void cmaster_state::amcoe1_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w("aysnd", FUNC(ay8910_device::data_address_w));
+ map(0x04, 0x07).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0x08, 0x0b).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* DIP switches */
+ map(0x10, 0x10).w(this, FUNC(cmaster_state::outport0_w));
+ map(0x11, 0x11).w(this, FUNC(cmaster_state::cm_coincount_w));
+ map(0x12, 0x12).w(this, FUNC(cmaster_state::p1_lamps_w));
+ map(0x13, 0x13).w(this, FUNC(cmaster_state::background_col_w));
+ map(0x20, 0x20).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write));
+}
-ADDRESS_MAP_START(cmaster_state::amcoe2_portmap)
- 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(0x04, 0x07) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* DIP switches */
- AM_RANGE(0x10, 0x10) AM_WRITE(outport0_w)
- AM_RANGE(0x11, 0x11) AM_WRITE(cm_coincount_w)
- AM_RANGE(0x12, 0x12) AM_WRITE(p1_lamps_w)
- AM_RANGE(0x13, 0x13) AM_WRITE(background_col_w)
-ADDRESS_MAP_END
+void cmaster_state::amcoe2_portmap(address_map &map)
+{
+ map.global_mask(0xff);
+ map(0x01, 0x01).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x02, 0x03).w("aysnd", FUNC(ay8910_device::data_address_w));
+ map(0x04, 0x07).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0x08, 0x0b).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* DIP switches */
+ map(0x10, 0x10).w(this, FUNC(cmaster_state::outport0_w));
+ map(0x11, 0x11).w(this, FUNC(cmaster_state::cm_coincount_w));
+ map(0x12, 0x12).w(this, FUNC(cmaster_state::p1_lamps_w));
+ map(0x13, 0x13).w(this, FUNC(cmaster_state::background_col_w));
+}
ADDRESS_MAP_START(goldstar_state::lucky8_map)
@@ -999,51 +1012,53 @@ WRITE8_MEMBER(wingco_state::fl7w4_outc802_w)
m_fl7w4_id->write((data >> 6) & 0x01);
}
-ADDRESS_MAP_START(wingco_state::magodds_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
+void wingco_state::magodds_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
// where does the extra rom data map?? it seems like it should come straight after the existing rom, but it can't if this is a plain z80?
- AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_SHARE("fg_vidram")
- AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_SHARE("fg_atrram")
- AM_RANGE(0x9800, 0x99ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE(0xa000, 0xa1ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE(0xa900, 0xaaff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_SHARE("reel3_ram") // +0x100 compared to lucky8
- AM_RANGE(0xb040, 0xb07f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xb080, 0xb0bf) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xb100, 0xb17f) AM_RAM AM_SHARE("reel3_scroll")
-
- AM_RANGE(0xb800, 0xb803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0xb810, 0xb813) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0xb820, 0xb823) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) /* Input/Output Ports */
- AM_RANGE(0xb830, 0xb830) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w)
- AM_RANGE(0xb840, 0xb840) AM_DEVWRITE("aysnd", ay8910_device, address_w) /* no sound... only use both ports for DSWs */
- AM_RANGE(0xb850, 0xb850) AM_WRITE(magodds_outb850_w) /* lamps */
- AM_RANGE(0xb860, 0xb860) AM_WRITE(magodds_outb860_w) /* watchdog */
- AM_RANGE(0xb870, 0xb870) AM_DEVWRITE("snsnd", sn76489_device, write) /* sound */
- AM_RANGE(0xc000, 0xffff) AM_ROM AM_REGION("maincpu",0xc000)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(goldstar_state::kkotnoli_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM /* definitely no NVRAM */
- AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_SHARE("fg_vidram")
- AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_SHARE("fg_atrram")
- AM_RANGE(0x9800, 0x99ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE(0xa000, 0xa1ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE(0xa800, 0xa9ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_SHARE("reel3_ram")
- AM_RANGE(0xb040, 0xb07f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xb080, 0xb0bf) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xb100, 0xb17f) AM_RAM AM_SHARE("reel3_scroll")
+ map(0x8000, 0x87ff).ram().share("nvram");
+ map(0x8800, 0x8fff).ram().w(this, FUNC(wingco_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0x9000, 0x97ff).ram().w(this, FUNC(wingco_state::goldstar_fg_atrram_w)).share("fg_atrram");
+ map(0x9800, 0x99ff).ram().w(this, FUNC(wingco_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xa000, 0xa1ff).ram().w(this, FUNC(wingco_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xa900, 0xaaff).ram().w(this, FUNC(wingco_state::goldstar_reel3_ram_w)).share("reel3_ram"); // +0x100 compared to lucky8
+ map(0xb040, 0xb07f).ram().share("reel1_scroll");
+ map(0xb080, 0xb0bf).ram().share("reel2_scroll");
+ map(0xb100, 0xb17f).ram().share("reel3_scroll");
+
+ map(0xb800, 0xb803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0xb810, 0xb813).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0xb820, 0xb823).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input/Output Ports */
+ map(0xb830, 0xb830).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0xb840, 0xb840).w("aysnd", FUNC(ay8910_device::address_w)); /* no sound... only use both ports for DSWs */
+ map(0xb850, 0xb850).w(this, FUNC(wingco_state::magodds_outb850_w)); /* lamps */
+ map(0xb860, 0xb860).w(this, FUNC(wingco_state::magodds_outb860_w)); /* watchdog */
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
+ map(0xc000, 0xffff).rom().region("maincpu", 0xc000);
+}
- AM_RANGE(0xb800, 0xb803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0xb810, 0xb813) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0xb820, 0xb823) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) /* Input Port */
- AM_RANGE(0xb830, 0xb830) AM_WRITENOP /* no ay8910 */
- AM_RANGE(0xb840, 0xb840) AM_WRITENOP /* no ay8910 */
- AM_RANGE(0xb850, 0xb850) AM_WRITE(p1_lamps_w)
- AM_RANGE(0xb870, 0xb870) AM_DEVWRITE("snsnd", sn76489_device, write) /* sound */
- AM_RANGE(0xf800, 0xffff) AM_RAM
-ADDRESS_MAP_END
+void goldstar_state::kkotnoli_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0x87ff).ram(); /* definitely no NVRAM */
+ map(0x8800, 0x8fff).ram().w(this, FUNC(goldstar_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0x9000, 0x97ff).ram().w(this, FUNC(goldstar_state::goldstar_fg_atrram_w)).share("fg_atrram");
+ map(0x9800, 0x99ff).ram().w(this, FUNC(goldstar_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xa000, 0xa1ff).ram().w(this, FUNC(goldstar_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xa800, 0xa9ff).ram().w(this, FUNC(goldstar_state::goldstar_reel3_ram_w)).share("reel3_ram");
+ map(0xb040, 0xb07f).ram().share("reel1_scroll");
+ map(0xb080, 0xb0bf).ram().share("reel2_scroll");
+ map(0xb100, 0xb17f).ram().share("reel3_scroll");
+
+ map(0xb800, 0xb803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0xb810, 0xb813).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0xb820, 0xb823).rw("ppi8255_2", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Port */
+ map(0xb830, 0xb830).nopw(); /* no ay8910 */
+ map(0xb840, 0xb840).nopw(); /* no ay8910 */
+ map(0xb850, 0xb850).w(this, FUNC(goldstar_state::p1_lamps_w));
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
+ map(0xf800, 0xffff).ram();
+}
//WRITE8_MEMBER(goldstar_state::ladylinr_outport_w)
@@ -1062,26 +1077,27 @@ ADDRESS_MAP_END
// popmessage("Output: %02X", data);
//}
-ADDRESS_MAP_START(goldstar_state::ladylinr_map)
- AM_RANGE(0x0000, 0x7fff) AM_ROM
- AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("nvram")
- AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_SHARE("fg_vidram")
- AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_SHARE("fg_atrram")
- AM_RANGE(0x9800, 0x99ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE(0xa000, 0xa1ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE(0xa800, 0xa9ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_SHARE("reel3_ram")
- AM_RANGE(0xb040, 0xb07f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xb080, 0xb0bf) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xb100, 0xb17f) AM_RAM AM_SHARE("reel3_scroll")
-
- AM_RANGE(0xb800, 0xb803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */
- AM_RANGE(0xb810, 0xb813) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* DSW bank */
- AM_RANGE(0xb830, 0xb830) AM_DEVWRITE("aysnd", ay8910_device, address_w) /* no sound... unused? */
- AM_RANGE(0xb840, 0xb840) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w)
- AM_RANGE(0xb850, 0xb850) AM_WRITENOP /* just turn off the lamps, if exist */
- AM_RANGE(0xb870, 0xb870) AM_DEVWRITE("snsnd", sn76489_device, write) /* sound */
- AM_RANGE(0xf800, 0xffff) AM_RAM
-ADDRESS_MAP_END
+void goldstar_state::ladylinr_map(address_map &map)
+{
+ map(0x0000, 0x7fff).rom();
+ map(0x8000, 0x87ff).ram().share("nvram");
+ map(0x8800, 0x8fff).ram().w(this, FUNC(goldstar_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0x9000, 0x97ff).ram().w(this, FUNC(goldstar_state::goldstar_fg_atrram_w)).share("fg_atrram");
+ map(0x9800, 0x99ff).ram().w(this, FUNC(goldstar_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xa000, 0xa1ff).ram().w(this, FUNC(goldstar_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xa800, 0xa9ff).ram().w(this, FUNC(goldstar_state::goldstar_reel3_ram_w)).share("reel3_ram");
+ map(0xb040, 0xb07f).ram().share("reel1_scroll");
+ map(0xb080, 0xb0bf).ram().share("reel2_scroll");
+ map(0xb100, 0xb17f).ram().share("reel3_scroll");
+
+ map(0xb800, 0xb803).rw("ppi8255_0", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* Input Ports */
+ map(0xb810, 0xb813).rw("ppi8255_1", FUNC(i8255_device::read), FUNC(i8255_device::write)); /* DSW bank */
+ map(0xb830, 0xb830).w("aysnd", FUNC(ay8910_device::address_w)); /* no sound... unused? */
+ map(0xb840, 0xb840).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
+ map(0xb850, 0xb850).nopw(); /* just turn off the lamps, if exist */
+ map(0xb870, 0xb870).w("snsnd", FUNC(sn76489_device::write)); /* sound */
+ map(0xf800, 0xffff).ram();
+}
ADDRESS_MAP_START(goldstar_state::wcat3_map)
AM_RANGE(0x0000, 0x7fff) AM_ROM
@@ -1109,30 +1125,31 @@ ADDRESS_MAP_END
/* newer / more capable hw */
-ADDRESS_MAP_START(unkch_state::unkch_map)
- AM_RANGE(0x0000, 0x9fff) AM_ROM
- AM_RANGE(0xc000, 0xc1ff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
- AM_RANGE(0xc800, 0xc9ff) AM_RAM_DEVWRITE("palette", palette_device, write8_ext) AM_SHARE("palette_ext")
-
- AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("nvram")
-
- AM_RANGE(0xd840, 0xd87f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xd880, 0xd8bf) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xd900, 0xd93f) AM_RAM AM_SHARE("reel3_scroll")
- AM_RANGE(0xdfc0, 0xdfff) AM_RAM
-
- AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_SHARE("fg_vidram")
- AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_SHARE("fg_atrram")
-
- AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE(0xf400, 0xf5ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_SHARE("reel3_ram")
- AM_RANGE(0xf600, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(reel1_attrram_w) AM_SHARE("reel1_attrram")
- AM_RANGE(0xfa00, 0xfbff) AM_RAM_WRITE(reel2_attrram_w) AM_SHARE("reel2_attrram")
- AM_RANGE(0xfc00, 0xfdff) AM_RAM_WRITE(reel3_attrram_w) AM_SHARE("reel3_attrram")
- AM_RANGE(0xfe00, 0xffff) AM_RAM
-ADDRESS_MAP_END
+void unkch_state::unkch_map(address_map &map)
+{
+ map(0x0000, 0x9fff).rom();
+ map(0xc000, 0xc1ff).ram().w(m_palette, FUNC(palette_device::write8)).share("palette");
+ map(0xc800, 0xc9ff).ram().w(m_palette, FUNC(palette_device::write8_ext)).share("palette_ext");
+
+ map(0xd000, 0xd7ff).ram().share("nvram");
+
+ map(0xd840, 0xd87f).ram().share("reel1_scroll");
+ map(0xd880, 0xd8bf).ram().share("reel2_scroll");
+ map(0xd900, 0xd93f).ram().share("reel3_scroll");
+ map(0xdfc0, 0xdfff).ram();
+
+ map(0xe000, 0xe7ff).ram().w(this, FUNC(unkch_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0xe800, 0xefff).ram().w(this, FUNC(unkch_state::goldstar_fg_atrram_w)).share("fg_atrram");
+
+ map(0xf000, 0xf1ff).ram().w(this, FUNC(unkch_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xf200, 0xf3ff).ram().w(this, FUNC(unkch_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xf400, 0xf5ff).ram().w(this, FUNC(unkch_state::goldstar_reel3_ram_w)).share("reel3_ram");
+ map(0xf600, 0xf7ff).ram();
+ map(0xf800, 0xf9ff).ram().w(this, FUNC(unkch_state::reel1_attrram_w)).share("reel1_attrram");
+ map(0xfa00, 0xfbff).ram().w(this, FUNC(unkch_state::reel2_attrram_w)).share("reel2_attrram");
+ map(0xfc00, 0xfdff).ram().w(this, FUNC(unkch_state::reel3_attrram_w)).share("reel3_attrram");
+ map(0xfe00, 0xffff).ram();
+}
WRITE8_MEMBER(unkch_state::coincount_w)
@@ -1195,47 +1212,49 @@ WRITE8_MEMBER(unkch_state::unkcm_0x03_w)
}
-ADDRESS_MAP_START(unkch_state::unkch_portmap)
- ADDRESS_MAP_GLOBAL_MASK(0xff)
+void unkch_state::unkch_portmap(address_map &map)
+{
+ map.global_mask(0xff);
- AM_RANGE(0x01, 0x01) AM_WRITE(coincount_w)
- AM_RANGE(0x02, 0x02) AM_WRITE(unkcm_0x02_w)
- AM_RANGE(0x03, 0x03) AM_WRITE(unkcm_0x03_w)
+ map(0x01, 0x01).w(this, FUNC(unkch_state::coincount_w));
+ map(0x02, 0x02).w(this, FUNC(unkch_state::unkcm_0x02_w));
+ map(0x03, 0x03).w(this, FUNC(unkch_state::unkcm_0x03_w));
- AM_RANGE(0x08, 0x08) AM_READ_PORT("IN0")
- AM_RANGE(0x09, 0x09) AM_READ_PORT("IN1")
- AM_RANGE(0x0a, 0x0a) AM_READ_PORT("DSW4")
- AM_RANGE(0x0b, 0x0b) AM_READ_PORT("DSW3")
+ map(0x08, 0x08).portr("IN0");
+ map(0x09, 0x09).portr("IN1");
+ map(0x0a, 0x0a).portr("DSW4");
+ map(0x0b, 0x0b).portr("DSW3");
- AM_RANGE(0x10, 0x10) AM_DEVREAD("aysnd", ay8910_device, data_r)
- AM_RANGE(0x11, 0x11) AM_DEVWRITE("aysnd", ay8910_device, data_w)
- AM_RANGE(0x12, 0x12) AM_DEVWRITE("aysnd", ay8910_device, address_w)
-ADDRESS_MAP_END
+ map(0x10, 0x10).r("aysnd", FUNC(ay8910_device::data_r));
+ map(0x11, 0x11).w("aysnd", FUNC(ay8910_device::data_w));
+ map(0x12, 0x12).w("aysnd", FUNC(ay8910_device::address_w));
+}
-ADDRESS_MAP_START(unkch_state::megaline_map)
+void unkch_state::megaline_map(address_map &map)
+{
/* Reels stuff are there just as placeholder, and obviously in wrong offset */
- AM_RANGE(0x0000, 0x9fff) AM_ROM
-
- AM_RANGE(0xd000, 0xd7ff) AM_RAM //AM_SHARE("nvram")
-
- AM_RANGE(0xd840, 0xd87f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xd880, 0xd8bf) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xd900, 0xd93f) AM_RAM AM_SHARE("reel3_scroll")
- AM_RANGE(0xdfc0, 0xdfff) AM_RAM
-
- AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_SHARE("fg_vidram")
- AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_SHARE("fg_atrram")
-
- AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(goldstar_reel1_ram_w) AM_SHARE("reel1_ram")
- AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE(goldstar_reel2_ram_w) AM_SHARE("reel2_ram")
- AM_RANGE(0xf400, 0xf5ff) AM_RAM_WRITE(goldstar_reel3_ram_w) AM_SHARE("reel3_ram")
- AM_RANGE(0xf600, 0xf7ff) AM_RAM
- AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(reel1_attrram_w) AM_SHARE("reel1_attrram")
- AM_RANGE(0xfa00, 0xfbff) AM_RAM_WRITE(reel2_attrram_w) AM_SHARE("reel2_attrram")
- AM_RANGE(0xfc00, 0xfdff) AM_RAM_WRITE(reel3_attrram_w) AM_SHARE("reel3_attrram")
- AM_RANGE(0xfe00, 0xffff) AM_RAM
-ADDRESS_MAP_END
+ map(0x0000, 0x9fff).rom();
+
+ map(0xd000, 0xd7ff).ram(); //AM_SHARE("nvram")
+
+ map(0xd840, 0xd87f).ram().share("reel1_scroll");
+ map(0xd880, 0xd8bf).ram().share("reel2_scroll");
+ map(0xd900, 0xd93f).ram().share("reel3_scroll");
+ map(0xdfc0, 0xdfff).ram();
+
+ map(0xe000, 0xe7ff).ram().w(this, FUNC(unkch_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0xe800, 0xefff).ram().w(this, FUNC(unkch_state::goldstar_fg_atrram_w)).share("fg_atrram");
+
+ map(0xf000, 0xf1ff).ram().w(this, FUNC(unkch_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xf200, 0xf3ff).ram().w(this, FUNC(unkch_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xf400, 0xf5ff).ram().w(this, FUNC(unkch_state::goldstar_reel3_ram_w)).share("reel3_ram");
+ map(0xf600, 0xf7ff).ram();
+ map(0xf800, 0xf9ff).ram().w(this, FUNC(unkch_state::reel1_attrram_w)).share("reel1_attrram");
+ map(0xfa00, 0xfbff).ram().w(this, FUNC(unkch_state::reel2_attrram_w)).share("reel2_attrram");
+ map(0xfc00, 0xfdff).ram().w(this, FUNC(unkch_state::reel3_attrram_w)).share("reel3_attrram");
+ map(0xfe00, 0xffff).ram();
+}
/* unknown I/O byte R/W
@@ -1255,29 +1274,30 @@ ADDRESS_MAP_START(goldstar_state::megaline_portmap)
ADDRESS_MAP_END
-ADDRESS_MAP_START(unkch_state::bonusch_map)
+void unkch_state::bonusch_map(address_map &map)
+{
/* Reels stuff and RAM are there just as placeholder, and obviously in wrong offset */
- AM_RANGE(0x0000, 0xbfff) AM_ROM // ok
+ map(0x0000, 0xbfff).rom(); // ok
- AM_RANGE(0xd800, 0xdfff) AM_RAM //AM_SHARE("nvram")
+ map(0xd800, 0xdfff).ram(); //AM_SHARE("nvram")
- AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(goldstar_fg_vidram_w) AM_SHARE("fg_vidram")
- AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(goldstar_fg_atrram_w) AM_SHARE("fg_atrram")
+ map(0xe000, 0xe7ff).ram().w(this, FUNC(unkch_state::goldstar_fg_vidram_w)).share("fg_vidram");
+ map(0xe800, 0xefff).ram().w(this, FUNC(unkch_state::goldstar_fg_atrram_w)).share("fg_atrram");
/* just placeholders */
- AM_RANGE(0xf000, 0xf1ff) AM_RAM_WRITE(goldstar_reel1_ram_w ) AM_SHARE("reel1_ram")
- AM_RANGE(0xf200, 0xf3ff) AM_RAM_WRITE(goldstar_reel2_ram_w ) AM_SHARE("reel2_ram")
- AM_RANGE(0xf400, 0xf5ff) AM_RAM_WRITE(goldstar_reel3_ram_w ) AM_SHARE("reel3_ram")
+ map(0xf000, 0xf1ff).ram().w(this, FUNC(unkch_state::goldstar_reel1_ram_w)).share("reel1_ram");
+ map(0xf200, 0xf3ff).ram().w(this, FUNC(unkch_state::goldstar_reel2_ram_w)).share("reel2_ram");
+ map(0xf400, 0xf5ff).ram().w(this, FUNC(unkch_state::goldstar_reel3_ram_w)).share("reel3_ram");
- AM_RANGE(0xf640, 0xf67f) AM_RAM AM_SHARE("reel1_scroll")
- AM_RANGE(0xf680, 0xf6bf) AM_RAM AM_SHARE("reel2_scroll")
- AM_RANGE(0xf700, 0xf73f) AM_RAM AM_SHARE("reel3_scroll")
+ map(0xf640, 0xf67f).ram().share("reel1_scroll");
+ map(0xf680, 0xf6bf).ram().share("reel2_scroll");
+ map(0xf700, 0xf73f).ram().share("reel3_scroll");
- AM_RANGE(0xf800, 0xf9ff) AM_RAM_WRITE(reel1_attrram_w) AM_SHARE("reel1_attrram")
- AM_RANGE(0xfa00, 0xfbff) AM_RAM_WRITE(reel2_attrram_w) AM_SHARE("reel2_attrram")
- AM_RANGE(0xfc00, 0xfdff) AM_RAM_WRITE(reel3_attrram_w) AM_SHARE("reel3_attrram")
-ADDRESS_MAP_END
+ map(0xf800, 0xf9ff).ram().w(this, FUNC(unkch_state::reel1_attrram_w)).share("reel1_attrram");
+ map(0xfa00, 0xfbff).ram().w(this, FUNC(unkch_state::reel2_attrram_w)).share("reel2_attrram");
+ map(0xfc00, 0xfdff).ram().w(this, FUNC(unkch_state::reel3_attrram_w)).share("reel3_attrram");
+}
/* Bonus Chance W-8