@@ -128,6 +128,7 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _88games_state )
AM_RANGE(0x2000, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x37ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x3800, 0x3fff) AM_READWRITE(bankedram_r, bankedram_w) AM_SHARE("ram")
AM_RANGE(0x4000, 0x7fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x5f84, 0x5f84) AM_WRITE(k88games_5f84_w)
AM_RANGE(0x5f88, 0x5f88) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_RANGE(0x5f8c, 0x5f8c) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
@@ -138,7 +139,6 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, _88games_state )
AM_RANGE(0x5f97, 0x5f97) AM_READ_PORT("DSW1")
AM_RANGE(0x5f9b, 0x5f9b) AM_READ_PORT("DSW2")
AM_RANGE(0x5fc0, 0x5fcf) AM_DEVWRITE("k051316", k051316_device, ctrl_w)
AM_RANGE(0x4000, 0x7fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END

@@ -75,8 +75,8 @@ WRITE8_MEMBER(aeroboto_state::aeroboto_1a2_w)
}

static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, aeroboto_state )
AM_RANGE(0x01a2, 0x01a2) AM_WRITE(aeroboto_1a2_w) // affects IRQ line (more protection?)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("mainram") // main RAM
AM_RANGE(0x01a2, 0x01a2) AM_WRITE(aeroboto_1a2_w) // affects IRQ line (more protection?)
AM_RANGE(0x0800, 0x08ff) AM_RAM // tile color buffer; copied to 0x2000
AM_RANGE(0x0900, 0x09ff) AM_WRITEONLY // a backup of default tile colors
AM_RANGE(0x1000, 0x17ff) AM_RAM_WRITE(aeroboto_videoram_w) AM_SHARE("videoram") // tile RAM
@@ -150,8 +150,8 @@ static ADDRESS_MAP_START( pspikesb_map, AS_PROGRAM, 16, aerofgt_state )
AM_RANGE(0xc04000, 0xc04001) AM_WRITENOP
AM_RANGE(0xff8000, 0xff8fff) AM_RAM_WRITE(aerofgt_bg1videoram_w) AM_SHARE("bg1videoram")
AM_RANGE(0xffc000, 0xffcbff) AM_RAM AM_SHARE("spriteram3")
AM_RANGE(0xffd200, 0xffd201) AM_WRITE(pspikesb_gfxbank_w)
AM_RANGE(0xffd000, 0xffdfff) AM_RAM AM_SHARE("rasterram") /* bg1 scroll registers */
AM_RANGE(0xffd200, 0xffd201) AM_WRITE(pspikesb_gfxbank_w)
AM_RANGE(0xffe000, 0xffefff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("IN0")
AM_RANGE(0xfff002, 0xfff003) AM_READ_PORT("IN1")
@@ -155,6 +155,7 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START(mmt8_io, AS_IO, 8, alesis_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xffff) AM_RAM AM_SHARE("nvram") // 2x32Kx8 SRAM, (battery-backed)
AM_RANGE(0xff02, 0xff02) AM_WRITE(track_led_w)
AM_RANGE(0xff04, 0xff04) AM_READWRITE(mmt8_led_r, mmt8_led_w)
AM_RANGE(0xff06, 0xff06) AM_WRITE(kb_matrix_w)
@@ -163,7 +164,6 @@ static ADDRESS_MAP_START(mmt8_io, AS_IO, 8, alesis_state)
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ(kb_r)
AM_RANGE(MCS51_PORT_P2, MCS51_PORT_P2) AM_WRITENOP
AM_RANGE(MCS51_PORT_P3, MCS51_PORT_P3) AM_READWRITE(mmt8_p3_r, mmt8_p3_w)
AM_RANGE(0x0000, 0xffff) AM_RAM AM_SHARE("nvram") // 2x32Kx8 SRAM, (battery-backed)
ADDRESS_MAP_END

/* Input ports */
@@ -89,14 +89,14 @@ static ADDRESS_MAP_START( aliens_map, AS_PROGRAM, 8, aliens_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVICE("bank0000", address_map_bank_device, amap8)
AM_RANGE(0x0400, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x3fff) AM_ROMBANK("rombank") /* banked ROM */
AM_RANGE(0x4000, 0x7fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x5f80, 0x5f80) AM_READ_PORT("DSW3")
AM_RANGE(0x5f81, 0x5f81) AM_READ_PORT("P1")
AM_RANGE(0x5f82, 0x5f82) AM_READ_PORT("P2")
AM_RANGE(0x5f83, 0x5f83) AM_READ_PORT("DSW2")
AM_RANGE(0x5f84, 0x5f84) AM_READ_PORT("DSW1")
AM_RANGE(0x5f88, 0x5f88) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_WRITE(aliens_coin_counter_w) /* coin counters */
AM_RANGE(0x5f8c, 0x5f8c) AM_WRITE(aliens_sh_irqtrigger_w) /* cause interrupt on audio CPU */
AM_RANGE(0x4000, 0x7fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x28000) /* ROM e24_j02.bin */
ADDRESS_MAP_END

@@ -167,12 +167,12 @@ WRITE8_MEMBER(alphasmart_state::port_d_w)

static ADDRESS_MAP_START(alphasmart_mem, AS_PROGRAM, 8, alphasmart_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE( 0x0000, 0x7fff ) AM_RAMBANK("rambank")
AM_RANGE( 0x0000, 0x003f ) AM_NOP // internal registers
AM_RANGE( 0x0040, 0x00ff ) AM_RAM // internal RAM
AM_RANGE( 0x0000, 0x7fff ) AM_RAMBANK("rambank")
AM_RANGE( 0x8000, 0xffff ) AM_ROM AM_REGION("maincpu", 0)
AM_RANGE( 0x8000, 0x8000 ) AM_READWRITE(kb_r, kb_matrixh_w)
AM_RANGE( 0xc000, 0xc000 ) AM_WRITE(kb_matrixl_w)
AM_RANGE( 0x8000, 0xffff ) AM_ROM AM_REGION("maincpu", 0)
ADDRESS_MAP_END

static ADDRESS_MAP_START(alphasmart_io, AS_IO, 8, alphasmart_state)
@@ -227,11 +227,11 @@ WRITE8_MEMBER(asma2k_state::port_a_w)

static ADDRESS_MAP_START(asma2k_mem, AS_PROGRAM, 8, asma2k_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE( 0x0000, 0x7fff ) AM_RAMBANK("rambank")
AM_RANGE( 0x0000, 0x003f ) AM_NOP // internal registers
AM_RANGE( 0x0040, 0x00ff ) AM_RAM AM_SHARE("internal_ram") // internal RAM
AM_RANGE( 0x0000, 0x7fff ) AM_RAMBANK("rambank")
AM_RANGE( 0x9000, 0x9000 ) AM_WRITE(kb_matrixl_w)
AM_RANGE( 0x8000, 0xffff ) AM_ROM AM_REGION("maincpu", 0)
AM_RANGE( 0x9000, 0x9000 ) AM_WRITE(kb_matrixl_w)
ADDRESS_MAP_END

/* Input ports */
@@ -216,11 +216,11 @@ static ADDRESS_MAP_START( alphatp2_mem, AS_PROGRAM, 8, alphatp_12_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( alphatp2_map, AS_PROGRAM, 8, alphatp_12_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAMBANK("ram_0000")
AM_RANGE(0x00000, 0x017ff) AM_ROM AM_REGION("boot", 0) // P2 0x0000 , 0x17ff -hw 6kB, P3 only 4 kB
AM_RANGE(0x01800, 0x01c00) AM_RAM // boot rom variables
AM_RANGE(0x03000, 0x03bff) AM_WRITEONLY AM_SHARE("vram") // test 2017 hw, MOS directly writes to display RAM
AM_RANGE(0x03FF0, 0x03fff) AM_DEVWRITE("crtc", crt5027_device, write) //test hw, mem-mapped registers, cursor position can be determined through this range
AM_RANGE(0x00000, 0x0ffff) AM_RAMBANK("ram_0000")

AM_RANGE(0x10000, 0x1ffff) AM_RAM AM_SHARE("ram")
ADDRESS_MAP_END
@@ -252,11 +252,11 @@ static ADDRESS_MAP_START( alphatp3_mem, AS_PROGRAM, 8, alphatp_34_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( alphatp3_map, AS_PROGRAM, 8, alphatp_34_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAMBANK("ram_0000")
AM_RANGE(0x00000, 0x017ff) AM_ROM AM_REGION("boot", 0) // P2 0x0000 , 0x17ff -hw 6kB, P3 only 4 kB
AM_RANGE(0x01800, 0x01c00) AM_RAM // boot rom variables
AM_RANGE(0x03000, 0x03bff) AM_WRITEONLY AM_SHARE("vram") // test 2017 hw, MOS directly writes to display RAM
AM_RANGE(0x03FF0, 0x03fff) AM_DEVWRITE("crtc", crt5037_device, write) //test hw, mem-mapped registers, cursor position can be determined through this range
AM_RANGE(0x00000, 0x0ffff) AM_RAMBANK("ram_0000")

AM_RANGE(0x10000, 0x1ffff) AM_RAM AM_SHARE("ram")
ADDRESS_MAP_END
@@ -651,6 +651,7 @@ static ADDRESS_MAP_START(dmac_mem, AS_PROGRAM, 16, altos8600_state)
ADDRESS_MAP_END

static ADDRESS_MAP_START(dmac_io, AS_IO, 16, altos8600_state)
AM_RANGE(0x0000, 0xffff) AM_READWRITE(nmi_r, nmi_w)
AM_RANGE(0x0000, 0x0007) AM_READ(fault_r)
AM_RANGE(0x0008, 0x000f) AM_WRITE(clear_w)
AM_RANGE(0x0010, 0x0017) AM_READ(errlo_r)
@@ -671,7 +672,6 @@ static ADDRESS_MAP_START(dmac_io, AS_IO, 16, altos8600_state)
AM_RANGE(0x0078, 0x0079) AM_WRITE8(ics_attn_w, 0xffff)
AM_RANGE(0x0200, 0x03ff) AM_READWRITE(mmuflags_r, mmuflags_w)
AM_RANGE(0x0400, 0x05ff) AM_READWRITE(mmuaddr_r, mmuaddr_w)
AM_RANGE(0x0000, 0xffff) AM_READWRITE(nmi_r, nmi_w)
ADDRESS_MAP_END

static SLOT_INTERFACE_START(altos8600_floppies)
@@ -102,19 +102,19 @@ static ADDRESS_MAP_START( pc2086_map, AS_PROGRAM, 16, amstrad_pc_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START(pc200_io, AS_IO, 16, amstrad_pc_state )
AM_RANGE(0x0000, 0x00ff) AM_DEVICE8("mb", pc_noppi_mb_device, map, 0xffff)
AM_RANGE(0x0060, 0x0065) AM_READWRITE8(pc1640_port60_r, pc1640_port60_w, 0xffff)
AM_RANGE(0x0078, 0x0079) AM_READWRITE8(pc1640_mouse_x_r, pc1640_mouse_x_w, 0xffff)
AM_RANGE(0x007a, 0x007b) AM_READWRITE8(pc1640_mouse_y_r, pc1640_mouse_y_w, 0xffff)
AM_RANGE(0x0000, 0x00ff) AM_DEVICE8("mb", pc_noppi_mb_device, map, 0xffff)
AM_RANGE(0x0200, 0x0207) AM_DEVREADWRITE8("pc_joy", pc_joy_device, joy_port_r, joy_port_w, 0xffff)
AM_RANGE(0x0278, 0x027b) AM_READ8(pc200_port278_r, 0xffff) AM_DEVWRITE8("lpt_2", pc_lpt_device, write, 0x00ff)
AM_RANGE(0x0378, 0x037b) AM_READ8(pc200_port378_r, 0xffff) AM_DEVWRITE8("lpt_1", pc_lpt_device, write, 0x00ff)
AM_RANGE(0x03bc, 0x03bf) AM_DEVREADWRITE8("lpt_0", pc_lpt_device, read, write, 0x00ff)
ADDRESS_MAP_END

static ADDRESS_MAP_START(ppc512_io, AS_IO, 16, amstrad_pc_state )
AM_RANGE(0x0070, 0x0071) AM_DEVREADWRITE8("rtc", mc146818_device, read, write, 0xffff)
AM_IMPORT_FROM(pc200_io)
AM_RANGE(0x0070, 0x0071) AM_DEVREADWRITE8("rtc", mc146818_device, read, write, 0xffff)
ADDRESS_MAP_END

/* pc20 (v2)
@@ -679,6 +679,8 @@ WRITE32_MEMBER(apollo_state::apollo_f8_w){
***************************************************************************/

static ADDRESS_MAP_START(dn3500_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)

AM_RANGE(0x000000, 0x00ffff) AM_ROM /* boot ROM */
AM_RANGE(0x000000, 0x00ffff) AM_WRITE(apollo_rom_w)
AM_RANGE(0x010000, 0x0100ff) AM_READWRITE16(apollo_csr_status_register_r, apollo_csr_status_register_w, 0xffffffff)
@@ -719,10 +721,10 @@ static ADDRESS_MAP_START(dn3500_map, AS_PROGRAM, 32, apollo_state )
// AM_RANGE(0x0e000000, 0x0fffffff) FPA address space

// AM_RANGE(0xf8000000, 0xffffffff) AM_READWRITE(apollo_f8_r, apollo_f8_w)
AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)
ADDRESS_MAP_END

static ADDRESS_MAP_START(dsp3500_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)
AM_RANGE(0x000000, 0x00ffff) AM_ROM /* boot ROM */
AM_RANGE(0x000000, 0x00ffff) AM_WRITE(apollo_rom_w)
AM_RANGE(0x010000, 0x0100ff) AM_READWRITE16(apollo_csr_status_register_r, apollo_csr_status_register_w, 0xffffffff)
@@ -751,10 +753,11 @@ static ADDRESS_MAP_START(dsp3500_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE16(apollo_atbus_memory_r, apollo_atbus_memory_w, 0xffffffff)

// AM_RANGE(0xf8000000, 0xffffffff) AM_READWRITE(apollo_f8_r, apollo_f8_w)
AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)
ADDRESS_MAP_END

static ADDRESS_MAP_START(dn3000_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(0x000000, 0xffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)

AM_RANGE(0x000000, 0x007fff) AM_ROM /* boot ROM */
AM_RANGE(0x000000, 0x007fff) AM_WRITE(apollo_rom_w)
AM_RANGE(0x008000, 0x0080ff) AM_READWRITE16(apollo_csr_status_register_r, apollo_csr_status_register_w, 0xffffffff)
@@ -783,11 +786,11 @@ static ADDRESS_MAP_START(dn3000_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")

AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE16(apollo_atbus_memory_r, apollo_atbus_memory_w, 0xffffffff)

AM_RANGE(0x000000, 0xffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)
ADDRESS_MAP_END

static ADDRESS_MAP_START(dsp3000_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(0x000000, 0xffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)

AM_RANGE(0x000000, 0x007fff) AM_ROM /* boot ROM */
AM_RANGE(0x000000, 0x007fff) AM_WRITE(apollo_rom_w)
AM_RANGE(0x008000, 0x0080ff) AM_READWRITE16(apollo_csr_status_register_r, apollo_csr_status_register_w, 0xffffffff)
@@ -811,12 +814,11 @@ static ADDRESS_MAP_START(dsp3000_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(DN3000_RAM_BASE, DN3000_RAM_END) AM_RAM_WRITE(ram_with_parity_w) AM_SHARE("messram")

AM_RANGE(ATBUS_MEMORY_BASE, ATBUS_MEMORY_END) AM_READWRITE16(apollo_atbus_memory_r, apollo_atbus_memory_w, 0xffffffff)

AM_RANGE(0x000000, 0xffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)
ADDRESS_MAP_END


static ADDRESS_MAP_START(dn5500_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)
AM_RANGE(0x000000, 0x00ffff) AM_ROM /* boot ROM */
AM_RANGE(0x000000, 0x00ffff) AM_WRITE(apollo_rom_w)
AM_RANGE(0x010000, 0x0100ff) AM_READWRITE16(apollo_csr_status_register_r, apollo_csr_status_register_w, 0xffffffff)
@@ -860,10 +862,10 @@ static ADDRESS_MAP_START(dn5500_map, AS_PROGRAM, 32, apollo_state )
// AM_RANGE(0x0e000000, 0x0fffffff) FPA address space

// AM_RANGE(0xf8000000, 0xffffffff) AM_READWRITE(apollo_f8_r, apollo_f8_w)
AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)
ADDRESS_MAP_END

static ADDRESS_MAP_START(dsp5500_map, AS_PROGRAM, 32, apollo_state )
AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)
AM_RANGE(0x000000, 0x00ffff) AM_ROM /* boot ROM */
AM_RANGE(0x000000, 0x00ffff) AM_WRITE(apollo_rom_w)
AM_RANGE(0x010000, 0x0100ff) AM_READWRITE16(apollo_csr_status_register_r, apollo_csr_status_register_w, 0xffffffff)
@@ -896,7 +898,6 @@ static ADDRESS_MAP_START(dsp5500_map, AS_PROGRAM, 32, apollo_state )

AM_RANGE(0x07000000, 0x0700FFFF) AM_READWRITE8(dn5500_io_protection_map_r, dn5500_io_protection_map_w, 0xffffffff )
// AM_RANGE(0xf8000000, 0xffffffff) AM_READWRITE(apollo_f8_r, apollo_f8_w)
AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(apollo_unmapped_r, apollo_unmapped_w)
ADDRESS_MAP_END

/***************************************************************************
@@ -2696,9 +2696,9 @@ static ADDRESS_MAP_START( apple2c_map, AS_PROGRAM, 8, apple2e_state )
AM_RANGE(0x2000, 0x3fff) AM_DEVICE(A2_2000_TAG, address_map_bank_device, amap8)
AM_RANGE(0x4000, 0xbfff) AM_DEVICE(A2_4000_TAG, address_map_bank_device, amap8)
AM_RANGE(0xc000, 0xc07f) AM_READWRITE(c000_iic_r, c000_iic_w)
AM_RANGE(0xc080, 0xc0ff) AM_READWRITE(c080_r, c080_w)
AM_RANGE(0xc098, 0xc09b) AM_DEVREADWRITE(IIC_ACIA1_TAG, mos6551_device, read, write)
AM_RANGE(0xc0a8, 0xc0ab) AM_DEVREADWRITE(IIC_ACIA2_TAG, mos6551_device, read, write)
AM_RANGE(0xc080, 0xc0ff) AM_READWRITE(c080_r, c080_w)
AM_RANGE(0xc100, 0xc2ff) AM_DEVICE(A2_C100_TAG, address_map_bank_device, amap8)
AM_RANGE(0xc300, 0xc3ff) AM_DEVICE(A2_C300_TAG, address_map_bank_device, amap8)
AM_RANGE(0xc400, 0xc7ff) AM_DEVICE(A2_C400_TAG, address_map_bank_device, amap8)
@@ -2714,10 +2714,10 @@ static ADDRESS_MAP_START( apple2c_memexp_map, AS_PROGRAM, 8, apple2e_state )
AM_RANGE(0x2000, 0x3fff) AM_DEVICE(A2_2000_TAG, address_map_bank_device, amap8)
AM_RANGE(0x4000, 0xbfff) AM_DEVICE(A2_4000_TAG, address_map_bank_device, amap8)
AM_RANGE(0xc000, 0xc07f) AM_READWRITE(c000_iic_r, c000_iic_w)
AM_RANGE(0xc080, 0xc0ff) AM_READWRITE(c080_r, c080_w)
AM_RANGE(0xc098, 0xc09b) AM_DEVREADWRITE(IIC_ACIA1_TAG, mos6551_device, read, write)
AM_RANGE(0xc0a8, 0xc0ab) AM_DEVREADWRITE(IIC_ACIA2_TAG, mos6551_device, read, write)
AM_RANGE(0xc0c0, 0xc0c3) AM_READWRITE(memexp_r, memexp_w)
AM_RANGE(0xc080, 0xc0ff) AM_READWRITE(c080_r, c080_w)
AM_RANGE(0xc100, 0xc2ff) AM_DEVICE(A2_C100_TAG, address_map_bank_device, amap8)
AM_RANGE(0xc300, 0xc3ff) AM_DEVICE(A2_C300_TAG, address_map_bank_device, amap8)
AM_RANGE(0xc400, 0xc7ff) AM_DEVICE(A2_C400_TAG, address_map_bank_device, amap8)
@@ -2733,11 +2733,11 @@ static ADDRESS_MAP_START( laser128_map, AS_PROGRAM, 8, apple2e_state )
AM_RANGE(0x2000, 0x3fff) AM_DEVICE(A2_2000_TAG, address_map_bank_device, amap8)
AM_RANGE(0x4000, 0xbfff) AM_DEVICE(A2_4000_TAG, address_map_bank_device, amap8)
AM_RANGE(0xc000, 0xc07f) AM_READWRITE(c000_r, c000_w)
AM_RANGE(0xc080, 0xc0ff) AM_READWRITE(c080_r, c080_w)
// AM_RANGE(0xc098, 0xc09b) AM_DEVREADWRITE(IIC_ACIA1_TAG, mos6551_device, read, write)
// AM_RANGE(0xc0a8, 0xc0ab) AM_DEVREADWRITE(IIC_ACIA2_TAG, mos6551_device, read, write)
AM_RANGE(0xc0d0, 0xc0d3) AM_READWRITE(memexp_r, memexp_w)
AM_RANGE(0xc0e0, 0xc0ef) AM_DEVREADWRITE(LASER128_UDC_TAG, applefdc_base_device, read, write)
AM_RANGE(0xc080, 0xc0ff) AM_READWRITE(c080_r, c080_w)
AM_RANGE(0xc100, 0xc2ff) AM_DEVICE(A2_C100_TAG, address_map_bank_device, amap8)
AM_RANGE(0xc300, 0xc3ff) AM_DEVICE(A2_C300_TAG, address_map_bank_device, amap8)
AM_RANGE(0xc400, 0xc7ff) AM_DEVICE(A2_C400_TAG, address_map_bank_device, amap8)
@@ -220,13 +220,13 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, appoooh_state )
AM_RANGE(0xe000, 0xe7ff) AM_RAM
AM_RANGE(0xe800, 0xefff) AM_RAM /* RAM ? */

AM_RANGE(0xf000, 0xffff) AM_RAM
AM_RANGE(0xf000, 0xf01f) AM_SHARE("spriteram")
AM_RANGE(0xf020, 0xf3ff) AM_WRITE(fg_videoram_w) AM_SHARE("fg_videoram")
AM_RANGE(0xf420, 0xf7ff) AM_WRITE(fg_colorram_w) AM_SHARE("fg_colorram")
AM_RANGE(0xf800, 0xf81f) AM_SHARE("spriteram_2")
AM_RANGE(0xf820, 0xfbff) AM_WRITE(bg_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0xfc20, 0xffff) AM_WRITE(bg_colorram_w) AM_SHARE("bg_colorram")
AM_RANGE(0xf000, 0xffff) AM_RAM
ADDRESS_MAP_END

static ADDRESS_MAP_START( decrypted_opcodes_map, AS_OPCODES, 8, appoooh_state )
@@ -905,6 +905,8 @@ WRITE8_MEMBER(aristmk5_state::bill_acceptor_lamps_w)
static ADDRESS_MAP_START( aristmk5_map, AS_PROGRAM, 32, aristmk5_state )
AM_RANGE(0x02000000, 0x02ffffff) AM_RAM AM_SHARE("physicalram") /* physical RAM - 16 MB for now, should be 512k for the A310 */

AM_RANGE(0x03000000, 0x0331ffff) AM_READWRITE(archimedes_ioc_r, archimedes_ioc_w)

/* MK-5 overrides */
AM_RANGE(0x03010420, 0x03010423) AM_WRITE8(sram_banksel_w, 0x000000ff) // SRAM bank select write

@@ -924,7 +926,6 @@ static ADDRESS_MAP_START( aristmk5_map, AS_PROGRAM, 32, aristmk5_state )
AM_RANGE(0x03250050, 0x03250053) AM_READ(Ns5r50) //IOEB ID register
AM_RANGE(0x03250058, 0x0325005b) AM_READ(Ns5x58) //IOEB interrupt Latch

AM_RANGE(0x03000000, 0x0331ffff) AM_READWRITE(archimedes_ioc_r, archimedes_ioc_w)
AM_RANGE(0x03320000, 0x0333ffff) AM_READWRITE8(sram_r, sram_w, 0x000000ff)

AM_RANGE(0x03400000, 0x035fffff) AM_WRITE(archimedes_vidc_w)
@@ -936,6 +937,8 @@ ADDRESS_MAP_END

/* U.S games have no dram emulator enabled */
static ADDRESS_MAP_START( aristmk5_usa_map, AS_PROGRAM, 32, aristmk5_state )
AM_IMPORT_FROM(aristmk5_map)

AM_RANGE(0x00000000, 0x01ffffff) AM_READWRITE(archimedes_memc_logical_r, archimedes_memc_logical_w)

AM_RANGE(0x03010440, 0x03010443) AM_WRITE8(rtc_usa_w, 0x000000ff)
@@ -959,12 +962,12 @@ static ADDRESS_MAP_START( aristmk5_usa_map, AS_PROGRAM, 32, aristmk5_state )
AM_RANGE(0x03012140, 0x0301215f) AM_DEVREADWRITE8("uart_2b", ins8250_uart_device, ins8250_r, ins8250_w, 0x000000ff)
AM_RANGE(0x03012300, 0x0301231f) AM_DEVREADWRITE8("uart_3a", ins8250_uart_device, ins8250_r, ins8250_w, 0x000000ff)
AM_RANGE(0x03012340, 0x0301235f) AM_DEVREADWRITE8("uart_3b", ins8250_uart_device, ins8250_r, ins8250_w, 0x000000ff)

AM_IMPORT_FROM(aristmk5_map)
ADDRESS_MAP_END

/* with dram emulator enabled */
static ADDRESS_MAP_START( aristmk5_drame_map, AS_PROGRAM, 32, aristmk5_state )
AM_IMPORT_FROM(aristmk5_map)

AM_RANGE(0x00000000, 0x01ffffff) AM_READWRITE(aristmk5_drame_memc_logical_r, archimedes_memc_logical_w)

AM_RANGE(0x03010430, 0x03010433) AM_WRITE8(hopper_w, 0x000000ff)
@@ -978,8 +981,6 @@ static ADDRESS_MAP_START( aristmk5_drame_map, AS_PROGRAM, 32, aristmk5_state )

AM_RANGE(0x03014000, 0x0301401f) AM_DEVREADWRITE8("uart_2a", ins8250_uart_device, ins8250_r, ins8250_w, 0x000000ff)
AM_RANGE(0x03014020, 0x0301403f) AM_DEVREADWRITE8("uart_2b", ins8250_uart_device, ins8250_r, ins8250_w, 0x000000ff)

AM_IMPORT_FROM(aristmk5_map)
ADDRESS_MAP_END


@@ -441,12 +441,12 @@ static ADDRESS_MAP_START( terraf_map, AS_PROGRAM, 16, armedf_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( kozure_map, AS_PROGRAM, 16, armedf_state )
AM_IMPORT_FROM( terraf_map )
AM_RANGE(0x060000, 0x060fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x061000, 0x063fff) AM_RAM
// AM_RANGE(0x07c000, 0x07c001) AM_WRITE(kozure_io_w)
// AM_RANGE(0x0c0000, 0x0c0001) AM_WRITENOP /* watchdog? */
// AM_RANGE(0xffd000, 0xffd001) AM_WRITENOP /* passes crc ROM information to MCU, I guess */
AM_IMPORT_FROM( terraf_map )
ADDRESS_MAP_END

static ADDRESS_MAP_START( cclimbr2_map, AS_PROGRAM, 16, armedf_state )
@@ -569,8 +569,8 @@ static ADDRESS_MAP_START( robby_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0x0000, 0x3fff) AM_WRITE(astrocade_funcgen_w)
AM_RANGE(0x4000, 0x7fff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0x8000, 0xdfff) AM_ROM
AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_SHARE("protected_ram")
AM_RANGE(0xe000, 0xe7ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_SHARE("protected_ram")
AM_RANGE(0xe800, 0xffff) AM_RAM
ADDRESS_MAP_END

@@ -587,8 +587,8 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( profpac_map, AS_PROGRAM, 8, astrocde_state )
AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_SHARE("protected_ram")
AM_IMPORT_FROM(demndrgn_map)
AM_RANGE(0xe000, 0xe1ff) AM_READWRITE(protected_ram_r, protected_ram_w) AM_SHARE("protected_ram")
ADDRESS_MAP_END


@@ -601,9 +601,9 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( profpac_bank4000_map, AS_PROGRAM, 8, astrocde_state )
AM_IMPORT_FROM(bank4000_map)
AM_RANGE(0x10000, 0xaffff) AM_ROM AM_REGION("epromboard", 0)
AM_RANGE(0xb0000, 0xb3fff) AM_READNOP
AM_IMPORT_FROM(bank4000_map)
ADDRESS_MAP_END


@@ -665,6 +665,7 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( port_map_16col_pattern_tenpindx, AS_IO, 8, astrocde_state )
AM_IMPORT_FROM(port_map_16col_pattern_nosound)
AM_RANGE(0x0060, 0x0060) AM_MIRROR(0xff00) AM_READ_PORT("P60")
AM_RANGE(0x0061, 0x0061) AM_MIRROR(0xff00) AM_READ_PORT("P61")
AM_RANGE(0x0062, 0x0062) AM_MIRROR(0xff00) AM_READ_PORT("P62")
@@ -674,7 +675,6 @@ static ADDRESS_MAP_START( port_map_16col_pattern_tenpindx, AS_IO, 8, astrocde_st
AM_RANGE(0x0067, 0x0067) AM_MIRROR(0xff00) AM_WRITE(tenpindx_counter_w)
AM_RANGE(0x0068, 0x0068) AM_MIRROR(0xff00) AM_WRITE(tenpindx_lights_w)
AM_RANGE(0x0097, 0x0097) AM_MIRROR(0xff00) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
AM_IMPORT_FROM(port_map_16col_pattern_nosound)
ADDRESS_MAP_END


@@ -386,8 +386,8 @@ static ADDRESS_MAP_START( eto_map, AS_PROGRAM, 16 /* N.B. tc100scn mirror over
AM_RANGE(0x4a0000, 0x4a0003) AM_WRITE(asuka_spritectrl_w)
AM_RANGE(0x4e0000, 0x4e0001) AM_READNOP AM_DEVWRITE8("ciu", pc060ha_device, master_port_w, 0x00ff)
AM_RANGE(0x4e0002, 0x4e0003) AM_DEVREADWRITE8("ciu", pc060ha_device, master_comm_r, master_comm_w, 0x00ff)
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("pc090oj", pc090oj_device, word_r, word_w) /* sprite ram */
AM_RANGE(0xc00000, 0xc0ffff) AM_DEVWRITE("tc0100scn", tc0100scn_device, word_w)
AM_RANGE(0xc00000, 0xc03fff) AM_DEVREADWRITE("pc090oj", pc090oj_device, word_r, word_w) /* sprite ram */
AM_RANGE(0xd00000, 0xd0ffff) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, word_r, word_w) /* tilemaps */
AM_RANGE(0xd20000, 0xd2000f) AM_DEVREADWRITE("tc0100scn", tc0100scn_device, ctrl_word_r, ctrl_word_w)
ADDRESS_MAP_END
@@ -220,15 +220,15 @@ READ8_MEMBER( at_state::ps1_portb_r )

static ADDRESS_MAP_START(ps1_16_io, AS_IO, 16, at_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0060, 0x0061) AM_READ8(ps1_portb_r, 0xff00)
AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", at_mb_device, map)
AM_RANGE(0x0060, 0x0061) AM_READ8(ps1_portb_r, 0xff00)
AM_RANGE(0x0102, 0x0105) AM_READWRITE(ps1_unk_r, ps1_unk_w)
ADDRESS_MAP_END

static ADDRESS_MAP_START( neat_io, AS_IO, 16, at_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0022, 0x0023) AM_DEVICE("cs8221", cs8221_device, map)
AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", at_mb_device, map)
AM_RANGE(0x0022, 0x0023) AM_DEVICE("cs8221", cs8221_device, map)
ADDRESS_MAP_END

static ADDRESS_MAP_START( at32_io, AS_IO, 32, at_state )
@@ -238,8 +238,8 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( ficpio_io, AS_IO, 32, at_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00a8, 0x00af) AM_DEVREADWRITE8("chipset", vt82c496_device, read, write, 0xffffffff)
AM_RANGE(0x0000, 0x00ff) AM_DEVICE16("mb", at_mb_device, map, 0xffffffff)
AM_RANGE(0x00a8, 0x00af) AM_DEVREADWRITE8("chipset", vt82c496_device, read, write, 0xffffffff)
AM_RANGE(0x0170, 0x0177) AM_DEVREADWRITE("ide2", ide_controller_32_device, read_cs0, write_cs0)
AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE("ide", ide_controller_32_device, read_cs0, write_cs0)
AM_RANGE(0x0370, 0x0377) AM_DEVREADWRITE("ide2", ide_controller_32_device, read_cs1, write_cs1)
@@ -207,11 +207,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarig1_state )
AM_RANGE(0xfd8000, 0xfdffff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
/* AM_RANGE(0xfe0000, 0xfe7fff) AM_READ(from_r)*/
AM_RANGE(0xfe8000, 0xfe89ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0xff0000, 0xffffff) AM_RAM
AM_RANGE(0xff0000, 0xff0fff) AM_RAM AM_SHARE("rle")
AM_RANGE(0xff2000, 0xff2001) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
AM_RANGE(0xff4000, 0xff5fff) AM_DEVWRITE("playfield", tilemap_device, write16) AM_SHARE("playfield")
AM_RANGE(0xff6000, 0xff6fff) AM_DEVWRITE("alpha", tilemap_device, write16) AM_SHARE("alpha")
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END


@@ -339,11 +339,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarig42_state )
AM_RANGE(0xf80000, 0xf80003) AM_DEVWRITE("asic65", asic65_device, data_w)
AM_RANGE(0xfa0000, 0xfa0fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
AM_RANGE(0xfc0000, 0xfc0fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0xff0000, 0xffffff) AM_RAM
AM_RANGE(0xff0000, 0xff0fff) AM_RAM AM_SHARE("rle")
AM_RANGE(0xff2000, 0xff5fff) AM_DEVWRITE("playfield", tilemap_device, write16) AM_SHARE("playfield")
AM_RANGE(0xff6000, 0xff6fff) AM_DEVWRITE("alpha", tilemap_device, write16) AM_SHARE("alpha")
AM_RANGE(0xff7000, 0xff7001) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END


@@ -603,11 +603,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, atarigt_state )
AM_RANGE(0xd0001c, 0xd0001f) AM_READ(analog_port1_r)
AM_RANGE(0xd20000, 0xd20fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0xff00ff00)
AM_RANGE(0xd40000, 0xd4ffff) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write32)
AM_RANGE(0xd70000, 0xd7ffff) AM_RAM
AM_RANGE(0xd72000, 0xd75fff) AM_DEVWRITE("playfield", tilemap_device, write32) AM_SHARE("playfield")
AM_RANGE(0xd76000, 0xd76fff) AM_DEVWRITE("alpha", tilemap_device, write32) AM_SHARE("alpha")
AM_RANGE(0xd78000, 0xd78fff) AM_RAM AM_SHARE("rle")
AM_RANGE(0xd7a200, 0xd7a203) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
AM_RANGE(0xd70000, 0xd7ffff) AM_RAM
AM_RANGE(0xd80000, 0xdfffff) AM_READWRITE(colorram_protection_r, colorram_protection_w) AM_SHARE("colorram")
AM_RANGE(0xe04000, 0xe04003) AM_WRITE(led_w)
AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w)
@@ -1203,11 +1203,11 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 32, atarigx2_state )
AM_RANGE(0xd00000, 0xd1ffff) AM_READ(a2d_data_r)
AM_RANGE(0xd20000, 0xd20fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0xff00ff00)
AM_RANGE(0xd40000, 0xd40fff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette")
AM_RANGE(0xd70000, 0xd7ffff) AM_RAM
AM_RANGE(0xd72000, 0xd75fff) AM_DEVWRITE("playfield", tilemap_device, write32) AM_SHARE("playfield")
AM_RANGE(0xd76000, 0xd76fff) AM_DEVWRITE("alpha", tilemap_device, write32) AM_SHARE("alpha")
AM_RANGE(0xd78000, 0xd78fff) AM_RAM AM_SHARE("rle")
AM_RANGE(0xd7a200, 0xd7a203) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
AM_RANGE(0xd70000, 0xd7ffff) AM_RAM
AM_RANGE(0xd80000, 0xd9ffff) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write32)
AM_RANGE(0xe06000, 0xe06003) AM_DEVWRITE8("jsa", atari_jsa_iiis_device, main_command_w, 0xff000000)
AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w)
@@ -771,8 +771,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, atarisy2_state )
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(videoram_r, videoram_w)
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("rombank1")
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("rombank2")
AM_RANGE(0x8000, 0x81ff) AM_READWRITE(slapstic_r, slapstic_w) AM_SHARE("slapstic_base")
AM_RANGE(0x8000, 0xffff) AM_ROM
AM_RANGE(0x8000, 0x81ff) AM_READWRITE(slapstic_r, slapstic_w) AM_SHARE("slapstic_base")
ADDRESS_MAP_END


@@ -129,8 +129,8 @@ static ADDRESS_MAP_START (atm_io, AS_IO, 8, atm_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START (atm_switch, AS_OPCODES, 8, atm_state)
AM_RANGE(0x3d00, 0x3dff) AM_READ(beta_enable_r)
AM_RANGE(0x0000, 0x3fff) AM_READ(beta_neutral_r) // Overlap with previous because we want real addresses on the 3e00-3fff range
AM_RANGE(0x3d00, 0x3dff) AM_READ(beta_enable_r)
AM_RANGE(0x4000, 0xffff) AM_READ(beta_disable_r)
ADDRESS_MAP_END

@@ -185,8 +185,8 @@ READ8_MEMBER(baraduke_state::soundkludge_r)
static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, baraduke_state )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE("mcu", hd63701_cpu_device, m6801_io_r,m6801_io_w)/* internal registers */
AM_RANGE(0x0080, 0x00ff) AM_RAM /* built in RAM */
AM_RANGE(0x1105, 0x1105) AM_READ(soundkludge_r) /* cures speech */
AM_RANGE(0x1000, 0x13ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */
AM_RANGE(0x1105, 0x1105) AM_READ(soundkludge_r) /* cures speech */
AM_RANGE(0x8000, 0xbfff) AM_ROM /* MCU external ROM */
AM_RANGE(0x8000, 0x8000) AM_WRITENOP /* watchdog reset? */
AM_RANGE(0x8800, 0x8800) AM_WRITENOP /* irq acknoledge? */
@@ -111,14 +111,14 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, batman_state )
AM_RANGE(0x2a0000, 0x2a0001) AM_MIRROR(0x11fffe) AM_DEVWRITE("watchdog", watchdog_timer_device, reset16_w)
AM_RANGE(0x2e0000, 0x2e0fff) AM_MIRROR(0x100000) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0x2effc0, 0x2effff) AM_MIRROR(0x100000) AM_DEVREADWRITE("vad", atari_vad_device, control_read, control_write)
AM_RANGE(0x2f0000, 0x2fffff) AM_MIRROR(0x100000) AM_RAM
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


@@ -194,29 +194,32 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( bbcb_mem, AS_PROGRAM, 8, bbc_state )
AM_IMPORT_FROM(bbc_base)

AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorya1_w) /* 0000-3fff Regular Ram */
AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank3") AM_WRITE(bbc_memoryb3_w) /* 4000-7fff Regular Ram */
AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank4") AM_WRITE(bbc_memoryb4_w) /* 8000-bfff Paged ROM */
AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selectb_w) /* R: fe30-fe3f NC Not Connected */
/* W: fe30-fe3f 84LS161 Paged ROM selector */
AM_RANGE(0xfe80, 0xfe83) AM_DEVICE("i8271", i8271_device, map) /* fe80-fe83 8271 FDC Floppy disc controller */
AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("i8271", i8271_device, data_r, data_w) /* fe84-fe9f 8271 FDC Floppy disc controller */
AM_IMPORT_FROM(bbc_base)
ADDRESS_MAP_END


static ADDRESS_MAP_START( bbcb_nofdc_mem, AS_PROGRAM, 8, bbc_state )
AM_IMPORT_FROM(bbc_base)

AM_RANGE(0x0000, 0x3fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorya1_w) /* 0000-3fff Regular Ram */
AM_RANGE(0x4000, 0x7fff) AM_READ_BANK("bank3") AM_WRITE(bbc_memoryb3_w) /* 4000-7fff Regular Ram */
AM_RANGE(0x8000, 0xbfff) AM_READ_BANK("bank4") AM_WRITE(bbc_memoryb4_w) /* 8000-bfff Paged ROM */
AM_RANGE(0xfe30, 0xfe3f) AM_READWRITE(bbc_fe_r, bbc_page_selectb_w) /* R: fe30-fe3f NC Not Connected */
/* W: fe30-fe3f 84LS161 Paged ROM selector */
AM_RANGE(0xfe80, 0xfe83) AM_NOP /* fe80-fe9f Floppy disc controller */
AM_IMPORT_FROM(bbc_base)
ADDRESS_MAP_END


static ADDRESS_MAP_START( bbcbp_mem, AS_PROGRAM, 8, bbc_state )
AM_IMPORT_FROM(bbc_base)
AM_RANGE(0x0000, 0x2fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorybp1_w) /* 0000-2fff Regular Ram */
AM_RANGE(0x3000, 0x7fff) AM_READ_BANK("bank2") AM_WRITE(bbc_memorybp2_w) /* 3000-7fff Video/Shadow Ram */
AM_RANGE(0x8000, 0xafff) AM_READ_BANK("bank4") AM_WRITE(bbc_memorybp4_w) /* 8000-afff Paged ROM or 12K of SWRAM */
@@ -226,11 +229,11 @@ static ADDRESS_MAP_START( bbcbp_mem, AS_PROGRAM, 8, bbc_state )
AM_RANGE(0xfe80, 0xfe83) AM_READWRITE(bbc_fe_r, bbc_wd1770_status_w) /* fe80-fe83 1770 FDC Drive control register */
AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("wd1770", wd1770_device, read, write) /* fe84-fe9f 1770 FDC Floppy disc controller */
AM_RANGE(0xfee0, 0xfeff) AM_DEVREADWRITE("tube", bbc_tube_slot_device, host_r, host_w) /* fee0-feff Tube ULA Tube system interface */
AM_IMPORT_FROM(bbc_base)
ADDRESS_MAP_END


static ADDRESS_MAP_START( bbcbp128_mem, AS_PROGRAM, 8, bbc_state )
AM_IMPORT_FROM(bbc_base)
AM_RANGE(0x0000, 0x2fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorybp1_w) /* 0000-2fff Regular Ram */
AM_RANGE(0x3000, 0x7fff) AM_READ_BANK("bank2") AM_WRITE(bbc_memorybp2_w) /* 3000-7fff Video/Shadow Ram */
AM_RANGE(0x8000, 0xafff) AM_READ_BANK("bank4") AM_WRITE(bbc_memorybp4_128_w) /* 8000-afff Paged ROM or 12K of SWRAM */
@@ -240,11 +243,11 @@ static ADDRESS_MAP_START( bbcbp128_mem, AS_PROGRAM, 8, bbc_state )
AM_RANGE(0xfe80, 0xfe83) AM_READWRITE(bbc_fe_r, bbc_wd1770_status_w) /* fe80-fe83 1770 FDC Drive control register */
AM_RANGE(0xfe84, 0xfe9f) AM_DEVREADWRITE("wd1770", wd1770_device, read, write) /* fe84-fe9f 1770 FDC Floppy disc controller */
AM_RANGE(0xfee0, 0xfeff) AM_DEVREADWRITE("tube", bbc_tube_slot_device, host_r, host_w) /* fee0-feff Tube ULA Tube system interface */
AM_IMPORT_FROM(bbc_base)
ADDRESS_MAP_END


static ADDRESS_MAP_START( reutapm_mem, AS_PROGRAM, 8, bbc_state )
AM_IMPORT_FROM(bbc_base)
AM_RANGE(0x0000, 0x2fff) AM_READ_BANK("bank1") AM_WRITE(bbc_memorybp1_w) /* 0000-2fff Regular Ram */
AM_RANGE(0x3000, 0x7fff) AM_READ_BANK("bank2") AM_WRITE(bbc_memorybp2_w) /* 3000-7fff Video/Shadow Ram */
AM_RANGE(0x8000, 0xafff) AM_READ_BANK("bank4") AM_WRITE(bbc_memorybp4_w) /* 8000-afff Paged ROM or 12K of SWRAM */
@@ -254,7 +257,6 @@ static ADDRESS_MAP_START( reutapm_mem, AS_PROGRAM, 8, bbc_state )
AM_RANGE(0xfe80, 0xfe83) AM_NOP /* fe80-fe83 1770 FDC Drive control register */
AM_RANGE(0xfe84, 0xfe9f) AM_NOP /* fe84-fe9f 1770 FDC Floppy disc controller */
AM_RANGE(0xfee0, 0xfeff) AM_READ(bbc_fe_r) /* fee0-feff Tube ULA Tube system interface */
AM_IMPORT_FROM(bbc_base)
ADDRESS_MAP_END

/******************************************************************************
@@ -83,9 +83,9 @@ READ64_MEMBER(bebox_state::bb_slave_64be_r)
}

static ADDRESS_MAP_START( bebox_slave_mem, AS_PROGRAM, 64, bebox_state )
AM_IMPORT_FROM(bebox_mem)
AM_RANGE(0x80000cf8, 0x80000cff) AM_READ(bb_slave_64be_r)
AM_RANGE(0x80000cf8, 0x80000cff) AM_DEVWRITE("pcibus", pci_bus_device, write_64be )
AM_IMPORT_FROM(bebox_mem)
ADDRESS_MAP_END

#define BYTE_REVERSE32(x) (((x >> 24) & 0xff) | \
@@ -617,8 +617,8 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w)
}

static ADDRESS_MAP_START( sc4_map, AS_PROGRAM, 16, sc4_state )
AM_RANGE(0x0000000, 0x0fffff) AM_READ(sc4_cs1_r) // technically we should be going through the cs handler, but this is always set to ROM, and assuming that is a lot faster
AM_RANGE(0x0000000, 0xffffff) AM_READWRITE(sc4_mem_r, sc4_mem_w)
AM_RANGE(0x0000000, 0x0fffff) AM_READ(sc4_cs1_r) // technically we should be going through the cs handler, but this is always set to ROM, and assuming that is a lot faster
ADDRESS_MAP_END


@@ -182,8 +182,8 @@ WRITE32_MEMBER(bfm_swp_state::bfm_swp_mem_w)


static ADDRESS_MAP_START( bfm_swp_map, AS_PROGRAM, 32, bfm_swp_state )
AM_RANGE(0x00000000, 0x000fffff) AM_ROM
AM_RANGE(0x00000000, 0xffffffff) AM_READWRITE(bfm_swp_mem_r, bfm_swp_mem_w)
AM_RANGE(0x00000000, 0x000fffff) AM_ROM
ADDRESS_MAP_END


@@ -596,14 +596,14 @@ uint32_t bingor_state::screen_update_bingor(screen_device &screen, bitmap_rgb32
static ADDRESS_MAP_START( bingor_map, AS_PROGRAM, 16, bingor_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM
AM_RANGE(0x90000, 0x9ffff) AM_ROM AM_REGION("gfx", 0)
AM_RANGE(0xa0300, 0xa031f) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") //wrong
AM_RANGE(0xa0000, 0xaffff) AM_RAM AM_SHARE("blit_ram")
AM_RANGE(0xa0300, 0xa031f) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") //wrong
AM_RANGE(0xf0000, 0xfffff) AM_ROM AM_REGION("boot_prg", 0)
ADDRESS_MAP_END

static ADDRESS_MAP_START( bingor2_map, AS_PROGRAM, 16, bingor_state )
AM_RANGE(0xe0000, 0xfffff) AM_ROM AM_REGION("boot_prg", 0) // banked?
AM_IMPORT_FROM(bingor_map)
AM_RANGE(0xe0000, 0xfffff) AM_ROM AM_REGION("boot_prg", 0) // banked?
ADDRESS_MAP_END

static ADDRESS_MAP_START( bingor_io, AS_IO, 16, bingor_state )
@@ -715,8 +715,8 @@ MACHINE_CONFIG_END

static ADDRESS_MAP_START( vip2000_map, AS_PROGRAM, 16, bingor_state )
AM_RANGE(0x00000, 0x0ffff) AM_RAM
AM_RANGE(0x40300, 0x4031f) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") //wrong
AM_RANGE(0x40000, 0x4ffff) AM_RAM AM_SHARE("blit_ram")
AM_RANGE(0x40300, 0x4031f) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette") //wrong
//AM_RANGE(0x50000, 0x5ffff) AM_ROM AM_REGION("gfx", 0)
AM_RANGE(0x60000, 0x60003) AM_DEVWRITE8("ymz", ymz284_device, address_data_w, 0x00ff)
AM_RANGE(0x80000, 0xeffff) AM_DEVREADWRITE("flash", intelfsh16_device, read, write)
@@ -77,6 +77,7 @@ class blockhl_state : public driver_device
//**************************************************************************

static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, blockhl_state )
AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x1f84, 0x1f84) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(sound_irq_w)
AM_RANGE(0x1f8c, 0x1f8c) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
@@ -85,7 +86,6 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, blockhl_state )
AM_RANGE(0x1f96, 0x1f96) AM_READ_PORT("P2")
AM_RANGE(0x1f97, 0x1f97) AM_READ_PORT("DSW1")
AM_RANGE(0x1f98, 0x1f98) AM_READ_PORT("DSW2")
AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x4000, 0x57ff) AM_RAM
AM_RANGE(0x5800, 0x5fff) AM_DEVICE("bank5800", address_map_bank_device, amap8)
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("rombank")
@@ -235,8 +235,8 @@ void bloodbro_state::weststry_soundnmi_update()
}

static ADDRESS_MAP_START( weststry_sound_map, AS_PROGRAM, 8, bloodbro_state )
AM_RANGE(0x4002, 0x4002) AM_WRITE(weststry_soundnmi_ack_w)
AM_IMPORT_FROM(seibu_sound_map)
AM_RANGE(0x4002, 0x4002) AM_WRITE(weststry_soundnmi_ack_w)
ADDRESS_MAP_END

/* Input Ports */
@@ -116,8 +116,8 @@ static ADDRESS_MAP_START( blueprnt_map, AS_PROGRAM, 8, blueprnt_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( grasspin_map, AS_PROGRAM, 8, blueprnt_state )
AM_RANGE(0xc003, 0xc003) AM_READ(grasspin_sh_dipsw_r)
AM_IMPORT_FROM( blueprnt_map )
AM_RANGE(0xc003, 0xc003) AM_READ(grasspin_sh_dipsw_r)
ADDRESS_MAP_END


@@ -160,6 +160,7 @@ WRITE8_MEMBER(bottom9_state::sound_bank_w)


static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bottom9_state )
AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x0000, 0x07ff) AM_READWRITE(bottom9_bankedram1_r, bottom9_bankedram1_w)
AM_RANGE(0x1f80, 0x1f80) AM_WRITE(bankswitch_w)
AM_RANGE(0x1f90, 0x1f90) AM_WRITE(bottom9_1f90_w)
@@ -173,7 +174,6 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, bottom9_state )
AM_RANGE(0x1fe0, 0x1fe0) AM_READ_PORT("DSW2")
AM_RANGE(0x1ff0, 0x1fff) AM_DEVWRITE("k051316", k051316_device, ctrl_w)
AM_RANGE(0x2000, 0x27ff) AM_READWRITE(bottom9_bankedram2_r, bottom9_bankedram2_w) AM_SHARE("palette")
AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x4000, 0x5fff) AM_RAM
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
@@ -78,10 +78,10 @@ static ADDRESS_MAP_START( bowltry_map, AS_PROGRAM, 16, bowltry_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM AM_REGION("maincpu", 0)
AM_RANGE( 0x080000, 0x083fff ) AM_RAM
AM_RANGE( 0x600000, 0x60ffff ) AM_RAM
#if HACK_ENABLED
AM_RANGE( 0x60e090, 0x60e093 ) AM_READWRITE(hack_r,hack_w)
#endif
AM_RANGE( 0x600000, 0x60ffff ) AM_RAM

ADDRESS_MAP_END

@@ -192,10 +192,10 @@ static ADDRESS_MAP_START( by35_map, AS_PROGRAM, 8, by35_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( nuovo_map, AS_PROGRAM, 8, by35_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
// AM_RANGE(0x0000, 0x007f) AM_RAM // Schematics infer that the M6802 internal RAM is disabled.
AM_RANGE(0x0088, 0x008b) AM_DEVREADWRITE("pia_u10", pia6821_device, read, write)
AM_RANGE(0x0090, 0x0093) AM_DEVREADWRITE("pia_u11", pia6821_device, read, write)
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1000, 0xffff) AM_ROM
ADDRESS_MAP_END

@@ -116,18 +116,18 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cabal_state )
AM_RANGE(0xc0040, 0xc0041) AM_WRITENOP /* ??? */
AM_RANGE(0xc0080, 0xc0081) AM_WRITE(flipscreen_w)
AM_RANGE(0xe0000, 0xe07ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0xe8008, 0xe8009) AM_WRITE(sound_irq_trigger_word_w) // fix coin insertion
AM_RANGE(0xe8000, 0xe800d) AM_DEVREADWRITE8("seibu_sound", seibu_sound_device, main_r, main_w, 0x00ff)
AM_RANGE(0xe8008, 0xe8009) AM_WRITE(sound_irq_trigger_word_w) // fix coin insertion
ADDRESS_MAP_END



static ADDRESS_MAP_START( trackball_main_map, AS_PROGRAM, 16, cabal_state )
AM_IMPORT_FROM(main_map)
AM_RANGE(0xa0008, 0xa000f) AM_DEVREAD8("upd4701l", upd4701_device, read_xy, 0x00ff)
AM_RANGE(0xa0008, 0xa000f) AM_DEVREAD8("upd4701h", upd4701_device, read_xy, 0xff00)
AM_RANGE(0xc0000, 0xc0001) AM_DEVWRITE8("upd4701l", upd4701_device, reset_xy, 0x00ff)
AM_RANGE(0xc0000, 0xc0001) AM_DEVWRITE8("upd4701h", upd4701_device, reset_xy, 0xff00)
AM_IMPORT_FROM(main_map)
ADDRESS_MAP_END


@@ -290,12 +290,13 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( calorie_sound_io_map, AS_IO, 8, calorie_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
// 3rd ?
AM_RANGE(0x00, 0xff) AM_WRITE(bogus_w)

AM_RANGE(0x00, 0x01) AM_DEVWRITE("ay1", ym2149_device, address_data_w)
AM_RANGE(0x01, 0x01) AM_DEVREAD("ay1", ym2149_device, data_r)
AM_RANGE(0x10, 0x11) AM_DEVWRITE("ay2", ym2149_device, address_data_w)
AM_RANGE(0x11, 0x11) AM_DEVREAD("ay2", ym2149_device, data_r)
// 3rd ?
AM_RANGE(0x00, 0xff) AM_WRITE(bogus_w)
ADDRESS_MAP_END


@@ -632,6 +632,7 @@ static ADDRESS_MAP_START( can09_map, AS_PROGRAM, 8, can09_state )
*/
// AM_RANGE(0x0000, 0x7fff) AM_RAM
AM_RANGE(0x0000, 0x7fff) AM_RAM AM_RAMBANK("bank1")
AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION("roms", 0)
AM_RANGE(0xe020, 0xe020) AM_DEVWRITE("crtc", h46505_device, address_w)
AM_RANGE(0xe021, 0xe021) AM_DEVWRITE("crtc", h46505_device, register_w)
AM_RANGE(0xe034, 0xe037) AM_DEVREADWRITE(PIA1_TAG, pia6821_device, read, write)
@@ -644,7 +645,6 @@ static ADDRESS_MAP_START( can09_map, AS_PROGRAM, 8, can09_state )
AM_RANGE(0xb200, 0xc1ff) AM_ROM AM_REGION("roms", 0x3200)
AM_RANGE(0xc200, 0xdfff) AM_RAM /* Needed for BASIC etc */
#endif
AM_RANGE(0xe000, 0xffff) AM_ROM AM_REGION("roms", 0)
ADDRESS_MAP_END

#ifdef UNUSED_VARIABLE
@@ -1099,8 +1099,8 @@ static ADDRESS_MAP_START( tjumpman_map, AS_PROGRAM, 16, cave_state )
AM_RANGE(0x100000, 0x10ffff) AM_RAM AM_SHARE("nvram") // RAM (battery)
AM_RANGE(0x200000, 0x207fff) AM_RAM AM_SHARE("spriteram.0") // Sprites
AM_RANGE(0x208000, 0x20ffff) AM_RAM AM_SHARE("spriteram_2.0") // Sprite bank 2
AM_RANGE(0x304000, 0x307fff) AM_WRITE(cave_vram_0_w) // Layer 0 - 16x16 tiles mapped here
AM_RANGE(0x300000, 0x307fff) AM_RAM_WRITE(cave_vram_0_w) AM_SHARE("vram.0") // Layer 0
AM_RANGE(0x304000, 0x307fff) AM_WRITE(cave_vram_0_w) // Layer 0 - 16x16 tiles mapped here
AM_RANGE(0x400000, 0x400005) AM_WRITEONLY AM_SHARE("vctrl.0") // Layer 0 Control
AM_RANGE(0x500000, 0x50ffff) AM_RAM AM_SHARE("paletteram.0") // Palette
AM_RANGE(0x600000, 0x600001) AM_READ_PORT("IN0") // Inputs + EEPROM + Hopper
@@ -322,9 +322,9 @@ WRITE8_MEMBER(ccastles_state::nvram_w)

/* complete memory map derived from schematics */
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ccastles_state )
AM_RANGE(0x0000, 0x7fff) AM_RAM_WRITE(ccastles_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x0000, 0x0001) AM_WRITE(ccastles_bitmode_addr_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(ccastles_bitmode_r, ccastles_bitmode_w)
AM_RANGE(0x0000, 0x7fff) AM_RAM_WRITE(ccastles_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x8000, 0x8fff) AM_RAM
AM_RANGE(0x8e00, 0x8fff) AM_SHARE("spriteram")
AM_RANGE(0x9000, 0x90ff) AM_MIRROR(0x0300) AM_READWRITE(nvram_r, nvram_w)
@@ -330,10 +330,10 @@ static ADDRESS_MAP_START( cclimber_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("videoram")
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
/* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */
AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9800, 0x981f) AM_RAM AM_SHARE("column_scroll")
AM_RANGE(0x9880, 0x989f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x98dc, 0x98df) AM_RAM AM_SHARE("bigspritectrl")
AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9c00, 0x9fff) AM_RAM_WRITE(cclimber_colorram_w) AM_SHARE("colorram")
AM_RANGE(0xa000, 0xa007) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
@@ -356,10 +356,10 @@ static ADDRESS_MAP_START( cannonb_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("videoram")
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
/* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */
AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9800, 0x981f) AM_RAM AM_SHARE("column_scroll")
AM_RANGE(0x9880, 0x989f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x98dc, 0x98df) AM_RAM AM_SHARE("bigspritectrl")
AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9c00, 0x9fff) AM_RAM_WRITE(cclimber_colorram_w) AM_SHARE("colorram")
AM_RANGE(0xa000, 0xa007) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
@@ -400,10 +400,10 @@ static ADDRESS_MAP_START( yamato_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x9000, 0x93ff) AM_MIRROR(0x0400) AM_RAM AM_SHARE("videoram")
/* 9800-9bff and 9c00-9fff share the same RAM, interleaved */
/* (9800-981f for scroll, 9c20-9c3f for color RAM, and so on) */
AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9800, 0x981f) AM_RAM AM_SHARE("column_scroll")
AM_RANGE(0x9880, 0x989f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x98dc, 0x98df) AM_RAM AM_SHARE("bigspritectrl")
AM_RANGE(0x9800, 0x9bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9c00, 0x9fff) AM_RAM_WRITE(cclimber_colorram_w) AM_SHARE("colorram")
AM_RANGE(0xa000, 0xa007) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("P1")
@@ -445,10 +445,10 @@ static ADDRESS_MAP_START( bagmanf_map, AS_PROGRAM, 8, cclimber_state )
AM_RANGE(0x8900, 0x8bff) AM_RAM /* not used, but initialized */
AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0xffe0, 0xffff) AM_RAM AM_SHARE("column_scroll") // wrong, is this area even connected?
AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE("colorram")
AM_RANGE(0x9800, 0x9800) AM_READ_PORT("SYSTEM")
AM_RANGE(0x9800, 0x981f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x98dc, 0x98df) AM_RAM AM_SHARE("bigspritectrl") // wrong
AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE("colorram")
AM_RANGE(0x9c00, 0x9fff) AM_RAM /* not used, but initialized */
AM_RANGE(0xa000, 0xa000) AM_READ(bagmanf_a000_r)
AM_RANGE(0xa000, 0xa007) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
@@ -184,11 +184,11 @@ static ADDRESS_MAP_START(ccs2810_io, AS_IO, 8, ccs_state)
ADDRESS_MAP_END

