diff options
Diffstat (limited to 'src/mame/drivers/unico.cpp')
-rw-r--r-- | src/mame/drivers/unico.cpp | 133 |
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 +} /*************************************************************************** |