diff options
Diffstat (limited to 'src/mame/drivers/munchmo.cpp')
-rw-r--r-- | src/mame/drivers/munchmo.cpp | 67 |
1 files changed, 36 insertions, 31 deletions
diff --git a/src/mame/drivers/munchmo.cpp b/src/mame/drivers/munchmo.cpp index fe13910ff5a..d36773e3f5b 100644 --- a/src/mame/drivers/munchmo.cpp +++ b/src/mame/drivers/munchmo.cpp @@ -93,39 +93,44 @@ READ8_MEMBER(munchmo_state::ay2reset_r) * *************************************/ -ADDRESS_MAP_START(munchmo_state::mnchmobl_map) - AM_RANGE(0x0000, 0x3fff) AM_ROM - AM_RANGE(0x8000, 0x83ff) AM_RAM - AM_RANGE(0xa000, 0xa3ff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("sprite_xpos") - AM_RANGE(0xa800, 0xabff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("sprite_tile") - AM_RANGE(0xb000, 0xb3ff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("sprite_attr") - AM_RANGE(0xb800, 0xb8ff) AM_MIRROR(0x0100) AM_RAM AM_SHARE("videoram") - AM_RANGE(0xbaba, 0xbaba) AM_WRITENOP /* ? */ - AM_RANGE(0xbc00, 0xbc7f) AM_RAM AM_SHARE("status_vram") - AM_RANGE(0xbe00, 0xbe00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) - ;map(0xbe01, 0xbe01).select(0x0070).lw8("mainlatch_w", [this](address_space &space, offs_t offset, u8 data, u8 mem_mask){ m_mainlatch->write_d0(space, offset >> 4, data, mem_mask); }); - AM_RANGE(0xbe02, 0xbe02) AM_READ_PORT("DSW1") - AM_RANGE(0xbe03, 0xbe03) AM_READ_PORT("DSW2") - AM_RANGE(0xbf00, 0xbf00) AM_WRITE(nmi_ack_w) // CNI 1-8C - AM_RANGE(0xbf01, 0xbf01) AM_READ_PORT("SYSTEM") - AM_RANGE(0xbf02, 0xbf02) AM_READ_PORT("P1") - AM_RANGE(0xbf03, 0xbf03) AM_READ_PORT("P2") - AM_RANGE(0xbf04, 0xbf07) AM_WRITEONLY AM_SHARE("vreg") // MY0 1-8C -ADDRESS_MAP_END +void munchmo_state::mnchmobl_map(address_map &map) +{ + map(0x0000, 0x3fff).rom(); + map(0x8000, 0x83ff).ram(); + map(0xa000, 0xa3ff).mirror(0x0400).ram().share("sprite_xpos"); + map(0xa800, 0xabff).mirror(0x0400).ram().share("sprite_tile"); + map(0xb000, 0xb3ff).mirror(0x0400).ram().share("sprite_attr"); + map(0xb800, 0xb8ff).mirror(0x0100).ram().share("videoram"); + map(0xbaba, 0xbaba).nopw(); /* ? */ + map(0xbc00, 0xbc7f).ram().share("status_vram"); + map(0xbe00, 0xbe00).w(m_soundlatch, FUNC(generic_latch_8_device::write)); + map(0xbe01, 0xbe01).select(0x0070).lw8("mainlatch_w", + [this](address_space &space, offs_t offset, u8 data, u8 mem_mask){ + m_mainlatch->write_d0(space, offset >> 4, data, mem_mask); + }); + map(0xbe02, 0xbe02).portr("DSW1"); + map(0xbe03, 0xbe03).portr("DSW2"); + map(0xbf00, 0xbf00).w(this, FUNC(munchmo_state::nmi_ack_w)); // CNI 1-8C + map(0xbf01, 0xbf01).portr("SYSTEM"); + map(0xbf02, 0xbf02).portr("P1"); + map(0xbf03, 0xbf03).portr("P2"); + map(0xbf04, 0xbf07).writeonly().share("vreg"); // MY0 1-8C +} /* memory map provided thru schematics */ -ADDRESS_MAP_START(munchmo_state::sound_map) - AM_RANGE(0x0000, 0x1fff) AM_ROM - AM_RANGE(0x2000, 0x3fff) AM_DEVREAD("soundlatch", generic_latch_8_device, read) - AM_RANGE(0x4000, 0x4fff) AM_DEVWRITE("ay1", ay8910_device, data_w) - AM_RANGE(0x5000, 0x5fff) AM_DEVWRITE("ay1", ay8910_device, address_w) - AM_RANGE(0x6000, 0x6fff) AM_DEVWRITE("ay2", ay8910_device, data_w) - AM_RANGE(0x7000, 0x7fff) AM_DEVWRITE("ay2", ay8910_device, address_w) - AM_RANGE(0x8000, 0x9fff) AM_READ(ay1reset_r) AM_DEVWRITE("ay1", ay8910_device, reset_w) - AM_RANGE(0xa000, 0xbfff) AM_READ(ay2reset_r) AM_DEVWRITE("ay2", ay8910_device, reset_w) - AM_RANGE(0xc000, 0xdfff) AM_WRITE(sound_nmi_ack_w) // NCL 1-8H - AM_RANGE(0xe000, 0xe7ff) AM_MIRROR(0x1800) AM_RAM // is mirror ok? -ADDRESS_MAP_END +void munchmo_state::sound_map(address_map &map) +{ + map(0x0000, 0x1fff).rom(); + map(0x2000, 0x3fff).r(m_soundlatch, FUNC(generic_latch_8_device::read)); + map(0x4000, 0x4fff).w("ay1", FUNC(ay8910_device::data_w)); + map(0x5000, 0x5fff).w("ay1", FUNC(ay8910_device::address_w)); + map(0x6000, 0x6fff).w("ay2", FUNC(ay8910_device::data_w)); + map(0x7000, 0x7fff).w("ay2", FUNC(ay8910_device::address_w)); + map(0x8000, 0x9fff).r(this, FUNC(munchmo_state::ay1reset_r)).w("ay1", FUNC(ay8910_device::reset_w)); + map(0xa000, 0xbfff).r(this, FUNC(munchmo_state::ay2reset_r)).w("ay2", FUNC(ay8910_device::reset_w)); + map(0xc000, 0xdfff).w(this, FUNC(munchmo_state::sound_nmi_ack_w)); // NCL 1-8H + map(0xe000, 0xe7ff).mirror(0x1800).ram(); // is mirror ok? +} /************************************* |