static ADDRESS_MAP_START(ccs2422_io, AS_IO, 8, ccs_state)
AM_RANGE(0x0000, 0xffff) AM_READWRITE(io_read, io_write)
AM_RANGE(0x04, 0x04) AM_MIRROR(0xff00) AM_READWRITE(port04_r,port04_w)
AM_RANGE(0x30, 0x33) AM_MIRROR(0xff00) AM_DEVREADWRITE("fdc", mb8877_device, read, write)
AM_RANGE(0x34, 0x34) AM_MIRROR(0xff00) AM_READWRITE(port34_r,port34_w)
AM_RANGE(0x40, 0x40) AM_MIRROR(0xff00) AM_WRITE(port40_w)
AM_RANGE(0x0000, 0xffff) AM_READWRITE(io_read, io_write)
ADDRESS_MAP_END

/* Input ports */
@@ -70,10 +70,10 @@ static inline void ATTR_PRINTF(3,4) verboselog(device_t& device, int n_level, co
static ADDRESS_MAP_START( cdimono1_mem, AS_PROGRAM, 16, cdi_state )
AM_RANGE(0x00000000, 0x0007ffff) AM_RAM AM_SHARE("planea")
AM_RANGE(0x00200000, 0x0027ffff) AM_RAM AM_SHARE("planeb")
AM_RANGE(0x00300000, 0x00303bff) AM_DEVREADWRITE("cdic", cdicdic_device, ram_r, ram_w)
#if ENABLE_UART_PRINTING
AM_RANGE(0x00301400, 0x00301403) AM_DEVREAD("scc68070", cdi68070_device, uart_loopback_enable)
#endif
AM_RANGE(0x00300000, 0x00303bff) AM_DEVREADWRITE("cdic", cdicdic_device, ram_r, ram_w)
AM_RANGE(0x00303c00, 0x00303fff) AM_DEVREADWRITE("cdic", cdicdic_device, regs_r, regs_w)
AM_RANGE(0x00310000, 0x00317fff) AM_DEVREADWRITE("slave_hle", cdislave_device, slave_r, slave_w)
AM_RANGE(0x00318000, 0x0031ffff) AM_NOP
@@ -201,46 +201,46 @@ ADDRESS_MAP_END

// base map + ALPHA-8x0x protection
static ADDRESS_MAP_START( champbasj_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x6000, 0x63ff) AM_DEVREADWRITE("alpha_8201", alpha_8201_device, ext_ram_r, ext_ram_w)
AM_IMPORT_FROM( champbas_map )
AM_RANGE(0x6000, 0x63ff) AM_DEVREADWRITE("alpha_8201", alpha_8201_device, ext_ram_r, ext_ram_w)
ADDRESS_MAP_END

// different protection for champbasja
static ADDRESS_MAP_START( champbasja_map, AS_PROGRAM, 8, champbas_state )
AM_IMPORT_FROM( champbas_map )
AM_RANGE(0x6000, 0x63ff) AM_RAM
AM_RANGE(0x6800, 0x68ff) AM_READ(champbja_protection_r)
AM_IMPORT_FROM( champbas_map )
ADDRESS_MAP_END

// champbasjb appears to have no protection
static ADDRESS_MAP_START( champbasjb_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x6000, 0x63ff) AM_RAM
AM_IMPORT_FROM( champbas_map )
AM_RANGE(0x6000, 0x63ff) AM_RAM
ADDRESS_MAP_END

// champbb2
static ADDRESS_MAP_START( champbb2_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x7800, 0x7fff) AM_ROM
AM_IMPORT_FROM( champbasj_map )
AM_RANGE(0x7800, 0x7fff) AM_ROM
ADDRESS_MAP_END

static ADDRESS_MAP_START( tbasebal_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0x7800, 0x7fff) AM_ROM
AM_IMPORT_FROM( champbas_map )
AM_RANGE(0x7800, 0x7fff) AM_ROM
ADDRESS_MAP_END

// more sprites in exctsccr
static ADDRESS_MAP_START( exctsccr_map, AS_PROGRAM, 8, champbas_state )
AM_IMPORT_FROM( champbasj_map )
AM_RANGE(0x7000, 0x7001) AM_UNMAP // aysnd is controlled by audiocpu
AM_RANGE(0x7c00, 0x7fff) AM_RAM
AM_RANGE(0xa040, 0xa04f) AM_WRITEONLY AM_SHARE("spriteram2")
AM_IMPORT_FROM( champbasj_map )
ADDRESS_MAP_END

// exctsccrb
static ADDRESS_MAP_START( exctsccrb_map, AS_PROGRAM, 8, champbas_state )
AM_RANGE(0xa040, 0xa04f) AM_WRITEONLY AM_SHARE("spriteram2")
AM_IMPORT_FROM( champbasj_map )
AM_RANGE(0xa040, 0xa04f) AM_WRITEONLY AM_SHARE("spriteram2")
ADDRESS_MAP_END


@@ -323,11 +323,11 @@ static ADDRESS_MAP_START( io_map, AS_IO, 8, cinemat_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( io_map_qb3, AS_IO, 8, cinemat_state )
AM_IMPORT_FROM(io_map)
// Some of the outputs here are definitely not mapped through the LS259, since they use multiple bits of data
AM_RANGE(0x00, 0x00) AM_WRITE(qb3_ram_bank_w)
AM_RANGE(0x04, 0x04) AM_WRITE(qb3_sound_fifo_w)
AM_RANGE(0x0f, 0x0f) AM_READ(qb3_frame_r)
AM_IMPORT_FROM(io_map)
ADDRESS_MAP_END


@@ -277,9 +277,9 @@ WRITE8_MEMBER(cloud9_state::nvram_store_w)
*************************************/

static ADDRESS_MAP_START( cloud9_map, AS_PROGRAM, 8, cloud9_state )
AM_RANGE(0x0000, 0x4fff) AM_ROMBANK("bank1") AM_WRITE(cloud9_videoram_w)
AM_RANGE(0x0000, 0x0001) AM_WRITE(cloud9_bitmode_addr_w)
AM_RANGE(0x0002, 0x0002) AM_READWRITE(cloud9_bitmode_r, cloud9_bitmode_w)
AM_RANGE(0x0000, 0x4fff) AM_ROMBANK("bank1") AM_WRITE(cloud9_videoram_w)
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x5400, 0x547f) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_RANGE(0x5480, 0x54ff) AM_WRITE(irq_ack_w)
@@ -200,10 +200,10 @@ static ADDRESS_MAP_START( cmmb_map, AS_PROGRAM, 8, cmmb_state )
//AM_RANGE(0x4000, 0x400f) AM_READWRITE(cmmb_input_r,cmmb_output_w)
//AM_RANGE(0x4900, 0x4900) AM_READ(kludge_r)
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
AM_RANGE(0xa000, 0xafff) AM_RAM
AM_RANGE(0xb000, 0xbfff) AM_READWRITE(cmmb_charram_r,cmmb_charram_w)
AM_RANGE(0xc000, 0xc00f) AM_READWRITE(cmmb_input_r,cmmb_output_w)
AM_RANGE(0x8000, 0xffff) AM_ROM
// debugging, to be removed
AM_RANGE(0x2aaa, 0x2aaa) AM_WRITE(flash_dbg_0_w)
AM_RANGE(0x5555, 0x5555) AM_WRITE(flash_dbg_1_w)
@@ -176,14 +176,14 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START(compc_io, AS_IO, 8, compc_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0060, 0x0063) AM_READWRITE(pio_r, pio_w)
AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", pc_noppi_mb_device, map)
AM_RANGE(0x0060, 0x0063) AM_READWRITE(pio_r, pio_w)
ADDRESS_MAP_END

static ADDRESS_MAP_START(compciii_io, AS_IO, 8, compc_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0060, 0x0063) AM_READWRITE(pioiii_r, pioiii_w)
AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", pc_noppi_mb_device, map)
AM_RANGE(0x0060, 0x0063) AM_READWRITE(pioiii_r, pioiii_w)
ADDRESS_MAP_END

MACHINE_CONFIG_START(compc_state::compc)
@@ -2840,11 +2840,11 @@ static ADDRESS_MAP_START( system_h1_map, AS_PROGRAM, 32, coolridr_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START(aquastge_h1_map, AS_PROGRAM, 32, coolridr_state)
AM_IMPORT_FROM(system_h1_map)
AM_RANGE(0x03c00000, 0x03c0ffff) AM_MIRROR(0x00200000) AM_RAM_WRITE(sysh1_dma_w) AM_SHARE("fb_vram") /* mostly mapped at 0x03e00000 */
AM_RANGE(0x03f50000, 0x03f5ffff) AM_RAM // video registers
AM_RANGE(0x03e10000, 0x03e1ffff) AM_RAM AM_SHARE("share3") /*Communication area RAM*/
AM_RANGE(0x03f00000, 0x03f0ffff) AM_RAM /*Communication area RAM*/
AM_IMPORT_FROM(system_h1_map)
ADDRESS_MAP_END

READ16_MEMBER( coolridr_state::h1_soundram_r)
@@ -3013,11 +3013,11 @@ static ADDRESS_MAP_START( coolridr_submap, AS_PROGRAM, 32, coolridr_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( aquastge_submap, AS_PROGRAM, 32, coolridr_state )
AM_RANGE(0x05210000, 0x0521ffff) AM_RAM AM_SHARE("share3") /*Communication area RAM*/
AM_IMPORT_FROM(coolridr_submap)
AM_RANGE(0x05200000, 0x0537ffff) AM_RAM
AM_RANGE(0x05210000, 0x0521ffff) AM_RAM AM_SHARE("share3") /*Communication area RAM*/
AM_RANGE(0x06000200, 0x06000207) AM_WRITENOP // program bug?
AM_RANGE(0x06100018, 0x0610001b) AM_READ_PORT("IN7")
AM_IMPORT_FROM(coolridr_submap)
ADDRESS_MAP_END

/* TODO: what is this for, volume mixing? MIDI? */
@@ -557,11 +557,11 @@ ADDRESS_MAP_END
/* The memory mapping is handled by PAL LWIO */

static ADDRESS_MAP_START( forgottn_map, AS_PROGRAM, 16, cps_state )
AM_IMPORT_FROM(main_map)
AM_RANGE(0x800040, 0x800041) AM_DEVWRITE8("upd4701", upd4701_device, reset_x, 0x00ff)
AM_RANGE(0x800048, 0x800049) AM_DEVWRITE8("upd4701", upd4701_device, reset_y, 0x00ff)
AM_RANGE(0x800052, 0x800055) AM_DEVREAD8("upd4701", upd4701_device, read_x, 0x00ff)
AM_RANGE(0x80005a, 0x80005d) AM_DEVREAD8("upd4701", upd4701_device, read_y, 0x00ff)
AM_IMPORT_FROM(main_map)
ADDRESS_MAP_END

/*
@@ -930,10 +930,10 @@ static ADDRESS_MAP_START( cps2_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM /* 68000 ROM */
AM_RANGE(0x400000, 0x40000b) AM_RAM AM_SHARE("output") /* CPS2 object output */
AM_RANGE(0x618000, 0x619fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
AM_RANGE(0x660000, 0x663fff) AM_RAM /* When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. */
AM_RANGE(0x662000, 0x662001) AM_RAM /* Network adapter related, accessed in SSF2TB */
AM_RANGE(0x662008, 0x662009) AM_RAM /* Network adapter related, accessed in SSF2TB */
AM_RANGE(0x662020, 0x662021) AM_RAM /* Network adapter related, accessed in SSF2TB */
AM_RANGE(0x660000, 0x663fff) AM_RAM /* When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. */
AM_RANGE(0x664000, 0x664001) AM_RAM /* Unknown - Only used if 0x660000-0x663fff available (could be RAM enable?) */
AM_RANGE(0x700000, 0x701fff) AM_WRITE(cps2_objram1_w) AM_SHARE("objram1") /* Object RAM, no game seems to use it directly */
AM_RANGE(0x708000, 0x709fff) AM_MIRROR(0x006000) AM_READWRITE(cps2_objram2_r, cps2_objram2_w) AM_SHARE("objram2") /* Object RAM */
@@ -961,10 +961,10 @@ static ADDRESS_MAP_START( dead_cps2_map, AS_PROGRAM, 16, cps_state )
AM_RANGE(0x000000, 0x3fffff) AM_ROM /* 68000 ROM */
AM_RANGE(0x400000, 0x40000b) AM_RAM AM_SHARE("output") /* CPS2 object output */
AM_RANGE(0x618000, 0x619fff) AM_READWRITE(qsound_sharedram1_r, qsound_sharedram1_w) /* Q RAM */
AM_RANGE(0x660000, 0x663fff) AM_RAM /* When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. */
AM_RANGE(0x662000, 0x662001) AM_RAM /* Network adapter related, accessed in SSF2TB */
AM_RANGE(0x662008, 0x662009) AM_RAM /* Network adapter related, accessed in SSF2TB */
AM_RANGE(0x662020, 0x662021) AM_RAM /* Network adapter related, accessed in SSF2TB */
AM_RANGE(0x660000, 0x663fff) AM_RAM /* When bit 14 of 0x804030 equals 0 this space is available. Many games store highscores and other info here if available. */
AM_RANGE(0x664000, 0x664001) AM_RAM /* Unknown - Only used if 0x660000-0x663fff available (could be RAM enable?) */
AM_RANGE(0x700000, 0x701fff) AM_WRITE(cps2_objram1_w) AM_SHARE("objram1") /* Object RAM, no game seems to use it directly */
AM_RANGE(0x708000, 0x709fff) AM_MIRROR(0x006000) AM_READWRITE(cps2_objram2_r, cps2_objram2_w) AM_SHARE("objram2") /* Object RAM */
@@ -84,6 +84,7 @@ WRITE8_MEMBER(crimfght_state::ym2151_ct_w)
static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8, crimfght_state )
AM_RANGE(0x0000, 0x03ff) AM_DEVICE("bank0000", address_map_bank_device, amap8)
AM_RANGE(0x0400, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x5fff) AM_READWRITE(k052109_051960_r, k052109_051960_w) /* video RAM + sprite RAM */
AM_RANGE(0x3f80, 0x3f80) AM_READ_PORT("SYSTEM")
AM_RANGE(0x3f81, 0x3f81) AM_READ_PORT("P1")
AM_RANGE(0x3f82, 0x3f82) AM_READ_PORT("P2")
@@ -94,7 +95,6 @@ static ADDRESS_MAP_START( crimfght_map, AS_PROGRAM, 8, crimfght_state )
AM_RANGE(0x3f87, 0x3f87) AM_READ_PORT("DSW1")
AM_RANGE(0x3f88, 0x3f88) AM_MIRROR(0x03) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_WRITE(crimfght_coin_w) // 051550
AM_RANGE(0x3f8c, 0x3f8c) AM_MIRROR(0x03) AM_WRITE(sound_w)
AM_RANGE(0x2000, 0x5fff) AM_READWRITE(k052109_051960_r, k052109_051960_w) /* video RAM + sprite RAM */
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("rombank") /* banked ROM */
AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x18000)
ADDRESS_MAP_END
@@ -60,7 +60,6 @@ static ADDRESS_MAP_START( crospang_base_map, AS_PROGRAM, 16, crospang_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( crospang_map, AS_PROGRAM, 16, crospang_state )

AM_IMPORT_FROM(crospang_base_map)

AM_RANGE(0x100000, 0x100001) AM_WRITENOP
@@ -653,6 +653,8 @@ static ADDRESS_MAP_START( crystal_mem, AS_PROGRAM, 32, crystal_state )
AM_RANGE(0x01280000, 0x01280003) AM_WRITE(Banksw_w)
AM_RANGE(0x01400000, 0x0140ffff) AM_RAM AM_SHARE("nvram")

AM_RANGE(0x01800000, 0x0180ffff) AM_RAM AM_SHARE("sysregs")

AM_RANGE(0x01800800, 0x01800803) AM_READWRITE(DMA0_r, DMA0_w)
AM_RANGE(0x01800810, 0x01800813) AM_READWRITE(DMA1_r, DMA1_w)

@@ -664,18 +666,16 @@ static ADDRESS_MAP_START( crystal_mem, AS_PROGRAM, 32, crystal_state )
AM_RANGE(0x01801418, 0x0180141b) AM_READWRITE(Timer3_r, Timer3_w)
AM_RANGE(0x01802004, 0x01802007) AM_READWRITE(PIO_r, PIO_w)

AM_RANGE(0x01800000, 0x0180ffff) AM_RAM AM_SHARE("sysregs")
AM_RANGE(0x02000000, 0x027fffff) AM_RAM AM_SHARE("workram")

AM_RANGE(0x030000a4, 0x030000a7) AM_READWRITE(FlipCount_r, FlipCount_w)

AM_RANGE(0x03000000, 0x0300ffff) AM_RAM AM_SHARE("vidregs")
AM_RANGE(0x030000a4, 0x030000a7) AM_READWRITE(FlipCount_r, FlipCount_w)
AM_RANGE(0x03800000, 0x03ffffff) AM_RAM AM_SHARE("textureram")
AM_RANGE(0x04000000, 0x047fffff) AM_RAM AM_SHARE("frameram")
AM_RANGE(0x04800000, 0x04800fff) AM_DEVREADWRITE("vrender", vrender0_device, vr0_snd_read, vr0_snd_write)

AM_RANGE(0x05000000, 0x05000003) AM_READWRITE(FlashCmd_r, FlashCmd_w)
AM_RANGE(0x05000000, 0x05ffffff) AM_ROMBANK("bank1")
AM_RANGE(0x05000000, 0x05000003) AM_READWRITE(FlashCmd_r, FlashCmd_w)

AM_RANGE(0x44414F4C, 0x44414F7F) AM_RAM AM_SHARE("reset_patch")
ADDRESS_MAP_END
@@ -717,6 +717,8 @@ static ADDRESS_MAP_START( trivrus_mem, AS_PROGRAM, 32, crystal_state )
// 0x0150001c & 0x000000ff = year - 2000
AM_RANGE(0x01600000, 0x01607fff) AM_RAM AM_SHARE("nvram")

AM_RANGE(0x01800000, 0x0180ffff) AM_RAM AM_SHARE("sysregs")

AM_RANGE(0x01800800, 0x01800803) AM_READWRITE(DMA0_r, DMA0_w)
AM_RANGE(0x01800810, 0x01800813) AM_READWRITE(DMA1_r, DMA1_w)

@@ -728,31 +730,30 @@ static ADDRESS_MAP_START( trivrus_mem, AS_PROGRAM, 32, crystal_state )
AM_RANGE(0x01801418, 0x0180141b) AM_READWRITE(Timer3_r, Timer3_w)
AM_RANGE(0x01802004, 0x01802007) AM_READWRITE(PIO_r, PIO_w)

AM_RANGE(0x01800000, 0x0180ffff) AM_RAM AM_SHARE("sysregs")
AM_RANGE(0x02000000, 0x027fffff) AM_RAM AM_SHARE("workram")

AM_RANGE(0x030000a4, 0x030000a7) AM_READWRITE(FlipCount_r, FlipCount_w)

AM_RANGE(0x03000000, 0x0300ffff) AM_RAM AM_SHARE("vidregs")
AM_RANGE(0x030000a4, 0x030000a7) AM_READWRITE(FlipCount_r, FlipCount_w)
AM_RANGE(0x03800000, 0x03ffffff) AM_RAM AM_SHARE("textureram")
AM_RANGE(0x04000000, 0x047fffff) AM_RAM AM_SHARE("frameram")
AM_RANGE(0x04800000, 0x04800fff) AM_DEVREADWRITE("vrender", vrender0_device, vr0_snd_read, vr0_snd_write)

AM_RANGE(0x05000000, 0x05000003) AM_READWRITE(FlashCmd_r, FlashCmd_w)
AM_RANGE(0x05000000, 0x05ffffff) AM_ROMBANK("bank1")
AM_RANGE(0x05000000, 0x05000003) AM_READWRITE(FlashCmd_r, FlashCmd_w)

// AM_RANGE(0x44414F4C, 0x44414F7F) AM_RAM AM_SHARE("reset_patch")
ADDRESS_MAP_END

static ADDRESS_MAP_START( crospuzl_mem, AS_PROGRAM, 32, crystal_state )
AM_IMPORT_FROM( trivrus_mem )

AM_RANGE(0x01500000, 0x01500003) AM_READ(FlashCmd_r)
AM_RANGE(0x01500100, 0x01500103) AM_WRITE(FlashCmd_w)
AM_RANGE(0x01510000, 0x01510003) AM_READ_PORT("IN0")
AM_RANGE(0x01511000, 0x01511003) AM_READ_PORT("IN1")
AM_RANGE(0x01512000, 0x01512003) AM_READ_PORT("IN2")
AM_RANGE(0x01513000, 0x01513003) AM_READ_PORT("IN3")
AM_IMPORT_FROM( trivrus_mem )

ADDRESS_MAP_END

// Crazy Dou Di Zhu II
@@ -804,6 +805,8 @@ static ADDRESS_MAP_START( crzyddz2_mem, AS_PROGRAM, 32, crystal_state )
AM_RANGE(0x01500000, 0x01500003) AM_READ_PORT("P1_P2")
AM_RANGE(0x01500004, 0x01500007) AM_READ(crzyddz2_key_r)

AM_RANGE(0x01800000, 0x0180ffff) AM_RAM AM_SHARE("sysregs")

AM_RANGE(0x01800800, 0x01800803) AM_READWRITE(DMA0_r, DMA0_w)
AM_RANGE(0x01800810, 0x01800813) AM_READWRITE(DMA1_r, DMA1_w)

@@ -815,18 +818,17 @@ static ADDRESS_MAP_START( crzyddz2_mem, AS_PROGRAM, 32, crystal_state )
AM_RANGE(0x01801418, 0x0180141b) AM_READWRITE(Timer3_r, Timer3_w)
AM_RANGE(0x01802004, 0x01802007) AM_READWRITE(PIO_r, crzyddz2_PIO_w)

AM_RANGE(0x01800000, 0x0180ffff) AM_RAM AM_SHARE("sysregs")
AM_RANGE(0x02000000, 0x027fffff) AM_RAM AM_SHARE("workram")

AM_RANGE(0x030000a4, 0x030000a7) AM_READWRITE(FlipCount_r, FlipCount_w)

AM_RANGE(0x03000000, 0x0300ffff) AM_RAM AM_SHARE("vidregs")
AM_RANGE(0x030000a4, 0x030000a7) AM_READWRITE(FlipCount_r, FlipCount_w)
AM_RANGE(0x03800000, 0x03ffffff) AM_RAM AM_SHARE("textureram")
AM_RANGE(0x04000000, 0x047fffff) AM_RAM AM_SHARE("frameram")
AM_RANGE(0x04800000, 0x04800fff) AM_DEVREADWRITE("vrender", vrender0_device, vr0_snd_read, vr0_snd_write)

AM_RANGE(0x05000000, 0x05000003) AM_READWRITE(FlashCmd_r, FlashCmd_w)
AM_RANGE(0x05000000, 0x05ffffff) AM_ROMBANK("bank1")
AM_RANGE(0x05000000, 0x05000003) AM_READWRITE(FlashCmd_r, FlashCmd_w)

// AM_RANGE(0x44414F4C, 0x44414F7F) AM_RAM AM_SHARE("reset_patch")
ADDRESS_MAP_END
@@ -643,9 +643,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_mem, AS_PROGRAM, 8, cybertnk_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0x9fff) AM_RAM
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ym1", y8950_device, read, write)
AM_RANGE(0xa001, 0xa001) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
AM_RANGE(0xa005, 0xa006) AM_NOP
AM_RANGE(0xa000, 0xa001) AM_DEVREADWRITE("ym1", y8950_device, read, write)
AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym2", y8950_device, read, write)
ADDRESS_MAP_END

@@ -235,9 +235,9 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, dacholer_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( itaten_main_map, AS_PROGRAM, 8, dacholer_state )
AM_IMPORT_FROM( main_map )
AM_RANGE(0x0000, 0x9fff) AM_ROM
AM_RANGE(0xa000, 0xb7ff) AM_RAM
AM_IMPORT_FROM( main_map )
ADDRESS_MAP_END

static ADDRESS_MAP_START( main_io_map, AS_IO, 8, dacholer_state )
@@ -346,10 +346,10 @@ static ADDRESS_MAP_START( dblcrown_map, AS_PROGRAM, 8, dblcrown_state )
AM_RANGE(0xc000, 0xdfff) AM_READWRITE(vram_r, vram_w)
AM_RANGE(0xf000, 0xf1ff) AM_READWRITE(palette_r, palette_w)
AM_RANGE(0xfe00, 0xfeff) AM_RAM // ???
AM_RANGE(0xff00, 0xffff) AM_RAM // ???, intentional fall-through
AM_RANGE(0xff00, 0xff01) AM_READWRITE(vram_bank_r, vram_bank_w)
AM_RANGE(0xff04, 0xff04) AM_READWRITE(irq_source_r,irq_source_w)

AM_RANGE(0xff00, 0xffff) AM_RAM // ???, intentional fall-through
ADDRESS_MAP_END

static ADDRESS_MAP_START( dblcrown_io, AS_IO, 8, dblcrown_state )
@@ -60,8 +60,8 @@ static ADDRESS_MAP_START( dcon_map, AS_PROGRAM, 16, dcon_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( sdgndmps_map, AS_PROGRAM, 16, dcon_state )
AM_RANGE(0xa0000, 0xa000d) AM_READ8(sdgndmps_sound_comms_r, 0x00ff)
AM_IMPORT_FROM(dcon_map)
AM_RANGE(0xa0000, 0xa000d) AM_READ8(sdgndmps_sound_comms_r, 0x00ff)
ADDRESS_MAP_END

/******************************************************************************/
@@ -2390,8 +2390,8 @@ READ8_MEMBER(ddenlovr_state::mmpanic_link_r){ return 0xff; }
/* Main CPU */

static ADDRESS_MAP_START( mmpanic_map, AS_PROGRAM, 8, ddenlovr_state )
AM_RANGE(0x0051, 0x0051) AM_READ(magic_r) // ?
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x0051, 0x0051) AM_READ(magic_r) // ?
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
@@ -3180,8 +3180,8 @@ static ADDRESS_MAP_START( hginga_map, AS_PROGRAM, 8, ddenlovr_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
AM_RANGE(0xf601, 0xf601) AM_READ(hginga_protection_r)
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM/RAM (Banked)
AM_RANGE(0xf601, 0xf601) AM_READ(hginga_protection_r)
AM_RANGE(0xf000, 0xf1ff) AM_WRITE(rongrong_palette_w) // RAM enabled by bit 4 of rombank
AM_RANGE(0xf700, 0xf706) AM_WRITENOP
ADDRESS_MAP_END
@@ -3401,9 +3401,9 @@ static ADDRESS_MAP_START( hgokou_map, AS_PROGRAM, 8, ddenlovr_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
AM_RANGE(0x7000, 0x7fff) AM_RAMBANK("bank2") // RAM (Banked)
AM_RANGE(0xe601, 0xe601) AM_READ(hgokou_protection_r)
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("bank1") // ROM (Banked)
AM_RANGE(0xe000, 0xe1ff) AM_WRITE(rongrong_palette_w)
AM_RANGE(0xe601, 0xe601) AM_READ(hgokou_protection_r)
AM_RANGE(0xe700, 0xe706) AM_WRITENOP
ADDRESS_MAP_END

@@ -4458,8 +4458,8 @@ static ADDRESS_MAP_START( daimyojn_portmap, AS_IO, 8, ddenlovr_state )
AM_RANGE(0x32, 0x32) AM_READ(hanakanz_dsw_r)
AM_RANGE(0x40, 0x40) AM_WRITE(daimyojn_blitter_data_palette_w)
AM_RANGE(0x42, 0x44) AM_READ(hanakanz_gfxrom_r)
AM_RANGE(0x8a, 0x8b) AM_READ(daimyojn_year_hack_r) // ?
AM_RANGE(0x80, 0x8f) AM_DEVREADWRITE("rtc", msm6242_device, read, write)
AM_RANGE(0x8a, 0x8b) AM_READ(daimyojn_year_hack_r) // ?
AM_RANGE(0xa0, 0xa1) AM_DEVWRITE("ym2413", ym2413_device, write)
AM_RANGE(0xa2, 0xa2) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0xa8, 0xa8) AM_READ_PORT("SYSTEM")
@@ -542,7 +542,7 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, ddragon_state )
AM_RANGE(0x0000, 0x001f) AM_READWRITE(ddragon_hd63701_internal_registers_r, ddragon_hd63701_internal_registers_w)
AM_RANGE(0x001f, 0x0fff) AM_RAM
AM_RANGE(0x0020, 0x0fff) AM_RAM
AM_RANGE(0x8000, 0x81ff) AM_RAM AM_SHARE("comram")
AM_RANGE(0xc000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -649,14 +649,14 @@ static ADDRESS_MAP_START( midres_map, AS_PROGRAM, 16, dec0_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( midresb_map, AS_PROGRAM, 16, dec0_state )
AM_IMPORT_FROM( midres_map )
AM_RANGE(0x160010, 0x160011) AM_WRITE(dec0_priority_w)
AM_RANGE(0x180000, 0x18000f) AM_READ(dec0_controls_r)
AM_RANGE(0x180012, 0x180013) AM_NOP
AM_RANGE(0x180014, 0x180015) AM_WRITE(midres_sound_w)
AM_RANGE(0x180018, 0x180019) AM_NOP
AM_RANGE(0x1a0000, 0x1a0001) AM_READ_PORT("AN0")
AM_RANGE(0x1a0008, 0x1a0009) AM_READ_PORT("AN1")
AM_IMPORT_FROM( midres_map )
ADDRESS_MAP_END

/******************************************************************************/
@@ -644,8 +644,8 @@ static ADDRESS_MAP_START( h6280_sound_map, AS_PROGRAM, 8, deco32_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( h6280_sound_custom_latch_map, AS_PROGRAM, 8, deco32_state )
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
AM_IMPORT_FROM(h6280_sound_map)
AM_RANGE(0x140000, 0x140000) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
ADDRESS_MAP_END

// Z80 based sound
@@ -836,19 +836,19 @@ static ADDRESS_MAP_START( dkongjr_map, AS_PROGRAM, 8, dkong_state )

AM_RANGE(0x7c00, 0x7c00) AM_READ_PORT("IN0") AM_DEVWRITE("ls174.3d", latch8_device, write) /* IN0, sound interface */

AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_WRITE(dkongjr_gfxbank_w)
AM_RANGE(0x7c80, 0x7c87) AM_DEVWRITE("ls259.4h", latch8_device, bit0_w) /* latch for sound and signals above */
AM_RANGE(0x7c80, 0x7c80) AM_READ_PORT("IN1") AM_WRITE(dkongjr_gfxbank_w)

AM_RANGE(0x7d00, 0x7d00) AM_READ(dkongjr_in2_r) /* IN2 */
AM_RANGE(0x7d00, 0x7d07) AM_DEVWRITE("ls259.6h", latch8_device, bit0_w) /* Sound addrs */

AM_RANGE(0x7d80, 0x7d87) AM_DEVWRITE("ls259.5h", latch8_device, bit0_w) /* latch for sound and signals above*/
AM_RANGE(0x7d80, 0x7d80) AM_READ_PORT("DSW0") AM_WRITE(dkong_audio_irq_w) /* DSW0 */
AM_RANGE(0x7d82, 0x7d82) AM_WRITE(dkong_flipscreen_w)
AM_RANGE(0x7d83, 0x7d83) AM_WRITE(dkong_spritebank_w) /* 2 PSL Signal */
AM_RANGE(0x7d84, 0x7d84) AM_WRITE(nmi_mask_w)
AM_RANGE(0x7d85, 0x7d85) AM_WRITE(p8257_drq_w) /* P8257 ==> /DRQ0 /DRQ1 */
AM_RANGE(0x7d86, 0x7d87) AM_WRITE(dkong_palettebank_w)
AM_RANGE(0x7d80, 0x7d87) AM_DEVWRITE("ls259.5h", latch8_device, bit0_w) /* latch for sound and signals above*/

AM_RANGE(0x8000, 0x9fff) AM_ROM /* bootleg DKjr only */
AM_RANGE(0xb000, 0xbfff) AM_ROM /* pestplce only */
@@ -121,10 +121,11 @@ static ADDRESS_MAP_START( dreambal_map, AS_PROGRAM, 16, dreambal_state )

AM_RANGE(0x120000, 0x123fff) AM_RAM
AM_RANGE(0x140000, 0x1403ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0x161000, 0x16100f) AM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w)

AM_RANGE(0x160000, 0x163fff) AM_READWRITE(dreambal_protection_region_0_104_r,dreambal_protection_region_0_104_w)AM_SHARE("prot16ram") /* Protection device */

AM_RANGE(0x161000, 0x16100f) AM_DEVWRITE("tilegen1", deco16ic_device, pf_control_w)


AM_RANGE(0x180000, 0x180001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)

@@ -429,9 +429,9 @@ static ADDRESS_MAP_START( nanajign_mem_map, AS_PROGRAM, 8, dynax_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( mjdialq2_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x7fff ) AM_ROM
AM_RANGE( 0x0800, 0x0fff ) AM_RAM
AM_RANGE( 0x1000, 0x1fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x0000, 0x7fff ) AM_ROM
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
ADDRESS_MAP_END

@@ -599,8 +599,8 @@ static ADDRESS_MAP_START( hjingi_mem_map, AS_PROGRAM, 8, dynax_state )
AM_RANGE( 0x0000, 0x01ff ) AM_ROM
AM_RANGE( 0x0200, 0x1fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x2000, 0x7fff ) AM_ROM
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
AM_RANGE( 0x8000, 0xffff ) AM_DEVICE("bankdev", address_map_bank_device, amap8)
AM_RANGE( 0x8000, 0xffff ) AM_ROMBANK("bank1")
ADDRESS_MAP_END

static ADDRESS_MAP_START( hjingi_banked_map, AS_PROGRAM, 8, dynax_state )
@@ -121,6 +121,7 @@ static ADDRESS_MAP_START( masterj_map, AS_PROGRAM, 16, dynduke_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dynduke_state )
AM_RANGE(0x0000, 0xffff) AM_DEVREAD("sei80bu", sei80bu_device, data_r)
AM_RANGE(0x2000, 0x27ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_DEVWRITE("seibu_sound", seibu_sound_device, pending_w)
AM_RANGE(0x4001, 0x4001) AM_DEVWRITE("seibu_sound", seibu_sound_device, irq_clear_w)
@@ -134,7 +135,6 @@ static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, dynduke_state )
AM_RANGE(0x4018, 0x4019) AM_DEVWRITE("seibu_sound", seibu_sound_device, main_data_w)
AM_RANGE(0x401b, 0x401b) AM_DEVWRITE("seibu_sound", seibu_sound_device, coin_w)
AM_RANGE(0x6000, 0x6000) AM_DEVREADWRITE("oki", okim6295_device, read, write)
AM_RANGE(0x0000, 0xffff) AM_DEVREAD("sei80bu", sei80bu_device, data_r)
ADDRESS_MAP_END

static ADDRESS_MAP_START( sound_decrypted_opcodes_map, AS_OPCODES, 8, dynduke_state )
@@ -375,8 +375,8 @@ static ADDRESS_MAP_START(elwro800_io, AS_IO, 8, elwro800_state)
ADDRESS_MAP_END

static ADDRESS_MAP_START(elwro800_m1, AS_OPCODES, 8, elwro800_state)
AM_RANGE(0x0066, 0x0066) AM_READ(nmi_r)
AM_RANGE(0x0000, 0x1fff) AM_DEVICE("bank1", address_map_bank_device, amap8)
AM_RANGE(0x0066, 0x0066) AM_READ(nmi_r)
AM_RANGE(0x2000, 0x3fff) AM_DEVICE("bank2", address_map_bank_device, amap8)
AM_RANGE(0x4000, 0xffff) AM_RAMBANK("rambank3")
ADDRESS_MAP_END
@@ -148,8 +148,8 @@ template<bool maincpu> WRITE16_MEMBER(eprom_state::sync_w)
static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
AM_RANGE(0x0e0000, 0x0e0fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w<true>)
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w<true>)
AM_RANGE(0x1f0000, 0x1fffff) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write16)
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
@@ -161,20 +161,20 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x360020, 0x360021) AM_DEVWRITE("jsa", atari_jsa_base_device, sound_reset_w)
AM_RANGE(0x360030, 0x360031) AM_DEVWRITE8("jsa", atari_jsa_base_device, main_command_w, 0x00ff)
AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_SHARE("paletteram")
AM_RANGE(0x3f0000, 0x3f9fff) AM_RAM
AM_RANGE(0x3f0000, 0x3f1fff) AM_DEVWRITE("playfield", tilemap_device, write16) AM_SHARE("playfield")
AM_RANGE(0x3f2000, 0x3f3fff) AM_RAM AM_SHARE("mob")
AM_RANGE(0x3f4000, 0x3f4f7f) AM_DEVWRITE("alpha", tilemap_device, write16) AM_SHARE("alpha")
AM_RANGE(0x3f4f80, 0x3f4fff) AM_RAM AM_SHARE("mob:slip")
AM_RANGE(0x3f8000, 0x3f9fff) AM_DEVWRITE("playfield", tilemap_device, write16_ext) AM_SHARE("playfield_ext")
AM_RANGE(0x3f0000, 0x3f9fff) AM_RAM
ADDRESS_MAP_END


static ADDRESS_MAP_START( guts_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x000000, 0x09ffff) AM_ROM
AM_RANGE(0x0e0000, 0x0e0fff) AM_DEVREADWRITE8("eeprom", eeprom_parallel_28xx_device, read, write, 0x00ff)
AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w<true>)
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w<true>)
AM_RANGE(0x1f0000, 0x1fffff) AM_DEVWRITE("eeprom", eeprom_parallel_28xx_device, unlock_write16)
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
@@ -204,8 +204,8 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16, eprom_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w<false>) AM_SHARE("sync_data")
AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
AM_RANGE(0x16cc00, 0x16cc01) AM_READWRITE(sync_r, sync_w<false>) AM_SHARE("sync_data")
AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
@@ -648,8 +648,8 @@ static ADDRESS_MAP_START( equites_map, AS_PROGRAM, 16, equites_state )
AM_RANGE(0x080000, 0x080fff) AM_READWRITE8(equites_fg_videoram_r, equites_fg_videoram_w, 0x00ff)
AM_RANGE(0x0c0000, 0x0c01ff) AM_RAM_WRITE(equites_bg_videoram_w) AM_SHARE("bg_videoram")
AM_RANGE(0x0c0200, 0x0c0fff) AM_RAM
AM_RANGE(0x100000, 0x100001) AM_READ(equites_spriteram_kludge_r)
AM_RANGE(0x100000, 0x1001ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x100000, 0x100001) AM_READ(equites_spriteram_kludge_r)
AM_RANGE(0x140000, 0x1407ff) AM_READWRITE8(mcu_ram_r, mcu_ram_w, 0x00ff)
AM_RANGE(0x180000, 0x180001) AM_READ_PORT("IN1") AM_DEVWRITE8("soundlatch", generic_latch_8_device, write, 0x00ff)
AM_RANGE(0x180000, 0x180001) AM_SELECT(0x03c000) AM_DEVWRITE8_MOD("mainlatch", ls259_device, write_a3, rshift<13>, 0xff00)
@@ -659,9 +659,9 @@ static ADDRESS_MAP_START( equites_map, AS_PROGRAM, 16, equites_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( gekisou_map, AS_PROGRAM, 16, equites_state )
AM_IMPORT_FROM( equites_map )
AM_RANGE(0x040000, 0x040fff) AM_RAM AM_SHARE("nvram") // mainram is battery-backed
AM_RANGE(0x580000, 0x580001) AM_SELECT(0x020000) AM_WRITE(gekisou_unknown_bit_w)
AM_IMPORT_FROM( equites_map )
ADDRESS_MAP_END


@@ -65,10 +65,9 @@ static ADDRESS_MAP_START( ertictac_map, AS_PROGRAM, 32, ertictac_state )
AM_RANGE(0x00000000, 0x01ffffff) AM_READWRITE(archimedes_memc_logical_r, archimedes_memc_logical_w)
AM_RANGE(0x02000000, 0x02ffffff) AM_RAM AM_SHARE("physicalram") /* physical RAM - 16 MB for now, should be 512k for the A310 */

AM_RANGE(0x03000000, 0x033fffff) AM_READWRITE(archimedes_ioc_r, archimedes_ioc_w)
AM_RANGE(0x03340000, 0x0334001f) AM_READ(ertictac_podule_r)
AM_RANGE(0x033c0000, 0x033c001f) AM_READ(ertictac_podule_r)

AM_RANGE(0x03000000, 0x033fffff) AM_READWRITE(archimedes_ioc_r, archimedes_ioc_w)
AM_RANGE(0x03400000, 0x035fffff) AM_READWRITE(archimedes_vidc_r, archimedes_vidc_w)
AM_RANGE(0x03600000, 0x037fffff) AM_READWRITE(archimedes_memc_r, archimedes_memc_w)
AM_RANGE(0x03800000, 0x03ffffff) AM_ROM AM_REGION("maincpu", 0) AM_WRITE(archimedes_memc_page_w)
@@ -137,13 +137,13 @@ static ADDRESS_MAP_START( netwars_map, AS_PROGRAM, 8, espial_state )
AM_RANGE(0x7000, 0x7000) AM_DEVREADWRITE("watchdog", watchdog_timer_device, reset_r, reset_w)
AM_RANGE(0x7100, 0x7100) AM_WRITE(espial_master_interrupt_mask_w)
AM_RANGE(0x7200, 0x7200) AM_WRITE(espial_flipscreen_w)
AM_RANGE(0x8000, 0x801f) AM_RAM AM_SHARE("spriteram_1")
AM_RANGE(0x8000, 0x87ff) AM_RAM_WRITE(espial_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x8800, 0x880f) AM_RAM AM_SHARE("spriteram_3")
AM_RANGE(0x8000, 0x801f) AM_RAM AM_SHARE("spriteram_1")
AM_RANGE(0x8800, 0x8fff) AM_RAM_WRITE(espial_attributeram_w) AM_SHARE("attributeram")
AM_RANGE(0x8800, 0x880f) AM_RAM AM_SHARE("spriteram_3")
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(espial_colorram_w) AM_SHARE("colorram")
AM_RANGE(0x9000, 0x901f) AM_RAM AM_SHARE("spriteram_2")
AM_RANGE(0x9020, 0x903f) AM_RAM_WRITE(espial_scrollram_w) AM_SHARE("scrollram")
AM_RANGE(0x9000, 0x97ff) AM_RAM_WRITE(espial_colorram_w) AM_SHARE("colorram")
ADDRESS_MAP_END


@@ -501,8 +501,8 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START(europc_io, AS_IO, 8, europc_pc_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0060, 0x0063) AM_READWRITE(europc_pio_r, europc_pio_w)
AM_RANGE(0x0000, 0x00ff) AM_DEVICE("mb", pc_noppi_mb_device, map)
AM_RANGE(0x0060, 0x0063) AM_READWRITE(europc_pio_r, europc_pio_w)
AM_RANGE(0x0250, 0x025f) AM_READWRITE(europc_jim_r, europc_jim_w)
AM_RANGE(0x02e0, 0x02e0) AM_READ(europc_jim2_r)
ADDRESS_MAP_END
@@ -193,11 +193,11 @@ READ8_MEMBER(exerion_state::exerion_protection_r)

static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, exerion_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6008, 0x600b) AM_READ(exerion_protection_r)
AM_RANGE(0x6000, 0x67ff) AM_RAM AM_SHARE("main_ram")
AM_RANGE(0x6008, 0x600b) AM_READ(exerion_protection_r)
AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("videoram")
AM_RANGE(0x8800, 0x887f) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x8800, 0x8bff) AM_RAM
AM_RANGE(0x8880, 0x8bff) AM_RAM
AM_RANGE(0xa000, 0xa000) AM_READ_PORT("IN0")
AM_RANGE(0xa800, 0xa800) AM_READ_PORT("DSW0")
AM_RANGE(0xb000, 0xb000) AM_READ_PORT("DSW1")
@@ -218,32 +218,32 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( sidetrac_map, AS_PROGRAM, 8, exidy_state )
AM_IMPORT_FROM(exidy_map)
AM_RANGE(0x0800, 0x3fff) AM_ROM
AM_RANGE(0x4800, 0x4fff) AM_ROM AM_SHARE("characterram")
AM_RANGE(0x5200, 0x5200) AM_WRITE(targ_audio_1_w)
AM_RANGE(0x5201, 0x5201) AM_WRITE(spectar_audio_2_w)
AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("maincpu", 0x3f00)
AM_IMPORT_FROM(exidy_map)
ADDRESS_MAP_END


