summaryrefslogtreecommitdiffstats
path: root/src/mame/drivers/unico.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/unico.cpp')
-rw-r--r--src/mame/drivers/unico.cpp133
1 files changed, 68 insertions, 65 deletions
diff --git a/src/mame/drivers/unico.cpp b/src/mame/drivers/unico.cpp
index 2ab3a68e4a5..966464f79f4 100644
--- a/src/mame/drivers/unico.cpp
+++ b/src/mame/drivers/unico.cpp
@@ -56,25 +56,26 @@ WRITE16_MEMBER(unico_state::burglarx_sound_bank_w)
}
}
-ADDRESS_MAP_START(unico_state::burglarx_map)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
- AM_RANGE(0xff0000, 0xffffff) AM_RAM // RAM
- AM_RANGE(0x800000, 0x800001) AM_READ_PORT("INPUTS")
- AM_RANGE(0x800018, 0x800019) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1")
- AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? 0
- AM_RANGE(0x80010c, 0x800121) AM_READWRITE(unico_scroll_r, unico_scroll_w) // Scroll
- AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff) // Sound
- AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_device, write_port_w, 0xff00)
- AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_device, status_port_r, control_port_w, 0xff00)
- AM_RANGE(0x80018e, 0x80018f) AM_WRITE(burglarx_sound_bank_w) //
- AM_RANGE(0x8001e0, 0x8001e1) AM_WRITENOP // IRQ Ack
- AM_RANGE(0x904000, 0x90ffff) AM_READWRITE(unico_vram_r, unico_vram_w) // Layers 1, 2, 0
- AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0
- AM_RANGE(0x930000, 0x9307ff) AM_READWRITE(unico_spriteram_r, unico_spriteram_w) // Sprites
- AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette_w) AM_SHARE("paletteram") // Palette
-ADDRESS_MAP_END
+void unico_state::burglarx_map(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom(); // ROM
+ map(0xff0000, 0xffffff).ram(); // RAM
+ map(0x800000, 0x800001).portr("INPUTS");
+ map(0x800018, 0x800019).portr("SYSTEM");
+ map(0x80001a, 0x80001b).portr("DSW1");
+ map(0x80001c, 0x80001d).portr("DSW2");
+ map(0x800030, 0x800031).nopw(); // ? 0
+ map(0x80010c, 0x800121).rw(this, FUNC(unico_state::unico_scroll_r), FUNC(unico_state::unico_scroll_w)); // Scroll
+ map(0x800189, 0x800189).rw(m_oki, FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0x80018a, 0x80018a).w("ymsnd", FUNC(ym3812_device::write_port_w));
+ map(0x80018c, 0x80018c).rw("ymsnd", FUNC(ym3812_device::status_port_r), FUNC(ym3812_device::control_port_w));
+ map(0x80018e, 0x80018f).w(this, FUNC(unico_state::burglarx_sound_bank_w)); //
+ map(0x8001e0, 0x8001e1).nopw(); // IRQ Ack
+ map(0x904000, 0x90ffff).rw(this, FUNC(unico_state::unico_vram_r), FUNC(unico_state::unico_vram_w)); // Layers 1, 2, 0
+ map(0x920000, 0x923fff).ram(); // ? 0
+ map(0x930000, 0x9307ff).rw(this, FUNC(unico_state::unico_spriteram_r), FUNC(unico_state::unico_spriteram_w)); // Sprites
+ map(0x940000, 0x947fff).ram().w(this, FUNC(unico_state::unico_palette_w)).share("paletteram"); // Palette
+}
@@ -141,28 +142,29 @@ READ16_MEMBER(zeropnt_state::unico_guny_1_msb_r)
return ((y&0xff) ^ (m_screen->frame_number()&1))<<8;
}
-ADDRESS_MAP_START(zeropnt_state::zeropnt_map)
- AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
- AM_RANGE(0xef0000, 0xefffff) AM_RAM // RAM
- AM_RANGE(0x800030, 0x800031) AM_WRITENOP // ? 0
- AM_RANGE(0x800018, 0x800019) AM_READ_PORT("INPUTS")
- AM_RANGE(0x80001a, 0x80001b) AM_READ_PORT("DSW1")
- AM_RANGE(0x80001c, 0x80001d) AM_READ_PORT("DSW2")
- AM_RANGE(0x80010c, 0x800121) AM_READWRITE( unico_scroll_r, unico_scroll_w ) // Scroll
- AM_RANGE(0x800170, 0x800171) AM_READ(unico_guny_0_msb_r) // Light Guns
- AM_RANGE(0x800174, 0x800175) AM_READ(unico_gunx_0_msb_r) //
- AM_RANGE(0x800178, 0x800179) AM_READ(unico_guny_1_msb_r) //
- AM_RANGE(0x80017c, 0x80017d) AM_READ(unico_gunx_1_msb_r) //
- AM_RANGE(0x800188, 0x800189) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff ) // Sound
- AM_RANGE(0x80018a, 0x80018b) AM_DEVWRITE8("ymsnd", ym3812_device, write_port_w, 0xff00)
- AM_RANGE(0x80018c, 0x80018d) AM_DEVREADWRITE8("ymsnd", ym3812_device, status_port_r, control_port_w, 0xff00)
- AM_RANGE(0x80018e, 0x80018f) AM_WRITE(zeropnt_sound_bank_w) //
- AM_RANGE(0x8001e0, 0x8001e1) AM_WRITEONLY // ? IRQ Ack
- AM_RANGE(0x904000, 0x90ffff) AM_READWRITE( unico_vram_r, unico_vram_w ) // Layers 1, 2, 0
- AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0
- AM_RANGE(0x930000, 0x9307ff) AM_READWRITE( unico_spriteram_r, unico_spriteram_w ) // Sprites
- AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette_w) AM_SHARE("paletteram") // Palette
-ADDRESS_MAP_END
+void zeropnt_state::zeropnt_map(address_map &map)
+{
+ map(0x000000, 0x0fffff).rom(); // ROM
+ map(0xef0000, 0xefffff).ram(); // RAM
+ map(0x800030, 0x800031).nopw(); // ? 0
+ map(0x800018, 0x800019).portr("INPUTS");
+ map(0x80001a, 0x80001b).portr("DSW1");
+ map(0x80001c, 0x80001d).portr("DSW2");
+ map(0x80010c, 0x800121).rw(this, FUNC(zeropnt_state::unico_scroll_r), FUNC(zeropnt_state::unico_scroll_w)); // Scroll
+ map(0x800170, 0x800171).r(this, FUNC(zeropnt_state::unico_guny_0_msb_r)); // Light Guns
+ map(0x800174, 0x800175).r(this, FUNC(zeropnt_state::unico_gunx_0_msb_r)); //
+ map(0x800178, 0x800179).r(this, FUNC(zeropnt_state::unico_guny_1_msb_r)); //
+ map(0x80017c, 0x80017d).r(this, FUNC(zeropnt_state::unico_gunx_1_msb_r)); //
+ map(0x800189, 0x800189).rw("oki", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0x80018a, 0x80018a).w("ymsnd", FUNC(ym3812_device::write_port_w));
+ map(0x80018c, 0x80018c).rw("ymsnd", FUNC(ym3812_device::status_port_r), FUNC(ym3812_device::control_port_w));
+ map(0x80018e, 0x80018f).w(this, FUNC(zeropnt_state::zeropnt_sound_bank_w)); //
+ map(0x8001e0, 0x8001e1).writeonly(); // ? IRQ Ack
+ map(0x904000, 0x90ffff).rw(this, FUNC(zeropnt_state::unico_vram_r), FUNC(zeropnt_state::unico_vram_w)); // Layers 1, 2, 0
+ map(0x920000, 0x923fff).ram(); // ? 0
+ map(0x930000, 0x9307ff).rw(this, FUNC(zeropnt_state::unico_spriteram_r), FUNC(zeropnt_state::unico_spriteram_w)); // Sprites
+ map(0x940000, 0x947fff).ram().w(this, FUNC(zeropnt_state::unico_palette_w)).share("paletteram"); // Palette
+}
/***************************************************************************
@@ -213,30 +215,31 @@ WRITE32_MEMBER(zeropnt2_state::zeropnt2_eeprom_w)
}
}
-ADDRESS_MAP_START(zeropnt2_state::zeropnt2_map)
- AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
- AM_RANGE(0x800018, 0x80001b) AM_READ_PORT("SYSTEM")
- AM_RANGE(0x800024, 0x800027) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff0000) // Sound
- AM_RANGE(0x800028, 0x80002f) AM_DEVREADWRITE8("ymsnd", ym2151_device, read, write, 0x00ff0000) //
- AM_RANGE(0x800030, 0x800033) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff0000) //
- AM_RANGE(0x800034, 0x800037) AM_WRITE(zeropnt2_sound_bank_w) //
- AM_RANGE(0x800038, 0x80003b) AM_WRITE(zeropnt2_leds_w) // ?
- AM_RANGE(0x80010c, 0x800123) AM_READWRITE16(unico_scroll_r, unico_scroll_w, 0xffffffff) // Scroll
- AM_RANGE(0x800140, 0x800143) AM_READ(zeropnt2_guny_0_msb_r) // Light Guns
- AM_RANGE(0x800144, 0x800147) AM_READ(zeropnt2_gunx_0_msb_r) //
- AM_RANGE(0x800148, 0x80014b) AM_READ(zeropnt2_guny_1_msb_r) //
- AM_RANGE(0x80014c, 0x80014f) AM_READ(zeropnt2_gunx_1_msb_r) //
- AM_RANGE(0x800150, 0x800153) AM_READ_PORT("DSW1")
- AM_RANGE(0x800154, 0x800157) AM_READ_PORT("DSW2")
- AM_RANGE(0x80015c, 0x80015f) AM_READ_PORT("BUTTONS")
- AM_RANGE(0x8001e0, 0x8001e3) AM_WRITENOP // ? IRQ Ack
- AM_RANGE(0x8001f0, 0x8001f3) AM_WRITE(zeropnt2_eeprom_w) // EEPROM
- AM_RANGE(0x904000, 0x90ffff) AM_READWRITE16(unico_vram_r, unico_vram_w, 0xffffffff) // Layers 1, 2, 0
- AM_RANGE(0x920000, 0x923fff) AM_RAM // ? 0
- AM_RANGE(0x930000, 0x9307ff) AM_READWRITE16(unico_spriteram_r, unico_spriteram_w, 0xffffffff) // Sprites
- AM_RANGE(0x940000, 0x947fff) AM_RAM_WRITE(unico_palette32_w) AM_SHARE("paletteram") // Palette
- AM_RANGE(0xfe0000, 0xffffff) AM_RAM // RAM
-ADDRESS_MAP_END
+void zeropnt2_state::zeropnt2_map(address_map &map)
+{
+ map(0x000000, 0x1fffff).rom(); // ROM
+ map(0x800018, 0x80001b).portr("SYSTEM");
+ map(0x800025, 0x800025).rw("oki1", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); // Sound
+ map(0x800028, 0x80002f).rw("ymsnd", FUNC(ym2151_device::read), FUNC(ym2151_device::write)).umask32(0x00ff0000); //
+ map(0x800031, 0x800031).rw("oki2", FUNC(okim6295_device::read), FUNC(okim6295_device::write)); //
+ map(0x800034, 0x800037).w(this, FUNC(zeropnt2_state::zeropnt2_sound_bank_w)); //
+ map(0x800038, 0x80003b).w(this, FUNC(zeropnt2_state::zeropnt2_leds_w)); // ?
+ map(0x80010c, 0x800123).rw(this, FUNC(zeropnt2_state::unico_scroll_r), FUNC(zeropnt2_state::unico_scroll_w)); // Scroll
+ map(0x800140, 0x800143).r(this, FUNC(zeropnt2_state::zeropnt2_guny_0_msb_r)); // Light Guns
+ map(0x800144, 0x800147).r(this, FUNC(zeropnt2_state::zeropnt2_gunx_0_msb_r)); //
+ map(0x800148, 0x80014b).r(this, FUNC(zeropnt2_state::zeropnt2_guny_1_msb_r)); //
+ map(0x80014c, 0x80014f).r(this, FUNC(zeropnt2_state::zeropnt2_gunx_1_msb_r)); //
+ map(0x800150, 0x800153).portr("DSW1");
+ map(0x800154, 0x800157).portr("DSW2");
+ map(0x80015c, 0x80015f).portr("BUTTONS");
+ map(0x8001e0, 0x8001e3).nopw(); // ? IRQ Ack
+ map(0x8001f0, 0x8001f3).w(this, FUNC(zeropnt2_state::zeropnt2_eeprom_w)); // EEPROM
+ map(0x904000, 0x90ffff).rw(this, FUNC(zeropnt2_state::unico_vram_r), FUNC(zeropnt2_state::unico_vram_w)); // Layers 1, 2, 0
+ map(0x920000, 0x923fff).ram(); // ? 0
+ map(0x930000, 0x9307ff).rw(this, FUNC(zeropnt2_state::unico_spriteram_r), FUNC(zeropnt2_state::unico_spriteram_w)); // Sprites
+ map(0x940000, 0x947fff).ram().w(this, FUNC(zeropnt2_state::unico_palette32_w)).share("paletteram"); // Palette
+ map(0xfe0000, 0xffffff).ram(); // RAM
+}
/***************************************************************************