diff options
Diffstat (limited to 'src/mame/drivers/qdrmfgp.cpp')
-rw-r--r-- | src/mame/drivers/qdrmfgp.cpp | 103 |
1 files changed, 53 insertions, 50 deletions
diff --git a/src/mame/drivers/qdrmfgp.cpp b/src/mame/drivers/qdrmfgp.cpp index 3b3697db9c7..fa93ba96d07 100644 --- a/src/mame/drivers/qdrmfgp.cpp +++ b/src/mame/drivers/qdrmfgp.cpp @@ -248,56 +248,59 @@ WRITE_LINE_MEMBER(qdrmfgp_state::gp2_ide_interrupt) * *************************************/ -ADDRESS_MAP_START(qdrmfgp_state::qdrmfgp_map) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("workram") /* work ram */ - AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */ - AM_RANGE(0x280000, 0x280fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") - AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE("k056832", k056832_device, word_w) /* video reg */ - AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0x00ff) /* ccu */ - AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service sw */ - AM_RANGE(0x340000, 0x340001) AM_READ(inputs_r) /* inputport */ - AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */ - AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */ - AM_RANGE(0x370000, 0x370001) AM_WRITE(gp_control_w) /* control reg */ - AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */ - AM_RANGE(0x800000, 0x80045f) AM_DEVREADWRITE8("k054539", k054539_device, read, write, 0x00ff) /* sound regs */ - AM_RANGE(0x880000, 0x881fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* vram */ - AM_RANGE(0x882000, 0x883fff) AM_DEVREADWRITE("k056832", k056832_device, ram_word_r, ram_word_w) /* vram (mirror) */ - AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */ - AM_RANGE(0xa00000, 0xa0000f) AM_DEVREADWRITE("ata", ata_interface_device, read_cs0, write_cs0) /* IDE control regs */ - AM_RANGE(0xa40000, 0xa4000f) AM_DEVREADWRITE("ata", ata_interface_device, read_cs1, write_cs1) /* IDE status control reg */ - AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r, sndram_w) /* sound ram */ -ADDRESS_MAP_END - - -ADDRESS_MAP_START(qdrmfgp_state::qdrmfgp2_map) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x100000, 0x110fff) AM_RAM AM_SHARE("workram") /* work ram */ - AM_RANGE(0x180000, 0x183fff) AM_RAM AM_SHARE("nvram") /* backup ram */ - AM_RANGE(0x280000, 0x280fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") - AM_RANGE(0x300000, 0x30003f) AM_DEVWRITE("k056832", k056832_device, word_w) /* video reg */ - AM_RANGE(0x320000, 0x32001f) AM_DEVREADWRITE8("k053252", k053252_device, read, write, 0xff00) /* ccu */ - AM_RANGE(0x330000, 0x330001) AM_READ_PORT("SENSOR") /* battery power & service */ - AM_RANGE(0x340000, 0x340001) AM_READ(inputs_r) /* inputport */ - AM_RANGE(0x350000, 0x350001) AM_WRITENOP /* unknown */ - AM_RANGE(0x360000, 0x360001) AM_WRITENOP /* unknown */ - AM_RANGE(0x370000, 0x370001) AM_WRITE(gp2_control_w) /* control reg */ - AM_RANGE(0x380000, 0x380001) AM_WRITENOP /* Watchdog */ - AM_RANGE(0x800000, 0x80045f) AM_DEVREADWRITE8("k054539", k054539_device, read, write, 0x00ff) /* sound regs */ - AM_RANGE(0x880000, 0x881fff) AM_READWRITE(gp2_vram_r, gp2_vram_w) /* vram */ - AM_RANGE(0x89f000, 0x8a0fff) AM_READWRITE(gp2_vram_mirror_r, gp2_vram_mirror_w) /* vram (mirror) */ - AM_RANGE(0x900000, 0x901fff) AM_READ(v_rom_r) /* gfxrom through */ - AM_RANGE(0xa00000, 0xa0000f) AM_DEVREADWRITE("ata", ata_interface_device, read_cs0, write_cs0) /* IDE control regs */ - AM_RANGE(0xa40000, 0xa4000f) AM_DEVREADWRITE("ata", ata_interface_device, read_cs1, write_cs1) /* IDE status control reg */ - AM_RANGE(0xc00000, 0xcbffff) AM_READWRITE(sndram_r,sndram_w) /* sound ram */ -ADDRESS_MAP_END - - -ADDRESS_MAP_START(qdrmfgp_state::qdrmfgp_k054539_map) - AM_RANGE(0x000000, 0x0fffff) AM_ROM AM_REGION("k054539", 0) - AM_RANGE(0x100000, 0x45ffff) AM_RAM AM_SHARE("sndram") -ADDRESS_MAP_END +void qdrmfgp_state::qdrmfgp_map(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); + map(0x100000, 0x10ffff).ram().share("workram"); /* work ram */ + map(0x180000, 0x183fff).ram().share("nvram"); /* backup ram */ + map(0x280000, 0x280fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x300000, 0x30003f).w(m_k056832, FUNC(k056832_device::word_w)); /* video reg */ + map(0x320000, 0x32001f).rw(m_k053252, FUNC(k053252_device::read), FUNC(k053252_device::write)).umask16(0x00ff); /* ccu */ + map(0x330000, 0x330001).portr("SENSOR"); /* battery power & service sw */ + map(0x340000, 0x340001).r(this, FUNC(qdrmfgp_state::inputs_r)); /* inputport */ + map(0x350000, 0x350001).nopw(); /* unknown */ + map(0x360000, 0x360001).nopw(); /* unknown */ + map(0x370000, 0x370001).w(this, FUNC(qdrmfgp_state::gp_control_w)); /* control reg */ + map(0x380000, 0x380001).nopw(); /* Watchdog */ + map(0x800000, 0x80045f).rw(m_k054539, FUNC(k054539_device::read), FUNC(k054539_device::write)).umask16(0x00ff); /* sound regs */ + map(0x880000, 0x881fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); /* vram */ + map(0x882000, 0x883fff).rw(m_k056832, FUNC(k056832_device::ram_word_r), FUNC(k056832_device::ram_word_w)); /* vram (mirror) */ + map(0x900000, 0x901fff).r(this, FUNC(qdrmfgp_state::v_rom_r)); /* gfxrom through */ + map(0xa00000, 0xa0000f).rw(m_ata, FUNC(ata_interface_device::read_cs0), FUNC(ata_interface_device::write_cs0)); /* IDE control regs */ + map(0xa40000, 0xa4000f).rw(m_ata, FUNC(ata_interface_device::read_cs1), FUNC(ata_interface_device::write_cs1)); /* IDE status control reg */ + map(0xc00000, 0xcbffff).rw(this, FUNC(qdrmfgp_state::sndram_r), FUNC(qdrmfgp_state::sndram_w)); /* sound ram */ +} + + +void qdrmfgp_state::qdrmfgp2_map(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); + map(0x100000, 0x110fff).ram().share("workram"); /* work ram */ + map(0x180000, 0x183fff).ram().share("nvram"); /* backup ram */ + map(0x280000, 0x280fff).ram().w(m_palette, FUNC(palette_device::write16)).share("palette"); + map(0x300000, 0x30003f).w(m_k056832, FUNC(k056832_device::word_w)); /* video reg */ + map(0x320000, 0x32001f).rw(m_k053252, FUNC(k053252_device::read), FUNC(k053252_device::write)).umask16(0xff00); /* ccu */ + map(0x330000, 0x330001).portr("SENSOR"); /* battery power & service */ + map(0x340000, 0x340001).r(this, FUNC(qdrmfgp_state::inputs_r)); /* inputport */ + map(0x350000, 0x350001).nopw(); /* unknown */ + map(0x360000, 0x360001).nopw(); /* unknown */ + map(0x370000, 0x370001).w(this, FUNC(qdrmfgp_state::gp2_control_w)); /* control reg */ + map(0x380000, 0x380001).nopw(); /* Watchdog */ + map(0x800000, 0x80045f).rw(m_k054539, FUNC(k054539_device::read), FUNC(k054539_device::write)).umask16(0x00ff); /* sound regs */ + map(0x880000, 0x881fff).rw(this, FUNC(qdrmfgp_state::gp2_vram_r), FUNC(qdrmfgp_state::gp2_vram_w)); /* vram */ + map(0x89f000, 0x8a0fff).rw(this, FUNC(qdrmfgp_state::gp2_vram_mirror_r), FUNC(qdrmfgp_state::gp2_vram_mirror_w)); /* vram (mirror) */ + map(0x900000, 0x901fff).r(this, FUNC(qdrmfgp_state::v_rom_r)); /* gfxrom through */ + map(0xa00000, 0xa0000f).rw(m_ata, FUNC(ata_interface_device::read_cs0), FUNC(ata_interface_device::write_cs0)); /* IDE control regs */ + map(0xa40000, 0xa4000f).rw(m_ata, FUNC(ata_interface_device::read_cs1), FUNC(ata_interface_device::write_cs1)); /* IDE status control reg */ + map(0xc00000, 0xcbffff).rw(this, FUNC(qdrmfgp_state::sndram_r), FUNC(qdrmfgp_state::sndram_w)); /* sound ram */ +} + + +void qdrmfgp_state::qdrmfgp_k054539_map(address_map &map) +{ + map(0x000000, 0x0fffff).rom().region("k054539", 0); + map(0x100000, 0x45ffff).ram().share("sndram"); +} /************************************* * |