static ADDRESS_MAP_START( targ_map, AS_PROGRAM, 8, exidy_state )
AM_IMPORT_FROM(exidy_map)
AM_RANGE(0x0800, 0x3fff) AM_ROM
AM_RANGE(0x4800, 0x4fff) AM_RAM AM_SHARE("characterram")
AM_RANGE(0x5200, 0x5200) AM_WRITE(targ_audio_1_w)
AM_RANGE(0x5201, 0x5201) AM_WRITE(targ_audio_2_w)
AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("maincpu", 0x3f00)
AM_IMPORT_FROM(exidy_map)
ADDRESS_MAP_END


static ADDRESS_MAP_START( spectar_map, AS_PROGRAM, 8, exidy_state )
AM_IMPORT_FROM(exidy_map)
AM_RANGE(0x0800, 0x3fff) AM_ROM
AM_RANGE(0x4800, 0x4fff) AM_RAM AM_SHARE("characterram")
AM_RANGE(0x5200, 0x5200) AM_WRITE(targ_audio_1_w)
AM_RANGE(0x5201, 0x5201) AM_WRITE(spectar_audio_2_w)
AM_RANGE(0xff00, 0xffff) AM_ROM AM_REGION("maincpu", 0x3f00)
AM_IMPORT_FROM(exidy_map)
ADDRESS_MAP_END


