diff options
Diffstat (limited to 'src/mame/drivers/adp.cpp')
-rw-r--r-- | src/mame/drivers/adp.cpp | 149 |
1 files changed, 79 insertions, 70 deletions
diff --git a/src/mame/drivers/adp.cpp b/src/mame/drivers/adp.cpp index 53059627674..0bdf0d308e2 100644 --- a/src/mame/drivers/adp.cpp +++ b/src/mame/drivers/adp.cpp @@ -304,61 +304,66 @@ WRITE16_MEMBER(adp_state::input_w) m_mux_data &= 0x0f; } -ADDRESS_MAP_START(adp_state::skattv_mem) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("acrtc", hd63484_device, status16_r, address16_w) - AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("acrtc", hd63484_device, data16_r, data16_w) - AM_RANGE(0x800100, 0x800101) AM_READWRITE(input_r, input_w) - AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too - AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("nvram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(adp_state::skattva_mem) - AM_RANGE(0x000000, 0x03ffff) AM_ROM - AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0x00ff) - AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("acrtc", hd63484_device, status16_r, address16_w) - AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("acrtc", hd63484_device, data16_r, data16_w) - AM_RANGE(0x800100, 0x800101) AM_READ_PORT("IN0") - AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too - AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0xffc000, 0xffffff) AM_RAM AM_SHARE("nvram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(adp_state::quickjac_mem) - AM_RANGE(0x000000, 0x01ffff) AM_ROM - AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0x00ff) - AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("acrtc", hd63484_device, status16_r, address16_w) // bad - AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("acrtc", hd63484_device, data16_r, data16_w) // bad - AM_RANGE(0x800100, 0x800101) AM_READ_PORT("IN0") - AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too - AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0xff0000, 0xffffff) AM_RAM AM_SHARE("nvram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(adp_state::funland_mem) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x400000, 0x40001f) AM_DEVREADWRITE8("rtc", msm6242_device, read, write, 0x00ff) - AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("acrtc", hd63484_device, status16_r, address16_w) - AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("acrtc", hd63484_device, data16_r, data16_w) - AM_RANGE(0x800088, 0x800089) AM_DEVWRITE8("ramdac", ramdac_device, index_w, 0x00ff) - AM_RANGE(0x80008a, 0x80008b) AM_DEVWRITE8("ramdac", ramdac_device, pal_w, 0x00ff) - AM_RANGE(0x80008c, 0x80008d) AM_DEVWRITE8("ramdac", ramdac_device, mask_w, 0x00ff) - AM_RANGE(0x800100, 0x800101) AM_READ_PORT("IN0") - AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too - AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0xfc0000, 0xffffff) AM_RAM AM_SHARE("nvram") -ADDRESS_MAP_END - -ADDRESS_MAP_START(adp_state::fstation_mem) - AM_RANGE(0x000000, 0x0fffff) AM_ROM - AM_RANGE(0x800080, 0x800081) AM_DEVREADWRITE("acrtc", hd63484_device, status16_r, address16_w) - AM_RANGE(0x800082, 0x800083) AM_DEVREADWRITE("acrtc", hd63484_device, data16_r, data16_w) - AM_RANGE(0x800100, 0x800101) AM_READWRITE(input_r, input_w) - AM_RANGE(0x800140, 0x800143) AM_DEVREADWRITE8("aysnd", ay8910_device, data_r, address_data_w, 0x00ff) //18b too - AM_RANGE(0x800180, 0x80019f) AM_DEVREADWRITE8("duart", mc68681_device, read, write, 0x00ff) - AM_RANGE(0xfc0000, 0xffffff) AM_RAM AM_SHARE("nvram") -ADDRESS_MAP_END +void adp_state::skattv_mem(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); + map(0x800080, 0x800081).rw("acrtc", FUNC(hd63484_device::status16_r), FUNC(hd63484_device::address16_w)); + map(0x800082, 0x800083).rw("acrtc", FUNC(hd63484_device::data16_r), FUNC(hd63484_device::data16_w)); + map(0x800100, 0x800101).rw(this, FUNC(adp_state::input_r), FUNC(adp_state::input_w)); + map(0x800140, 0x800143).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_data_w)).umask16(0x00ff); //18b too + map(0x800180, 0x80019f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); + map(0xffc000, 0xffffff).ram().share("nvram"); +} + +void adp_state::skattva_mem(address_map &map) +{ + map(0x000000, 0x03ffff).rom(); + map(0x400000, 0x40001f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff); + map(0x800080, 0x800081).rw("acrtc", FUNC(hd63484_device::status16_r), FUNC(hd63484_device::address16_w)); + map(0x800082, 0x800083).rw("acrtc", FUNC(hd63484_device::data16_r), FUNC(hd63484_device::data16_w)); + map(0x800100, 0x800101).portr("IN0"); + map(0x800140, 0x800143).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_data_w)).umask16(0x00ff); //18b too + map(0x800180, 0x80019f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); + map(0xffc000, 0xffffff).ram().share("nvram"); +} + +void adp_state::quickjac_mem(address_map &map) +{ + map(0x000000, 0x01ffff).rom(); + map(0x400000, 0x40001f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff); + map(0x800080, 0x800081).rw("acrtc", FUNC(hd63484_device::status16_r), FUNC(hd63484_device::address16_w)); // bad + map(0x800082, 0x800083).rw("acrtc", FUNC(hd63484_device::data16_r), FUNC(hd63484_device::data16_w)); // bad + map(0x800100, 0x800101).portr("IN0"); + map(0x800140, 0x800143).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_data_w)).umask16(0x00ff); //18b too + map(0x800180, 0x80019f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); + map(0xff0000, 0xffffff).ram().share("nvram"); +} + +void adp_state::funland_mem(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); + map(0x400000, 0x40001f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write)).umask16(0x00ff); + map(0x800080, 0x800081).rw("acrtc", FUNC(hd63484_device::status16_r), FUNC(hd63484_device::address16_w)); + map(0x800082, 0x800083).rw("acrtc", FUNC(hd63484_device::data16_r), FUNC(hd63484_device::data16_w)); + map(0x800089, 0x800089).w("ramdac", FUNC(ramdac_device::index_w)); + map(0x80008b, 0x80008b).w("ramdac", FUNC(ramdac_device::pal_w)); + map(0x80008d, 0x80008d).w("ramdac", FUNC(ramdac_device::mask_w)); + map(0x800100, 0x800101).portr("IN0"); + map(0x800140, 0x800143).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_data_w)).umask16(0x00ff); //18b too + map(0x800180, 0x80019f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); + map(0xfc0000, 0xffffff).ram().share("nvram"); +} + +void adp_state::fstation_mem(address_map &map) +{ + map(0x000000, 0x0fffff).rom(); + map(0x800080, 0x800081).rw("acrtc", FUNC(hd63484_device::status16_r), FUNC(hd63484_device::address16_w)); + map(0x800082, 0x800083).rw("acrtc", FUNC(hd63484_device::data16_r), FUNC(hd63484_device::data16_w)); + map(0x800100, 0x800101).rw(this, FUNC(adp_state::input_r), FUNC(adp_state::input_w)); + map(0x800140, 0x800143).rw("aysnd", FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_data_w)).umask16(0x00ff); //18b too + map(0x800180, 0x80019f).rw(m_duart, FUNC(mc68681_device::read), FUNC(mc68681_device::write)).umask16(0x00ff); + map(0xfc0000, 0xffffff).ram().share("nvram"); +} static INPUT_PORTS_START( quickjac ) @@ -525,20 +530,23 @@ INTERRUPT_GEN_MEMBER(adp_state::adp_int) } */ -ADDRESS_MAP_START(adp_state::adp_hd63484_map) - AM_RANGE(0x00000, 0x1ffff) AM_MIRROR(0x60000) AM_RAM - AM_RANGE(0x80000, 0x9ffff) AM_MIRROR(0x60000) AM_ROM AM_REGION("gfx1", 0) -ADDRESS_MAP_END +void adp_state::adp_hd63484_map(address_map &map) +{ + map(0x00000, 0x1ffff).mirror(0x60000).ram(); + map(0x80000, 0x9ffff).mirror(0x60000).rom().region("gfx1", 0); +} -ADDRESS_MAP_START(adp_state::fashiong_hd63484_map) - AM_RANGE(0x00000, 0x1ffff) AM_MIRROR(0x60000) AM_RAM - AM_RANGE(0x80000, 0xfffff) AM_ROM AM_REGION("gfx1", 0) -ADDRESS_MAP_END +void adp_state::fashiong_hd63484_map(address_map &map) +{ + map(0x00000, 0x1ffff).mirror(0x60000).ram(); + map(0x80000, 0xfffff).rom().region("gfx1", 0); +} -ADDRESS_MAP_START(adp_state::fstation_hd63484_map) - AM_RANGE(0x00000, 0x7ffff) AM_ROM AM_REGION("gfx1", 0) - AM_RANGE(0x80000, 0xfffff) AM_RAM -ADDRESS_MAP_END +void adp_state::fstation_hd63484_map(address_map &map) +{ + map(0x00000, 0x7ffff).rom().region("gfx1", 0); + map(0x80000, 0xfffff).ram(); +} MACHINE_CONFIG_START(adp_state::quickjac) @@ -602,9 +610,10 @@ MACHINE_CONFIG_START(adp_state::fashiong) MCFG_HD63484_ADDRESS_MAP(fashiong_hd63484_map) MACHINE_CONFIG_END -ADDRESS_MAP_START(adp_state::ramdac_map) - AM_RANGE(0x000, 0x3ff) AM_DEVREADWRITE("ramdac",ramdac_device,ramdac_pal_r,ramdac_rgb666_w) -ADDRESS_MAP_END +void adp_state::ramdac_map(address_map &map) +{ + map(0x000, 0x3ff).rw("ramdac", FUNC(ramdac_device::ramdac_pal_r), FUNC(ramdac_device::ramdac_rgb666_w)); +} MACHINE_CONFIG_START(adp_state::funland) quickjac(config); |