diff options
Diffstat (limited to 'src/mame/drivers/nyny.cpp')
-rw-r--r-- | src/mame/drivers/nyny.cpp | 93 |
1 files changed, 48 insertions, 45 deletions
diff --git a/src/mame/drivers/nyny.cpp b/src/mame/drivers/nyny.cpp index af5253116b1..ef335ef75b8 100644 --- a/src/mame/drivers/nyny.cpp +++ b/src/mame/drivers/nyny.cpp @@ -426,51 +426,54 @@ WRITE8_MEMBER(nyny_state::nyny_pia_1_2_w) } -ADDRESS_MAP_START(nyny_state::nyny_main_map) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("videoram1") - AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("colorram1") - AM_RANGE(0x4000, 0x5fff) AM_RAM AM_SHARE("videoram2") - AM_RANGE(0x6000, 0x7fff) AM_RAM AM_SHARE("colorram2") - AM_RANGE(0x8000, 0x9fff) AM_RAM - AM_RANGE(0xa000, 0xa0ff) AM_RAM AM_SHARE("nvram") /* SRAM (coin counter, shown when holding F2) */ - AM_RANGE(0xa100, 0xa100) AM_MIRROR(0x00fe) AM_DEVWRITE("crtc", mc6845_device, address_w) - AM_RANGE(0xa101, 0xa101) AM_MIRROR(0x00fe) AM_DEVWRITE("crtc", mc6845_device, register_w) - AM_RANGE(0xa200, 0xa20f) AM_MIRROR(0x00f0) AM_READWRITE(nyny_pia_1_2_r, nyny_pia_1_2_w) - AM_RANGE(0xa300, 0xa300) AM_MIRROR(0x00ff) AM_DEVREAD("soundlatch3", generic_latch_8_device, read) AM_WRITE(audio_1_command_w) - AM_RANGE(0xa400, 0xa7ff) AM_NOP - AM_RANGE(0xa800, 0xbfff) AM_ROM - AM_RANGE(0xc000, 0xdfff) AM_RAM - AM_RANGE(0xe000, 0xffff) AM_ROM -ADDRESS_MAP_END - - -ADDRESS_MAP_START(nyny_state::nyny_audio_1_map) - ADDRESS_MAP_GLOBAL_MASK(0x7fff) - AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */ - AM_RANGE(0x0080, 0x0fff) AM_NOP - AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0fff) AM_DEVREAD("soundlatch", generic_latch_8_device, read) AM_WRITE(audio_1_answer_w) - AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0fff) AM_READ_PORT("SW3") - AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x0ffc) AM_DEVREAD("ay1", ay8910_device, data_r) - AM_RANGE(0x3000, 0x3001) AM_MIRROR(0x0ffc) AM_DEVWRITE("ay1", ay8910_device, data_address_w) - AM_RANGE(0x3002, 0x3002) AM_MIRROR(0x0ffc) AM_DEVREAD("ay2", ay8910_device, data_r) - AM_RANGE(0x3002, 0x3003) AM_MIRROR(0x0ffc) AM_DEVWRITE("ay2", ay8910_device, data_address_w) - AM_RANGE(0x4000, 0x4fff) AM_NOP - AM_RANGE(0x5000, 0x57ff) AM_MIRROR(0x0800) AM_ROM - AM_RANGE(0x6000, 0x67ff) AM_MIRROR(0x0800) AM_ROM - AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_ROM -ADDRESS_MAP_END - - -ADDRESS_MAP_START(nyny_state::nyny_audio_2_map) - ADDRESS_MAP_GLOBAL_MASK(0x7fff) - AM_RANGE(0x0000, 0x007f) AM_RAM /* internal RAM */ - AM_RANGE(0x0080, 0x0fff) AM_NOP - AM_RANGE(0x1000, 0x1000) AM_MIRROR(0x0fff) AM_DEVREAD("soundlatch2", generic_latch_8_device, read) - AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x0ffe) AM_DEVREAD("ay3", ay8910_device, data_r) - AM_RANGE(0x2000, 0x2001) AM_MIRROR(0x0ffe) AM_DEVWRITE("ay3", ay8910_device, data_address_w) - AM_RANGE(0x3000, 0x6fff) AM_NOP - AM_RANGE(0x7000, 0x77ff) AM_MIRROR(0x0800) AM_ROM -ADDRESS_MAP_END +void nyny_state::nyny_main_map(address_map &map) +{ + map(0x0000, 0x1fff).ram().share("videoram1"); + map(0x2000, 0x3fff).ram().share("colorram1"); + map(0x4000, 0x5fff).ram().share("videoram2"); + map(0x6000, 0x7fff).ram().share("colorram2"); + map(0x8000, 0x9fff).ram(); + map(0xa000, 0xa0ff).ram().share("nvram"); /* SRAM (coin counter, shown when holding F2) */ + map(0xa100, 0xa100).mirror(0x00fe).w(m_mc6845, FUNC(mc6845_device::address_w)); + map(0xa101, 0xa101).mirror(0x00fe).w(m_mc6845, FUNC(mc6845_device::register_w)); + map(0xa200, 0xa20f).mirror(0x00f0).rw(this, FUNC(nyny_state::nyny_pia_1_2_r), FUNC(nyny_state::nyny_pia_1_2_w)); + map(0xa300, 0xa300).mirror(0x00ff).r(m_soundlatch3, FUNC(generic_latch_8_device::read)).w(this, FUNC(nyny_state::audio_1_command_w)); + map(0xa400, 0xa7ff).noprw(); + map(0xa800, 0xbfff).rom(); + map(0xc000, 0xdfff).ram(); + map(0xe000, 0xffff).rom(); +} + + +void nyny_state::nyny_audio_1_map(address_map &map) +{ + map.global_mask(0x7fff); + map(0x0000, 0x007f).ram(); /* internal RAM */ + map(0x0080, 0x0fff).noprw(); + map(0x1000, 0x1000).mirror(0x0fff).r(m_soundlatch, FUNC(generic_latch_8_device::read)).w(this, FUNC(nyny_state::audio_1_answer_w)); + map(0x2000, 0x2000).mirror(0x0fff).portr("SW3"); + map(0x3000, 0x3000).mirror(0x0ffc).r("ay1", FUNC(ay8910_device::data_r)); + map(0x3000, 0x3001).mirror(0x0ffc).w("ay1", FUNC(ay8910_device::data_address_w)); + map(0x3002, 0x3002).mirror(0x0ffc).r("ay2", FUNC(ay8910_device::data_r)); + map(0x3002, 0x3003).mirror(0x0ffc).w("ay2", FUNC(ay8910_device::data_address_w)); + map(0x4000, 0x4fff).noprw(); + map(0x5000, 0x57ff).mirror(0x0800).rom(); + map(0x6000, 0x67ff).mirror(0x0800).rom(); + map(0x7000, 0x77ff).mirror(0x0800).rom(); +} + + +void nyny_state::nyny_audio_2_map(address_map &map) +{ + map.global_mask(0x7fff); + map(0x0000, 0x007f).ram(); /* internal RAM */ + map(0x0080, 0x0fff).noprw(); + map(0x1000, 0x1000).mirror(0x0fff).r(m_soundlatch2, FUNC(generic_latch_8_device::read)); + map(0x2000, 0x2000).mirror(0x0ffe).r("ay3", FUNC(ay8910_device::data_r)); + map(0x2000, 0x2001).mirror(0x0ffe).w("ay3", FUNC(ay8910_device::data_address_w)); + map(0x3000, 0x6fff).noprw(); + map(0x7000, 0x77ff).mirror(0x0800).rom(); +} |