diff options
Diffstat (limited to 'src/mame/drivers/realbrk.cpp')
-rw-r--r-- | src/mame/drivers/realbrk.cpp | 95 |
1 files changed, 50 insertions, 45 deletions
diff --git a/src/mame/drivers/realbrk.cpp b/src/mame/drivers/realbrk.cpp index 969953f3be2..033e2d41088 100644 --- a/src/mame/drivers/realbrk.cpp +++ b/src/mame/drivers/realbrk.cpp @@ -155,59 +155,64 @@ WRITE16_MEMBER(realbrk_state::backup_ram_w) ***************************************************************************/ /*Basic memory map for this HW*/ -ADDRESS_MAP_START(realbrk_state::base_mem) - AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM - AM_RANGE(0x200000, 0x203fff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0x400000, 0x40ffff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // Palette - AM_RANGE(0x600000, 0x601fff) AM_RAM_WRITE(vram_0_w) AM_SHARE("vram_0") // Background (0) - AM_RANGE(0x602000, 0x603fff) AM_RAM_WRITE(vram_1_w) AM_SHARE("vram_1") // Background (1) - AM_RANGE(0x604000, 0x604fff) AM_RAM_WRITE(vram_2_w) AM_SHARE("vram_2") // Text (2) - AM_RANGE(0x605000, 0x61ffff) AM_RAM // - AM_RANGE(0x606000, 0x60600f) AM_RAM_WRITE(vregs_w) AM_SHARE("vregs") // Scroll + Video Regs - AM_RANGE(0x800000, 0x800003) AM_DEVREADWRITE8("ymz", ymz280b_device, read, write, 0xff00) // YMZ280 - AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // RAM - AM_RANGE(0xfffc00, 0xffffff) AM_DEVREADWRITE("tmp68301", tmp68301_device, regs_r, regs_w) // TMP68301 Registers -ADDRESS_MAP_END +void realbrk_state::base_mem(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); // ROM + map(0x200000, 0x203fff).ram().share("spriteram"); // Sprites + map(0x400000, 0x40ffff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette + map(0x600000, 0x601fff).ram().w(this, FUNC(realbrk_state::vram_0_w)).share("vram_0"); // Background (0) + map(0x602000, 0x603fff).ram().w(this, FUNC(realbrk_state::vram_1_w)).share("vram_1"); // Background (1) + map(0x604000, 0x604fff).ram().w(this, FUNC(realbrk_state::vram_2_w)).share("vram_2"); // Text (2) + map(0x605000, 0x61ffff).ram(); // + map(0x606000, 0x60600f).ram().w(this, FUNC(realbrk_state::vregs_w)).share("vregs"); // Scroll + Video Regs + map(0x800000, 0x800003).rw("ymz", FUNC(ymz280b_device::read), FUNC(ymz280b_device::write)).umask16(0xff00); // YMZ280 + map(0xfe0000, 0xfeffff).ram(); // RAM + map(0xfffc00, 0xffffff).rw(m_tmp68301, FUNC(tmp68301_device::regs_r), FUNC(tmp68301_device::regs_w)); // TMP68301 Registers +} /*realbrk specific memory map*/ -ADDRESS_MAP_START(realbrk_state::realbrk_mem) - AM_IMPORT_FROM(base_mem) - AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) // - AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // P1 & P2 (Inputs) - AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Coins - AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ(realbrk_dsw_r) AM_SHARE("dsw_select") // DSW select - AM_RANGE(0xff0000, 0xfffbff) AM_RAM // RAM -ADDRESS_MAP_END +void realbrk_state::realbrk_mem(address_map &map) +{ + base_mem(map); + map(0x800008, 0x80000b).w("ymsnd", FUNC(ym2413_device::write)).umask16(0x00ff); // + map(0xc00000, 0xc00001).portr("IN0"); // P1 & P2 (Inputs) + map(0xc00002, 0xc00003).portr("IN1"); // Coins + map(0xc00004, 0xc00005).ram().r(this, FUNC(realbrk_state::realbrk_dsw_r)).share("dsw_select"); // DSW select + map(0xff0000, 0xfffbff).ram(); // RAM +} /*pkgnsh specific memory map*/ -ADDRESS_MAP_START(realbrk_state::pkgnsh_mem) - AM_IMPORT_FROM(base_mem) - AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0xff00) // YM2413 - AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnsh_input_r ) // P1 & P2 (Inputs) - AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_r,backup_ram_w) AM_SHARE("backup_ram") // RAM -ADDRESS_MAP_END +void realbrk_state::pkgnsh_mem(address_map &map) +{ + base_mem(map); + map(0x800008, 0x80000b).w("ymsnd", FUNC(ym2413_device::write)).umask16(0xff00); // YM2413 + map(0xc00000, 0xc00013).r(this, FUNC(realbrk_state::pkgnsh_input_r)); // P1 & P2 (Inputs) + map(0xff0000, 0xfffbff).rw(this, FUNC(realbrk_state::backup_ram_r), FUNC(realbrk_state::backup_ram_w)).share("backup_ram"); // RAM +} /*pkgnshdx specific memory map*/ -ADDRESS_MAP_START(realbrk_state::pkgnshdx_mem) - AM_IMPORT_FROM(base_mem) - AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) // - AM_RANGE(0xc00000, 0xc00013) AM_READ(pkgnshdx_input_r ) // P1 & P2 (Inputs) - AM_RANGE(0xc00004, 0xc00005) AM_WRITEONLY AM_SHARE("dsw_select") // DSW select - AM_RANGE(0xff0000, 0xfffbff) AM_READWRITE(backup_ram_dx_r,backup_ram_w) AM_SHARE("backup_ram") // RAM -ADDRESS_MAP_END +void realbrk_state::pkgnshdx_mem(address_map &map) +{ + base_mem(map); + map(0x800008, 0x80000b).w("ymsnd", FUNC(ym2413_device::write)).umask16(0x00ff); // + map(0xc00000, 0xc00013).r(this, FUNC(realbrk_state::pkgnshdx_input_r)); // P1 & P2 (Inputs) + map(0xc00004, 0xc00005).writeonly().share("dsw_select"); // DSW select + map(0xff0000, 0xfffbff).rw(this, FUNC(realbrk_state::backup_ram_dx_r), FUNC(realbrk_state::backup_ram_w)).share("backup_ram"); // RAM +} /*dai2kaku specific memory map*/ -ADDRESS_MAP_START(realbrk_state::dai2kaku_mem) - AM_IMPORT_FROM(base_mem) - AM_RANGE(0x605000, 0x6053ff) AM_RAM AM_SHARE("vram_0ras") // rasterinfo (0) - AM_RANGE(0x605400, 0x6057ff) AM_RAM AM_SHARE("vram_1ras") // rasterinfo (1) - AM_RANGE(0x800008, 0x80000b) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff) // - AM_RANGE(0xc00000, 0xc00001) AM_READ_PORT("IN0") // P1 & P2 (Inputs) - AM_RANGE(0xc00002, 0xc00003) AM_READ_PORT("IN1") // Coins - AM_RANGE(0xc00004, 0xc00005) AM_RAM_READ(realbrk_dsw_r) AM_SHARE("dsw_select") // DSW select - AM_RANGE(0xff0000, 0xfffbff) AM_RAM // RAM - AM_RANGE(0xfffd0a, 0xfffd0b) AM_WRITE(dai2kaku_flipscreen_w ) // Hack! Parallel port data register -ADDRESS_MAP_END +void realbrk_state::dai2kaku_mem(address_map &map) +{ + base_mem(map); + map(0x605000, 0x6053ff).ram().share("vram_0ras"); // rasterinfo (0) + map(0x605400, 0x6057ff).ram().share("vram_1ras"); // rasterinfo (1) + map(0x800008, 0x80000b).w("ymsnd", FUNC(ym2413_device::write)).umask16(0x00ff); // + map(0xc00000, 0xc00001).portr("IN0"); // P1 & P2 (Inputs) + map(0xc00002, 0xc00003).portr("IN1"); // Coins + map(0xc00004, 0xc00005).ram().r(this, FUNC(realbrk_state::realbrk_dsw_r)).share("dsw_select"); // DSW select + map(0xff0000, 0xfffbff).ram(); // RAM + map(0xfffd0a, 0xfffd0b).w(this, FUNC(realbrk_state::dai2kaku_flipscreen_w)); // Hack! Parallel port data register +} /*************************************************************************** |