summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/bnstars.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/bnstars.cpp')
-rw-r--r--src/mame/drivers/bnstars.cpp98
1 files changed, 50 insertions, 48 deletions
diff --git a/src/mame/drivers/bnstars.cpp b/src/mame/drivers/bnstars.cpp
index 4589b4aa8b7..e255fc48c47 100644
--- a/src/mame/drivers/bnstars.cpp
+++ b/src/mame/drivers/bnstars.cpp
@@ -742,63 +742,65 @@ WRITE32_MEMBER(bnstars_state::bnstars1_mahjong_select_w)
}
-ADDRESS_MAP_START(bnstars_state::bnstars_map)
- AM_RANGE(0x00000000, 0x001fffff) AM_ROM
+void bnstars_state::bnstars_map(address_map &map)
+{
+ map(0x00000000, 0x001fffff).rom();
- AM_RANGE(0xfc800000, 0xfc800003) AM_WRITE(ms32_sound_w)
+ map(0xfc800000, 0xfc800003).w(this, FUNC(bnstars_state::ms32_sound_w));
- AM_RANGE(0xfcc00004, 0xfcc00007) AM_READ_PORT("P1")
- AM_RANGE(0xfcc00008, 0xfcc0000b) AM_READ_PORT("P2")
- AM_RANGE(0xfcc00010, 0xfcc00013) AM_READ_PORT("DSW")
+ map(0xfcc00004, 0xfcc00007).portr("P1");
+ map(0xfcc00008, 0xfcc0000b).portr("P2");
+ map(0xfcc00010, 0xfcc00013).portr("DSW");
- AM_RANGE(0xfce00034, 0xfce00037) AM_WRITENOP
- AM_RANGE(0xfce00038, 0xfce0003b) AM_WRITE(reset_sub_w)
+ map(0xfce00034, 0xfce00037).nopw();
+ map(0xfce00038, 0xfce0003b).w(this, FUNC(bnstars_state::reset_sub_w));
- AM_RANGE(0xfce00050, 0xfce00053) AM_WRITENOP
- AM_RANGE(0xfce00058, 0xfce0005b) AM_WRITENOP
- AM_RANGE(0xfce0005c, 0xfce0005f) AM_WRITENOP
- AM_RANGE(0xfce00300, 0xfce00303) AM_WRITENOP
+ map(0xfce00050, 0xfce00053).nopw();
+ map(0xfce00058, 0xfce0005b).nopw();
+ map(0xfce0005c, 0xfce0005f).nopw();
+ map(0xfce00300, 0xfce00303).nopw();
- AM_RANGE(0xfce00400, 0xfce0045f) AM_WRITEONLY AM_SHARE("roz_ctrl.0")
- AM_RANGE(0xfce00700, 0xfce0075f) AM_WRITEONLY AM_SHARE("roz_ctrl.1") // guess
- AM_RANGE(0xfce00a00, 0xfce00a17) AM_WRITEONLY AM_SHARE("tx0_scroll")
- AM_RANGE(0xfce00a20, 0xfce00a37) AM_WRITEONLY AM_SHARE("bg0_scroll")
- AM_RANGE(0xfce00c00, 0xfce00c17) AM_WRITEONLY AM_SHARE("tx1_scroll")
- AM_RANGE(0xfce00c20, 0xfce00c37) AM_WRITEONLY AM_SHARE("bg1_scroll")
+ map(0xfce00400, 0xfce0045f).writeonly().share("roz_ctrl.0");
+ map(0xfce00700, 0xfce0075f).writeonly().share("roz_ctrl.1"); // guess
+ map(0xfce00a00, 0xfce00a17).writeonly().share("tx0_scroll");
+ map(0xfce00a20, 0xfce00a37).writeonly().share("bg0_scroll");
+ map(0xfce00c00, 0xfce00c17).writeonly().share("tx1_scroll");
+ map(0xfce00c20, 0xfce00c37).writeonly().share("bg1_scroll");
- AM_RANGE(0xfce00e00, 0xfce00e03) AM_WRITE(bnstars1_mahjong_select_w) // ?
+ map(0xfce00e00, 0xfce00e03).w(this, FUNC(bnstars_state::bnstars1_mahjong_select_w)); // ?
- AM_RANGE(0xfd000000, 0xfd000003) AM_READ(ms32_sound_r)
+ map(0xfd000000, 0xfd000003).r(this, FUNC(bnstars_state::ms32_sound_r));
/* wrote together */
- AM_RANGE(0xfd040000, 0xfd047fff) AM_RAM // priority ram
- AM_RANGE(0xfd080000, 0xfd087fff) AM_RAM
- AM_RANGE(0xfd200000, 0xfd237fff) AM_DEVREADWRITE16("palette2", palette_device, read16, write16, 0x0000ffff) AM_SHARE("palette2")
- AM_RANGE(0xfd400000, 0xfd437fff) AM_DEVREADWRITE16("palette", palette_device, read16, write16, 0x0000ffff) AM_SHARE("palette")
- AM_RANGE(0xfe000000, 0xfe01ffff) AM_RAM_WRITE(ms32_roz1_ram_w) AM_SHARE("roz1_ram")
- AM_RANGE(0xfe400000, 0xfe41ffff) AM_RAM_WRITE(ms32_roz0_ram_w) AM_SHARE("roz0_ram")
- AM_RANGE(0xfe800000, 0xfe83ffff) AM_RAM AM_SHARE("spram")
- AM_RANGE(0xfea00000, 0xfea07fff) AM_RAM_WRITE(ms32_tx1_ram_w) AM_SHARE("tx1_ram")
- AM_RANGE(0xfea08000, 0xfea0ffff) AM_RAM_WRITE(ms32_bg1_ram_w) AM_SHARE("bg1_ram")
- AM_RANGE(0xfec00000, 0xfec07fff) AM_RAM_WRITE(ms32_tx0_ram_w) AM_SHARE("tx0_ram")
- AM_RANGE(0xfec08000, 0xfec0ffff) AM_RAM_WRITE(ms32_bg0_ram_w) AM_SHARE("bg0_ram")
-
- AM_RANGE(0xfee00000, 0xfee1ffff) AM_RAM
- AM_RANGE(0xffe00000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0)
-ADDRESS_MAP_END
-
-ADDRESS_MAP_START(bnstars_state::bnstars_sound_map)
- AM_RANGE(0x0000, 0x3eff) AM_ROM
- AM_RANGE(0x3f00, 0x3f0f) AM_DEVREADWRITE("ymf2", ymf271_device, read, write)
- AM_RANGE(0x3f10, 0x3f10) AM_READWRITE(latch_r,to_main_w)
- AM_RANGE(0x3f20, 0x3f2f) AM_DEVREADWRITE("ymf1", ymf271_device, read, write)
- AM_RANGE(0x3f40, 0x3f40) AM_WRITENOP /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */
- AM_RANGE(0x3f70, 0x3f70) AM_WRITENOP // watchdog? banking? very noisy
- AM_RANGE(0x3f80, 0x3f80) AM_WRITE(ms32_snd_bank_w)
- AM_RANGE(0x4000, 0x7fff) AM_RAM
- AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("z80bank1")
- AM_RANGE(0xc000, 0xffff) AM_ROMBANK("z80bank2")
-ADDRESS_MAP_END
+ map(0xfd040000, 0xfd047fff).ram(); // priority ram
+ map(0xfd080000, 0xfd087fff).ram();
+ map(0xfd200000, 0xfd237fff).rw("palette2", FUNC(palette_device::read16), FUNC(palette_device::write16)).umask32(0x0000ffff).share("palette2");
+ map(0xfd400000, 0xfd437fff).rw(m_palette, FUNC(palette_device::read16), FUNC(palette_device::write16)).umask32(0x0000ffff).share("palette");
+ map(0xfe000000, 0xfe01ffff).ram().w(this, FUNC(bnstars_state::ms32_roz1_ram_w)).share("roz1_ram");
+ map(0xfe400000, 0xfe41ffff).ram().w(this, FUNC(bnstars_state::ms32_roz0_ram_w)).share("roz0_ram");
+ map(0xfe800000, 0xfe83ffff).ram().share("spram");
+ map(0xfea00000, 0xfea07fff).ram().w(this, FUNC(bnstars_state::ms32_tx1_ram_w)).share("tx1_ram");
+ map(0xfea08000, 0xfea0ffff).ram().w(this, FUNC(bnstars_state::ms32_bg1_ram_w)).share("bg1_ram");
+ map(0xfec00000, 0xfec07fff).ram().w(this, FUNC(bnstars_state::ms32_tx0_ram_w)).share("tx0_ram");
+ map(0xfec08000, 0xfec0ffff).ram().w(this, FUNC(bnstars_state::ms32_bg0_ram_w)).share("bg0_ram");
+
+ map(0xfee00000, 0xfee1ffff).ram();
+ map(0xffe00000, 0xffffffff).rom().region("maincpu", 0);
+}
+
+void bnstars_state::bnstars_sound_map(address_map &map)
+{
+ map(0x0000, 0x3eff).rom();
+ map(0x3f00, 0x3f0f).rw("ymf2", FUNC(ymf271_device::read), FUNC(ymf271_device::write));
+ map(0x3f10, 0x3f10).rw(this, FUNC(bnstars_state::latch_r), FUNC(bnstars_state::to_main_w));
+ map(0x3f20, 0x3f2f).rw("ymf1", FUNC(ymf271_device::read), FUNC(ymf271_device::write));
+ map(0x3f40, 0x3f40).nopw(); /* YMF271 pin 4 (bit 1) , YMF271 pin 39 (bit 4) */
+ map(0x3f70, 0x3f70).nopw(); // watchdog? banking? very noisy
+ map(0x3f80, 0x3f80).w(this, FUNC(bnstars_state::ms32_snd_bank_w));
+ map(0x4000, 0x7fff).ram();
+ map(0x8000, 0xbfff).bankr("z80bank1");
+ map(0xc000, 0xffff).bankr("z80bank2");
+}
MACHINE_CONFIG_START(bnstars_state::bnstars)