diff options
Diffstat (limited to 'src/mame/drivers/kingobox.cpp')
-rw-r--r-- | src/mame/drivers/kingobox.cpp | 195 |
1 files changed, 102 insertions, 93 deletions
diff --git a/src/mame/drivers/kingobox.cpp b/src/mame/drivers/kingobox.cpp index 4da81267f99..43a3c99c6b7 100644 --- a/src/mame/drivers/kingobox.cpp +++ b/src/mame/drivers/kingobox.cpp @@ -52,101 +52,110 @@ WRITE8_MEMBER(kingofb_state::sound_command_w) } -ADDRESS_MAP_START(kingofb_state::kingobox_map) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */ - AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("share2") /* shared with sprite cpu */ - AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("share1") /* shared with video cpu */ - AM_RANGE(0xf000, 0xf7ff) AM_RAM /* ???? */ - AM_RANGE(0xf800, 0xf800) AM_WRITE(kingofb_f800_w) /* NMI enable, palette bank */ - AM_RANGE(0xf801, 0xf801) AM_WRITENOP /* ???? */ - AM_RANGE(0xf802, 0xf802) AM_WRITEONLY AM_SHARE("scroll_y") - AM_RANGE(0xf803, 0xf803) AM_WRITE(scroll_interrupt_w) - AM_RANGE(0xf804, 0xf804) AM_WRITE(video_interrupt_w) - AM_RANGE(0xf807, 0xf807) AM_WRITE(sound_command_w) /* sound latch */ - AM_RANGE(0xfc00, 0xfc00) AM_READ_PORT("DSW1") - AM_RANGE(0xfc01, 0xfc01) AM_READ_PORT("DSW2") - AM_RANGE(0xfc02, 0xfc02) AM_READ_PORT("P1") - AM_RANGE(0xfc03, 0xfc03) AM_READ_PORT("P2") - AM_RANGE(0xfc04, 0xfc04) AM_READ_PORT("SYSTEM") - AM_RANGE(0xfc05, 0xfc05) AM_READ_PORT("EXTRA") -ADDRESS_MAP_END - -ADDRESS_MAP_START(kingofb_state::kingobox_video_map) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */ - AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share1") /* shared with main */ - AM_RANGE(0xc000, 0xc0ff) AM_RAM_WRITE(kingofb_videoram_w) AM_SHARE("videoram") /* background vram */ - AM_RANGE(0xc400, 0xc4ff) AM_RAM_WRITE(kingofb_colorram_w) AM_SHARE("colorram") /* background colorram */ - AM_RANGE(0xc800, 0xcbff) AM_RAM_WRITE(kingofb_videoram2_w) AM_SHARE("videoram2") /* foreground vram */ - AM_RANGE(0xcc00, 0xcfff) AM_RAM_WRITE(kingofb_colorram2_w) AM_SHARE("colorram2") /* foreground colorram */ -ADDRESS_MAP_END - -ADDRESS_MAP_START(kingofb_state::kingobox_sprite_map) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */ - AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("share2") /* shared with main */ - AM_RANGE(0xc000, 0xc3ff) AM_RAM AM_SHARE("spriteram") /* sprite ram */ - AM_RANGE(0xc400, 0xc43f) AM_RAM /* something related to scroll? */ -ADDRESS_MAP_END - -ADDRESS_MAP_START(kingofb_state::kingobox_sound_map) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0x8000, 0x8000) AM_WRITENOP /* ??? */ - AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */ -ADDRESS_MAP_END - -ADDRESS_MAP_START(kingofb_state::kingobox_sound_io_map) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac", dac_byte_interface, write) - AM_RANGE(0x08, 0x08) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w) - AM_RANGE(0x0c, 0x0c) AM_DEVWRITE("aysnd", ay8910_device, address_w) -ADDRESS_MAP_END +void kingofb_state::kingobox_map(address_map &map) +{ + map(0x0000, 0xbfff).rom(); + map(0xc000, 0xc3ff).ram(); /* work ram */ + map(0xe000, 0xe7ff).ram().share("share2"); /* shared with sprite cpu */ + map(0xe800, 0xefff).ram().share("share1"); /* shared with video cpu */ + map(0xf000, 0xf7ff).ram(); /* ???? */ + map(0xf800, 0xf800).w(this, FUNC(kingofb_state::kingofb_f800_w)); /* NMI enable, palette bank */ + map(0xf801, 0xf801).nopw(); /* ???? */ + map(0xf802, 0xf802).writeonly().share("scroll_y"); + map(0xf803, 0xf803).w(this, FUNC(kingofb_state::scroll_interrupt_w)); + map(0xf804, 0xf804).w(this, FUNC(kingofb_state::video_interrupt_w)); + map(0xf807, 0xf807).w(this, FUNC(kingofb_state::sound_command_w)); /* sound latch */ + map(0xfc00, 0xfc00).portr("DSW1"); + map(0xfc01, 0xfc01).portr("DSW2"); + map(0xfc02, 0xfc02).portr("P1"); + map(0xfc03, 0xfc03).portr("P2"); + map(0xfc04, 0xfc04).portr("SYSTEM"); + map(0xfc05, 0xfc05).portr("EXTRA"); +} + +void kingofb_state::kingobox_video_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0x8000, 0x87ff).ram(); /* work ram */ + map(0xa000, 0xa7ff).ram().share("share1"); /* shared with main */ + map(0xc000, 0xc0ff).ram().w(this, FUNC(kingofb_state::kingofb_videoram_w)).share("videoram"); /* background vram */ + map(0xc400, 0xc4ff).ram().w(this, FUNC(kingofb_state::kingofb_colorram_w)).share("colorram"); /* background colorram */ + map(0xc800, 0xcbff).ram().w(this, FUNC(kingofb_state::kingofb_videoram2_w)).share("videoram2"); /* foreground vram */ + map(0xcc00, 0xcfff).ram().w(this, FUNC(kingofb_state::kingofb_colorram2_w)).share("colorram2"); /* foreground colorram */ +} + +void kingofb_state::kingobox_sprite_map(address_map &map) +{ + map(0x0000, 0x1fff).rom(); + map(0x8000, 0x87ff).ram(); /* work ram */ + map(0xa000, 0xa7ff).ram().share("share2"); /* shared with main */ + map(0xc000, 0xc3ff).ram().share("spriteram"); /* sprite ram */ + map(0xc400, 0xc43f).ram(); /* something related to scroll? */ +} + +void kingofb_state::kingobox_sound_map(address_map &map) +{ + map(0x0000, 0xbfff).rom(); + map(0x8000, 0x8000).nopw(); /* ??? */ + map(0xc000, 0xc3ff).ram(); /* work ram */ +} + +void kingofb_state::kingobox_sound_io_map(address_map &map) +{ + map.global_mask(0xff); + map(0x00, 0x00).w("dac", FUNC(dac_byte_interface::write)); + map(0x08, 0x08).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)); + map(0x0c, 0x0c).w("aysnd", FUNC(ay8910_device::address_w)); +} /* Ring King */ -ADDRESS_MAP_START(kingofb_state::ringking_map) - AM_RANGE(0x0000, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xc3ff) AM_RAM /* work ram */ - AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share2") /* shared with sprite cpu */ - AM_RANGE(0xd000, 0xd7ff) AM_RAM AM_SHARE("share1") /* shared with video cpu */ - AM_RANGE(0xd800, 0xd800) AM_WRITE(kingofb_f800_w) - AM_RANGE(0xd801, 0xd801) AM_WRITE(sprite_interrupt_w) - AM_RANGE(0xd802, 0xd802) AM_WRITE(video_interrupt_w) - AM_RANGE(0xd803, 0xd803) AM_WRITE(sound_command_w) - AM_RANGE(0xe000, 0xe000) AM_READ_PORT("DSW1") - AM_RANGE(0xe001, 0xe001) AM_READ_PORT("DSW2") - AM_RANGE(0xe002, 0xe002) AM_READ_PORT("P1") - AM_RANGE(0xe003, 0xe003) AM_READ_PORT("P2") - AM_RANGE(0xe004, 0xe004) AM_READ_PORT("SYSTEM") - AM_RANGE(0xe005, 0xe005) AM_READ_PORT("EXTRA") - AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_SHARE("scroll_y") - AM_RANGE(0xf000, 0xf7ff) AM_RAM /* ???? */ -ADDRESS_MAP_END - -ADDRESS_MAP_START(kingofb_state::ringking_video_map) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */ - AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_SHARE("share1") /* shared with main */ - AM_RANGE(0xa800, 0xa8ff) AM_RAM_WRITE(kingofb_videoram_w) AM_SHARE("videoram") /* background vram */ - AM_RANGE(0xac00, 0xacff) AM_RAM_WRITE(kingofb_colorram_w) AM_SHARE("colorram") /* background colorram */ - AM_RANGE(0xa000, 0xa3ff) AM_RAM_WRITE(kingofb_videoram2_w) AM_SHARE("videoram2") /* foreground vram */ - AM_RANGE(0xa400, 0xa7ff) AM_RAM_WRITE(kingofb_colorram2_w) AM_SHARE("colorram2") /* foreground colorram */ -ADDRESS_MAP_END - -ADDRESS_MAP_START(kingofb_state::ringking_sprite_map) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x8000, 0x87ff) AM_RAM /* work ram */ - AM_RANGE(0xc800, 0xcfff) AM_RAM AM_SHARE("share2") /* shared with main */ - AM_RANGE(0xa000, 0xa3ff) AM_RAM AM_SHARE("spriteram") /* sprite ram */ - AM_RANGE(0xa400, 0xa43f) AM_RAM /* something related to scroll? */ -ADDRESS_MAP_END - -ADDRESS_MAP_START(kingofb_state::ringking_sound_io_map) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_DEVWRITE("dac", dac_byte_interface, write) - AM_RANGE(0x02, 0x02) AM_DEVREAD("aysnd", ay8910_device, data_r) - AM_RANGE(0x02, 0x03) AM_DEVWRITE("aysnd", ay8910_device, data_address_w) -ADDRESS_MAP_END +void kingofb_state::ringking_map(address_map &map) +{ + map(0x0000, 0xbfff).rom(); + map(0xc000, 0xc3ff).ram(); /* work ram */ + map(0xc800, 0xcfff).ram().share("share2"); /* shared with sprite cpu */ + map(0xd000, 0xd7ff).ram().share("share1"); /* shared with video cpu */ + map(0xd800, 0xd800).w(this, FUNC(kingofb_state::kingofb_f800_w)); + map(0xd801, 0xd801).w(this, FUNC(kingofb_state::sprite_interrupt_w)); + map(0xd802, 0xd802).w(this, FUNC(kingofb_state::video_interrupt_w)); + map(0xd803, 0xd803).w(this, FUNC(kingofb_state::sound_command_w)); + map(0xe000, 0xe000).portr("DSW1"); + map(0xe001, 0xe001).portr("DSW2"); + map(0xe002, 0xe002).portr("P1"); + map(0xe003, 0xe003).portr("P2"); + map(0xe004, 0xe004).portr("SYSTEM"); + map(0xe005, 0xe005).portr("EXTRA"); + map(0xe800, 0xe800).writeonly().share("scroll_y"); + map(0xf000, 0xf7ff).ram(); /* ???? */ +} + +void kingofb_state::ringking_video_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0x8000, 0x87ff).ram(); /* work ram */ + map(0xc000, 0xc7ff).ram().share("share1"); /* shared with main */ + map(0xa800, 0xa8ff).ram().w(this, FUNC(kingofb_state::kingofb_videoram_w)).share("videoram"); /* background vram */ + map(0xac00, 0xacff).ram().w(this, FUNC(kingofb_state::kingofb_colorram_w)).share("colorram"); /* background colorram */ + map(0xa000, 0xa3ff).ram().w(this, FUNC(kingofb_state::kingofb_videoram2_w)).share("videoram2"); /* foreground vram */ + map(0xa400, 0xa7ff).ram().w(this, FUNC(kingofb_state::kingofb_colorram2_w)).share("colorram2"); /* foreground colorram */ +} + +void kingofb_state::ringking_sprite_map(address_map &map) +{ + map(0x0000, 0x1fff).rom(); + map(0x8000, 0x87ff).ram(); /* work ram */ + map(0xc800, 0xcfff).ram().share("share2"); /* shared with main */ + map(0xa000, 0xa3ff).ram().share("spriteram"); /* sprite ram */ + map(0xa400, 0xa43f).ram(); /* something related to scroll? */ +} + +void kingofb_state::ringking_sound_io_map(address_map &map) +{ + map.global_mask(0xff); + map(0x00, 0x00).w("dac", FUNC(dac_byte_interface::write)); + map(0x02, 0x02).r("aysnd", FUNC(ay8910_device::data_r)); + map(0x02, 0x03).w("aysnd", FUNC(ay8910_device::data_address_w)); +} static INPUT_PORTS_START( kingofb ) |