@@ -270,23 +270,24 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( venture_map, AS_PROGRAM, 8, exidy_state )
AM_IMPORT_FROM(exidy_map)
AM_RANGE(0x4800, 0x4fff) AM_RAM AM_SHARE("characterram")
AM_RANGE(0x5200, 0x520f) AM_DEVREADWRITE("pia0", pia6821_device, read, write)
AM_RANGE(0x8000, 0xffff) AM_ROM
AM_IMPORT_FROM(exidy_map)
ADDRESS_MAP_END


static ADDRESS_MAP_START( pepper2_map, AS_PROGRAM, 8, exidy_state )
AM_IMPORT_FROM(exidy_map)
AM_RANGE(0x4800, 0x4fff) AM_NOP
AM_RANGE(0x5200, 0x520f) AM_DEVREADWRITE("pia0", pia6821_device, read, write)
AM_RANGE(0x6000, 0x6fff) AM_RAM AM_SHARE("characterram")
AM_RANGE(0x8000, 0xffff) AM_ROM
AM_IMPORT_FROM(exidy_map)
ADDRESS_MAP_END


static ADDRESS_MAP_START( fax_map, AS_PROGRAM, 8, exidy_state )
AM_IMPORT_FROM(exidy_map)
AM_RANGE(0x0400, 0x07ff) AM_RAM
AM_RANGE(0x1a00, 0x1a00) AM_READ_PORT("IN4")
AM_RANGE(0x1c00, 0x1c00) AM_READ_PORT("IN3")
@@ -296,7 +297,6 @@ static ADDRESS_MAP_START( fax_map, AS_PROGRAM, 8, exidy_state )
AM_RANGE(0x5213, 0x5217) AM_WRITENOP /* empty control lines on color/sound board */
AM_RANGE(0x6000, 0x6fff) AM_RAM AM_SHARE("characterram")
AM_RANGE(0x8000, 0xffff) AM_ROM
AM_IMPORT_FROM(exidy_map)
ADDRESS_MAP_END


