diff options
Diffstat (limited to 'src/mame/drivers/jack.cpp')
-rw-r--r-- | src/mame/drivers/jack.cpp | 133 |
1 files changed, 70 insertions, 63 deletions
diff --git a/src/mame/drivers/jack.cpp b/src/mame/drivers/jack.cpp index cea51a0a83b..55cf03acf21 100644 --- a/src/mame/drivers/jack.cpp +++ b/src/mame/drivers/jack.cpp @@ -177,69 +177,76 @@ WRITE8_MEMBER(jack_state::joinem_control_w) * *************************************/ -ADDRESS_MAP_START(jack_state::jack_map) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x4000, 0x5fff) AM_RAM - AM_RANGE(0xb000, 0xb07f) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xb400, 0xb400) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xb500, 0xb500) AM_READ_PORT("DSW1") - AM_RANGE(0xb501, 0xb501) AM_READ_PORT("DSW2") - AM_RANGE(0xb502, 0xb502) AM_READ_PORT("IN0") - AM_RANGE(0xb503, 0xb503) AM_READ_PORT("IN1") - AM_RANGE(0xb504, 0xb504) AM_READ_PORT("IN2") - AM_RANGE(0xb505, 0xb505) AM_READ_PORT("IN3") - AM_RANGE(0xb506, 0xb507) AM_READWRITE(jack_flipscreen_r, jack_flipscreen_w) - AM_RANGE(0xb600, 0xb61f) AM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette") - AM_RANGE(0xb800, 0xbbff) AM_RAM_WRITE(jack_videoram_w) AM_SHARE("videoram") - AM_RANGE(0xbc00, 0xbfff) AM_RAM_WRITE(jack_colorram_w) AM_SHARE("colorram") - AM_RANGE(0xc000, 0xffff) AM_ROM -ADDRESS_MAP_END - -ADDRESS_MAP_START(jack_state::decrypted_opcodes_map) - AM_RANGE(0x0000, 0x3fff) AM_ROM AM_SHARE("decrypted_opcodes") -ADDRESS_MAP_END - -ADDRESS_MAP_START(jack_state::striv_map) - AM_IMPORT_FROM( jack_map ) - AM_RANGE(0xb000, 0xb0ff) AM_WRITENOP - AM_RANGE(0xc000, 0xcfff) AM_READ(striv_question_r) -ADDRESS_MAP_END - - -ADDRESS_MAP_START(jack_state::joinem_map) - AM_RANGE(0x0000, 0x7fff) AM_ROM - AM_RANGE(0x8000, 0x8fff) AM_RAM - AM_RANGE(0xb000, 0xb07f) AM_RAM AM_SHARE("spriteram") - AM_RANGE(0xb080, 0xb0ff) AM_RAM_WRITE(joinem_scroll_w) AM_SHARE("scrollram") - AM_RANGE(0xb400, 0xb400) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - AM_RANGE(0xb500, 0xb500) AM_READ_PORT("DSW1") - AM_RANGE(0xb501, 0xb501) AM_READ_PORT("DSW2") - AM_RANGE(0xb502, 0xb502) AM_READ_PORT("IN0") - AM_RANGE(0xb503, 0xb503) AM_READ_PORT("IN1") - AM_RANGE(0xb504, 0xb504) AM_READ_PORT("IN2") - AM_RANGE(0xb506, 0xb507) AM_READWRITE(jack_flipscreen_r, jack_flipscreen_w) - AM_RANGE(0xb700, 0xb700) AM_WRITE(joinem_control_w) - AM_RANGE(0xb800, 0xbbff) AM_RAM_WRITE(jack_videoram_w) AM_SHARE("videoram") - AM_RANGE(0xbc00, 0xbfff) AM_RAM_WRITE(jack_colorram_w) AM_SHARE("colorram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(jack_state::unclepoo_map) - AM_IMPORT_FROM( joinem_map ) - AM_RANGE(0x9000, 0x97ff) AM_RAM -ADDRESS_MAP_END - - -ADDRESS_MAP_START(jack_state::sound_map) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x4000, 0x43ff) AM_RAM - AM_RANGE(0x6000, 0x6fff) AM_WRITENOP /* R/C filter ??? */ -ADDRESS_MAP_END - -ADDRESS_MAP_START(jack_state::sound_io_map) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x40, 0x40) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w) - AM_RANGE(0x80, 0x80) AM_DEVWRITE("aysnd", ay8910_device, address_w) -ADDRESS_MAP_END +void jack_state::jack_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0x4000, 0x5fff).ram(); + map(0xb000, 0xb07f).ram().share("spriteram"); + map(0xb400, 0xb400).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xb500, 0xb500).portr("DSW1"); + map(0xb501, 0xb501).portr("DSW2"); + map(0xb502, 0xb502).portr("IN0"); + map(0xb503, 0xb503).portr("IN1"); + map(0xb504, 0xb504).portr("IN2"); + map(0xb505, 0xb505).portr("IN3"); + map(0xb506, 0xb507).rw(this, FUNC(jack_state::jack_flipscreen_r), FUNC(jack_state::jack_flipscreen_w)); + map(0xb600, 0xb61f).w(m_palette, FUNC(palette_device::write8)).share("palette"); + map(0xb800, 0xbbff).ram().w(this, FUNC(jack_state::jack_videoram_w)).share("videoram"); + map(0xbc00, 0xbfff).ram().w(this, FUNC(jack_state::jack_colorram_w)).share("colorram"); + map(0xc000, 0xffff).rom(); +} + +void jack_state::decrypted_opcodes_map(address_map &map) +{ + map(0x0000, 0x3fff).rom().share("decrypted_opcodes"); +} + +void jack_state::striv_map(address_map &map) +{ + jack_map(map); + map(0xb000, 0xb0ff).nopw(); + map(0xc000, 0xcfff).r(this, FUNC(jack_state::striv_question_r)); +} + + +void jack_state::joinem_map(address_map &map) +{ + map(0x0000, 0x7fff).rom(); + map(0x8000, 0x8fff).ram(); + map(0xb000, 0xb07f).ram().share("spriteram"); + map(0xb080, 0xb0ff).ram().w(this, FUNC(jack_state::joinem_scroll_w)).share("scrollram"); + map(0xb400, 0xb400).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xb500, 0xb500).portr("DSW1"); + map(0xb501, 0xb501).portr("DSW2"); + map(0xb502, 0xb502).portr("IN0"); + map(0xb503, 0xb503).portr("IN1"); + map(0xb504, 0xb504).portr("IN2"); + map(0xb506, 0xb507).rw(this, FUNC(jack_state::jack_flipscreen_r), FUNC(jack_state::jack_flipscreen_w)); + map(0xb700, 0xb700).w(this, FUNC(jack_state::joinem_control_w)); + map(0xb800, 0xbbff).ram().w(this, FUNC(jack_state::jack_videoram_w)).share("videoram"); + map(0xbc00, 0xbfff).ram().w(this, FUNC(jack_state::jack_colorram_w)).share("colorram"); +} + +void jack_state::unclepoo_map(address_map &map) +{ + joinem_map(map); + map(0x9000, 0x97ff).ram(); +} + + +void jack_state::sound_map(address_map &map) +{ + map(0x0000, 0x1fff).rom(); + map(0x4000, 0x43ff).ram(); + map(0x6000, 0x6fff).nopw(); /* R/C filter ??? */ +} + +void jack_state::sound_io_map(address_map &map) +{ + map.global_mask(0xff); + map(0x40, 0x40).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w)); + map(0x80, 0x80).w("aysnd", FUNC(ay8910_device::address_w)); +} |