summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/glass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/glass.cpp')
-rw-r--r--src/mame/drivers/glass.cpp61
1 files changed, 32 insertions, 29 deletions
diff --git a/src/mame/drivers/glass.cpp b/src/mame/drivers/glass.cpp
index 9955867a9bc..d48b3532a2b 100644
--- a/src/mame/drivers/glass.cpp
+++ b/src/mame/drivers/glass.cpp
@@ -104,35 +104,38 @@ WRITE_LINE_MEMBER(glass_state::coin2_counter_w)
}
-ADDRESS_MAP_START(glass_state::mcu_hostmem_map)
- AM_RANGE(0x0000, 0xffff) AM_MASK(0x3fff) AM_READWRITE(shareram_r, shareram_w) // shared RAM with the main CPU
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(glass_state::glass_map)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
- AM_RANGE(0x100000, 0x101fff) AM_RAM_WRITE(vram_w) AM_SHARE("videoram") // Video RAM
- AM_RANGE(0x102000, 0x102fff) AM_RAM // Extra Video RAM
- AM_RANGE(0x108000, 0x108007) AM_WRITEONLY AM_SHARE("vregs") // Video Registers
- AM_RANGE(0x108008, 0x108009) AM_WRITE(clr_int_w) // CLR INT Video
- AM_RANGE(0x200000, 0x2007ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") // Palette
- AM_RANGE(0x440000, 0x440fff) AM_RAM AM_SHARE("spriteram") // Sprite RAM
- AM_RANGE(0x700000, 0x700001) AM_READ_PORT("DSW2")
- AM_RANGE(0x700002, 0x700003) AM_READ_PORT("DSW1")
- AM_RANGE(0x700004, 0x700005) AM_READ_PORT("P1")
- AM_RANGE(0x700006, 0x700007) AM_READ_PORT("P2")
- AM_RANGE(0x700008, 0x700009) AM_WRITE(blitter_w) // serial blitter
- AM_RANGE(0x70000a, 0x70000b) AM_SELECT(0x000070) AM_WRITE(coin_w) // Coin Counters/Lockout
- AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) // OKI6295 bankswitch
- AM_RANGE(0x70000e, 0x70000f) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // OKI6295 status register
- AM_RANGE(0xfec000, 0xfeffff) AM_RAM AM_SHARE("shareram") // Work RAM (partially shared with DS5002FP)
-ADDRESS_MAP_END
-
-
-ADDRESS_MAP_START(glass_state::oki_map)
- AM_RANGE(0x00000, 0x2ffff) AM_ROM
- AM_RANGE(0x30000, 0x3ffff) AM_ROMBANK("okibank")
-ADDRESS_MAP_END
+void glass_state::mcu_hostmem_map(address_map &map)
+{
+ map(0x0000, 0xffff).mask(0x3fff).rw(this, FUNC(glass_state::shareram_r), FUNC(glass_state::shareram_w)); // shared RAM with the main CPU
+}
+
+
+void glass_state::glass_map(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom(); // ROM
+ map(0x100000, 0x101fff).ram().w(this, FUNC(glass_state::vram_w)).share("videoram"); // Video RAM
+ map(0x102000, 0x102fff).ram(); // Extra Video RAM
+ map(0x108000, 0x108007).writeonly().share("vregs"); // Video Registers
+ map(0x108008, 0x108009).w(this, FUNC(glass_state::clr_int_w)); // CLR INT Video
+ map(0x200000, 0x2007ff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); // Palette
+ map(0x440000, 0x440fff).ram().share("spriteram"); // Sprite RAM
+ map(0x700000, 0x700001).portr("DSW2");
+ map(0x700002, 0x700003).portr("DSW1");
+ map(0x700004, 0x700005).portr("P1");
+ map(0x700006, 0x700007).portr("P2");
+ map(0x700008, 0x700009).w(this, FUNC(glass_state::blitter_w)); // serial blitter
+ map(0x70000a, 0x70000b).select(0x000070).w(this, FUNC(glass_state::coin_w)); // Coin Counters/Lockout
+ map(0x70000c, 0x70000d).w(this, FUNC(glass_state::OKIM6295_bankswitch_w)); // OKI6295 bankswitch
+ map(0x70000f, 0x70000f).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // OKI6295 status register
+ map(0xfec000, 0xfeffff).ram().share("shareram"); // Work RAM (partially shared with DS5002FP)
+}
+
+
+void glass_state::oki_map(address_map &map)
+{
+ map(0x00000, 0x2ffff).rom();
+ map(0x30000, 0x3ffff).bankr("okibank");
+}
static INPUT_PORTS_START( glass )