@@ -740,6 +740,8 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16, expro02_state )
AM_IMPORT_FROM(expro02_video_base_map_noview2)

AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x200000, 0x2fffff) AM_ROM AM_REGION("maincpudata", 0)

@@ -752,12 +754,11 @@ static ADDRESS_MAP_START( galhustl_map, AS_PROGRAM, 16, expro02_state )
AM_RANGE(0xe80000, 0xe8ffff) AM_RAM

AM_RANGE(0x780000, 0x78001f) AM_NOP // prevent sprites being flipped

AM_IMPORT_FROM(expro02_video_base_map_noview2)

ADDRESS_MAP_END

static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16, expro02_state )
AM_IMPORT_FROM(expro02_video_base_map_noview2)

AM_RANGE(0x000000, 0x4fffff) AM_ROM
AM_RANGE(0x701000, 0x71ffff) AM_RAM
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("DSW1")
@@ -768,8 +769,6 @@ static ADDRESS_MAP_START( zipzap_map, AS_PROGRAM, 16, expro02_state )
AM_RANGE(0xc80000, 0xc8ffff) AM_RAM // main ram

AM_RANGE(0x780000, 0x78001f) AM_NOP // prevent sprites being flipped

AM_IMPORT_FROM(expro02_video_base_map_noview2)
ADDRESS_MAP_END

