diff options
Diffstat (limited to 'src/mame/drivers/gijoe.cpp')
-rw-r--r-- | src/mame/drivers/gijoe.cpp | 68 |
1 files changed, 35 insertions, 33 deletions
diff --git a/src/mame/drivers/gijoe.cpp b/src/mame/drivers/gijoe.cpp index 9e2c3a782b8..76387f11e95 100644 --- a/src/mame/drivers/gijoe.cpp +++ b/src/mame/drivers/gijoe.cpp @@ -197,41 +197,43 @@ WRITE16_MEMBER(gijoe_state::sound_irq_w) m_audiocpu->set_input_line(0, HOLD_LINE); } -ADDRESS_MAP_START(gijoe_state::gijoe_map) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x100000, 0x100fff) AM_RAM AM_SHARE("spriteram") // Sprites - AM_RANGE(0x110000, 0x110007) AM_DEVWRITE("k053246", k053247_device, k053246_word_w) - AM_RANGE(0x120000, 0x121fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) // Graphic planes - AM_RANGE(0x122000, 0x123fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) // Graphic planes mirror read - AM_RANGE(0x130000, 0x131fff) AM_DEVREAD("k056832", k056832_device, rom_word_r) // Passthrough to tile roms - AM_RANGE(0x160000, 0x160007) AM_DEVWRITE("k056832", k056832_device, b_word_w) // VSCCS (board dependent) - AM_RANGE(0x170000, 0x170001) AM_WRITENOP // Watchdog - AM_RANGE(0x180000, 0x18ffff) AM_RAM AM_SHARE("workram") // Main RAM. Spec. 180000-1803ff, 180400-187fff - AM_RANGE(0x190000, 0x190fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") - AM_RANGE(0x1a0000, 0x1a001f) AM_DEVWRITE("k053251", k053251_device, lsb_w) - AM_RANGE(0x1b0000, 0x1b003f) AM_DEVWRITE("k056832", k056832_device, word_w) - AM_RANGE(0x1c0000, 0x1c001f) AM_DEVICE8("k054321", k054321_device, main_map, 0x00ff) - AM_RANGE(0x1d0000, 0x1d0001) AM_WRITE(sound_irq_w) - AM_RANGE(0x1e0000, 0x1e0001) AM_READ_PORT("P1_P2") - AM_RANGE(0x1e0002, 0x1e0003) AM_READ_PORT("P3_P4") - AM_RANGE(0x1e4000, 0x1e4001) AM_READ_PORT("SYSTEM") - AM_RANGE(0x1e4002, 0x1e4003) AM_READ_PORT("START") - AM_RANGE(0x1e8000, 0x1e8001) AM_READWRITE(control2_r, control2_w) - AM_RANGE(0x1f0000, 0x1f0001) AM_DEVREAD("k053246", k053247_device, k053246_word_r) +void gijoe_state::gijoe_map(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); + map(0x100000, 0x100fff).ram().share("spriteram"); // Sprites + map(0x110000, 0x110007).w(m_k053246, FUNC(k053247_device::k053246_word_w)); + map(0x120000, 0x121fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); // Graphic planes + map(0x122000, 0x123fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); // Graphic planes mirror read + map(0x130000, 0x131fff).r(m_k056832, FUNC(k056832_device::rom_word_r)); // Passthrough to tile roms + map(0x160000, 0x160007).w(m_k056832, FUNC(k056832_device::b_word_w)); // VSCCS (board dependent) + map(0x170000, 0x170001).nopw(); // Watchdog + map(0x180000, 0x18ffff).ram().share("workram"); // Main RAM. Spec. 180000-1803ff, 180400-187fff + map(0x190000, 0x190fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x1a0000, 0x1a001f).w(m_k053251, FUNC(k053251_device::lsb_w)); + map(0x1b0000, 0x1b003f).w(m_k056832, FUNC(k056832_device::word_w)); + map(0x1c0000, 0x1c001f).m(m_k054321, FUNC(k054321_device::main_map)).umask16(0x00ff); + map(0x1d0000, 0x1d0001).w(this, FUNC(gijoe_state::sound_irq_w)); + map(0x1e0000, 0x1e0001).portr("P1_P2"); + map(0x1e0002, 0x1e0003).portr("P3_P4"); + map(0x1e4000, 0x1e4001).portr("SYSTEM"); + map(0x1e4002, 0x1e4003).portr("START"); + map(0x1e8000, 0x1e8001).rw(this, FUNC(gijoe_state::control2_r), FUNC(gijoe_state::control2_w)); + map(0x1f0000, 0x1f0001).r(m_k053246, FUNC(k053247_device::k053246_word_r)); #if JOE_DEBUG - AM_RANGE(0x110000, 0x110007) AM_DEVREAD("k053246", k053247_device, k053246_reg_word_r) - AM_RANGE(0x160000, 0x160007) AM_DEVREAD("k056832", k056832_device, b_word_r) - AM_RANGE(0x1a0000, 0x1a001f) AM_DEVREAD("k053251", k053251_device, lsb_r) - AM_RANGE(0x1b0000, 0x1b003f) AM_DEVREAD("k056832", k056832_device, word_r) + map(0x110000, 0x110007).r(m_k053246, FUNC(k053247_device::k053246_reg_word_r)); + map(0x160000, 0x160007).r(m_k056832, FUNC(k056832_device::b_word_r)); + map(0x1a0000, 0x1a001f).r(m_k053251, FUNC(k053251_device::lsb_r)); + map(0x1b0000, 0x1b003f).r(m_k056832, FUNC(k056832_device::word_r)); #endif -ADDRESS_MAP_END - -ADDRESS_MAP_START(gijoe_state::sound_map) - AM_RANGE(0xf000, 0xf7ff) AM_RAM - AM_RANGE(0xf800, 0xfa2f) AM_DEVREADWRITE("k054539", k054539_device, read, write) - AM_RANGE(0xfc00, 0xfc03) AM_DEVICE("k054321", k054321_device, sound_map) - AM_RANGE(0x0000, 0xefff) AM_ROM -ADDRESS_MAP_END +} + +void gijoe_state::sound_map(address_map &map) +{ + map(0xf000, 0xf7ff).ram(); + map(0xf800, 0xfa2f).rw(m_k054539, FUNC(k054539_device::read), FUNC(k054539_device::write)); + map(0xfc00, 0xfc03).m(m_k054321, FUNC(k054321_device::sound_map)); + map(0x0000, 0xefff).rom(); +} static INPUT_PORTS_START( gijoe ) PORT_START("START") |