diff --git a/src/devices/bus/imi7000/imi5000h.cpp b/src/devices/bus/imi7000/imi5000h.cpp index bca1e9f0083..ab4af469ee9 100644 --- a/src/devices/bus/imi7000/imi5000h.cpp +++ b/src/devices/bus/imi7000/imi5000h.cpp @@ -81,7 +81,7 @@ static ADDRESS_MAP_START( imi5000h_io, AS_IO, 8, imi5000h_device ) AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(Z80PIO_0_TAG, z80pio_device, read, write) AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80PIO_2_TAG, z80pio_device, read, write) AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE(Z80PIO_3_TAG, z80pio_device, read, write) - AM_RANGE(0x10, 0x13) AM_MIRROR(0x03) // BEGRDY + AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) // BEGRDY AM_RANGE(0x14, 0x14) AM_MIRROR(0x03) // HSXCLR AM_RANGE(0x18, 0x18) AM_MIRROR(0x03) // XFERSTB AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write) diff --git a/src/emu/addrmap.cpp b/src/emu/addrmap.cpp index e3c6810e867..2b3f45b1795 100644 --- a/src/emu/addrmap.cpp +++ b/src/emu/addrmap.cpp @@ -685,6 +685,28 @@ void address_map::map_validity_check(validity_checker &valid, const device_t &de if ((bytestart & (alignunit - 1)) != 0 || (byteend & (alignunit - 1)) != (alignunit - 1)) osd_printf_error("Wrong %s memory read handler start = %08x, end = %08x ALIGN = %d\n", spaceconfig.m_name, entry.m_addrstart, entry.m_addrend, alignunit); + // verify mask/mirror/select + offs_t set_bits = entry.m_addrstart | entry.m_addrend; + offs_t changing_bits = entry.m_addrstart ^ entry.m_addrend; + changing_bits |= changing_bits >> 1; + changing_bits |= changing_bits >> 2; + changing_bits |= changing_bits >> 4; + changing_bits |= changing_bits >> 8; + changing_bits |= changing_bits >> 16; + + if (entry.m_addrmask & ~changing_bits) + osd_printf_error("In %s memory range %x-%x, mask %x is trying to unmask an unchanging address bit (%x)\n", spaceconfig.m_name, entry.m_addrstart, entry.m_addrend, entry.m_addrmask, entry.m_addrmask & ~changing_bits); + if (entry.m_addrmirror & changing_bits) + osd_printf_error("In %s memory range %x-%x, mirror %x touches a changing address bit (%x)\n", spaceconfig.m_name, entry.m_addrstart, entry.m_addrend, entry.m_addrmirror, entry.m_addrmirror & changing_bits); + if (entry.m_addrselect & changing_bits) + osd_printf_error("In %s memory range %x-%x, select %x touches a changing address bit (%x)\n", spaceconfig.m_name, entry.m_addrstart, entry.m_addrend, entry.m_addrselect, entry.m_addrselect & changing_bits); + if (entry.m_addrmirror & set_bits) + osd_printf_error("In %s memory range %x-%x, mirror %x touches a set address bit (%x)\n", spaceconfig.m_name, entry.m_addrstart, entry.m_addrend, entry.m_addrmirror, entry.m_addrmirror & set_bits); + if (entry.m_addrselect & set_bits) + osd_printf_error("In %s memory range %x-%x, select %x touches a set address bit (%x)\n", spaceconfig.m_name, entry.m_addrstart, entry.m_addrend, entry.m_addrselect, entry.m_addrselect & set_bits); + if (entry.m_addrmirror & entry.m_addrselect) + osd_printf_error("In %s memory range %x-%x, mirror %x touches a select bit (%x)\n", spaceconfig.m_name, entry.m_addrstart, entry.m_addrend, entry.m_addrmirror, entry.m_addrmirror & entry.m_addrselect); + // if this is a program space, auto-assign implicit ROM entries if (entry.m_read.m_type == AMH_ROM && entry.m_region == nullptr) { diff --git a/src/mame/audio/gottlieb.cpp b/src/mame/audio/gottlieb.cpp index 38b3fc013ea..5f5fc4cad69 100644 --- a/src/mame/audio/gottlieb.cpp +++ b/src/mame/audio/gottlieb.cpp @@ -902,7 +902,7 @@ static ADDRESS_MAP_START( gottlieb_sound_r2_map, AS_PROGRAM, 8, gottlieb_sound_r AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x3c00) AM_RAM AM_RANGE(0x4000, 0x4001) AM_MIRROR(0x3ffe) AM_WRITE(dac_w) AM_RANGE(0x8000, 0x8000) AM_MIRROR(0x3fff) AM_READ(audio_data_r) - AM_RANGE(0xe000, 0xffff) AM_MIRROR(0x2000) AM_ROM + AM_RANGE(0xc000, 0xdfff) AM_MIRROR(0x2000) AM_ROM ADDRESS_MAP_END diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp index 2b35a784089..f08104728fb 100644 --- a/src/mame/drivers/8080bw.cpp +++ b/src/mame/drivers/8080bw.cpp @@ -1241,8 +1241,8 @@ static ADDRESS_MAP_START( rollingc_map, AS_PROGRAM, 8, _8080bw_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("main_ram") AM_RANGE(0x4000, 0x5fff) AM_ROM - AM_RANGE(0xa000, 0xbfff) AM_MIRROR(0x00e0) AM_RAM AM_SHARE("colorram") - AM_RANGE(0xe000, 0xffff) AM_MIRROR(0x00e0) AM_RAM AM_SHARE("colorram2") + AM_RANGE(0xa000, 0xbfff) /*AM_MIRROR(0x00e0)*/ AM_RAM AM_SHARE("colorram") + AM_RANGE(0xe000, 0xffff) /*AM_MIRROR(0x00e0)*/ AM_RAM AM_SHARE("colorram2") ADDRESS_MAP_END @@ -1304,7 +1304,7 @@ static ADDRESS_MAP_START( schaser_map, AS_PROGRAM, 8, _8080bw_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("main_ram") AM_RANGE(0x4000, 0x5fff) AM_ROM - AM_RANGE(0xc000, 0xdfff) AM_MIRROR(0x0060) AM_RAM AM_SHARE("colorram") + AM_RANGE(0xc000, 0xdfff) /*AM_MIRROR(0x0060)*/ AM_RAM AM_SHARE("colorram") ADDRESS_MAP_END @@ -1558,7 +1558,7 @@ static ADDRESS_MAP_START( sflush_map, AS_PROGRAM, 8, _8080bw_state ) AM_RANGE(0x801a, 0x801a) AM_WRITENOP AM_RANGE(0x801c, 0x801c) AM_WRITENOP AM_RANGE(0x801d, 0x801d) AM_WRITENOP - AM_RANGE(0xa000, 0xbfff) AM_MIRROR(0x0060) AM_RAM AM_SHARE("colorram") + AM_RANGE(0xa000, 0xbfff) /*AM_MIRROR(0x0060)*/ AM_RAM AM_SHARE("colorram") AM_RANGE(0xd800, 0xffff) AM_ROM ADDRESS_MAP_END diff --git a/src/mame/drivers/batman.cpp b/src/mame/drivers/batman.cpp index fd02aab2453..24f7a2677ff 100644 --- a/src/mame/drivers/batman.cpp +++ b/src/mame/drivers/batman.cpp @@ -107,16 +107,16 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, batman_state ) AM_RANGE(0x260050, 0x260051) AM_MIRROR(0x11ff8e) AM_WRITE(latch_w) AM_RANGE(0x260060, 0x260061) AM_MIRROR(0x11ff8e) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write) AM_RANGE(0x2a0000, 0x2a0001) AM_MIRROR(0x11fffe) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w) - AM_RANGE(0x3e0000, 0x3e0fff) AM_MIRROR(0x100000) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") - AM_RANGE(0x3effc0, 0x3effff) AM_MIRROR(0x100000) AM_DEVREADWRITE("vad", atari_vad_device, control_read, control_write) - AM_RANGE(0x3f0000, 0x3f1fff) AM_MIRROR(0x100000) AM_DEVWRITE("vad", atari_vad_device, playfield2_latched_msb_w) AM_SHARE("vad:playfield2") - AM_RANGE(0x3f2000, 0x3f3fff) AM_MIRROR(0x100000) AM_DEVWRITE("vad", atari_vad_device, playfield_latched_lsb_w) AM_SHARE("vad:playfield") - AM_RANGE(0x3f4000, 0x3f5fff) AM_MIRROR(0x100000) AM_DEVWRITE("vad", atari_vad_device, playfield_upper_w) AM_SHARE("vad:playfield_ext") - AM_RANGE(0x3f6000, 0x3f7fff) AM_MIRROR(0x100000) AM_RAM AM_SHARE("vad:mob") - AM_RANGE(0x3f8000, 0x3f8eff) AM_MIRROR(0x100000) AM_DEVWRITE("vad", atari_vad_device, alpha_w) AM_SHARE("vad:alpha") - AM_RANGE(0x3f8f00, 0x3f8f7f) AM_MIRROR(0x100000) AM_SHARE("vad:eof") - AM_RANGE(0x3f8f80, 0x3f8fff) AM_MIRROR(0x100000) AM_RAM AM_SHARE("vad:mob:slip") - AM_RANGE(0x3f0000, 0x3fffff) AM_MIRROR(0x100000) AM_RAM + AM_RANGE(0x2e0000, 0x2e0fff) AM_MIRROR(0x100000) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x2effc0, 0x2effff) AM_MIRROR(0x100000) AM_DEVREADWRITE("vad", atari_vad_device, control_read, control_write) + AM_RANGE(0x2f0000, 0x2f1fff) AM_MIRROR(0x100000) AM_DEVWRITE("vad", atari_vad_device, playfield2_latched_msb_w) AM_SHARE("vad:playfield2") + AM_RANGE(0x2f2000, 0x2f3fff) AM_MIRROR(0x100000) AM_DEVWRITE("vad", atari_vad_device, playfield_latched_lsb_w) AM_SHARE("vad:playfield") + AM_RANGE(0x2f4000, 0x2f5fff) AM_MIRROR(0x100000) AM_DEVWRITE("vad", atari_vad_device, playfield_upper_w) AM_SHARE("vad:playfield_ext") + AM_RANGE(0x2f6000, 0x2f7fff) AM_MIRROR(0x100000) AM_RAM AM_SHARE("vad:mob") + AM_RANGE(0x2f8000, 0x2f8eff) AM_MIRROR(0x100000) AM_DEVWRITE("vad", atari_vad_device, alpha_w) AM_SHARE("vad:alpha") + AM_RANGE(0x2f8f00, 0x2f8f7f) AM_MIRROR(0x100000) AM_SHARE("vad:eof") + AM_RANGE(0x2f8f80, 0x2f8fff) AM_MIRROR(0x100000) AM_RAM AM_SHARE("vad:mob:slip") + AM_RANGE(0x2f0000, 0x2fffff) AM_MIRROR(0x100000) AM_RAM ADDRESS_MAP_END diff --git a/src/mame/drivers/blstroid.cpp b/src/mame/drivers/blstroid.cpp index 9c9e159b52b..636019ec361 100644 --- a/src/mame/drivers/blstroid.cpp +++ b/src/mame/drivers/blstroid.cpp @@ -64,25 +64,26 @@ MACHINE_RESET_MEMBER(blstroid_state,blstroid) /* full map verified from schematics */ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, blstroid_state ) ADDRESS_MAP_UNMAP_HIGH + ADDRESS_MAP_GLOBAL_MASK(0x83ffff) AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x7c0000) AM_ROM - AM_RANGE(0xff8000, 0xff8001) AM_MIRROR(0x7f81fe) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w) - AM_RANGE(0xff8200, 0xff8201) AM_MIRROR(0x7f81fe) AM_WRITE(scanline_int_ack_w) - AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x7f81fe) AM_WRITE(video_int_ack_w) - AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x7f81fe) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write) - AM_RANGE(0xff8800, 0xff89ff) AM_MIRROR(0x7f8000) AM_WRITEONLY AM_SHARE("priorityram") - AM_RANGE(0xff8a00, 0xff8a01) AM_MIRROR(0x7f81fe) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff) - AM_RANGE(0xff8c00, 0xff8c01) AM_MIRROR(0x7f81fe) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w) - AM_RANGE(0xff8e00, 0xff8e01) AM_MIRROR(0x7f81fe) AM_WRITE(blstroid_halt_until_hblank_0_w) - AM_RANGE(0xff9400, 0xff9401) AM_MIRROR(0x7f83fe) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff) - AM_RANGE(0xff9800, 0xff9801) AM_MIRROR(0x7f83f8) AM_READ_PORT("DIAL0") - AM_RANGE(0xff9804, 0xff9805) AM_MIRROR(0x7f83f8) AM_READ_PORT("DIAL1") - AM_RANGE(0xff9c00, 0xff9c01) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN0") - AM_RANGE(0xff9c02, 0xff9c03) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN1") - AM_RANGE(0xffa000, 0xffa3ff) AM_MIRROR(0x7f8c00) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") - AM_RANGE(0xffb000, 0xffb3ff) AM_MIRROR(0x7f8c00) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) - AM_RANGE(0xffc000, 0xffcfff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield") - AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob") - AM_RANGE(0xffe000, 0xffffff) AM_MIRROR(0x7f8000) AM_RAM + AM_RANGE(0x800000, 0x800001) AM_MIRROR(0x7f81fe) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w) + AM_RANGE(0x800200, 0x800201) AM_MIRROR(0x7f81fe) AM_WRITE(scanline_int_ack_w) + AM_RANGE(0x800400, 0x800401) AM_MIRROR(0x7f81fe) AM_WRITE(video_int_ack_w) + AM_RANGE(0x800600, 0x800601) AM_MIRROR(0x7f81fe) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write) + AM_RANGE(0x800800, 0x8009ff) AM_MIRROR(0x7f8000) AM_WRITEONLY AM_SHARE("priorityram") + AM_RANGE(0x800a00, 0x800a01) AM_MIRROR(0x7f81fe) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff) + AM_RANGE(0x800c00, 0x800c01) AM_MIRROR(0x7f81fe) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w) + AM_RANGE(0x800e00, 0x800e01) AM_MIRROR(0x7f81fe) AM_WRITE(blstroid_halt_until_hblank_0_w) + AM_RANGE(0x801400, 0x801401) AM_MIRROR(0x7f83fe) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff) + AM_RANGE(0x801800, 0x801801) AM_MIRROR(0x7f83f8) AM_READ_PORT("DIAL0") + AM_RANGE(0x801804, 0x801805) AM_MIRROR(0x7f83f8) AM_READ_PORT("DIAL1") + AM_RANGE(0x801c00, 0x801c01) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN0") + AM_RANGE(0x801c02, 0x801c03) AM_MIRROR(0x7f83fc) AM_READ_PORT("IN1") + AM_RANGE(0x802000, 0x8023ff) AM_MIRROR(0x7f8c00) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x803000, 0x8033ff) AM_MIRROR(0x7f8c00) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) + AM_RANGE(0x804000, 0x804fff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield") + AM_RANGE(0x805000, 0x805fff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob") + AM_RANGE(0x806000, 0x807fff) AM_MIRROR(0x7f8000) AM_RAM ADDRESS_MAP_END diff --git a/src/mame/drivers/cfx9850.cpp b/src/mame/drivers/cfx9850.cpp index 30ec1e78b4b..71bb225c4f9 100644 --- a/src/mame/drivers/cfx9850.cpp +++ b/src/mame/drivers/cfx9850.cpp @@ -78,7 +78,7 @@ static ADDRESS_MAP_START( cfx9850, AS_PROGRAM, 8, cfx9850_state ) // AM_RANGE( 0x110000, 0x11ffff ) /* some memory mapped i/o? */ AM_RANGE( 0x200000, 0x27ffff ) AM_ROM AM_REGION( "bios", 0 ) AM_RANGE( 0x400000, 0x40ffff ) AM_RAM - AM_RANGE( 0x600000, 0x601fff ) AM_MIRROR(0xf800) AM_RAM AM_SHARE("display_ram") + AM_RANGE( 0x600000, 0x601fff ) AM_MIRROR(0xf8000) AM_RAM AM_SHARE("display_ram") // AM_RANGE( 0xe10000, 0xe1ffff ) /* some memory mapped i/o? */ ADDRESS_MAP_END diff --git a/src/mame/drivers/cxhumax.cpp b/src/mame/drivers/cxhumax.cpp index fa2a956b2fe..936d33b62db 100644 --- a/src/mame/drivers/cxhumax.cpp +++ b/src/mame/drivers/cxhumax.cpp @@ -971,7 +971,7 @@ static ADDRESS_MAP_START(cxhumax_map, AS_PROGRAM, 32, cxhumax_state) AM_RANGE(0xe0600000, 0xe063ffff) AM_READWRITE(cx_gxa_r, cx_gxa_w) // GXA AM_RANGE(0xe4017000, 0xe40173ff) AM_RAM // HSX - BSP - 1K Video Shared Dual Port RAM (shared with MVP) AM_RANGE(0xe4080000, 0xe4083fff) AM_RAM // HSX - TSP 0 - 16K Private Instructions/Data and Host-Shared Data - AM_RANGE(0xf0000000, 0xf03fffff) AM_READWRITE(flash_r, flash_w) AM_MIRROR(0xf8000000) // 4MB FLASH (INTEL 28F320J3D) + AM_RANGE(0xf0000000, 0xf03fffff) AM_READWRITE(flash_r, flash_w) AM_MIRROR(0x08000000) // 4MB FLASH (INTEL 28F320J3D) AM_RANGE(0xf4000000, 0xf43fffff) AM_READ(dummy_flash_r) // do we need it? ADDRESS_MAP_END diff --git a/src/mame/drivers/didact.cpp b/src/mame/drivers/didact.cpp index e5f74d458de..80dbdb2eef9 100644 --- a/src/mame/drivers/didact.cpp +++ b/src/mame/drivers/didact.cpp @@ -468,10 +468,10 @@ ADDRESS_MAP_END // This address map is traced from schema static ADDRESS_MAP_START( md6802_map, AS_PROGRAM, 8, md6802_state ) - AM_RANGE(0x0000, 0x1fff) AM_RAM AM_MIRROR(0x1800) + AM_RANGE(0x0000, 0x07ff) AM_RAM AM_MIRROR(0x1800) AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("pia1", pia6821_device, read, write) AM_MIRROR(0x1ffc) AM_RANGE(0xc000, 0xc003) AM_DEVREADWRITE("pia2", pia6821_device, read, write) AM_MIRROR(0x1ffc) - AM_RANGE(0xe000, 0xffff) AM_ROM AM_MIRROR(0x1800) AM_REGION("maincpu", 0xe000) + AM_RANGE(0xe000, 0xe7ff) AM_ROM AM_MIRROR(0x1800) AM_REGION("maincpu", 0xe000) ADDRESS_MAP_END // This address map is traced from pcb diff --git a/src/mame/drivers/firefox.cpp b/src/mame/drivers/firefox.cpp index af6d7faac3e..a2a4a439390 100644 --- a/src/mame/drivers/firefox.cpp +++ b/src/mame/drivers/firefox.cpp @@ -574,7 +574,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( audio_map, AS_PROGRAM, 8, firefox_state ) AM_RANGE(0x0000, 0x07ff) AM_RAM AM_RANGE(0x0800, 0x087f) AM_MIRROR(0x0700) AM_RAM /* RIOT ram */ - AM_RANGE(0x0880, 0x089f) AM_MIRROR(0x07e0) AM_DEVREADWRITE("riot", riot6532_device, read, write) + AM_RANGE(0x0880, 0x089f) AM_MIRROR(0x0760) AM_DEVREADWRITE("riot", riot6532_device, read, write) AM_RANGE(0x1000, 0x1000) AM_READ(main_to_sound_r) AM_RANGE(0x1800, 0x1800) AM_WRITE(sound_to_main_w) AM_RANGE(0x2000, 0x200f) AM_DEVREADWRITE("pokey1", pokey_device, read, write) diff --git a/src/mame/drivers/grchamp.cpp b/src/mame/drivers/grchamp.cpp index 6f03cd9ac1f..ae8518ba75b 100644 --- a/src/mame/drivers/grchamp.cpp +++ b/src/mame/drivers/grchamp.cpp @@ -511,7 +511,7 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 8, grchamp_state ) AM_RANGE(0x19, 0x19) AM_MIRROR(0x60) AM_READ(pc3259_3_r) AM_RANGE(0x00, 0x0f) AM_MIRROR(0x40) AM_WRITE(cpu0_outputs_w) AM_RANGE(0x10, 0x13) AM_MIRROR(0x40) AM_WRITE(main_to_sub_comm_w) - AM_RANGE(0x20, 0x2f) AM_MIRROR(0x53) AM_WRITE(led_board_w) + AM_RANGE(0x20, 0x20) AM_SELECT(0x0c) AM_MIRROR(0x53) AM_WRITE(led_board_w) ADDRESS_MAP_END diff --git a/src/mame/drivers/hyperscan.cpp b/src/mame/drivers/hyperscan.cpp index 6813997dc33..da5fd6e7895 100644 --- a/src/mame/drivers/hyperscan.cpp +++ b/src/mame/drivers/hyperscan.cpp @@ -588,8 +588,8 @@ static ADDRESS_MAP_START(spg290_mem, AS_PROGRAM, 32, hyperscan_state) AM_RANGE(0x08000000, 0x09ffffff) AM_READWRITE(spg290_regs_r, spg290_regs_w) AM_RANGE(0x0a000000, 0x0a003fff) AM_RAM // internal SRAM AM_RANGE(0x0b000000, 0x0b007fff) AM_ROM AM_REGION("spg290", 0) // internal ROM - AM_RANGE(0x1e000000, 0x1e0fffff) AM_ROM AM_REGION("bios", 0) AM_MIRROR(0x0e000000) - AM_RANGE(0x1f000000, 0x1f0fffff) AM_ROM AM_REGION("bios", 0) AM_MIRROR(0x0e000000) + AM_RANGE(0x10000000, 0x100fffff) AM_ROM AM_REGION("bios", 0) AM_MIRROR(0x0e000000) + AM_RANGE(0x11000000, 0x110fffff) AM_ROM AM_REGION("bios", 0) AM_MIRROR(0x0e000000) ADDRESS_MAP_END /* Input ports */ diff --git a/src/mame/drivers/itech32.cpp b/src/mame/drivers/itech32.cpp index dbfba1fcadb..928a300dee9 100644 --- a/src/mame/drivers/itech32.cpp +++ b/src/mame/drivers/itech32.cpp @@ -982,7 +982,7 @@ static ADDRESS_MAP_START( drivedge_tms1_map, AS_PROGRAM, 32, itech32_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( drivedge_tms2_map, AS_PROGRAM, 32, itech32_state ) - AM_RANGE(0x008000, 0x0083ff) AM_MIRROR(0x8400) AM_RAM_WRITE(tms2_trigger_w) AM_SHARE("tms2_ram") + AM_RANGE(0x000000, 0x0003ff) AM_MIRROR(0x8400) AM_RAM_WRITE(tms2_trigger_w) AM_SHARE("tms2_ram") AM_RANGE(0x080000, 0x08ffff) AM_RAM ADDRESS_MAP_END diff --git a/src/mame/drivers/jedi.cpp b/src/mame/drivers/jedi.cpp index 11664bd166a..47242667e31 100644 --- a/src/mame/drivers/jedi.cpp +++ b/src/mame/drivers/jedi.cpp @@ -267,7 +267,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, jedi_state ) AM_RANGE(0x1000, 0x13ff) AM_NOP AM_RANGE(0x1400, 0x1400) AM_MIRROR(0x03ff) AM_READ(jedi_audio_ack_latch_r) AM_WRITENOP AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x03ff) AM_READ(a2d_data_r) AM_WRITENOP - AM_RANGE(0x1c00, 0x1c01) AM_MIRROR(0x007f) AM_READNOP AM_WRITE(nvram_enable_w) + AM_RANGE(0x1c00, 0x1c01) AM_MIRROR(0x007e) AM_READNOP AM_WRITE(nvram_enable_w) AM_RANGE(0x1c80, 0x1c82) AM_MIRROR(0x0078) AM_READNOP AM_WRITE(a2d_select_w) AM_RANGE(0x1c83, 0x1c87) AM_MIRROR(0x0078) AM_NOP AM_RANGE(0x1d00, 0x1d00) AM_MIRROR(0x007f) AM_NOP /* write: NVRAM store */ diff --git a/src/mame/drivers/kurukuru.cpp b/src/mame/drivers/kurukuru.cpp index f9f6ad3f23c..97583306a37 100644 --- a/src/mame/drivers/kurukuru.cpp +++ b/src/mame/drivers/kurukuru.cpp @@ -434,7 +434,7 @@ static ADDRESS_MAP_START( ppj_io, AS_IO, 8, kurukuru_state ) AM_RANGE(0x60, 0x60) AM_MIRROR(0x0f) AM_READ_PORT("IN1") AM_RANGE(0x70, 0x70) AM_MIRROR(0x0f) AM_READ_PORT("IN0") AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x0f) AM_DEVWRITE("ym2149", ay8910_device, address_w) - AM_RANGE(0xc8, 0xc8) AM_MIRROR(0x0f) AM_DEVREAD("ym2149", ay8910_device, data_r) + AM_RANGE(0xc0, 0xc0) AM_MIRROR(0x0f) AM_DEVREAD("ym2149", ay8910_device, data_r) AM_RANGE(0xd0, 0xd0) AM_MIRROR(0x0f) AM_DEVWRITE("ym2149", ay8910_device, data_w) ADDRESS_MAP_END /* diff --git a/src/mame/drivers/looping.cpp b/src/mame/drivers/looping.cpp index c7b0fb4275d..661e9610700 100644 --- a/src/mame/drivers/looping.cpp +++ b/src/mame/drivers/looping.cpp @@ -573,11 +573,11 @@ static ADDRESS_MAP_START( looping_sound_map, AS_PROGRAM, 8, looping_state ) AM_RANGE(0x0000, 0x37ff) AM_ROM AM_RANGE(0x3800, 0x3bff) AM_RAM AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x00f4) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, address_w) + AM_RANGE(0x3c01, 0x3c01) AM_MIRROR(0x00f6) AM_NOP AM_RANGE(0x3c02, 0x3c02) AM_MIRROR(0x00f4) AM_READNOP AM_DEVWRITE("aysnd", ay8910_device, data_w) - AM_RANGE(0x3c03, 0x3c03) AM_MIRROR(0x00f6) AM_NOP AM_RANGE(0x3e00, 0x3e00) AM_MIRROR(0x00f4) AM_READNOP AM_DEVWRITE("tms", tms5220_device, data_w) + AM_RANGE(0x3e01, 0x3e01) AM_MIRROR(0x00f6) AM_NOP AM_RANGE(0x3e02, 0x3e02) AM_MIRROR(0x00f4) AM_DEVREAD("tms", tms5220_device, status_r) AM_WRITENOP - AM_RANGE(0x3e03, 0x3e03) AM_MIRROR(0x00f6) AM_NOP ADDRESS_MAP_END static ADDRESS_MAP_START( looping_sound_io_map, AS_IO, 8, looping_state ) diff --git a/src/mame/drivers/mac.cpp b/src/mame/drivers/mac.cpp index 18c28e059a4..395c53057b8 100644 --- a/src/mame/drivers/mac.cpp +++ b/src/mame/drivers/mac.cpp @@ -799,7 +799,6 @@ static ADDRESS_MAP_START(quadra700_map, AS_PROGRAM, 32, mac_state ) AM_RANGE(0x50014000, 0x50015fff) AM_DEVREADWRITE8("asc", asc_device, read, write, 0xffffffff) AM_MIRROR(0x00fc0000) AM_RANGE(0x5001e000, 0x5001ffff) AM_READWRITE16(mac_iwm_r, mac_iwm_w, 0xffffffff) AM_MIRROR(0x00fc0000) - AM_RANGE(0x50040000, 0x50041fff) AM_READWRITE16(mac_via_r, mac_via_w, 0xffffffff) AM_MIRROR(0x00fc0000) // f9800000 = VDAC / DAFB AM_RANGE(0xf9000000, 0xf91fffff) AM_RAM AM_SHARE("vram") AM_RANGE(0xf9800000, 0xf98001ff) AM_READWRITE(dafb_r, dafb_w) diff --git a/src/mame/drivers/mbc55x.cpp b/src/mame/drivers/mbc55x.cpp index c1755113fef..05b9c6a9d5d 100644 --- a/src/mame/drivers/mbc55x.cpp +++ b/src/mame/drivers/mbc55x.cpp @@ -52,7 +52,7 @@ static ADDRESS_MAP_START(mbc55x_mem, AS_PROGRAM, 8, mbc55x_state) AM_RANGE( 0xF0000, 0xF3FFF ) AM_RAMBANK(RED_PLANE_TAG) AM_RANGE( 0xF4000, 0xF7FFF ) AM_RAMBANK(BLUE_PLANE_TAG) AM_RANGE( 0xF8000, 0xFBFFF ) AM_NOP - AM_RANGE( 0xFC000, 0xFFFFF ) AM_ROM AM_WRITENOP AM_REGION(MAINCPU_TAG, 0x0000) AM_MIRROR(0x002000) + AM_RANGE( 0xFC000, 0xFDFFF ) AM_ROM AM_WRITENOP AM_REGION(MAINCPU_TAG, 0x0000) AM_MIRROR(0x002000) ADDRESS_MAP_END static ADDRESS_MAP_START(mbc55x_io, AS_IO, 8, mbc55x_state) diff --git a/src/mame/drivers/midxunit.cpp b/src/mame/drivers/midxunit.cpp index aa9a23d4564..bbe705f1bfd 100644 --- a/src/mame/drivers/midxunit.cpp +++ b/src/mame/drivers/midxunit.cpp @@ -114,7 +114,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, midxunit_state ) AM_RANGE(0xa0440000, 0xa047ffff) AM_READWRITE(midxunit_cmos_r, midxunit_cmos_w) AM_SHARE("nvram") AM_RANGE(0xa0800000, 0xa08fffff) AM_READWRITE(midxunit_paletteram_r, midxunit_paletteram_w) AM_SHARE("palette") AM_RANGE(0xc0000000, 0xc00003ff) AM_DEVREADWRITE("maincpu", tms34020_device, io_register_r, io_register_w) - AM_RANGE(0xc0c00000, 0xc0c000ff) AM_MIRROR(0x00400000) AM_READWRITE(midtunit_dma_r, midtunit_dma_w) + AM_RANGE(0xc0800000, 0xc08000ff) AM_MIRROR(0x00400000) AM_READWRITE(midtunit_dma_r, midtunit_dma_w) AM_RANGE(0xf8000000, 0xfeffffff) AM_READ(midwunit_gfxrom_r) AM_RANGE(0xff000000, 0xffffffff) AM_ROM AM_REGION("maincpu", 0) ADDRESS_MAP_END diff --git a/src/mame/drivers/midyunit.cpp b/src/mame/drivers/midyunit.cpp index c09981584a8..aa4ca3619d3 100644 --- a/src/mame/drivers/midyunit.cpp +++ b/src/mame/drivers/midyunit.cpp @@ -180,7 +180,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, midyunit_state ) AM_RANGE(0x01000000, 0x010fffff) AM_RAM AM_SHARE("mainram") AM_RANGE(0x01400000, 0x0140ffff) AM_READWRITE(midyunit_cmos_r, midyunit_cmos_w) AM_RANGE(0x01800000, 0x0181ffff) AM_RAM_WRITE(midyunit_paletteram_w) AM_SHARE("paletteram") - AM_RANGE(0x01a80000, 0x01a8009f) AM_MIRROR(0x00080000) AM_READWRITE(midyunit_dma_r, midyunit_dma_w) + AM_RANGE(0x01a00000, 0x01a0009f) AM_MIRROR(0x00080000) AM_READWRITE(midyunit_dma_r, midyunit_dma_w) AM_RANGE(0x01c00000, 0x01c0005f) AM_READ(midyunit_input_r) AM_RANGE(0x01c00060, 0x01c0007f) AM_READWRITE(midyunit_protection_r, midyunit_cmos_enable_w) AM_RANGE(0x01e00000, 0x01e0001f) AM_WRITE(midyunit_sound_w) diff --git a/src/mame/drivers/ms32.cpp b/src/mame/drivers/ms32.cpp index 8fd5e12aa70..dc191beddcc 100644 --- a/src/mame/drivers/ms32.cpp +++ b/src/mame/drivers/ms32.cpp @@ -339,7 +339,7 @@ WRITE32_MEMBER(ms32_state::pip_w) static ADDRESS_MAP_START( ms32_map, AS_PROGRAM, 32, ms32_state ) /* RAM areas verified by testing on real hw - usually accessed at the 0xfc000000 + mirror */ - AM_RANGE(0xc0000000, 0xc0007fff) AM_READWRITE8(ms32_nvram_r8, ms32_nvram_w8, 0x000000ff) AM_MIRROR(0x3c1fe000) // nvram is 8-bit wide, 0x2000 in size */ + AM_RANGE(0xc0000000, 0xc0007fff) AM_READWRITE8(ms32_nvram_r8, ms32_nvram_w8, 0x000000ff) AM_MIRROR(0x3c1f8000) // nvram is 8-bit wide, 0x2000 in size */ /* AM_RANGE(0xc0008000, 0xc01fffff) // mirrors of nvramram, handled above */ AM_RANGE(0xc1180000, 0xc1187fff) AM_READWRITE8(ms32_priram_r8, ms32_priram_w8, 0x000000ff) AM_MIRROR(0x3c038000) AM_SHARE("priram") /* priram is 8-bit wide, 0x2000 in size */ /* AM_RANGE(0xc1188000, 0xc11bffff) // mirrors of priram, handled above */ diff --git a/src/mame/drivers/prof180x.cpp b/src/mame/drivers/prof180x.cpp index d6e8f0e32d9..3b4235f670b 100644 --- a/src/mame/drivers/prof180x.cpp +++ b/src/mame/drivers/prof180x.cpp @@ -191,7 +191,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( prof180x_io , AS_IO, 8, prof180x_state ) AM_RANGE(0x08, 0x08) AM_MIRROR(0xff00) AM_WRITE(flr_w) - AM_RANGE(0x09, 0x09) AM_MASK(0xff00) AM_READ(status_r) + AM_RANGE(0x09, 0x09) AM_SELECT(0xff00) AM_READ(status_r) AM_RANGE(0x0a, 0x0a) AM_MIRROR(0xff00) AM_DEVREADWRITE(FDC9268_TAG, upd765a_device, mdma_r, mdma_w) AM_RANGE(0x0b, 0x0b) AM_MIRROR(0xff00) AM_DEVWRITE("cent_data_out", output_latch_device, write) AM_RANGE(0x0c, 0x0d) AM_MIRROR(0xff00) AM_DEVICE(FDC9268_TAG, upd765a_device, map) diff --git a/src/mame/drivers/pve500.cpp b/src/mame/drivers/pve500.cpp index 52c05d15912..bf93d40c12d 100644 --- a/src/mame/drivers/pve500.cpp +++ b/src/mame/drivers/pve500.cpp @@ -126,7 +126,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START(subcpu_prg, AS_PROGRAM, 8, pve500_state) AM_RANGE (0x0000, 0x7FFF) AM_ROM // ICG5: 32kbytes EPROM - AM_RANGE (0x8000, 0xBFFF) AM_MIRROR(0x3FF8) AM_READWRITE(io_expander_r, io_expander_w) // ICG3: I/O Expander + AM_RANGE (0x8000, 0x8007) AM_MIRROR(0x3FF8) AM_READWRITE(io_expander_r, io_expander_w) // ICG3: I/O Expander AM_RANGE (0xC000, 0xC7FF) AM_MIRROR(0x3800) AM_DEVREADWRITE("mb8421", mb8421_device, right_r, right_w) ADDRESS_MAP_END diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp index e8b24396c29..31fa8996eee 100644 --- a/src/mame/drivers/rainbow.cpp +++ b/src/mame/drivers/rainbow.cpp @@ -531,7 +531,7 @@ AM_RANGE(0x10000, END_OF_RAM) AM_RAM // 'diagnostic_w' handler (similar to real hardware). // - Address bits 8-12 are ignored (-> AM_MIRROR). -AM_RANGE(0xed000, 0xed0ff) AM_RAM AM_SHARE("vol_ram") AM_MIRROR(0x1f00) +AM_RANGE(0xec000, 0xec0ff) AM_RAM AM_SHARE("vol_ram") AM_MIRROR(0x1f00) AM_RANGE(0xed100, 0xed1ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xee000, 0xeffff) AM_RAM AM_SHARE("p_ram") diff --git a/src/mame/drivers/rc759.cpp b/src/mame/drivers/rc759.cpp index 6ced8faca32..68c18116b75 100644 --- a/src/mame/drivers/rc759.cpp +++ b/src/mame/drivers/rc759.cpp @@ -461,8 +461,8 @@ void rc759_state::machine_reset() static ADDRESS_MAP_START( rc759_map, AS_PROGRAM, 16, rc759_state ) AM_RANGE(0x00000, 0x3ffff) AM_RAM - AM_RANGE(0xd8000, 0xdffff) AM_MIRROR(0x08000) AM_RAM AM_SHARE("vram") - AM_RANGE(0xf8000, 0xfffff) AM_MIRROR(0x10000) AM_ROM AM_REGION("bios", 0) + AM_RANGE(0xd0000, 0xd7fff) AM_MIRROR(0x08000) AM_RAM AM_SHARE("vram") + AM_RANGE(0xe8000, 0xeffff) AM_MIRROR(0x10000) AM_ROM AM_REGION("bios", 0) ADDRESS_MAP_END static ADDRESS_MAP_START( rc759_io, AS_IO, 16, rc759_state ) diff --git a/src/mame/drivers/safarir.cpp b/src/mame/drivers/safarir.cpp index 44e064e5188..879fcff9558 100644 --- a/src/mame/drivers/safarir.cpp +++ b/src/mame/drivers/safarir.cpp @@ -341,11 +341,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, safarir_state ) AM_RANGE(0x0000, 0x17ff) AM_ROM AM_RANGE(0x2000, 0x27ff) AM_READWRITE(ram_r, ram_w) AM_SHARE("ram") AM_RANGE(0x2800, 0x2800) AM_MIRROR(0x03ff) AM_READNOP AM_WRITE(ram_bank_w) - AM_RANGE(0x2c00, 0x2cff) AM_MIRROR(0x03ff) AM_READNOP AM_WRITEONLY AM_SHARE("bg_scroll") - AM_RANGE(0x3000, 0x30ff) AM_MIRROR(0x03ff) AM_WRITE(safarir_audio_w) /* goes to SN76477 */ + AM_RANGE(0x2c00, 0x2c00) AM_MIRROR(0x03ff) AM_READNOP AM_WRITEONLY AM_SHARE("bg_scroll") + AM_RANGE(0x3000, 0x3000) AM_MIRROR(0x03ff) AM_WRITE(safarir_audio_w) /* goes to SN76477 */ AM_RANGE(0x3400, 0x3400) AM_MIRROR(0x03ff) AM_WRITENOP /* cleared at the beginning */ - AM_RANGE(0x3800, 0x38ff) AM_MIRROR(0x03ff) AM_READ_PORT("INPUTS") AM_WRITENOP - AM_RANGE(0x3c00, 0x3cff) AM_MIRROR(0x03ff) AM_READ_PORT("DSW") AM_WRITENOP + AM_RANGE(0x3800, 0x3800) AM_MIRROR(0x03ff) AM_READ_PORT("INPUTS") AM_WRITENOP + AM_RANGE(0x3c00, 0x3c00) AM_MIRROR(0x03ff) AM_READ_PORT("DSW") AM_WRITENOP ADDRESS_MAP_END diff --git a/src/mame/drivers/seta.cpp b/src/mame/drivers/seta.cpp index d86d44cffa2..9d2b4a26441 100644 --- a/src/mame/drivers/seta.cpp +++ b/src/mame/drivers/seta.cpp @@ -2275,7 +2275,8 @@ ADDRESS_MAP_END ***************************************************************************/ static ADDRESS_MAP_START( daiohp_map, AS_PROGRAM, 16, seta_state ) - AM_RANGE(0x000000, 0x1fffff) AM_ROM AM_MIRROR(0x080000) // ROM + AM_RANGE(0x000000, 0x07ffff) AM_ROM AM_MIRROR(0x080000) // ROM + AM_RANGE(0x100000, 0x17ffff) AM_ROM AM_MIRROR(0x080000) // ROM AM_RANGE(0x200000, 0x20ffff) AM_RAM // RAM AM_RANGE(0x400000, 0x400001) AM_READ_PORT("P1") // P1 AM_RANGE(0x400002, 0x400003) AM_READ_PORT("P2") // P2 diff --git a/src/mame/drivers/skimaxx.cpp b/src/mame/drivers/skimaxx.cpp index 439f0cc874a..a4076589024 100644 --- a/src/mame/drivers/skimaxx.cpp +++ b/src/mame/drivers/skimaxx.cpp @@ -326,7 +326,7 @@ static ADDRESS_MAP_START( 68030_1_map, AS_PROGRAM, 32, skimaxx_state ) AM_RANGE(0x20000050, 0x20000057) AM_READ(skimaxx_analog_r ) AM_WRITENOP // read (0-1f), write motor? - AM_RANGE(0xfffc0000, 0xffffffff) AM_RAM AM_MIRROR(0x00020000) + AM_RANGE(0xfffc0000, 0xfffdffff) AM_RAM AM_MIRROR(0x00020000) ADDRESS_MAP_END diff --git a/src/mame/drivers/sothello.cpp b/src/mame/drivers/sothello.cpp index 3378b4e08b5..b83cb10e50b 100644 --- a/src/mame/drivers/sothello.cpp +++ b/src/mame/drivers/sothello.cpp @@ -161,7 +161,7 @@ READ8_MEMBER(sothello_state::soundcpu_status_r) static ADDRESS_MAP_START( maincpu_mem_map, AS_PROGRAM, 8, sothello_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1") - AM_RANGE(0xc000, 0xdfff) AM_RAM AM_MIRROR(0x1800) AM_SHARE("share1") + AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_MIRROR(0x1800) AM_SHARE("share1") AM_RANGE(0xe000, 0xffff) AM_RAM ADDRESS_MAP_END diff --git a/src/mame/drivers/supracan.cpp b/src/mame/drivers/supracan.cpp index b342c846295..db4b07c5a1c 100644 --- a/src/mame/drivers/supracan.cpp +++ b/src/mame/drivers/supracan.cpp @@ -1128,7 +1128,7 @@ static ADDRESS_MAP_START( supracan_mem, AS_PROGRAM, 16, supracan_state ) AM_RANGE( 0xf00000, 0xf001ff ) AM_READWRITE(video_r, video_w) AM_RANGE( 0xf00200, 0xf003ff ) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") AM_RANGE( 0xf40000, 0xf5ffff ) AM_RAM_WRITE(vram_w) AM_SHARE("vram") - AM_RANGE( 0xfc0000, 0xfdffff ) AM_MIRROR(0x30000) AM_RAM /* System work ram */ + AM_RANGE( 0xfc0000, 0xfcffff ) AM_MIRROR(0x30000) AM_RAM /* System work ram */ ADDRESS_MAP_END READ8_MEMBER( supracan_state::_6502_soundmem_r ) diff --git a/src/mame/drivers/taito.cpp b/src/mame/drivers/taito.cpp index 74ed96d8703..580921c4a4e 100644 --- a/src/mame/drivers/taito.cpp +++ b/src/mame/drivers/taito.cpp @@ -95,14 +95,14 @@ static ADDRESS_MAP_START( taito_map, AS_PROGRAM, 8, taito_state ) AM_RANGE(0x2806, 0x2806) AM_MIRROR(0x0080) AM_READ_PORT("X6") AM_RANGE(0x2807, 0x2807) AM_MIRROR(0x0080) AM_READ_PORT("X7") AM_RANGE(0x2808, 0x2808) AM_MIRROR(0x0080) AM_READ_PORT("X8") - AM_RANGE(0x28d8, 0x28d8) AM_MIRROR(0x0080) AM_READ_PORT("X0") - AM_RANGE(0x28d9, 0x28d9) AM_MIRROR(0x0080) AM_READ_PORT("X1") - AM_RANGE(0x28da, 0x28da) AM_MIRROR(0x0080) AM_READ_PORT("X2") - AM_RANGE(0x28db, 0x28db) AM_MIRROR(0x0080) AM_READ_PORT("X3") - AM_RANGE(0x28dc, 0x28dc) AM_MIRROR(0x0080) AM_READ_PORT("X4") - AM_RANGE(0x28db, 0x28dd) AM_MIRROR(0x0080) AM_READ_PORT("X5") - AM_RANGE(0x28de, 0x28de) AM_MIRROR(0x0080) AM_READ_PORT("X6") - AM_RANGE(0x28df, 0x28df) AM_MIRROR(0x0080) AM_READ_PORT("X7") + AM_RANGE(0x2838, 0x2838) AM_MIRROR(0x0080) AM_READ_PORT("X0") + AM_RANGE(0x2839, 0x2839) AM_MIRROR(0x0080) AM_READ_PORT("X1") + AM_RANGE(0x283a, 0x283a) AM_MIRROR(0x0080) AM_READ_PORT("X2") + AM_RANGE(0x283b, 0x283b) AM_MIRROR(0x0080) AM_READ_PORT("X3") + AM_RANGE(0x283c, 0x283c) AM_MIRROR(0x0080) AM_READ_PORT("X4") + AM_RANGE(0x283b, 0x283d) AM_MIRROR(0x0080) AM_READ_PORT("X5") + AM_RANGE(0x283e, 0x283e) AM_MIRROR(0x0080) AM_READ_PORT("X6") + AM_RANGE(0x283f, 0x283f) AM_MIRROR(0x0080) AM_READ_PORT("X7") AM_RANGE(0x4000, 0x407f) AM_RAM AM_RANGE(0x4080, 0x408f) AM_RAM AM_SHARE("ram") AM_RANGE(0x4090, 0x409f) AM_READWRITE(io_r,io_w) diff --git a/src/mame/drivers/taito_f2.cpp b/src/mame/drivers/taito_f2.cpp index b75b4fbbedf..773dcec1449 100644 --- a/src/mame/drivers/taito_f2.cpp +++ b/src/mame/drivers/taito_f2.cpp @@ -1183,7 +1183,7 @@ static ADDRESS_MAP_START( cameltrya_sound_map, AS_PROGRAM, 8, taitof2_state ) AM_RANGE(0xa000, 0xa000) AM_DEVWRITE("tc0140syt", tc0140syt_device, slave_port_w) AM_RANGE(0xa001, 0xa001) AM_DEVREADWRITE("tc0140syt", tc0140syt_device, slave_comm_r, slave_comm_w) // AM_RANGE(0xb000, 0xb000) AM_WRITE(unknown_w) // probably controlling sample player? - AM_RANGE(0xb000, 0xb001) AM_MIRROR(0x0001) AM_DEVREADWRITE("oki", okim6295_device, read, write) + AM_RANGE(0xb000, 0xb001) AM_DEVREADWRITE("oki", okim6295_device, read, write) ADDRESS_MAP_END diff --git a/src/mame/drivers/timeplt.cpp b/src/mame/drivers/timeplt.cpp index 1d95775f1d2..c1f189bde95 100644 --- a/src/mame/drivers/timeplt.cpp +++ b/src/mame/drivers/timeplt.cpp @@ -137,7 +137,7 @@ static ADDRESS_MAP_START( common_main_map, AS_PROGRAM, 8, timeplt_state ) AM_RANGE(0xc300, 0xc300) AM_MIRROR(0x0c9f) AM_READ_PORT("IN0") AM_RANGE(0xc302, 0xc302) AM_MIRROR(0x0cf1) AM_WRITE(flipscreen_w) AM_RANGE(0xc304, 0xc304) AM_MIRROR(0x0cf1) AM_DEVWRITE("timeplt_audio", timeplt_audio_device, sh_irqtrigger_w) - AM_RANGE(0xc30a, 0xc30c) AM_MIRROR(0x0cf1) AM_WRITE(coincounter_w) + AM_RANGE(0xc30a, 0xc30d) AM_MIRROR(0x0cf0) AM_WRITE(coincounter_w) // handler ignores low bit of offset AM_RANGE(0xc320, 0xc320) AM_MIRROR(0x0c9f) AM_READ_PORT("IN1") AM_RANGE(0xc340, 0xc340) AM_MIRROR(0x0c9f) AM_READ_PORT("IN2") AM_RANGE(0xc360, 0xc360) AM_MIRROR(0x0c9f) AM_READ_PORT("DSW0") diff --git a/src/mame/drivers/toobin.cpp b/src/mame/drivers/toobin.cpp index 23e884287e5..f07cf0c4110 100644 --- a/src/mame/drivers/toobin.cpp +++ b/src/mame/drivers/toobin.cpp @@ -86,22 +86,22 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, toobin_state ) AM_RANGE(0xc08000, 0xc097ff) AM_MIRROR(0x046000) AM_RAM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha") AM_RANGE(0xc09800, 0xc09fff) AM_MIRROR(0x046000) AM_RAM AM_SHARE("mob") AM_RANGE(0xc10000, 0xc107ff) AM_MIRROR(0x047800) AM_RAM_WRITE(paletteram_w) AM_SHARE("paletteram") - AM_RANGE(0xff6000, 0xff6001) AM_READNOP /* who knows? read at controls time */ - AM_RANGE(0xff8000, 0xff8001) AM_MIRROR(0x4500fe) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w) - AM_RANGE(0xff8100, 0xff8101) AM_MIRROR(0x4500fe) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff) - AM_RANGE(0xff8300, 0xff8301) AM_MIRROR(0x45003e) AM_WRITE(intensity_w) - AM_RANGE(0xff8340, 0xff8341) AM_MIRROR(0x45003e) AM_WRITE(interrupt_scan_w) AM_SHARE("interrupt_scan") - AM_RANGE(0xff8380, 0xff8381) AM_MIRROR(0x45003e) AM_RAM_WRITE(slip_w) AM_SHARE("mob:slip") - AM_RANGE(0xff83c0, 0xff83c1) AM_MIRROR(0x45003e) AM_WRITE(scanline_int_ack_w) - AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x4500fe) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w) - AM_RANGE(0xff8500, 0xff8501) AM_MIRROR(0x4500fe) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write) - AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x4500fe) AM_WRITE(xscroll_w) AM_SHARE("xscroll") - AM_RANGE(0xff8700, 0xff8701) AM_MIRROR(0x4500fe) AM_WRITE(yscroll_w) AM_SHARE("yscroll") - AM_RANGE(0xff8800, 0xff8801) AM_MIRROR(0x4507fe) AM_READ_PORT("FF8800") - AM_RANGE(0xff9000, 0xff9001) AM_MIRROR(0x4507fe) AM_READ_PORT("FF9000") - AM_RANGE(0xff9800, 0xff9801) AM_MIRROR(0x4507fe) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff) - AM_RANGE(0xffa000, 0xffafff) AM_MIRROR(0x451000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) - AM_RANGE(0xffc000, 0xffffff) AM_MIRROR(0x450000) AM_RAM + AM_RANGE(0xba6000, 0xba6001) AM_MIRROR(0x4500fe) AM_READNOP /* who knows? read at controls time */ + AM_RANGE(0xba8000, 0xba8001) AM_MIRROR(0x4500fe) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w) + AM_RANGE(0xba8100, 0xba8101) AM_MIRROR(0x4500fe) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff) + AM_RANGE(0xba8300, 0xba8301) AM_MIRROR(0x45003e) AM_WRITE(intensity_w) + AM_RANGE(0xba8340, 0xba8341) AM_MIRROR(0x45003e) AM_WRITE(interrupt_scan_w) AM_SHARE("interrupt_scan") + AM_RANGE(0xba8380, 0xba8381) AM_MIRROR(0x45003e) AM_RAM_WRITE(slip_w) AM_SHARE("mob:slip") + AM_RANGE(0xba83c0, 0xba83c1) AM_MIRROR(0x45003e) AM_WRITE(scanline_int_ack_w) + AM_RANGE(0xba8400, 0xba8401) AM_MIRROR(0x4500fe) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w) + AM_RANGE(0xba8500, 0xba8501) AM_MIRROR(0x4500fe) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write) + AM_RANGE(0xba8600, 0xba8601) AM_MIRROR(0x4500fe) AM_WRITE(xscroll_w) AM_SHARE("xscroll") + AM_RANGE(0xba8700, 0xba8701) AM_MIRROR(0x4500fe) AM_WRITE(yscroll_w) AM_SHARE("yscroll") + AM_RANGE(0xba8800, 0xba8801) AM_MIRROR(0x4507fe) AM_READ_PORT("FF8800") + AM_RANGE(0xba9000, 0xba9001) AM_MIRROR(0x4507fe) AM_READ_PORT("FF9000") + AM_RANGE(0xba9800, 0xba9801) AM_MIRROR(0x4507fe) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff) + AM_RANGE(0xbaa000, 0xbaafff) AM_MIRROR(0x451000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) + AM_RANGE(0xbac000, 0xbaffff) AM_MIRROR(0x450000) AM_RAM ADDRESS_MAP_END diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp index d579128dfc8..d4a69cf23e4 100644 --- a/src/mame/drivers/unixpc.cpp +++ b/src/mame/drivers/unixpc.cpp @@ -280,7 +280,7 @@ static ADDRESS_MAP_START( unixpc_mem, AS_PROGRAM, 16, unixpc_state ) AM_RANGE(0x4a0000, 0x4a0001) AM_WRITE(misc_control_w) AM_RANGE(0x4d0000, 0x4d7fff) AM_WRITE(diskdma_ptr_w) AM_RANGE(0x4e0000, 0x4e0001) AM_WRITE(disk_control_w) - AM_RANGE(0x800000, 0xbfffff) AM_MIRROR(0x7fc000) AM_ROM AM_REGION("bootrom", 0) + AM_RANGE(0x800000, 0x803fff) AM_MIRROR(0x7fc000) AM_ROM AM_REGION("bootrom", 0) AM_RANGE(0xe10000, 0xe10007) AM_DEVREADWRITE8("wd2797", wd_fdc_t, read, write, 0x00ff) AM_RANGE(0xe30000, 0xe30001) AM_READ(rtc_r) AM_RANGE(0xe40000, 0xe40001) AM_WRITE(error_enable_w) diff --git a/src/mame/drivers/xybots.cpp b/src/mame/drivers/xybots.cpp index 7f7114075de..eb46b3d5015 100644 --- a/src/mame/drivers/xybots.cpp +++ b/src/mame/drivers/xybots.cpp @@ -74,20 +74,20 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, xybots_state ) AM_RANGE(0x000000, 0x007fff) AM_MIRROR(0x7c0000) AM_ROM AM_RANGE(0x008000, 0x00ffff) AM_MIRROR(0x7c0000) AM_ROM /* slapstic maps here */ AM_RANGE(0x010000, 0x03ffff) AM_MIRROR(0x7c0000) AM_ROM - AM_RANGE(0xff8000, 0xff8fff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha") - AM_RANGE(0xff9000, 0xffadff) AM_MIRROR(0x7f8000) AM_RAM - AM_RANGE(0xffae00, 0xffafff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob") - AM_RANGE(0xffb000, 0xffbfff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield") - AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x7f8800) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") - AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) - AM_RANGE(0xffe000, 0xffe0ff) AM_MIRROR(0x7f8000) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff) - AM_RANGE(0xffe100, 0xffe1ff) AM_MIRROR(0x7f8000) AM_READ_PORT("FFE100") - AM_RANGE(0xffe200, 0xffe2ff) AM_MIRROR(0x7f8000) AM_READ(special_port1_r) - AM_RANGE(0xffe800, 0xffe8ff) AM_MIRROR(0x7f8000) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write) - AM_RANGE(0xffe900, 0xffe9ff) AM_MIRROR(0x7f8000) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff) - AM_RANGE(0xffea00, 0xffeaff) AM_MIRROR(0x7f8000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w) - AM_RANGE(0xffeb00, 0xffebff) AM_MIRROR(0x7f8000) AM_WRITE(video_int_ack_w) - AM_RANGE(0xffee00, 0xffeeff) AM_MIRROR(0x7f8000) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w) + AM_RANGE(0x800000, 0x800fff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("alpha", tilemap_device, write) AM_SHARE("alpha") + AM_RANGE(0x801000, 0x802dff) AM_MIRROR(0x7f8000) AM_RAM + AM_RANGE(0x802e00, 0x802fff) AM_MIRROR(0x7f8000) AM_RAM AM_SHARE("mob") + AM_RANGE(0x803000, 0x803fff) AM_MIRROR(0x7f8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write) AM_SHARE("playfield") + AM_RANGE(0x804000, 0x8047ff) AM_MIRROR(0x7f8800) AM_RAM_DEVWRITE("palette", palette_device, write) AM_SHARE("palette") + AM_RANGE(0x805000, 0x805fff) AM_MIRROR(0x7f8000) AM_DEVREADWRITE8("eeprom", atari_eeprom_device, read, write, 0x00ff) + AM_RANGE(0x806000, 0x8060ff) AM_MIRROR(0x7f8000) AM_DEVREAD8("jsa", atari_jsa_i_device, main_response_r, 0x00ff) + AM_RANGE(0x806100, 0x8061ff) AM_MIRROR(0x7f8000) AM_READ_PORT("FFE100") + AM_RANGE(0x806200, 0x8062ff) AM_MIRROR(0x7f8000) AM_READ(special_port1_r) + AM_RANGE(0x806800, 0x8068ff) AM_MIRROR(0x7f8000) AM_DEVWRITE("eeprom", atari_eeprom_device, unlock_write) + AM_RANGE(0x806900, 0x8069ff) AM_MIRROR(0x7f8000) AM_DEVWRITE8("jsa", atari_jsa_i_device, main_command_w, 0x00ff) + AM_RANGE(0x806a00, 0x806aff) AM_MIRROR(0x7f8000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w) + AM_RANGE(0x806b00, 0x806bff) AM_MIRROR(0x7f8000) AM_WRITE(video_int_ack_w) + AM_RANGE(0x806e00, 0x806eff) AM_MIRROR(0x7f8000) AM_DEVWRITE("jsa", atari_jsa_i_device, sound_reset_w) ADDRESS_MAP_END