static ADDRESS_MAP_START( supmodel_map, AS_PROGRAM, 16, expro02_state )
@@ -515,6 +515,8 @@ static ADDRESS_MAP_START( fastinvaders_io_base, AS_IO, 8, fastinvaders_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( fastinvaders_6845_io, AS_IO, 8, fastinvaders_state )
AM_IMPORT_FROM(fastinvaders_io_base)

AM_RANGE(0x10, 0x1f) AM_DEVREADWRITE("dma8257", i8257_device, read, write)
AM_RANGE(0x20, 0x20) AM_DEVWRITE("6845", mc6845_device, address_w)
AM_RANGE(0x21, 0x21) AM_DEVREADWRITE("6845", mc6845_device, register_r, register_w)
@@ -531,12 +533,12 @@ static ADDRESS_MAP_START( fastinvaders_6845_io, AS_IO, 8, fastinvaders_state )
AM_RANGE(0xd0, 0xd0) AM_WRITE(io_d0_w) //ds13 irq5 clear
AM_RANGE(0xe0, 0xe0) AM_WRITE(io_e0_w) //ds14 irq4 clear
AM_RANGE(0xf0, 0xf0) AM_WRITE(io_f0_w) //ds15 irq6 clear

AM_IMPORT_FROM(fastinvaders_io_base)
ADDRESS_MAP_END


static ADDRESS_MAP_START( fastinvaders_8275_io, AS_IO, 8, fastinvaders_state )
AM_IMPORT_FROM(fastinvaders_io_base)

AM_RANGE( 0x20, 0x21 ) AM_DEVREADWRITE("8275", i8275_device, read, write)

AM_RANGE(0x10, 0x1f) AM_DEVREADWRITE("dma8257", i8257_device, read, write)
@@ -554,7 +556,6 @@ AM_RANGE(0x10, 0x1f) AM_DEVREADWRITE("dma8257", i8257_device, read, write)
AM_RANGE(0xd0, 0xd0) AM_WRITE(io_d0_w) //ds13 irq5 clear
AM_RANGE(0xe0, 0xe0) AM_WRITE(io_e0_w) //ds14 irq4 clear
AM_RANGE(0xf0, 0xf0) AM_WRITE(io_f0_w) //ds15 irq6 clear
AM_IMPORT_FROM(fastinvaders_io_base)
ADDRESS_MAP_END


@@ -329,8 +329,8 @@ cpu30_state(const machine_config &mconfig, device_type type, const char *tag)

static ADDRESS_MAP_START (cpu30_mem, AS_PROGRAM, 32, cpu30_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE (0x00000000, 0x00000007) AM_ROM AM_READ (bootvect_r) /* ROM mirror just during reset */
AM_RANGE (0x00000000, 0x00000007) AM_RAM AM_WRITE (bootvect_w) /* After first write we act as RAM */
AM_RANGE (0x00000000, 0x00000007) AM_ROM AM_READ (bootvect_r) /* ROM mirror just during reset */
// AM_RANGE (0x00000008, 0x003fffff) AM_RAM /* RAM installed in machine start */
AM_RANGE (0xff000000, 0xff7fffff) AM_ROM AM_REGION("roms", 0x000000)
AM_RANGE (0xff800c00, 0xff800dff) AM_DEVREADWRITE8("pit1", pit68230_device, read, write, 0xffffffff)
@@ -1204,8 +1204,8 @@ static ADDRESS_MAP_START( sc9_map, AS_PROGRAM, 8, fidel6502_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( sc9d_map, AS_PROGRAM, 8, fidel6502_state )
AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x1ff8) AM_READ(sc9d_input_r)
AM_IMPORT_FROM( sc9_map )
AM_RANGE(0xa000, 0xa007) AM_MIRROR(0x1ff8) AM_READ(sc9d_input_r)
ADDRESS_MAP_END


@@ -1274,8 +1274,8 @@ static ADDRESS_MAP_START( chesster_map, AS_PROGRAM, 8, fidel6502_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( kishon_map, AS_PROGRAM, 8, fidel6502_state )
AM_RANGE(0x2000, 0x2007) AM_MIRROR(0x1ff8) AM_READWRITE(fdesdis_input_r, kishon_control_w)
AM_IMPORT_FROM( chesster_map )
AM_RANGE(0x2000, 0x2007) AM_MIRROR(0x1ff8) AM_READWRITE(fdesdis_input_r, kishon_control_w)
ADDRESS_MAP_END


@@ -394,13 +394,13 @@ static ADDRESS_MAP_START( fex68k_map, AS_PROGRAM, 16, fidel68k_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( fex68km2_map, AS_PROGRAM, 16, fidel68k_state )
AM_RANGE(0x200000, 0x21ffff) AM_RAM
AM_IMPORT_FROM( fex68k_map )
AM_RANGE(0x200000, 0x21ffff) AM_RAM
ADDRESS_MAP_END

static ADDRESS_MAP_START( fex68km3_map, AS_PROGRAM, 16, fidel68k_state )
AM_RANGE(0x200000, 0x20ffff) AM_RAM
AM_IMPORT_FROM( fex68k_map )
AM_RANGE(0x200000, 0x20ffff) AM_RAM
ADDRESS_MAP_END


@@ -356,8 +356,8 @@ static ADDRESS_MAP_START( flashbank_map, AS_PROGRAM, 32, funkball_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START(funkball_io, AS_IO, 32, funkball_state)
AM_RANGE(0x0020, 0x0023) AM_READWRITE8(io20_r, io20_w, 0xffff0000)
AM_IMPORT_FROM(pcat32_io_common)
AM_RANGE(0x0020, 0x0023) AM_READWRITE8(io20_r, io20_w, 0xffff0000)
AM_RANGE(0x00e8, 0x00ef) AM_NOP

AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE16("ide", ide_controller_device, read_cs0, write_cs0, 0xffffffff)
@@ -83,8 +83,8 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( maniacsq_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_SHARE("paletteram") /* Palette */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_SHARE("vregs") /* Video Registers */
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0") /* DSW #1 + Input 1P */
@@ -482,8 +482,8 @@ static ADDRESS_MAP_START( play2000_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x03ffff) AM_ROM /* ROM */
AM_RANGE(0x100000, 0x100001) AM_READ_PORT("IN0") /* Coins + other buttons? */
// AM_RANGE(0x110000, 0x110001) ?
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x214000, 0x214fff) AM_RAM_WRITE(gaelco2_palette_w) AM_SHARE("paletteram") /* Palette */
AM_RANGE(0x215000, 0x217fff) AM_RAM /* Written to, but unused? */
AM_RANGE(0x218000, 0x218003) AM_RAM /* Written to, but unused? */
@@ -639,8 +639,8 @@ READ16_MEMBER(bang_state::p2_gun_y){return (m_light1_y->read() * 240 / 0x100) -

static ADDRESS_MAP_START( bang_map, AS_PROGRAM, 16, bang_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_cg1v_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_cg1v_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_SHARE("paletteram") /* Palette */
AM_RANGE(0x218004, 0x218009) AM_READONLY /* Video Registers */
AM_RANGE(0x218004, 0x218007) AM_WRITEONLY AM_SHARE("vregs") /* Video Registers */
@@ -842,8 +842,8 @@ ROM_END

static ADDRESS_MAP_START( alighunt_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_SHARE("paletteram") /* Palette */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_SHARE("vregs") /* Video Registers */
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0") /* DSW #1 + Input 1P */
@@ -1108,8 +1108,8 @@ ROM_END

static ADDRESS_MAP_START( touchgo_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_SHARE("paletteram") /* Palette */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_SHARE("vregs") /* Video Registers */
AM_RANGE(0x300000, 0x300001) AM_READ_PORT("IN0") /* DSW #1 + Input 1P */
@@ -1429,8 +1429,8 @@ ROM_END

static ADDRESS_MAP_START( snowboar_map, AS_PROGRAM, 16, gaelco2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_cg1v_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_cg1v_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_SHARE("paletteram") /* Palette */
AM_RANGE(0x212000, 0x213fff) AM_RAM /* Extra RAM */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_SHARE("vregs") /* Video Registers */
@@ -1657,8 +1657,8 @@ ROM_END

static ADDRESS_MAP_START( wrally2_map, AS_PROGRAM, 16, wrally2_state )
AM_RANGE(0x000000, 0x0fffff) AM_ROM /* ROM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x200000, 0x20ffff) AM_RAM_WRITE(gaelco2_vram_w) AM_SHARE("spriteram") /* Video RAM */
AM_RANGE(0x202890, 0x2028ff) AM_DEVREADWRITE("gaelco", gaelco_gae1_device, gaelcosnd_r, gaelcosnd_w) /* Sound Registers */
AM_RANGE(0x210000, 0x211fff) AM_RAM_WRITE(gaelco2_palette_w) AM_SHARE("paletteram") /* Palette */
AM_RANGE(0x212000, 0x213fff) AM_RAM /* Extra RAM */
AM_RANGE(0x218004, 0x218009) AM_RAM AM_SHARE("vregs") /* Video Registers */