@@ -684,8 +684,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gaelco3d_state )
AM_RANGE(0x510102, 0x510103) AM_SELECT(0x000038) AM_DEVWRITE8_MOD("mainlatch", ls259_device, write_d0, rshift<2>, 0x00ff)
AM_RANGE(0x510104, 0x510105) AM_DEVWRITE8("serial", gaelco_serial_device, data_w, 0x00ff)
AM_RANGE(0x510106, 0x510107) AM_SELECT(0x000070) AM_DEVWRITE8_MOD("outlatch", ls259_device, write_d0, rshift<3>, 0x00ff)
AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE(tms_comm_w) AM_SHARE("tms_comm_base")
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM AM_SHARE("m68k_ram_base")
AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE(tms_comm_w) AM_SHARE("tms_comm_base")
ADDRESS_MAP_END


@@ -703,8 +703,8 @@ static ADDRESS_MAP_START( main020_map, AS_PROGRAM, 32, gaelco3d_state )
AM_RANGE(0x510100, 0x510103) AM_SELECT(0x000038) AM_DEVWRITE8_MOD("mainlatch", ls259_device, write_d0, rshift<1>, 0x000000ff)
AM_RANGE(0x510104, 0x510107) AM_DEVWRITE8("serial", gaelco_serial_device, data_w, 0x00ff0000)
AM_RANGE(0x510104, 0x510107) AM_SELECT(0x000070) AM_DEVWRITE8_MOD("outlatch", ls259_device, write_d0, rshift<2>, 0x000000ff)
AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE16(tms_comm_w, 0xffffffff) AM_SHARE("tms_comm_base")
AM_RANGE(0xfe0000, 0xfeffff) AM_RAM AM_SHARE("m68k_ram_base")
AM_RANGE(0xfe7f80, 0xfe7fff) AM_WRITE16(tms_comm_w, 0xffffffff) AM_SHARE("tms_comm_base")
ADDRESS_MAP_END

static ADDRESS_MAP_START( tms_map, AS_PROGRAM, 32, gaelco3d_state )
@@ -869,8 +869,8 @@ static ADDRESS_MAP_START( galaga_map, AS_PROGRAM, 8, galaga_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( gatsbee_main_map, AS_PROGRAM, 8, galaga_state )
AM_RANGE(0x0000, 0x0007) AM_MIRROR(0x3ff8) AM_DEVWRITE("extralatch", ls259_device, write_d0)
AM_IMPORT_FROM(galaga_map)
AM_RANGE(0x0000, 0x0007) AM_MIRROR(0x3ff8) AM_DEVWRITE("extralatch", ls259_device, write_d0)
ADDRESS_MAP_END


@@ -1821,6 +1821,7 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( anteatergg_map, AS_PROGRAM, 8, galaxian_state )
ADDRESS_MAP_UNMAP_HIGH
AM_IMPORT_FROM(galaxian_map_discrete)
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x4fff) AM_RAM
AM_RANGE(0x5000, 0x53ff) AM_RAM AM_RAM_WRITE(galaxian_videoram_w) AM_SHARE("videoram")
@@ -1837,7 +1838,6 @@ static ADDRESS_MAP_START( anteatergg_map, AS_PROGRAM, 8, galaxian_state )
AM_RANGE(0x7006, 0x7006) AM_MIRROR(0x07f8) AM_WRITE(galaxian_flip_screen_x_w)
AM_RANGE(0x7007, 0x7007) AM_MIRROR(0x07f8) AM_WRITE(galaxian_flip_screen_y_w)
AM_RANGE(0x7800, 0x7800) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r)
AM_IMPORT_FROM(galaxian_map_discrete)
ADDRESS_MAP_END

/* map derived from schematics */
@@ -540,9 +540,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( dkongjrmc_map, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x0000, 0x5fff) AM_ROM
AM_RANGE(0x6000, 0x6fff) AM_RAM
AM_RANGE(0x7000, 0x73ff) AM_RAM_WRITE(galaxold_videoram_w)
AM_RANGE(0x7000, 0x70ff) AM_RAM_WRITE(galaxold_attributesram_w) AM_SHARE("attributesram")
AM_RANGE(0x7100, 0x71ff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x7000, 0x73ff) AM_RAM_WRITE(galaxold_videoram_w)
AM_RANGE(0x7400, 0x77ff) AM_RAM_WRITE(galaxold_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x7800, 0x7800) AM_READ_PORT("DSW")
AM_RANGE(0x7801, 0x7801) AM_WRITE(galaxold_nmi_enable_w)
@@ -649,9 +649,6 @@ static ADDRESS_MAP_START( hunchbkg, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x1504, 0x1507) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w)
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
AM_RANGE(0x1580, 0x1587) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, sound_w)
AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, noise_enable_w)
AM_RANGE(0x1585, 0x1585) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, fire_enable_w)
AM_RANGE(0x1586, 0x1587) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, vol_w)
AM_RANGE(0x1600, 0x1600) AM_MIRROR(0x6000) AM_READ_PORT("DSW0")
AM_RANGE(0x1601, 0x1601) AM_MIRROR(0x6000) AM_WRITE(galaxold_nmi_enable_w)
AM_RANGE(0x1604, 0x1604) AM_MIRROR(0x6000) AM_WRITE(galaxold_stars_enable_w)
@@ -677,9 +674,6 @@ static ADDRESS_MAP_START( spcwarp, AS_PROGRAM, 8, galaxold_state )
AM_RANGE(0x1504, 0x1507) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, lfo_freq_w)
AM_RANGE(0x1580, 0x1580) AM_MIRROR(0x6000) AM_READ_PORT("IN1")
AM_RANGE(0x1580, 0x1587) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, sound_w)
AM_RANGE(0x1583, 0x1583) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, noise_enable_w)
AM_RANGE(0x1585, 0x1585) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, fire_enable_w)
AM_RANGE(0x1586, 0x1587) AM_MIRROR(0x6000) AM_DEVWRITE("cust", galaxian_sound_device, vol_w)
// everything else in the $16xx range is moved to $17xx
AM_RANGE(0x1680, 0x1680) AM_MIRROR(0x6000) AM_DEVREAD("watchdog", watchdog_timer_device, reset_r) AM_DEVWRITE("cust", galaxian_sound_device, pitch_w)
AM_RANGE(0x1700, 0x1700) AM_MIRROR(0x6000) AM_READ_PORT("DSW0")
@@ -560,10 +560,10 @@ WRITE_LINE_MEMBER(galgames_cart_device::eeprom_cs_write)
// SLOT implementation

DEVICE_ADDRESS_MAP_START( slot_map, 16, galgames_slot_device )
AM_RANGE( 0x000000, 0x03ffff ) AM_READWRITE(rom0_or_ram_r, ram_w) AM_SHARE("ram")
AM_RANGE( 0x000000, 0x1fffff ) AM_READ(rom0_r)
AM_RANGE( 0x200000, 0x23ffff ) AM_READWRITE(rom_or_ram_r, ram_w)
AM_RANGE( 0x000000, 0x03ffff ) AM_READWRITE(rom0_or_ram_r, ram_w) AM_SHARE("ram")
AM_RANGE( 0x200000, 0x3fffff ) AM_READ(rom_r)
AM_RANGE( 0x200000, 0x23ffff ) AM_READWRITE(rom_or_ram_r, ram_w)
ADDRESS_MAP_END

galgames_slot_device::galgames_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
@@ -297,8 +297,8 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, gauntlet_state )
AM_RANGE(0x900000, 0x901fff) AM_MIRROR(0x2c8000) AM_RAM_DEVWRITE("playfield", tilemap_device, write16) AM_SHARE("playfield")
AM_RANGE(0x902000, 0x903fff) AM_MIRROR(0x2c8000) AM_RAM AM_SHARE("mob")
AM_RANGE(0x904000, 0x904fff) AM_MIRROR(0x2c8000) AM_RAM
AM_RANGE(0x905f6e, 0x905f6f) AM_MIRROR(0x2c8000) AM_RAM_WRITE(gauntlet_yscroll_w) AM_SHARE("yscroll")
AM_RANGE(0x905000, 0x905f7f) AM_MIRROR(0x2c8000) AM_RAM_DEVWRITE("alpha", tilemap_device, write16) AM_SHARE("alpha")
AM_RANGE(0x905f6e, 0x905f6f) AM_MIRROR(0x2c8000) AM_RAM_WRITE(gauntlet_yscroll_w) AM_SHARE("yscroll")
AM_RANGE(0x905f80, 0x905fff) AM_MIRROR(0x2c8000) AM_RAM AM_SHARE("mob:slip")
AM_RANGE(0x910000, 0x9107ff) AM_MIRROR(0x2cf800) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0x930000, 0x930001) AM_MIRROR(0x2cfffe) AM_WRITE(gauntlet_xscroll_w) AM_SHARE("xscroll")
@@ -401,8 +401,8 @@ static ADDRESS_MAP_START( gepoker_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x60fe, 0x60fe) AM_WRITE(banksel_w<0>)
AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w)
AM_RANGE(0x8000, 0xbfff) AM_ROM /* space for diagnostic ROM? */
AM_RANGE(0xe000, 0xffff) AM_ROM
AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w)
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END

static ADDRESS_MAP_START( amuse1_map, AS_PROGRAM, 8, gei_state )
@@ -418,11 +418,12 @@ static ADDRESS_MAP_START( amuse1_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x5800, 0x5fff) AM_ROM
AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w)
AM_RANGE(0x8000, 0xbfff) AM_ROM /* space for diagnostic ROM? */
AM_RANGE(0xe000, 0xffff) AM_ROM
AM_RANGE(0xc000, 0xffff) AM_RAM_WRITE(gei_bitmap_w)
AM_RANGE(0xe000, 0xffff) AM_ROM
ADDRESS_MAP_END

static ADDRESS_MAP_START( findout_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0xffff) AM_READ(catchall)
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
@@ -440,10 +441,10 @@ static ADDRESS_MAP_START( findout_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank")
AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w)
AM_RANGE(0xc000, 0xffff) AM_WRITE(gei_bitmap_w)
AM_RANGE(0x0000, 0xffff) AM_READ(catchall)
ADDRESS_MAP_END

static ADDRESS_MAP_START( quizvid_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x0000, 0xffff) AM_READ(catchall)
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4800, 0x4803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write)
@@ -458,7 +459,6 @@ static ADDRESS_MAP_START( quizvid_map, AS_PROGRAM, 8, gei_state )
AM_RANGE(0x8000, 0xffff) AM_ROMBANK("rombank")
AM_RANGE(0x8000, 0x8002) AM_WRITE(gei_drawctrl_w)
AM_RANGE(0xc000, 0xffff) AM_WRITE(gei_bitmap_w)
AM_RANGE(0x0000, 0xffff) AM_READ(catchall)
ADDRESS_MAP_END

static ADDRESS_MAP_START( suprpokr_map, AS_PROGRAM, 8, gei_state )
@@ -305,11 +305,11 @@ ADDRESS_MAP_END
bits are usually routed through the mapper first.
*/
static ADDRESS_MAP_START(crumap, AS_IO, 8, geneve_state)
AM_RANGE(0x0000, 0x0003) AM_DEVREAD(TI_TMS9901_TAG, tms9901_device, read)
AM_RANGE(0x0000, 0x0fff) AM_READ( cruread )
AM_RANGE(0x0000, 0x0003) AM_DEVREAD(TI_TMS9901_TAG, tms9901_device, read)

AM_RANGE(0x0000, 0x001f) AM_DEVWRITE(TI_TMS9901_TAG, tms9901_device, write)
AM_RANGE(0x0000, 0x7fff) AM_WRITE( cruwrite )
AM_RANGE(0x0000, 0x001f) AM_DEVWRITE(TI_TMS9901_TAG, tms9901_device, write)
ADDRESS_MAP_END

/* TI joysticks. The keyboard is implemented in genboard.c. */
@@ -683,8 +683,8 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( gladiatr_cpu1_io, AS_IO, 8, gladiatr_state )
AM_RANGE(0xc004, 0xc004) AM_WRITE(gladiatr_irq_patch_w) /* !!! patch to 2nd CPU IRQ !!! */
AM_RANGE(0xc000, 0xc007) AM_DEVWRITE("mainlatch", ls259_device, write_d0)
AM_RANGE(0xc004, 0xc004) AM_WRITE(gladiatr_irq_patch_w) /* !!! patch to 2nd CPU IRQ !!! */
AM_RANGE(0xc09e, 0xc09f) AM_DEVREADWRITE("ucpu", upi41_cpu_device, upi41_master_r, upi41_master_w)
AM_RANGE(0xc0bf, 0xc0bf) AM_NOP // watchdog_reset_w doesn't work
ADDRESS_MAP_END
@@ -108,9 +108,9 @@ static ADDRESS_MAP_START( diamond_map, AS_PROGRAM, 8, gng_state )
AM_RANGE(0x3d01, 0x3d01) AM_WRITENOP // ?
AM_RANGE(0x3e00, 0x3e00) AM_WRITE(gng_bankswitch_w)
AM_RANGE(0x4000, 0x5fff) AM_ROMBANK("bank1")
AM_RANGE(0x6000, 0xffff) AM_ROM
AM_RANGE(0x6000, 0x6000) AM_READ(diamond_hack_r)
AM_RANGE(0x6048, 0x6048) AM_WRITENOP // ?
AM_RANGE(0x6000, 0xffff) AM_ROM
ADDRESS_MAP_END


@@ -616,8 +616,8 @@ static ADDRESS_MAP_START( ncb3_map, AS_PROGRAM, 8, cb3_state )

AM_RANGE(0xf800, 0xf803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */
AM_RANGE(0xf810, 0xf813) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* Input Ports */
AM_RANGE(0xf822, 0xf822) AM_WRITE(goldstar_fa00_w) // hack (connected to ppi output port?, needed for colour banking)
AM_RANGE(0xf820, 0xf823) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) /* Input/Output Ports */
AM_RANGE(0xf822, 0xf822) AM_WRITE(goldstar_fa00_w) // hack (connected to ppi output port?, needed for colour banking)

AM_RANGE(0xf830, 0xf830) AM_DEVREADWRITE("aysnd", ay8910_device, data_r, data_w)
AM_RANGE(0xf840, 0xf840) AM_DEVWRITE("aysnd", ay8910_device, address_w)
@@ -456,13 +456,13 @@ static ADDRESS_MAP_START( common_io_map, AS_IO, 16, goodejan_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( totmejan_io_map, AS_IO, 16, goodejan_state )
AM_RANGE(0x8000, 0x804f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write)
AM_IMPORT_FROM(common_io_map)
AM_RANGE(0x8000, 0x804f) AM_DEVREADWRITE("crtc", seibu_crtc_device, read, write)
ADDRESS_MAP_END

static ADDRESS_MAP_START( goodejan_io_map, AS_IO, 16, goodejan_state )
AM_RANGE(0x8000, 0x807f) AM_DEVREADWRITE_MOD("crtc", seibu_crtc_device, read, write, xor<0x20>)
AM_IMPORT_FROM(common_io_map)
AM_RANGE(0x8000, 0x807f) AM_DEVREADWRITE_MOD("crtc", seibu_crtc_device, read, write, xor<0x20>)
ADDRESS_MAP_END

static INPUT_PORTS_START( goodejan )
@@ -265,8 +265,8 @@ static ADDRESS_MAP_START( twcup94_map, AS_PROGRAM, 16, gstriker_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( gstriker_map, AS_PROGRAM, 16, gstriker_state )
AM_RANGE(0x200060, 0x200063) AM_DEVREADWRITE8("acia", acia6850_device, read, write, 0x00ff)
AM_IMPORT_FROM(twcup94_map)
AM_RANGE(0x200060, 0x200063) AM_DEVREADWRITE8("acia", acia6850_device, read, write, 0x00ff)
ADDRESS_MAP_END

static ADDRESS_MAP_START( sound_map, AS_PROGRAM, 8, gstriker_state )
@@ -129,12 +129,13 @@ static ADDRESS_MAP_START( gts1_data, AS_DATA, 8, gts1_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( gts1_io, AS_IO, 8, gts1_state )
AM_RANGE(0x0000, 0x00ff) AM_READ ( gts1_io_r ) AM_WRITE( gts1_io_w ) // catch undecoded I/O accesss

AM_RANGE(0x0020, 0x002f) AM_DEVREADWRITE ( "u4", ra17xx_device, io_r, io_w ) // (U4) solenoid
AM_RANGE(0x0030, 0x003f) AM_DEVREADWRITE ( "u3", r10696_device, io_r, io_w ) // (U3) solenoid + dips
AM_RANGE(0x0040, 0x004f) AM_DEVREADWRITE ( "u5", ra17xx_device, io_r, io_w ) // (U5) switch matrix
AM_RANGE(0x0060, 0x006f) AM_DEVREADWRITE ( "u2", r10696_device, io_r, io_w ) // (U2) NVRAM io chip
AM_RANGE(0x00d0, 0x00df) AM_DEVREADWRITE ( "u6", r10788_device, io_r, io_w ) // (U6) display chip
AM_RANGE(0x0000, 0x00ff) AM_READ ( gts1_io_r ) AM_WRITE( gts1_io_w ) // catch undecoded I/O accesss
ADDRESS_MAP_END

static INPUT_PORTS_START( gts1_dips )
@@ -1637,6 +1637,8 @@ static ADDRESS_MAP_START( halleys_map, AS_PROGRAM, 8, halleys_state )
AM_RANGE(0x1000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xfeff) AM_RAM // work ram

AM_RANGE(0xff00, 0xffbf) AM_RAM AM_SHARE("io_ram") // I/O write fall-through

AM_RANGE(0xff66, 0xff66) AM_READ(collision_id_r) // HACK: collision detection bypass(Halley's Comet only)
AM_RANGE(0xff71, 0xff71) AM_READ(blitter_status_r)
AM_RANGE(0xff80, 0xff83) AM_READ(io_mirror_r)
@@ -1650,7 +1652,6 @@ static ADDRESS_MAP_START( halleys_map, AS_PROGRAM, 8, halleys_state )
AM_RANGE(0xff96, 0xff96) AM_READ_PORT("DSW2") // dipswitch 3
AM_RANGE(0xff97, 0xff97) AM_READ_PORT("DSW3") // dipswitch 2
AM_RANGE(0xff9c, 0xff9c) AM_WRITE(firq_ack_w)
AM_RANGE(0xff00, 0xffbf) AM_RAM AM_SHARE("io_ram") // I/O write fall-through

AM_RANGE(0xffc0, 0xffdf) AM_READWRITE(paletteram_r, paletteram_w)
AM_RANGE(0xffe0, 0xffff) AM_READ(vector_r)
@@ -694,9 +694,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( ds3_data_map, AS_DATA, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("adsp_data")
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(hdds3_special_r, hdds3_special_w)
AM_RANGE(0x3800, 0x3bff) AM_RAM /* internal RAM */
AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(hdds3_control_r, hdds3_control_w) /* adsp control regs */
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(hdds3_special_r, hdds3_special_w)
ADDRESS_MAP_END


@@ -707,9 +707,9 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( ds3sdsp_data_map, AS_DATA, 16, harddriv_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(hdds3_sdsp_special_r, hdds3_sdsp_special_w)
AM_RANGE(0x3800, 0x39ff) AM_RAM /* internal RAM */
AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(hdds3_sdsp_control_r, hdds3_sdsp_control_w)
AM_RANGE(0x2000, 0x3fff) AM_READWRITE(hdds3_sdsp_special_r, hdds3_sdsp_special_w)
ADDRESS_MAP_END


@@ -121,6 +121,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START(hec2hrp_mem, AS_PROGRAM, 8, hec2hrp_state )
/*****************************************************************************/
ADDRESS_MAP_UNMAP_HIGH
/* Main ROM page*/
AM_RANGE(0x0000,0x3fff) AM_ROM

/* Hardware address mapping*/
AM_RANGE(0x0800,0x0808) AM_WRITE(hector_switch_bank_w)/* Bank management*/
AM_RANGE(0x1000,0x1000) AM_WRITE(hector_color_a_w) /* Color c0/c1*/
@@ -130,9 +133,6 @@ static ADDRESS_MAP_START(hec2hrp_mem, AS_PROGRAM, 8, hec2hrp_state )
AM_RANGE(0x3000,0x3000) AM_READWRITE(hector_cassette_r, hector_sn_3000_w)/* Write necessary*/
AM_RANGE(0x3800,0x3807) AM_READWRITE(hector_keyboard_r, hector_keyboard_w) /* Keyboard*/

/* Main ROM page*/
AM_RANGE(0x0000,0x3fff) AM_ROM

/* Video br mapping*/
AM_RANGE(0x4000,0x49ff) AM_RAM AM_SHARE("videoram")
/* continous RAM*/
@@ -145,6 +145,9 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START(hec2hrx_mem, AS_PROGRAM, 8, hec2hrp_state )
/*****************************************************************************/
ADDRESS_MAP_UNMAP_HIGH
/* Main ROM page*/
AM_RANGE(0x0000,0x3fff) AM_ROMBANK("bank2")

/* Hardware address mapping*/
AM_RANGE(0x0800,0x0808) AM_WRITE(hector_switch_bank_w)/* Bank management*/
AM_RANGE(0x1000,0x1000) AM_WRITE(hector_color_a_w) /* Color c0/c1*/
@@ -154,9 +157,6 @@ static ADDRESS_MAP_START(hec2hrx_mem, AS_PROGRAM, 8, hec2hrp_state )
AM_RANGE(0x3000,0x3000) AM_READWRITE(hector_cassette_r, hector_sn_3000_w)/* Write necessary*/
AM_RANGE(0x3800,0x3807) AM_READWRITE(hector_keyboard_r, hector_keyboard_w) /* Keyboard*/

/* Main ROM page*/
AM_RANGE(0x0000,0x3fff) AM_ROMBANK("bank2")

/* Video br mapping*/
AM_RANGE(0x4000,0x49ff) AM_RAM AM_SHARE("videoram")
/* continous RAM*/
@@ -461,8 +461,8 @@ static ADDRESS_MAP_START( hikaru_map, AS_PROGRAM, 64, hikaru_state )
AM_RANGE(0x14000000, 0x140000ff) AM_NOP // Master/Slave COMM
AM_RANGE(0x14000100, 0x143fffff) AM_RAM // GPU command RAM
AM_RANGE(0x15000000, 0x150000ff) AM_NOP // GPU Regs
AM_RANGE(0x16001000, 0x163fffff) AM_RAM // ? \ these two overlap [selected by 040000xx = 0x04,0x06,0x40]
AM_RANGE(0x16010000, 0x17ffffff) AM_RAM // Slave Work RAM
AM_RANGE(0x16001000, 0x163fffff) AM_RAM // ? \ these two overlap [selected by 040000xx = 0x04,0x06,0x40]
// Area 6
AM_RANGE(0x18001000, 0x1800101f) AM_NOP // unknown
AM_RANGE(0x1a000000, 0x1a000107) AM_NOP // GPU Regs
@@ -256,6 +256,9 @@ READ8_MEMBER(hitpoker_state::test_r)

/* overlap empty rom addresses */
static ADDRESS_MAP_START( hitpoker_map, AS_PROGRAM, 8, hitpoker_state )
AM_RANGE(0x0000, 0xbdff) AM_ROM
AM_RANGE(0xbf00, 0xffff) AM_ROM

AM_RANGE(0x0000, 0x00ff) AM_RAM // stack ram
AM_RANGE(0x1000, 0x103f) AM_RAM // internal I/O
AM_RANGE(0x8000, 0xb5ff) AM_READWRITE(hitpoker_vram_r,hitpoker_vram_w)
@@ -273,8 +276,6 @@ static ADDRESS_MAP_START( hitpoker_map, AS_PROGRAM, 8, hitpoker_state )
// AM_RANGE(0xbe00, 0xbeff) AM_READ(test_r)
AM_RANGE(0xc000, 0xdfff) AM_READWRITE(hitpoker_cram_r,hitpoker_cram_w)
AM_RANGE(0xe000, 0xefff) AM_READWRITE(hitpoker_paletteram_r,hitpoker_paletteram_w)
AM_RANGE(0x0000, 0xbdff) AM_ROM
AM_RANGE(0xbf00, 0xffff) AM_ROM
ADDRESS_MAP_END

static ADDRESS_MAP_START( hitpoker_io, AS_IO, 8, hitpoker_state )
@@ -223,8 +223,8 @@ required_device<scc8530_device> m_sccterm;

static ADDRESS_MAP_START (hk68v10_mem, AS_PROGRAM, 16, hk68v10_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE (0x000000, 0x000007) AM_ROM AM_READ (bootvect_r) /* ROM mirror just durin reset */
AM_RANGE (0x000000, 0x000007) AM_RAM AM_WRITE (bootvect_w) /* After first write we act as RAM */
AM_RANGE (0x000000, 0x000007) AM_ROM AM_READ (bootvect_r) /* ROM mirror just durin reset */
AM_RANGE (0x000008, 0x1fffff) AM_RAM /* 2 Mb RAM */
AM_RANGE (0xFC0000, 0xFC3fff) AM_ROM /* System EPROM Area 16Kb HBUG */
AM_RANGE (0xFC4000, 0xFDffff) AM_ROM /* System EPROM Area an additional 112Kb for System ROM */
@@ -206,57 +206,57 @@ ADDRESS_MAP_END

// 9000/320
static ADDRESS_MAP_START(hp9k320_map, AS_PROGRAM, 32, hp9k3xx_state)
AM_IMPORT_FROM(hp9k3xx_common)

AM_RANGE(0xffe00000, 0xffefffff) AM_READWRITE(buserror_r, buserror_w)
AM_RANGE(0xfff00000, 0xffffffff) AM_RAM

AM_IMPORT_FROM(hp9k3xx_common)
ADDRESS_MAP_END

// 9000/330 and 9000/340
static ADDRESS_MAP_START(hp9k330_map, AS_PROGRAM, 32, hp9k3xx_state)
AM_IMPORT_FROM(hp9k3xx_common)

AM_RANGE(0xffb00000, 0xffbfffff) AM_READWRITE(buserror_r, buserror_w)
AM_RANGE(0xffc00000, 0xffffffff) AM_RAM

AM_IMPORT_FROM(hp9k3xx_common)
ADDRESS_MAP_END

// 9000/332, with built-in medium-res video
static ADDRESS_MAP_START(hp9k332_map, AS_PROGRAM, 32, hp9k3xx_state)
AM_IMPORT_FROM(hp9k3xx_common)

AM_RANGE(0x00200000, 0x002fffff) AM_RAM AM_SHARE("vram") // 98544 mono framebuffer
AM_RANGE(0x00560000, 0x00563fff) AM_ROM AM_REGION("graphics", 0x0000) // 98544 mono ROM

AM_RANGE(0xffb00000, 0xffbfffff) AM_READWRITE(buserror_r, buserror_w)
AM_RANGE(0xffc00000, 0xffffffff) AM_RAM

AM_IMPORT_FROM(hp9k3xx_common)
ADDRESS_MAP_END

// 9000/370 - 8 MB RAM standard
static ADDRESS_MAP_START(hp9k370_map, AS_PROGRAM, 32, hp9k3xx_state)
AM_IMPORT_FROM(hp9k3xx_common)

AM_RANGE(0xff700000, 0xff7fffff) AM_READWRITE(buserror_r, buserror_w)
AM_RANGE(0xff800000, 0xffffffff) AM_RAM

AM_IMPORT_FROM(hp9k3xx_common)
ADDRESS_MAP_END

// 9000/380 - '040
static ADDRESS_MAP_START(hp9k380_map, AS_PROGRAM, 32, hp9k3xx_state)
AM_IMPORT_FROM(hp9k3xx_common)

AM_RANGE(0x0051a000, 0x0051afff) AM_READWRITE(buserror_r, buserror_w) // no "Alpha display"

AM_RANGE(0xc0000000, 0xff7fffff) AM_READWRITE(buserror_r, buserror_w)
AM_RANGE(0xff800000, 0xffffffff) AM_RAM

AM_IMPORT_FROM(hp9k3xx_common)
ADDRESS_MAP_END

// 9000/382 - onboard VGA compatible video (where?)
static ADDRESS_MAP_START(hp9k382_map, AS_PROGRAM, 32, hp9k3xx_state)
AM_IMPORT_FROM(hp9k3xx_common)

AM_RANGE(0xffb00000, 0xffbfffff) AM_READWRITE(buserror_r, buserror_w)
AM_RANGE(0xffc00000, 0xffffffff) AM_RAM

AM_RANGE(0x0051a000, 0x0051afff) AM_READWRITE(buserror_r, buserror_w) // no "Alpha display"

AM_IMPORT_FROM(hp9k3xx_common)
ADDRESS_MAP_END

static ADDRESS_MAP_START(iocpu_map, AS_PROGRAM, 8, hp9k3xx_state)
@@ -467,6 +467,9 @@ static ADDRESS_MAP_START(hp_ipc_mem_outer, AS_PROGRAM, 16, hp_ipc_state)
ADDRESS_MAP_END

static ADDRESS_MAP_START(hp_ipc_mem_inner, AS_PROGRAM, 16, hp_ipc_state)
// bus error handler
AM_RANGE(0x0000000, 0x1FFFFFF) AM_READWRITE(trap_r, trap_w)

// user mode
AM_RANGE(0x1000000, 0x17FFFFF) AM_READWRITE(ram_r, ram_w)
AM_RANGE(0x1800000, 0x187FFFF) AM_ROM AM_REGION("maincpu", 0)
@@ -490,8 +493,6 @@ static ADDRESS_MAP_START(hp_ipc_mem_inner, AS_PROGRAM, 16, hp_ipc_state)
AM_RANGE(0x0700000, 0x07FFFFF) AM_UNMAP // External I/O
AM_RANGE(0x0800000, 0x0FFFFFF) AM_READWRITE(ram_r, ram_w)

// bus error handler
AM_RANGE(0x0000000, 0x1FFFFFF) AM_READWRITE(trap_r, trap_w)
ADDRESS_MAP_END

static INPUT_PORTS_START(hp_ipc)
@@ -402,9 +402,9 @@ static ADDRESS_MAP_START( slave_memory, AS_PROGRAM, 8, hvyunit_state )
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("slave_bank")
AM_RANGE(0xc000, 0xc3ff) AM_RAM_WRITE(hu_videoram_w) AM_SHARE("videoram")
AM_RANGE(0xc400, 0xc7ff) AM_RAM_WRITE(hu_colorram_w) AM_SHARE("colorram")
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xd000, 0xd1ff) AM_RAM_DEVWRITE("palette", palette_device, write8_ext) AM_SHARE("palette_ext")
AM_RANGE(0xd800, 0xd9ff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
AM_RANGE(0xd000, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xffff) AM_RAM AM_SHARE("share1")
ADDRESS_MAP_END

@@ -573,8 +573,8 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START(ibmpcjx_io, AS_IO, 8, pcjr_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x01ff, 0x01ff) AM_READWRITE(pcjx_port_1ff_r, pcjx_port_1ff_w)
AM_IMPORT_FROM( ibmpcjr_io )
AM_RANGE(0x01ff, 0x01ff) AM_READWRITE(pcjx_port_1ff_r, pcjx_port_1ff_w)
ADDRESS_MAP_END

MACHINE_CONFIG_START(pcjr_state::ibmpcjr)
@@ -2589,6 +2589,8 @@ static ADDRESS_MAP_START( drgnwrld, AS_PROGRAM, 16, igs011_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( drgnwrld_igs012, AS_PROGRAM, 16, igs011_state )
AM_IMPORT_FROM(drgnwrld)

// IGS012
AM_RANGE( 0x001600, 0x00160f ) AM_WRITE(igs012_prot_swap_w ) AM_MIRROR(0x01c000) // swap (a5 / 55)
AM_RANGE( 0x001610, 0x00161f ) AM_READ(igs012_prot_r ) AM_MIRROR(0x01c000) // read (mode 0)
@@ -2606,8 +2608,6 @@ static ADDRESS_MAP_START( drgnwrld_igs012, AS_PROGRAM, 16, igs011_state )

AM_RANGE( 0x902000, 0x902fff ) AM_WRITE(igs012_prot_reset_w ) // reset?
// AM_RANGE( 0x902000, 0x902005 ) AM_WRITE(igs012_prot_fake_r )

AM_IMPORT_FROM(drgnwrld)
ADDRESS_MAP_END


@@ -2632,6 +2632,8 @@ WRITE16_MEMBER(igs011_state::lhb_okibank_w)
}

static ADDRESS_MAP_START( lhb, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM

// lhb: IGS011 protection dynamically mapped at 834x
// AM_RANGE( 0x008340, 0x008347 ) AM_WRITE(igs011_prot1_w )
// AM_RANGE( 0x008348, 0x008349 ) AM_READ ( igs011_prot1_r )
@@ -2643,7 +2645,6 @@ static ADDRESS_MAP_START( lhb, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x010600, 0x0107ff ) AM_READ(lhb_igs011_prot2_r )
// no reset

AM_RANGE( 0x000000, 0x07ffff ) AM_ROM
AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x200000, 0x200fff ) AM_RAM AM_SHARE("priority_ram")
AM_RANGE( 0x300000, 0x3fffff ) AM_READWRITE(igs011_layers_r, igs011_layers_w )
@@ -2672,6 +2673,8 @@ static ADDRESS_MAP_START( lhb, AS_PROGRAM, 16, igs011_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( xymg, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM

// xymg: IGS011 protection dynamically mapped at 834x
// AM_RANGE( 0x008340, 0x008347 ) AM_WRITE(igs011_prot1_w )
// AM_RANGE( 0x008348, 0x008349 ) AM_READ ( igs011_prot1_r )
@@ -2683,7 +2686,6 @@ static ADDRESS_MAP_START( xymg, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x010600, 0x0107ff ) AM_READ(lhb_igs011_prot2_r ) // read
// no reset

AM_RANGE( 0x000000, 0x07ffff ) AM_ROM
AM_RANGE( 0x100000, 0x103fff ) AM_RAM
AM_RANGE( 0x1f0000, 0x1f3fff ) AM_RAM AM_SHARE("nvram") // extra ram
AM_RANGE( 0x200000, 0x200fff ) AM_RAM AM_SHARE("priority_ram")
@@ -2750,6 +2752,8 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( lhb2, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM

// lhb2: IGS011 protection dynamically mapped at 1ff8x
// AM_RANGE( 0x01ff80, 0x01ff87 ) AM_WRITE(igs011_prot1_w )
// AM_RANGE( 0x01ff88, 0x01ff89 ) AM_READ ( igs011_prot1_r )
@@ -2759,7 +2763,6 @@ static ADDRESS_MAP_START( lhb2, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x020400, 0x0205ff ) AM_READ(lhb2_igs011_prot2_r ) // read
AM_RANGE( 0x020600, 0x0207ff ) AM_WRITE(igs011_prot2_reset_w ) // reset (55)

AM_RANGE( 0x000000, 0x07ffff ) AM_ROM
AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x200000, 0x200001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
AM_RANGE( 0x204000, 0x204003 ) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
@@ -2790,6 +2793,8 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( nkishusp, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM

// nkishusp: IGS011 protection dynamically mapped at 1ff8x
// AM_RANGE( 0x01ff80, 0x01ff87 ) AM_WRITE(igs011_prot1_w )
// AM_RANGE( 0x01ff88, 0x01ff89 ) AM_READ ( igs011_prot1_r )
@@ -2800,7 +2805,6 @@ static ADDRESS_MAP_START( nkishusp, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x023400, 0x0235ff ) AM_READ(lhb2_igs011_prot2_r ) // read
AM_RANGE( 0x023600, 0x0237ff ) AM_WRITE(igs011_prot2_reset_w ) // reset (55)

AM_RANGE( 0x000000, 0x07ffff ) AM_ROM
AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x200000, 0x200001 ) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
AM_RANGE( 0x204000, 0x204003 ) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0x00ff)
@@ -2893,6 +2897,8 @@ WRITE16_MEMBER(igs011_state::vbowl_link_2_w){ }
WRITE16_MEMBER(igs011_state::vbowl_link_3_w){ }

static ADDRESS_MAP_START( vbowl, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x000000, 0x07ffff ) AM_ROM

// vbowl: IGS011 protection dynamically mapped at 834x
// AM_RANGE( 0x008340, 0x008347 ) AM_WRITE(igs011_prot1_w )
// AM_RANGE( 0x008348, 0x008349 ) AM_READ(igs011_prot1_r )
@@ -2920,7 +2926,6 @@ static ADDRESS_MAP_START( vbowl, AS_PROGRAM, 16, igs011_state )
AM_RANGE( 0x902000, 0x902fff ) AM_WRITE(igs012_prot_reset_w ) // reset?
// AM_RANGE( 0x902000, 0x902005 ) AM_WRITE(igs012_prot_fake_r )

AM_RANGE( 0x000000, 0x07ffff ) AM_ROM
AM_RANGE( 0x100000, 0x103fff ) AM_RAM AM_SHARE("nvram")
AM_RANGE( 0x200000, 0x200fff ) AM_RAM AM_SHARE("priority_ram")
AM_RANGE( 0x300000, 0x3fffff ) AM_READWRITE(igs011_layers_r, igs011_layers_w )
@@ -2962,9 +2967,9 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( vbowlhk, AS_PROGRAM, 16, igs011_state )
AM_IMPORT_FROM(vbowl)
AM_RANGE( 0x800000, 0x800003 ) AM_WRITE(vbowlhk_igs003_w )
AM_RANGE( 0x50f600, 0x50f7ff ) AM_READ(vbowlhk_igs011_prot2_r ) // read
AM_IMPORT_FROM(vbowl)
ADDRESS_MAP_END


@@ -1186,10 +1186,10 @@ READ8_MEMBER(igs017_state::input_r)
}

static ADDRESS_MAP_START( iqblocka_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs

AM_RANGE( 0x0000, 0x7fff ) AM_DEVREADWRITE("igs017_igs031", igs017_igs031_device, read,write)

AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs

AM_RANGE( 0x8000, 0x8000 ) AM_WRITE(input_select_w )
AM_RANGE( 0x8001, 0x8001 ) AM_READ(input_r )

@@ -1728,10 +1728,9 @@ static ADDRESS_MAP_START( tjsb_map, AS_PROGRAM, 8, igs017_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( tjsb_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs

AM_RANGE( 0x0000, 0x7fff ) AM_DEVREADWRITE("igs017_igs031", igs017_igs031_device, read,write)

AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs

AM_RANGE( 0x9000, 0x9000 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)

@@ -1744,8 +1743,8 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( spkrform_map, AS_PROGRAM, 8, igs017_state )
AM_RANGE( 0x00000, 0x0dfff ) AM_ROM
AM_RANGE( 0x0e9bf, 0x0e9bf ) AM_NOP // hack: uncomment to switch to Formosa
AM_RANGE( 0x0e000, 0x0efff ) AM_RAM
AM_RANGE( 0x0e9bf, 0x0e9bf ) AM_NOP // hack: uncomment to switch to Formosa
AM_RANGE( 0x0f000, 0x0ffff ) AM_RAM
AM_RANGE( 0x10000, 0x3ffff ) AM_ROM
ADDRESS_MAP_END
@@ -1769,10 +1768,10 @@ READ8_MEMBER(igs017_state::spkrform_input_r)
}

static ADDRESS_MAP_START( spkrform_io, AS_IO, 8, igs017_state )
AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs

AM_RANGE( 0x0000, 0x7fff ) AM_DEVREADWRITE("igs017_igs031", igs017_igs031_device, read,write)

AM_RANGE( 0x0000, 0x003f ) AM_RAM // internal regs

AM_RANGE( 0x8000, 0x8000 ) AM_DEVREADWRITE("oki", okim6295_device, read, write)

AM_RANGE( 0x9000, 0x9001 ) AM_DEVWRITE("ymsnd", ym2413_device, write)
@@ -1852,7 +1851,7 @@ static ADDRESS_MAP_START( lhzb2, AS_PROGRAM, 16, igs017_state )
AM_RANGE(0x910000, 0x910003) AM_WRITE( lhzb2_magic_w )
AM_RANGE(0x910002, 0x910003) AM_READ( lhzb2_magic_r )

AM_RANGE( 0xb00000, 0xb0ffff ) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)
AM_RANGE(0xb00000, 0xb0ffff) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)

AM_RANGE(0xb10000, 0xb10001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
ADDRESS_MAP_END
@@ -2159,17 +2158,18 @@ WRITE16_MEMBER(igs017_state::lhzb2a_input_select_w)
}

static ADDRESS_MAP_START( lhzb2a, AS_PROGRAM, 16, igs017_state )
AM_RANGE(0x000000, 0x07ffff) AM_ROM

// prot2
AM_RANGE(0x003200, 0x003201) AM_WRITE( lhzb2a_prot2_reset_w )
AM_RANGE(0x003202, 0x003203) AM_WRITE( lhzb2a_prot2_dec_w )
AM_RANGE(0x003206, 0x003207) AM_WRITE( lhzb2a_prot2_inc_w )
AM_RANGE(0x00320a, 0x00320b) AM_READ( lhzb2a_prot2_r )

AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x500000, 0x503fff) AM_RAM
// AM_RANGE(0x910000, 0x910003) accesses appear to be from leftover code where the final checks were disabled

AM_RANGE( 0xb00000, 0xb0ffff ) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)
AM_RANGE(0xb00000, 0xb0ffff) AM_DEVREADWRITE8("igs017_igs031", igs017_igs031_device, read,write, 0x00ff)

AM_RANGE(0xb10000, 0xb10001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff )
AM_RANGE(0xb12000, 0xb12001) AM_WRITE( lhzb2a_input_select_w )
@@ -385,6 +385,7 @@ static ADDRESS_MAP_START( igspoker_prg_map, AS_PROGRAM, 8, igspoker_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( igspoker_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x0000, 0xffff) AM_READ(exp_rom_r )
AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write8_ext) AM_SHARE("palette_ext")
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
@@ -401,7 +402,6 @@ static ADDRESS_MAP_START( igspoker_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x6800, 0x6fff) AM_RAM_WRITE(bg_tile_w ) AM_SHARE("bg_tile_ram")
AM_RANGE(0x7000, 0x77ff) AM_RAM_WRITE(fg_tile_w ) AM_SHARE("fg_tile_ram")
AM_RANGE(0x7800, 0x7fff) AM_RAM_WRITE(fg_color_w ) AM_SHARE("fg_color_ram")
AM_RANGE(0x0000, 0xffff) AM_READ(exp_rom_r )
ADDRESS_MAP_END


@@ -1137,6 +1137,7 @@ INPUT_PORTS_END


static ADDRESS_MAP_START( number10_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x0000, 0xffff) AM_READ(exp_rom_r )
AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write8_ext) AM_SHARE("palette_ext")
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
@@ -1156,10 +1157,10 @@ static ADDRESS_MAP_START( number10_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x50c0, 0x50c0) AM_READ(igs_irqack_r) AM_WRITE(igs_irqack_w)
AM_RANGE(0x7000, 0x77ff) AM_RAM_WRITE(fg_tile_w ) AM_SHARE("fg_tile_ram")
AM_RANGE(0x7800, 0x7fff) AM_RAM_WRITE(fg_color_w ) AM_SHARE("fg_color_ram")
AM_RANGE(0x0000, 0xffff) AM_READ(exp_rom_r )
ADDRESS_MAP_END

static ADDRESS_MAP_START( cpokerpk_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x0000, 0xffff) AM_READ(exp_rom_r )
AM_RANGE(0x2000, 0x27ff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
AM_RANGE(0x2800, 0x2fff) AM_RAM_DEVWRITE("palette", palette_device, write8_ext) AM_SHARE("palette_ext")
AM_RANGE(0x4000, 0x4000) AM_READ_PORT("DSW1") /* DSW1 */
@@ -1178,7 +1179,6 @@ static ADDRESS_MAP_START( cpokerpk_io_map, AS_IO, 8, igspoker_state )
AM_RANGE(0x50c0, 0x50c0) AM_READ(igs_irqack_r) AM_WRITE(igs_irqack_w)
AM_RANGE(0x7000, 0x77ff) AM_RAM_WRITE(fg_tile_w ) AM_SHARE("fg_tile_ram")
AM_RANGE(0x7800, 0x7fff) AM_RAM_WRITE(fg_color_w ) AM_SHARE("fg_color_ram")
AM_RANGE(0x0000, 0xffff) AM_READ(exp_rom_r )
ADDRESS_MAP_END

static INPUT_PORTS_START( number10 )
@@ -83,6 +83,10 @@ class interact_state : public hec2hrp_state

static ADDRESS_MAP_START(interact_mem, AS_PROGRAM, 8, interact_state )
ADDRESS_MAP_UNMAP_HIGH
/* Main ROM page*/
AM_RANGE(0x0000,0x3fff) AM_ROM /*BANK(2)*/
/* AM_RANGE(0x1000,0x3fff) AM_RAM*/

/* Hardware address mapping*/
/* AM_RANGE(0x0800,0x0808) AM_WRITE(hector_switch_bank_w)// Bank management not udsed in BR machine*/
AM_RANGE(0x1000,0x1000) AM_WRITE(hector_color_a_w) /* Color c0/c1*/
@@ -92,10 +96,6 @@ static ADDRESS_MAP_START(interact_mem, AS_PROGRAM, 8, interact_state )
AM_RANGE(0x3000,0x3000) AM_READWRITE(hector_cassette_r, hector_sn_3000_w)/* Write necessary*/
AM_RANGE(0x3800,0x3807) AM_READWRITE(hector_keyboard_r, hector_keyboard_w) /* Keyboard*/

/* Main ROM page*/
AM_RANGE(0x0000,0x3fff) AM_ROM /*BANK(2)*/
/* AM_RANGE(0x1000,0x3fff) AM_RAM*/

/* Video br mapping*/
AM_RANGE(0x4000,0x49ff) AM_RAM AM_SHARE("videoram")
/* continous RAM*/
@@ -379,48 +379,48 @@ static ADDRESS_MAP_START(interpro_common_map, 0, 32, interpro_state)
ADDRESS_MAP_END

static ADDRESS_MAP_START(turquoise_base_map, 0, 32, turquoise_state)
AM_IMPORT_FROM(interpro_common_map)

AM_RANGE(0x40000000, 0x4000003f) AM_DEVICE(INTERPRO_MCGA_TAG, interpro_mcga_device, map)
AM_RANGE(0x7f000300, 0x7f000303) AM_WRITE8(sreg_error_w, 0xff)

AM_IMPORT_FROM(interpro_common_map)
ADDRESS_MAP_END

static ADDRESS_MAP_START(turquoise_main_map, 0, 32, turquoise_state)
AM_IMPORT_FROM(turquoise_base_map)

AM_RANGE(0x00000000, 0x00ffffff) AM_RAM AM_SHARE(RAM_TAG)
AM_RANGE(0x7f100000, 0x7f13ffff) AM_ROM AM_REGION(INTERPRO_EPROM_TAG, 0)

AM_IMPORT_FROM(turquoise_base_map)
ADDRESS_MAP_END

static ADDRESS_MAP_START(sapphire_base_map, 0, 32, sapphire_state)
AM_IMPORT_FROM(interpro_common_map)

AM_RANGE(0x40000000, 0x4000004f) AM_DEVICE(INTERPRO_MCGA_TAG, interpro_fmcc_device, map)
AM_RANGE(0x7f001c00, 0x7f001c03) AM_DEVWRITE8(INTERPRO_SCSI_DEVICE_TAG, ncr53c94_device, conf3_w, 0xff00)
AM_RANGE(0x7f001f00, 0x7f001f03) AM_DEVWRITE8(INTERPRO_SCSI_DEVICE_TAG, ncr53c94_device, fifo_align_w, 0xff00)

AM_IMPORT_FROM(interpro_common_map)
ADDRESS_MAP_END

static ADDRESS_MAP_START(sapphire_main_map, 0, 32, sapphire_state)
AM_IMPORT_FROM(sapphire_base_map)

AM_RANGE(0x00000000, 0x00ffffff) AM_RAM AM_SHARE(RAM_TAG)
AM_RANGE(0x7f100000, 0x7f11ffff) AM_ROM AM_REGION(INTERPRO_EPROM_TAG, 0)
AM_RANGE(0x7f180000, 0x7f1fffff) AM_DEVREADWRITE8(INTERPRO_FLASH_TAG "_lo", intel_28f010_device, read, write, 0x00ff00ff) AM_MASK(0x3ffff)
AM_RANGE(0x7f180000, 0x7f1fffff) AM_DEVREADWRITE8(INTERPRO_FLASH_TAG "_hi", intel_28f010_device, read, write, 0xff00ff00) AM_MASK(0x3ffff)

AM_IMPORT_FROM(sapphire_base_map)
ADDRESS_MAP_END

static ADDRESS_MAP_START(turquoise_io_map, 1, 32, interpro_state)
AM_IMPORT_FROM(turquoise_base_map)

AM_RANGE(0x00000800, 0x000009ff) AM_DEVICE(INTERPRO_MMU_TAG "_d", cammu_c3_device, map)
AM_RANGE(0x00000a00, 0x00000bff) AM_DEVICE(INTERPRO_MMU_TAG "_i", cammu_c3_device, map)
AM_RANGE(0x00000c00, 0x00000dff) AM_DEVICE(INTERPRO_MMU_TAG "_d", cammu_c3_device, map_global)

AM_IMPORT_FROM(turquoise_base_map)
ADDRESS_MAP_END

static ADDRESS_MAP_START(sapphire_io_map, 1, 32, interpro_state)
AM_RANGE(0x00000000, 0x00001fff) AM_DEVICE(INTERPRO_MMU_TAG, cammu_c4_device, map)

AM_IMPORT_FROM(sapphire_base_map)

AM_RANGE(0x00000000, 0x00001fff) AM_DEVICE(INTERPRO_MMU_TAG, cammu_c4_device, map)
ADDRESS_MAP_END

static ADDRESS_MAP_START(interpro_boot_map, 2, 32, interpro_state)
@@ -206,21 +206,21 @@ WRITE8_MEMBER(iq151_state::cartslot_io_w)

static ADDRESS_MAP_START(iq151_mem, AS_PROGRAM, 8, iq151_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE( 0x0000, 0xffff ) AM_READWRITE(cartslot_r, cartslot_w)

AM_RANGE( 0x0000, 0x07ff ) AM_RAMBANK("boot")
AM_RANGE( 0x0800, 0x7fff ) AM_RAM
AM_RANGE( 0xf000, 0xffff ) AM_ROM

AM_RANGE( 0x0000, 0xffff ) AM_READWRITE(cartslot_r, cartslot_w)
ADDRESS_MAP_END

static ADDRESS_MAP_START(iq151_io, AS_IO, 8, iq151_state)
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE( 0x00, 0xff ) AM_READWRITE(cartslot_io_r, cartslot_io_w)

AM_RANGE( 0x80, 0x80 ) AM_WRITE(boot_bank_w)
AM_RANGE( 0x84, 0x87 ) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
AM_RANGE( 0x88, 0x89 ) AM_DEVREADWRITE("pic8259", pic8259_device, read, write)

AM_RANGE( 0x00, 0xff ) AM_READWRITE(cartslot_io_r, cartslot_io_w)
ADDRESS_MAP_END


@@ -99,11 +99,12 @@ static ADDRESS_MAP_START( slave_io_map, AS_IO, 8, ironhors_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( farwest_master_map, AS_PROGRAM, 8, ironhors_state )
AM_RANGE(0x0000, 0x1bff) AM_ROM

AM_RANGE(0x0000, 0x0002) AM_RAM
//20=31db

AM_RANGE(0x0005, 0x001f) AM_RAM
AM_RANGE(0x31db, 0x31fa) AM_RAM AM_SHARE("scroll")
AM_RANGE(0x0040, 0x005f) AM_RAM
AM_RANGE(0x0060, 0x00ff) AM_RAM
AM_RANGE(0x0800, 0x0800) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
@@ -120,13 +121,13 @@ static ADDRESS_MAP_START( farwest_master_map, AS_PROGRAM, 8, ironhors_state )
AM_RANGE(0x1a00, 0x1a00) AM_RAM AM_SHARE("int_enable")
AM_RANGE(0x1a01, 0x1a01) AM_RAM_WRITE(charbank_w)
AM_RANGE(0x1a02, 0x1a02) AM_WRITE(palettebank_w)
AM_RANGE(0x0000, 0x1bff) AM_ROM
// AM_RANGE(0x1c00, 0x1fff) AM_RAM
AM_RANGE(0x2000, 0x23ff) AM_RAM_WRITE(colorram_w) AM_SHARE("colorram")
AM_RANGE(0x2400, 0x27ff) AM_RAM_WRITE(videoram_w) AM_SHARE("videoram")
AM_RANGE(0x2800, 0x2fff) AM_RAM
AM_RANGE(0x1c00, 0x1dff) AM_RAM AM_SHARE("spriteram2")
AM_RANGE(0x3000, 0x38ff) AM_RAM
AM_RANGE(0x31db, 0x31fa) AM_RAM AM_SHARE("scroll")
AM_RANGE(0x1e00, 0x1eff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x3900, 0x3fff) AM_RAM
AM_RANGE(0x4000, 0xffff) AM_ROM
@@ -135,15 +135,15 @@ static ADDRESS_MAP_START(rpc86_io, AS_IO, 16, isbc_state)
ADDRESS_MAP_END

static ADDRESS_MAP_START(isbc8605_io, AS_IO, 16, isbc_state)
AM_RANGE(0x0000, 0x002f) AM_DEVICE8("isbc_208", isbc_208_device, map, 0xffff)
AM_IMPORT_FROM(rpc86_io)
AM_RANGE(0x0000, 0x002f) AM_DEVICE8("isbc_208", isbc_208_device, map, 0xffff)
ADDRESS_MAP_END

static ADDRESS_MAP_START(isbc8630_io, AS_IO, 16, isbc_state)
AM_IMPORT_FROM(rpc86_io)
AM_RANGE(0x00c0, 0x00c7) AM_WRITE8(edge_intr_clear_w, 0xff00)
AM_RANGE(0x00c8, 0x00df) AM_WRITE8(status_register_w, 0xff00)
AM_RANGE(0x0100, 0x0101) AM_DEVWRITE8("isbc_215g", isbc_215g_device, write, 0x00ff)
AM_IMPORT_FROM(rpc86_io)
ADDRESS_MAP_END

static ADDRESS_MAP_START(isbc86_mem, AS_PROGRAM, 16, isbc_state)
@@ -973,11 +973,11 @@ WRITE32_MEMBER(itech32_state::test2_w)
#endif

static ADDRESS_MAP_START( drivedge_map, AS_PROGRAM, 32, itech32_state )
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x40000) AM_RAM AM_SHARE("nvram")
#if LOG_DRIVEDGE_UNINIT_RAM
AM_RANGE(0x000100, 0x0003ff) AM_MIRROR(0x40000) AM_READWRITE(test1_r, test1_w)
AM_RANGE(0x000c00, 0x007fff) AM_MIRROR(0x40000) AM_READWRITE(test2_r, test2_w)
#endif
AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x40000) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x080000, 0x080003) AM_READ_PORT("80000")
AM_RANGE(0x082000, 0x082003) AM_READ_PORT("82000")
AM_RANGE(0x084000, 0x084003) AM_READWRITE(sound_data32_r, sound_data32_w)
@@ -200,9 +200,9 @@ static ADDRESS_MAP_START( decrypted_opcodes_map, AS_OPCODES, 8, jack_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( striv_map, AS_PROGRAM, 8, jack_state )
AM_IMPORT_FROM( jack_map )
AM_RANGE(0xb000, 0xb0ff) AM_WRITENOP
AM_RANGE(0xc000, 0xcfff) AM_READ(striv_question_r)
AM_IMPORT_FROM( jack_map )
ADDRESS_MAP_END


@@ -224,8 +224,8 @@ static ADDRESS_MAP_START( joinem_map, AS_PROGRAM, 8, jack_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( unclepoo_map, AS_PROGRAM, 8, jack_state )
AM_RANGE(0x9000, 0x97ff) AM_RAM
AM_IMPORT_FROM( joinem_map )
AM_RANGE(0x9000, 0x97ff) AM_RAM
ADDRESS_MAP_END


@@ -197,8 +197,8 @@ WRITE8_MEMBER(joctronic_state::bldyrolr_unknown_w)
}

static ADDRESS_MAP_START( bldyrolr_maincpu_map, AS_PROGRAM, 8, joctronic_state )
AM_RANGE(0xc000, 0xc000) AM_READWRITE(bldyrolr_unknown_r, bldyrolr_unknown_w)
AM_IMPORT_FROM(slalom03_maincpu_map)
AM_RANGE(0xc000, 0xc000) AM_READWRITE(bldyrolr_unknown_r, bldyrolr_unknown_w)
ADDRESS_MAP_END

static ADDRESS_MAP_START( maincpu_io_map, AS_IO, 8, joctronic_state )
@@ -24,12 +24,12 @@

static ADDRESS_MAP_START(kc85_4_io, AS_IO, 8, kc85_4_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xffff) AM_READWRITE(expansion_io_read, expansion_io_write)

AM_RANGE(0x0084, 0x0085) AM_MIRROR(0xff00) AM_READWRITE(kc85_4_84_r, kc85_4_84_w)
AM_RANGE(0x0086, 0x0087) AM_MIRROR(0xff00) AM_READWRITE(kc85_4_86_r, kc85_4_86_w)
AM_RANGE(0x0088, 0x008b) AM_MIRROR(0xff00) AM_DEVREADWRITE("z80pio", z80pio_device, read, write)
AM_RANGE(0x008c, 0x008f) AM_MIRROR(0xff00) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write)

AM_RANGE(0x0000, 0xffff) AM_READWRITE(expansion_io_read, expansion_io_write)
ADDRESS_MAP_END

static ADDRESS_MAP_START(kc85_4_mem, AS_PROGRAM, 8, kc85_4_state)
@@ -53,10 +53,10 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START(kc85_3_io, AS_IO, 8, kc_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0xffff) AM_READWRITE(expansion_io_read, expansion_io_write)

AM_RANGE(0x0088, 0x008b) AM_MIRROR(0xff00) AM_DEVREADWRITE("z80pio", z80pio_device, read, write)
AM_RANGE(0x008c, 0x008f) AM_MIRROR(0xff00) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write)

AM_RANGE(0x0000, 0xffff) AM_READWRITE(expansion_io_read, expansion_io_write)
ADDRESS_MAP_END

static INPUT_PORTS_START( kc85 )
@@ -1014,6 +1014,7 @@ static ADDRESS_MAP_START( gx_base_memmap, AS_PROGRAM, 32, konamigx_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( gx_type1_map, AS_PROGRAM, 32, konamigx_state )
AM_IMPORT_FROM(gx_base_memmap)
AM_RANGE(0xd90000, 0xd97fff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette")
AM_RANGE(0xdc0000, 0xdc1fff) AM_RAM // LAN RAM? (Racin' Force has, Open Golf doesn't)
AM_RANGE(0xdd0000, 0xdd00ff) AM_READNOP AM_WRITENOP // LAN board
@@ -1029,16 +1030,16 @@ static ADDRESS_MAP_START( gx_type1_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xf40000, 0xf7ffff) AM_READ(type1_roz_r2) // ROM readback
AM_RANGE(0xf80000, 0xf80fff) AM_RAM // chip 21Q / S
AM_RANGE(0xfc0000, 0xfc00ff) AM_RAM // chip 22N / S
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END

static ADDRESS_MAP_START( gx_type2_map, AS_PROGRAM, 32, konamigx_state )
AM_IMPORT_FROM(gx_base_memmap)
AM_RANGE(0xcc0000, 0xcc0003) AM_WRITE(esc_w)
AM_RANGE(0xd90000, 0xd97fff) AM_RAM_DEVWRITE("palette", palette_device, write32) AM_SHARE("palette")
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END

static ADDRESS_MAP_START( gx_type3_map, AS_PROGRAM, 32, konamigx_state )
AM_IMPORT_FROM(gx_base_memmap)
AM_RANGE(0xd90000, 0xd97fff) AM_RAM
//AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w)
AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_SHARE("k053936_0_ctrl")
@@ -1049,10 +1050,10 @@ static ADDRESS_MAP_START( gx_type3_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xea0000, 0xea3fff) AM_RAM AM_SHARE("subpaletteram")
AM_RANGE(0xec0000, 0xec0003) AM_READ(type3_sync_r)
//AM_RANGE(0xf00000, 0xf07fff) AM_RAM
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END

static ADDRESS_MAP_START( gx_type4_map, AS_PROGRAM, 32, konamigx_state )
AM_IMPORT_FROM(gx_base_memmap)
AM_RANGE(0xcc0000, 0xcc0007) AM_WRITE(type4_prot_w)
AM_RANGE(0xd90000, 0xd97fff) AM_RAM
AM_RANGE(0xe00000, 0xe0001f) AM_RAM AM_SHARE("k053936_0_ctrl")
@@ -1064,7 +1065,6 @@ static ADDRESS_MAP_START( gx_type4_map, AS_PROGRAM, 32, konamigx_state )
AM_RANGE(0xec0000, 0xec0003) AM_READ(type3_sync_r) // type 4 polls this too
AM_RANGE(0xf00000, 0xf07fff) AM_RAM_WRITE(konamigx_t4_psacmap_w) AM_SHARE("psacram") // PSAC2 tilemap
// AM_RANGE(0xf00000, 0xf07fff) AM_RAM
AM_IMPORT_FROM(gx_base_memmap)
ADDRESS_MAP_END

/**********************************************************************************/
@@ -54,8 +54,8 @@ static ADDRESS_MAP_START( kyugo_main_map, AS_PROGRAM, 8, kyugo_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( gyrodine_main_map, AS_PROGRAM, 8, kyugo_state )
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
AM_IMPORT_FROM(kyugo_main_map)
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("watchdog", watchdog_timer_device, reset_w)
ADDRESS_MAP_END


@@ -217,8 +217,8 @@ READ8_MEMBER(lbeach_state::lbeach_in2_r)

static ADDRESS_MAP_START( lbeach_map, AS_PROGRAM, 8, lbeach_state )
AM_RANGE(0x0000, 0x00ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x4000, 0x4000) AM_READ(lbeach_in1_r)
AM_RANGE(0x4000, 0x41ff) AM_RAM_WRITE(lbeach_bg_vram_w) AM_SHARE("bg_vram")
AM_RANGE(0x4000, 0x4000) AM_READ(lbeach_in1_r)
AM_RANGE(0x4200, 0x43ff) AM_RAM
AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE(lbeach_fg_vram_w) AM_SHARE("fg_vram")
AM_RANGE(0x8000, 0x8000) AM_READ(lbeach_in2_r)
@@ -343,6 +343,8 @@ READ8_MEMBER(lethal_state::gunsaux_r)
static ADDRESS_MAP_START( le_main, AS_PROGRAM, 8, lethal_state )
AM_RANGE(0x0000, 0x1fff) AM_ROMBANK("bank1")
AM_RANGE(0x2000, 0x3fff) AM_RAM // work RAM
AM_RANGE(0x4000, 0x7fff) AM_DEVICE("bank4000", address_map_bank_device, amap8)
AM_RANGE(0x4000, 0x43ff) AM_UNMAP // first 0x400 bytes of palette RAM are inaccessible
AM_RANGE(0x4000, 0x403f) AM_DEVWRITE("k056832", k056832_device, write)
AM_RANGE(0x4040, 0x404f) AM_DEVWRITE("k056832", k056832_device, b_w)
AM_RANGE(0x4080, 0x4080) AM_READNOP // watchdog
@@ -355,8 +357,6 @@ static ADDRESS_MAP_START( le_main, AS_PROGRAM, 8, lethal_state )
AM_RANGE(0x40d9, 0x40d9) AM_READ_PORT("INPUTS")
AM_RANGE(0x40db, 0x40db) AM_READ(gunsaux_r) // top X bit of guns
AM_RANGE(0x40dc, 0x40dc) AM_WRITE(le_bankswitch_w)
AM_RANGE(0x4000, 0x43ff) AM_UNMAP // first 0x400 bytes of palette RAM are inaccessible
AM_RANGE(0x4000, 0x7fff) AM_DEVICE("bank4000", address_map_bank_device, amap8)
AM_RANGE(0x8000, 0xffff) AM_ROM AM_REGION("maincpu", 0x38000)
ADDRESS_MAP_END

@@ -241,17 +241,17 @@ WRITE8_MEMBER(liberate_state::prosport_charram_w)
*************************************/

static ADDRESS_MAP_START( prosport_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x0200, 0x021f) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
AM_RANGE(0x0000, 0x03ff) AM_MIRROR(0x2000) AM_RAM
AM_RANGE(0x0200, 0x021f) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
AM_RANGE(0x0400, 0x07ff) AM_RAM_WRITE(prosport_bg_vram_w) AM_SHARE("bg_vram")
AM_RANGE(0x0800, 0x1fff) AM_READWRITE(prosport_charram_r,prosport_charram_w) //0x1e00-0x1fff isn't charram!
AM_RANGE(0x2400, 0x2fff) AM_RAM
AM_RANGE(0x3000, 0x33ff) AM_RAM_WRITE(liberate_colorram_w) AM_SHARE("colorram")
AM_RANGE(0x3400, 0x37ff) AM_RAM_WRITE(liberate_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x3800, 0x3fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x4000, 0xffff) AM_ROM
AM_RANGE(0x8000, 0x800f) AM_WRITE(prosport_io_w)
AM_RANGE(0x8000, 0x800f) AM_ROMBANK("bank1")
AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END

static ADDRESS_MAP_START( liberate_map, AS_PROGRAM, 8, liberate_state )
@@ -262,9 +262,9 @@ static ADDRESS_MAP_START( liberate_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x4400, 0x47ff) AM_WRITE(liberate_videoram_w) AM_SHARE("videoram")
AM_RANGE(0x4800, 0x4fff) AM_WRITEONLY AM_SHARE("spriteram")
AM_RANGE(0x6200, 0x67ff) AM_WRITEONLY AM_SHARE("scratchram")
AM_RANGE(0x8000, 0xffff) AM_ROM
AM_RANGE(0x8000, 0x800f) AM_WRITE(deco16_io_w)
AM_RANGE(0x8000, 0x800f) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END

static ADDRESS_MAP_START( decrypted_opcodes_map, AS_OPCODES, 8, liberate_state )
@@ -295,8 +295,8 @@ static ADDRESS_MAP_START( prosoccr_io_map, AS_IO, 8, liberate_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( liberatb_map, AS_PROGRAM, 8, liberate_state )
AM_RANGE(0x00fe, 0x00fe) AM_READ_PORT("IN0")
AM_RANGE(0x0000, 0x0fff) AM_RAM
AM_RANGE(0x00fe, 0x00fe) AM_READ_PORT("IN0")
AM_RANGE(0x1000, 0x3fff) AM_ROM /* Mirror of main rom */
AM_RANGE(0x4000, 0x7fff) AM_READ(deco16_bank_r)
AM_RANGE(0x4000, 0x43ff) AM_WRITE(liberate_colorram_w) AM_SHARE("colorram")
@@ -284,10 +284,10 @@ WRITE8_MEMBER( liberatr_state::earom_control_w )
*************************************/

static ADDRESS_MAP_START( liberatr_map, AS_PROGRAM, 8, liberatr_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM_WRITE(bitmap_w) AM_SHARE("bitmapram") /* overlapping for my convenience */
AM_RANGE(0x0000, 0x0000) AM_RAM AM_SHARE("xcoord")
AM_RANGE(0x0001, 0x0001) AM_RAM AM_SHARE("ycoord")
AM_RANGE(0x0002, 0x0002) AM_READWRITE(bitmap_xy_r, bitmap_xy_w)
AM_RANGE(0x0000, 0x3fff) AM_RAM_WRITE(bitmap_w) AM_SHARE("bitmapram") /* overlapping for my convenience */
AM_RANGE(0x4000, 0x403f) AM_READ(earom_r)
AM_RANGE(0x5000, 0x5000) AM_READ(port0_r)
AM_RANGE(0x5001, 0x5001) AM_READ_PORT("IN1")
@@ -314,10 +314,10 @@ ADDRESS_MAP_END
*************************************/

static ADDRESS_MAP_START( liberat2_map, AS_PROGRAM, 8, liberatr_state )
AM_RANGE(0x0000, 0x3fff) AM_RAM_WRITE(bitmap_w) AM_SHARE("bitmapram") /* overlapping for my convenience */
AM_RANGE(0x0000, 0x0000) AM_RAM AM_SHARE("xcoord")
AM_RANGE(0x0001, 0x0001) AM_RAM AM_SHARE("ycoord")
AM_RANGE(0x0002, 0x0002) AM_READWRITE(bitmap_xy_r, bitmap_xy_w)
AM_RANGE(0x0000, 0x3fff) AM_RAM_WRITE(bitmap_w) AM_SHARE("bitmapram") /* overlapping for my convenience */
AM_RANGE(0x4000, 0x4000) AM_READ(port0_r)
AM_RANGE(0x4001, 0x4001) AM_READ_PORT("IN1")
AM_RANGE(0x4000, 0x400f) AM_WRITEONLY AM_SHARE("base_ram")
@@ -430,8 +430,8 @@ static ADDRESS_MAP_START( mainmap, AS_PROGRAM, 8, luckgrln_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( _7smash_map, AS_PROGRAM, 8, luckgrln_state )
AM_RANGE(0x00000, 0x0bfff) AM_ROM
AM_IMPORT_FROM( mainmap )
AM_RANGE(0x00000, 0x0bfff) AM_ROM
AM_RANGE(0x10000, 0x2ffff) AM_UNMAP
AM_RANGE(0xf0000, 0xfffff) AM_UNMAP
ADDRESS_MAP_END
@@ -636,8 +636,8 @@ READ8_MEMBER(luckgrln_state::test_r)
}

static ADDRESS_MAP_START( _7smash_io, AS_IO, 8, luckgrln_state )
AM_RANGE(0x66, 0x66) AM_READ(test_r)
AM_IMPORT_FROM( portmap )
AM_RANGE(0x66, 0x66) AM_READ(test_r)
ADDRESS_MAP_END

static INPUT_PORTS_START( luckgrln )
@@ -124,8 +124,8 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 16, m107_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( dsoccr94_io_map, AS_IO, 16, m107_state )
AM_RANGE(0x06, 0x07) AM_WRITE8(bankswitch_w, 0x00ff)
AM_IMPORT_FROM(main_portmap)
AM_RANGE(0x06, 0x07) AM_WRITE8(bankswitch_w, 0x00ff)
ADDRESS_MAP_END

/* same as M107 but with an extra i/o board */
@@ -140,17 +140,17 @@ WRITE16_MEMBER(m107_state::wpksoc_output_w)
}

static ADDRESS_MAP_START( wpksoc_map, AS_PROGRAM, 16, m107_state )
AM_IMPORT_FROM(main_map)
AM_RANGE(0xf0000, 0xf0001) AM_READ_PORT("WPK_DSW0")
AM_RANGE(0xf0002, 0xf0003) AM_READ_PORT("WPK_DSW1")
AM_RANGE(0xf0004, 0xf0005) AM_READ_PORT("WPK_DSW2")
AM_IMPORT_FROM(main_map)
ADDRESS_MAP_END

static ADDRESS_MAP_START( wpksoc_io_map, AS_IO, 16, m107_state )
AM_IMPORT_FROM(main_portmap)
AM_RANGE(0x22, 0x23) AM_WRITE(wpksoc_output_w)
AM_RANGE(0xc0, 0xc1) AM_READ_PORT("WPK_IN0")
AM_RANGE(0xc2, 0xc3) AM_READ_PORT("WPK_IN1")
AM_IMPORT_FROM(main_portmap)
ADDRESS_MAP_END

/******************************************************************************/
@@ -179,10 +179,10 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START(m24_io, AS_IO, 16, m24_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x0000, 0x00ff) AM_DEVICE8("mb", pc_noppi_mb_device, map, 0xffff)
AM_RANGE(0x0060, 0x0065) AM_READWRITE8(keyboard_r, keyboard_w, 0xffff)
AM_RANGE(0x0066, 0x0067) AM_READ_PORT("DSW0")
AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("mm58174an", mm58274c_device, read, write, 0xffff)
AM_RANGE(0x0000, 0x00ff) AM_DEVICE8("mb", pc_noppi_mb_device, map, 0xffff)
AM_RANGE(0x80c0, 0x80c1) AM_DEVREADWRITE8("z8000_apb", m24_z8000_device, handshake_r, handshake_w, 0xff00)
ADDRESS_MAP_END

@@ -247,8 +247,8 @@ static ADDRESS_MAP_START( ldrun3_map, AS_PROGRAM, 8, m62_state )
AM_RANGE(0xcc00, 0xcc00) AM_READ(ldrun3_prot_7_r)
AM_RANGE(0xcfff, 0xcfff) AM_READ(ldrun3_prot_7_r)
AM_RANGE(0xc000, 0xc0ff) AM_WRITEONLY AM_SHARE("spriteram")
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(m62_tileram_w) AM_SHARE("m62_tileram")
AM_RANGE(0xd000, 0xefff) AM_RAM
AM_RANGE(0xd000, 0xdfff) AM_RAM_WRITE(m62_tileram_w) AM_SHARE("m62_tileram")
ADDRESS_MAP_END

static ADDRESS_MAP_START( ldrun3_io_map, AS_IO, 8, m62_state )
@@ -502,8 +502,8 @@ static ADDRESS_MAP_START( fghtbskt_map, AS_PROGRAM, 8, m63_state )
AM_RANGE(0xf000, 0xf000) AM_WRITE(snd_irq_w)
AM_RANGE(0xf001, 0xf001) AM_WRITENOP
AM_RANGE(0xf002, 0xf002) AM_DEVWRITE("soundlatch", generic_latch_8_device, write)
AM_RANGE(0xf807, 0xf807) AM_WRITE(fghtbskt_samples_w) // FIXME
AM_RANGE(0xf800, 0xf807) AM_DEVWRITE("outlatch", ls259_device, write_d0)
AM_RANGE(0xf807, 0xf807) AM_WRITE(fghtbskt_samples_w) // FIXME
ADDRESS_MAP_END

static ADDRESS_MAP_START( i8039_map, AS_PROGRAM, 8, m63_state )
@@ -155,6 +155,8 @@ WRITE8_MEMBER(mainevt_state::k052109_051960_w)


static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)

AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w)
AM_RANGE(0x1f84, 0x1f84) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) /* probably */
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w) /* probably */
@@ -170,8 +172,6 @@ static ADDRESS_MAP_START( mainevt_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x1f9a, 0x1f9a) AM_READ_PORT("P4")
AM_RANGE(0x1f9b, 0x1f9b) AM_READ_PORT("DSW2")

AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)

AM_RANGE(0x4000, 0x5dff) AM_RAM
AM_RANGE(0x5e00, 0x5fff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("rombank")
@@ -180,11 +180,12 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)

AM_RANGE(0x1f80, 0x1f80) AM_WRITE(mainevt_bankswitch_w)
AM_RANGE(0x1f84, 0x1f84) AM_DEVWRITE("soundlatch", generic_latch_8_device, write) /* probably */
AM_RANGE(0x1f88, 0x1f88) AM_WRITE(mainevt_sh_irqtrigger_w) /* probably */
AM_RANGE(0x1f90, 0x1f90) AM_WRITE(mainevt_coin_w) /* coin counters + lamps */
AM_RANGE(0x1fb2, 0x1fb2) AM_WRITE(dv_nmienable_w)

AM_RANGE(0x1f94, 0x1f94) AM_READ_PORT("SYSTEM")
AM_RANGE(0x1f95, 0x1f95) AM_READ_PORT("P1")
@@ -193,8 +194,7 @@ static ADDRESS_MAP_START( devstors_map, AS_PROGRAM, 8, mainevt_state )
AM_RANGE(0x1f98, 0x1f98) AM_READ_PORT("DSW3")
AM_RANGE(0x1f9b, 0x1f9b) AM_READ_PORT("DSW2")
AM_RANGE(0x1fa0, 0x1fbf) AM_DEVREADWRITE("k051733", k051733_device, read, write)

AM_RANGE(0x0000, 0x3fff) AM_READWRITE(k052109_051960_r, k052109_051960_w)
AM_RANGE(0x1fb2, 0x1fb2) AM_WRITE(dv_nmienable_w)

AM_RANGE(0x4000, 0x5dff) AM_RAM
AM_RANGE(0x5e00, 0x5fff) AM_RAM_DEVWRITE("palette", palette_device, write8) AM_SHARE("palette")
@@ -107,8 +107,8 @@ static ADDRESS_MAP_START( malzak_map, AS_PROGRAM, 8, malzak_state )
AM_RANGE(0x1100, 0x11ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1200, 0x12ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1300, 0x13ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x14cb, 0x14cb) AM_MIRROR(0x6000) AM_READ(fake_VRLE_r)
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_0", s2636_device, read_data, write_data)
AM_RANGE(0x14cb, 0x14cb) AM_MIRROR(0x6000) AM_READ(fake_VRLE_r)
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_1", s2636_device, read_data, write_data)
AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_RAM_WRITE(malzak_playfield_w)
AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_RAM
@@ -127,9 +127,9 @@ static ADDRESS_MAP_START( malzak2_map, AS_PROGRAM, 8, malzak_state )
AM_RANGE(0x1100, 0x11ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1200, 0x12ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1300, 0x13ff) AM_MIRROR(0x6000) AM_RAM
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_0", s2636_device, read_data, write_data)
AM_RANGE(0x14cb, 0x14cb) AM_MIRROR(0x6000) AM_READ(fake_VRLE_r)
AM_RANGE(0x14cc, 0x14cc) AM_MIRROR(0x6000) AM_READ(s2636_portA_r)
AM_RANGE(0x1400, 0x14ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_0", s2636_device, read_data, write_data)
AM_RANGE(0x1500, 0x15ff) AM_MIRROR(0x6000) AM_DEVREADWRITE("s2636_1", s2636_device, read_data, write_data)
AM_RANGE(0x1600, 0x16ff) AM_MIRROR(0x6000) AM_RAM_WRITE(malzak_playfield_w)
AM_RANGE(0x1700, 0x17ff) AM_MIRROR(0x6000) AM_RAM AM_SHARE("nvram")
@@ -527,8 +527,8 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( greatgun_cpu3_io_map, AS_IO, 8, mazerbla_state )
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x05, 0x05) AM_DEVWRITE("vcu", mb_vcu_device, vbank_clear_w)
AM_IMPORT_FROM( mazerbla_cpu3_io_map )
AM_RANGE(0x05, 0x05) AM_DEVWRITE("vcu", mb_vcu_device, vbank_clear_w)
ADDRESS_MAP_END


@@ -758,8 +758,8 @@ static ADDRESS_MAP_START( mediagx_map, AS_PROGRAM, 32, mediagx_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START(mediagx_io, AS_IO, 32, mediagx_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, 0x00eb) AM_NOP // I/O delay port
AM_RANGE(0x01f0, 0x01f7) AM_DEVREADWRITE("ide", ide_controller_32_device, read_cs0, write_cs0)
AM_RANGE(0x0378, 0x037b) AM_READWRITE(parallel_port_r, parallel_port_w)
@@ -128,8 +128,8 @@ class megaphx_state : public driver_device


static ADDRESS_MAP_START( megaphx_68k_map, AS_PROGRAM, 16, megaphx_state )
AM_RANGE(0x000000, 0x0013ff) AM_RAM AM_SHARE("mainram") // maps over part of the rom??
AM_RANGE(0x000000, 0x03ffff) AM_ROM AM_REGION("roms67", 0x00000) // or the rom doesn't map here? it contains the service mode grid amongst other things..
AM_RANGE(0x000000, 0x0013ff) AM_RAM AM_SHARE("mainram") // maps over part of the rom??
AM_RANGE(0x040000, 0x040007) AM_DEVREADWRITE("inder_vid:tms", tms34010_device, host_r, host_w)
AM_RANGE(0x050000, 0x050001) AM_DEVWRITE("inder_sb", inder_sb_device, megaphx_0x050000_w)
AM_RANGE(0x050002, 0x050003) AM_DEVREAD("inder_sb", inder_sb_device, megaphx_0x050002_r)
@@ -221,13 +221,13 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( megasys1A_map, AS_PROGRAM, 16, megasys1_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_IMPORT_FROM(megasys1Z_map)
AM_RANGE(0x080008, 0x080009) AM_DEVREAD("soundlatch2", generic_latch_16_device, read) /* from sound cpu */
AM_RANGE(0x084000, 0x084001) AM_WRITE(active_layers_w)
AM_RANGE(0x084008, 0x08400d) AM_DEVWRITE("scroll2", megasys1_tilemap_device, scroll_w)
AM_RANGE(0x084100, 0x084101) AM_READWRITE(sprite_flag_r, sprite_flag_w)
AM_RANGE(0x084308, 0x084309) AM_WRITE(soundlatch_w)
AM_RANGE(0x098000, 0x09bfff) AM_RAM_DEVWRITE("scroll2", megasys1_tilemap_device, write) AM_SHARE("scroll2")
AM_IMPORT_FROM(megasys1Z_map)
ADDRESS_MAP_END

/***************************************************************************
@@ -321,25 +321,25 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( megasys1B_edfbl_map, AS_PROGRAM, 16, megasys1_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_IMPORT_FROM(megasys1B_map)
AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("SYSTEM")
AM_RANGE(0x0e0004, 0x0e0005) AM_READ_PORT("P1")
AM_RANGE(0x0e0006, 0x0e0007) AM_READ_PORT("P2")
AM_RANGE(0x0e0008, 0x0e0009) AM_READ_PORT("DSW1")
AM_RANGE(0x0e000a, 0x0e000b) AM_READ_PORT("DSW2")
//AM_RANGE(0x0e000e, 0x0e000f) AM_WRITE(soundlatch_w)
AM_IMPORT_FROM(megasys1B_map)
ADDRESS_MAP_END

static ADDRESS_MAP_START( megasys1B_monkelf_map, AS_PROGRAM, 16, megasys1_state )
ADDRESS_MAP_GLOBAL_MASK(0xfffff)
AM_IMPORT_FROM(megasys1B_map)
AM_RANGE(0x044200, 0x044205) AM_WRITE(monkelf_scroll0_w)
AM_RANGE(0x044208, 0x04420d) AM_WRITE(monkelf_scroll1_w)
AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("P1")
AM_RANGE(0x0e0004, 0x0e0005) AM_READ_PORT("P2")
AM_RANGE(0x0e0006, 0x0e0007) AM_READ_PORT("DSW1")
AM_RANGE(0x0e0008, 0x0e0009) AM_READ_PORT("DSW2")
AM_RANGE(0x0e000a, 0x0e000b) AM_READ_PORT("SYSTEM")
AM_IMPORT_FROM(megasys1B_map)
ADDRESS_MAP_END


@@ -222,8 +222,8 @@ WRITE8_MEMBER( mephisto_state::write_led_mm2 )
static ADDRESS_MAP_START( rebel5_mem, AS_PROGRAM, 8, mephisto_state )
AM_RANGE( 0x0000, 0x1fff) AM_RAM // AM_BASE(m_p_ram)
AM_RANGE( 0x2000, 0x2007) AM_WRITE(write_led) // Status LEDs+ buzzer
AM_RANGE( 0x3000, 0x3007) AM_READ(read_keys) // Rebel 5.0
AM_RANGE( 0x3000, 0x4000) AM_DEVREAD("board", mephisto_board_device, input_r)
AM_RANGE( 0x3000, 0x3007) AM_READ(read_keys) // Rebel 5.0
AM_RANGE( 0x5000, 0x5000) AM_WRITE(write_lcd)
AM_RANGE( 0x6000, 0x6000) AM_DEVWRITE("board", mephisto_board_device, led_w)
AM_RANGE( 0x7000, 0x7000) AM_DEVWRITE("board", mephisto_board_device, mux_w)
@@ -431,8 +431,8 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( misdraw_map, AS_PROGRAM, 8, merit_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0xb000, 0xb7ff) AM_RAM AM_SHARE("cpunvram") // overlays other NVRAM? or is it banked?
AM_RANGE(0xa000, 0xbfff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0xb000, 0xb7ff) AM_RAM AM_SHARE("cpunvram") // overlays other NVRAM? or is it banked?
AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) // swapped compared to other set?
AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write)
AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("crtc", mc6845_device, address_w)
@@ -1222,9 +1222,9 @@ static ADDRESS_MAP_START( puzzlet_map, AS_PROGRAM, 16, metro_state )
AM_RANGE(0x580000, 0x580003) AM_DEVWRITE8("ymsnd", ym2413_device, write, 0xff00)

// TODO: !!! i4300 !!!
AM_RANGE(0x700000, 0x77ffff) AM_DEVICE("vdp2", imagetek_i4220_device, v2_map)
AM_RANGE(0x7788a2, 0x7788a3) AM_WRITE(metro_irq_cause_w) // IRQ Cause
AM_RANGE(0x7788a4, 0x7788a5) AM_WRITE(puzzlet_irq_enable_w) AM_SHARE("irq_enable") // IRQ Enable
AM_RANGE(0x700000, 0x77ffff) AM_DEVICE("vdp2", imagetek_i4220_device, v2_map)

AM_RANGE(0x7f2000, 0x7f3fff) AM_RAM

@@ -49,8 +49,8 @@ static ADDRESS_MAP_START( mt420_mem_map, AS_PROGRAM, 8, microterm_state )
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0)
AM_RANGE(0x9000, 0x9000) AM_WRITENOP
AM_RANGE(0xc000, 0xc000) AM_READ(c000_r) AM_WRITENOP
AM_RANGE(0xeff8, 0xefff) AM_DEVREADWRITE("avdc", scn2674_device, read, write)
AM_RANGE(0xe000, 0xefff) AM_RAM
AM_RANGE(0xeff8, 0xefff) AM_DEVREADWRITE("avdc", scn2674_device, read, write)
AM_RANGE(0xf000, 0xf7ff) AM_RAM
ADDRESS_MAP_END

@@ -95,13 +95,13 @@ static ADDRESS_MAP_START(alm16_mem, AS_PROGRAM, 16, mmodular_state)
ADDRESS_MAP_END

static ADDRESS_MAP_START(van16_mem, AS_PROGRAM, 16, mmodular_state)
AM_IMPORT_FROM(alm16_mem)

AM_RANGE( 0x000000, 0x03ffff ) AM_ROM

// AM_RANGE( 0xe80004, 0xe80005 ) AM_WRITE(write_unknown2 ) // Bavaria sensors
// AM_RANGE( 0xe80002, 0xe80003 ) AM_READ(read_unknown1 ) // Bavaria sensors
// AM_RANGE( 0xe80006, 0xe80007 ) AM_READ(read_unknown3 ) // Bavaria sensors

AM_IMPORT_FROM(alm16_mem)
ADDRESS_MAP_END

static ADDRESS_MAP_START(alm32_mem, AS_PROGRAM, 32, mmodular_state)
@@ -122,13 +122,13 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START(van32_mem, AS_PROGRAM, 32, mmodular_state)
AM_IMPORT_FROM(alm32_mem)

AM_RANGE( 0x00000000, 0x0003ffff ) AM_ROM

// AM_RANGE( 0x98000008, 0x9800000b ) AM_WRITE(write_unknown2 ) // Bavaria sensors
// AM_RANGE( 0x98000004, 0x98000007 ) AM_READ(read_unknown1 ) // Bavaria sensors
// AM_RANGE( 0x9800000c, 0x9800000f ) AM_READ(read_unknown3 ) // Bavaria sensors

AM_IMPORT_FROM(alm32_mem)
ADDRESS_MAP_END

static ADDRESS_MAP_START(gen32_mem, AS_PROGRAM, 32, mmodular_state)
@@ -1537,6 +1537,8 @@ READ8_MEMBER(model2_state::model2o_in_r)

/* original Model 2 overrides */
static ADDRESS_MAP_START( model2o_mem, AS_PROGRAM, 32, model2_state )
AM_IMPORT_FROM(model2_base_mem)

AM_RANGE(0x00200000, 0x0021ffff) AM_RAM
AM_RANGE(0x00220000, 0x0023ffff) AM_ROM AM_REGION("maincpu", 0x20000)

@@ -1559,8 +1561,6 @@ static ADDRESS_MAP_START( model2o_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x01c00110, 0x01c00113) AM_READ8(virtuacop_lightgun_offscreen_r, 0x00ff00ff)
AM_RANGE(0x01c00200, 0x01c002ff) AM_RAM AM_SHARE("backup2")
AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE(model2_serial_r, model2_serial_w)

AM_IMPORT_FROM(model2_base_mem)
ADDRESS_MAP_END

/* TODO: read by Sonic the Fighters (bit 1), unknown purpose */
@@ -1574,6 +1574,8 @@ READ32_MEMBER(model2_state::copro_status_r)

/* 2A-CRX overrides */
static ADDRESS_MAP_START( model2a_crx_mem, AS_PROGRAM, 32, model2_state )
AM_IMPORT_FROM(model2_base_mem)

AM_RANGE(0x00200000, 0x0023ffff) AM_RAM

AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w)
@@ -1597,12 +1599,12 @@ static ADDRESS_MAP_START( model2a_crx_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x01c0001c, 0x01c0001f) AM_WRITE(analog_2b_w)
AM_RANGE(0x01c00040, 0x01c00043) AM_WRITENOP
AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE(model2_serial_r, model2_serial_w)

AM_IMPORT_FROM(model2_base_mem)
ADDRESS_MAP_END

/* 2B-CRX overrides */
static ADDRESS_MAP_START( model2b_crx_mem, AS_PROGRAM, 32, model2_state )
AM_IMPORT_FROM(model2_base_mem)

AM_RANGE(0x00200000, 0x0023ffff) AM_RAM

AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w)
@@ -1634,12 +1636,12 @@ static ADDRESS_MAP_START( model2b_crx_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x01c0001c, 0x01c0001f) AM_WRITE(analog_2b_w)
AM_RANGE(0x01c00040, 0x01c00043) AM_WRITENOP
AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE(model2_serial_r, model2_serial_w)

AM_IMPORT_FROM(model2_base_mem)
ADDRESS_MAP_END

/* 2C-CRX overrides */
static ADDRESS_MAP_START( model2c_crx_mem, AS_PROGRAM, 32, model2_state )
AM_IMPORT_FROM(model2_base_mem)

AM_RANGE(0x00200000, 0x0023ffff) AM_RAM

AM_RANGE(0x00804000, 0x00807fff) AM_READWRITE(geo_prg_r, geo_prg_w)
@@ -1660,8 +1662,6 @@ static ADDRESS_MAP_START( model2c_crx_mem, AS_PROGRAM, 32, model2_state )
AM_RANGE(0x01c00014, 0x01c00017) AM_WRITE(hotd_lightgun_w)
AM_RANGE(0x01c0001c, 0x01c0001f) AM_WRITE(analog_2b_w)
AM_RANGE(0x01c80000, 0x01c80003) AM_READWRITE(model2_serial_r, model2_serial_w )

AM_IMPORT_FROM(model2_base_mem)
ADDRESS_MAP_END

/* Input definitions */
@@ -832,13 +832,12 @@ READ8_MEMBER(mpu3_state::mpu3ptm_r)

static ADDRESS_MAP_START( mpu3_basemap, AS_PROGRAM, 8, mpu3_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM AM_SHARE("nvram")
AM_RANGE(0x1000, 0xffff) AM_ROM
AM_RANGE(0x8800, 0x881f) AM_READWRITE(mpu3ptm_r, mpu3ptm_w)/* PTM6840 IC2 */
AM_RANGE(0x9000, 0x9003) AM_DEVREADWRITE("pia_ic3", pia6821_device, read, write) /* PIA6821 IC3 */
AM_RANGE(0x9800, 0x9803) AM_DEVREADWRITE("pia_ic4", pia6821_device, read, write) /* PIA6821 IC4 */
AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("pia_ic5", pia6821_device, read, write) /* PIA6821 IC5 */
AM_RANGE(0xa800, 0xa803) AM_DEVREADWRITE("pia_ic6", pia6821_device, read, write) /* PIA6821 IC6 */

AM_RANGE(0x1000, 0xffff) AM_ROM
ADDRESS_MAP_END

#define MCFG_MPU3_REEL_ADD(_tag)\
@@ -412,6 +412,8 @@ WRITE32_MEMBER(ms32_state::ms32_irq5_guess_w)
}

static ADDRESS_MAP_START( f1superb_map, AS_PROGRAM, 32, ms32_state )
AM_IMPORT_FROM(ms32_map)

AM_RANGE(0xfd0d0000, 0xfd0d0003) AM_READ_PORT("DSW2") // MB-93159
AM_RANGE(0xfd0e0000, 0xfd0e0003) AM_READ(ms32_read_inputs3) AM_WRITENOP // writes 7-led seg at very least

@@ -432,8 +434,6 @@ static ADDRESS_MAP_START( f1superb_map, AS_PROGRAM, 32, ms32_state )

AM_RANGE(0xfdc00000, 0xfdc1ffff) AM_READWRITE16(ms32_extra_r16, ms32_extra_w16, 0x0000ffff) AM_SHARE("f1sb_extraram") // definitely line ram
AM_RANGE(0xfde00000, 0xfde1ffff) AM_RAM // scroll info for lineram?

AM_IMPORT_FROM(ms32_map)
ADDRESS_MAP_END

/* F1 Super Battle speculation from nuapete
@@ -118,8 +118,8 @@ static ADDRESS_MAP_START( at32_io, AS_IO, 32, mtxl_state )
AM_RANGE(0x0000, 0x001f) AM_DEVREADWRITE8("mb:dma8237_1", am9517a_device, read, write, 0xffffffff)
AM_RANGE(0x0020, 0x003f) AM_DEVREADWRITE8("mb:pic8259_master", pic8259_device, read, write, 0xffffffff)
AM_RANGE(0x0040, 0x005f) AM_DEVREADWRITE8("mb:pit8254", pit8254_device, read, write, 0xffffffff)
AM_RANGE(0x0060, 0x0063) AM_DEVREADWRITE8("mb", at_mb_device, portb_r, portb_w, 0x0000ff00)
AM_RANGE(0x0060, 0x0067) AM_DEVREADWRITE8("kbdc", kbdc8042_device, data_r, data_w, 0xffffffff)
AM_RANGE(0x0060, 0x0063) AM_DEVREADWRITE8("mb", at_mb_device, portb_r, portb_w, 0x0000ff00)
AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE8("mb:rtc", mc146818_device, read, write, 0xffffffff)
AM_RANGE(0x0080, 0x009f) AM_DEVREADWRITE8("mb", at_mb_device, page8_r, page8_w, 0xffffffff)
AM_RANGE(0x00a0, 0x00bf) AM_DEVREADWRITE8("mb:pic8259_slave", pic8259_device, read, write, 0xffffffff)
@@ -978,8 +978,8 @@ static ADDRESS_MAP_START( igrosoft_gamble_portmap, AS_IO, 8, igrosoft_gamble_sta
ADDRESS_MAP_END

static ADDRESS_MAP_START( rollfr_portmap, AS_IO, 8, igrosoft_gamble_state )
AM_RANGE(0x33, 0x33) AM_WRITE(rollfr_hopper_w)
AM_IMPORT_FROM(igrosoft_gamble_portmap)
AM_RANGE(0x33, 0x33) AM_WRITE(rollfr_hopper_w)
ADDRESS_MAP_END

static const gfx_layout tiles16x16_layout =
@@ -405,8 +405,8 @@ static ADDRESS_MAP_START( multigam_map, AS_PROGRAM, 8, multigam_state )
AM_RANGE(0x4014, 0x4014) AM_WRITE(sprite_dma_w)
AM_RANGE(0x4016, 0x4016) AM_READWRITE(multigam_IN0_r, multigam_IN0_w) /* IN0 - input port 1 */
AM_RANGE(0x4017, 0x4017) AM_READ(multigam_IN1_r) /* IN1 - input port 2 / PSG second control register */
AM_RANGE(0x5002, 0x5002) AM_WRITENOP
AM_RANGE(0x5000, 0x5ffe) AM_ROM
AM_RANGE(0x5002, 0x5002) AM_WRITENOP
AM_RANGE(0x5fff, 0x5fff) AM_READ_PORT("IN0")
AM_RANGE(0x6000, 0x7fff) AM_ROM
AM_RANGE(0x6fff, 0x6fff) AM_WRITE(multigam_switch_prg_rom)
@@ -417,14 +417,14 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( multigmt_map, AS_PROGRAM, 8, multigam_state )
AM_RANGE(0x0000, 0x07ff) AM_RAM /* NES RAM */
AM_RANGE(0x0800, 0x0fff) AM_RAM /* additional RAM */
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE("ppu", ppu2c0x_device, read, write)
AM_RANGE(0x3000, 0x3000) AM_WRITE(multigam_switch_prg_rom)
AM_RANGE(0x3fff, 0x3fff) AM_WRITE(multigam_switch_gfx_rom)
AM_RANGE(0x2000, 0x3fff) AM_DEVREADWRITE("ppu", ppu2c0x_device, read, write)
AM_RANGE(0x4014, 0x4014) AM_WRITE(sprite_dma_w)
AM_RANGE(0x4016, 0x4016) AM_READWRITE(multigam_IN0_r, multigam_IN0_w) /* IN0 - input port 1 */
AM_RANGE(0x4017, 0x4017) AM_READ(multigam_IN1_r) /* IN1 - input port 2 / PSG second control register */
AM_RANGE(0x5002, 0x5002) AM_WRITENOP
AM_RANGE(0x5000, 0x5ffe) AM_ROM
AM_RANGE(0x5002, 0x5002) AM_WRITENOP
AM_RANGE(0x5fff, 0x5fff) AM_READ_PORT("IN0")
AM_RANGE(0x6000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xffff) AM_ROM AM_WRITE(multigam_mapper2_w)
@@ -236,8 +236,8 @@ mvme147_state(const machine_config &mconfig, device_type type, const char *tag)

static ADDRESS_MAP_START (mvme147_mem, AS_PROGRAM, 32, mvme147_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 /* 4 Mb RAM */
AM_RANGE (0xff800000, 0xff9fffff) AM_ROM AM_REGION("roms", 0x800000) //AM_MIRROR(0x00780000) /* ROM/EEPROM bank 1 - 147bug */
AM_RANGE (0xffa00000, 0xffbfffff) AM_ROM AM_REGION("roms", 0xa00000) //AM_MIRROR(0x00780000) /* ROM/EEPROM bank 2 - unpopulated */
@@ -222,13 +222,13 @@ static ADDRESS_MAP_START( mwarr_map, AS_PROGRAM, 16, mwarr_state )
AM_RANGE(0x103c00, 0x103fff) AM_RAM AM_SHARE("vidattrram")
AM_RANGE(0x104000, 0x104fff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0x108000, 0x108fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE("mwarr_ram")
AM_RANGE(0x110000, 0x110001) AM_READ_PORT("P1_P2")
AM_RANGE(0x110002, 0x110003) AM_READ_PORT("SYSTEM")
AM_RANGE(0x110004, 0x110005) AM_READ_PORT("DSW")
AM_RANGE(0x110010, 0x110011) AM_WRITE(oki1_bank_w)
AM_RANGE(0x110014, 0x110015) AM_WRITE(mwarr_brightness_w)
AM_RANGE(0x110016, 0x110017) AM_WRITE(sprites_commands_w)
AM_RANGE(0x110000, 0x11ffff) AM_RAM AM_SHARE("mwarr_ram")
AM_RANGE(0x180000, 0x180001) AM_DEVREADWRITE8("oki1", okim6295_device, read, write, 0x00ff)
AM_RANGE(0x190000, 0x190001) AM_DEVREADWRITE8("oki2", okim6295_device, read, write, 0x00ff)
ADDRESS_MAP_END
@@ -420,10 +420,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START(mz2000_io, AS_IO, 8, mz2000_state )
ADDRESS_MAP_UNMAP_HIGH
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_IMPORT_FROM(mz80b_io)
AM_RANGE(0xf5, 0xf5) AM_WRITE(mz2000_tvram_attr_w)
AM_RANGE(0xf6, 0xf6) AM_WRITE(mz2000_gvram_mask_w)
AM_RANGE(0xf7, 0xf7) AM_WRITE(mz2000_gvram_bank_w)
AM_IMPORT_FROM(mz80b_io)
ADDRESS_MAP_END


@@ -490,10 +490,10 @@ static ADDRESS_MAP_START( namcos10_map, AS_PROGRAM, 32, namcos10_state )
AM_RANGE(0x9f500000, 0x9f501fff) AM_RAM AM_SHARE("share3") /* ram? stores block numbers */
AM_RANGE(0xbf500000, 0xbf501fff) AM_RAM AM_SHARE("share3") /* ram? stores block numbers */

AM_RANGE(0x1fba0000, 0x1fba000f) AM_READWRITE16(control_r, control_w, 0xffffffff)
AM_RANGE(0x1fba0000, 0x1fba0003) AM_READWRITE16(sprot_r, sprot_w, 0xffff0000)
AM_RANGE(0x1fba0008, 0x1fba000b) AM_READWRITE16(i2c_clock_r, i2c_clock_w, 0x0000ffff)
AM_RANGE(0x1fba0008, 0x1fba000b) AM_READWRITE16(i2c_data_r, i2c_data_w, 0xffff0000)
AM_RANGE(0x1fba0000, 0x1fba000f) AM_READWRITE16(control_r, control_w, 0xffffffff)
ADDRESS_MAP_END


@@ -672,11 +672,11 @@ void namcos10_state::i2c_update()
}

static ADDRESS_MAP_START( namcos10_memm_map, AS_PROGRAM, 32, namcos10_state )
AM_IMPORT_FROM(namcos10_map)

AM_RANGE(0x1f300000, 0x1f300003) AM_WRITE16(crypto_switch_w, 0x0000ffff)
AM_RANGE(0x1f400000, 0x1f5fffff) AM_READ16(range_r, 0xffffffff)
AM_RANGE(0x1fb40000, 0x1fb4000f) AM_WRITE16(bank_w, 0xffffffff)

AM_IMPORT_FROM(namcos10_map)
ADDRESS_MAP_END


@@ -767,6 +767,8 @@ READ16_MEMBER(namcos10_state::nand_block_r)
}

static ADDRESS_MAP_START( namcos10_memn_map, AS_PROGRAM, 32, namcos10_state )
AM_IMPORT_FROM(namcos10_map)

AM_RANGE(0x1f300000, 0x1f300003) AM_WRITE16(crypto_switch_w, 0x0000ffff)
AM_RANGE(0x1f380000, 0x1f380003) AM_WRITE16(crypto_switch_w, 0x0000ffff)
AM_RANGE(0x1f400000, 0x1f400003) AM_READ16(nand_status_r, 0x0000ffff)
@@ -776,8 +778,6 @@ static ADDRESS_MAP_START( namcos10_memn_map, AS_PROGRAM, 32, namcos10_state )
AM_RANGE(0x1f440000, 0x1f440003) AM_WRITE8(nand_address4_w, 0x000000ff)
AM_RANGE(0x1f450000, 0x1f450003) AM_READ16(nand_data_r, 0x0000ffff)
AM_RANGE(0x1fb60000, 0x1fb60003) AM_READWRITE16(nand_block_r, nand_block_w, 0x0000ffff)

AM_IMPORT_FROM(namcos10_map)
ADDRESS_MAP_END

void namcos10_state::memn_driver_init( )
@@ -496,10 +496,10 @@ static ADDRESS_MAP_START( rom8_64_map, AS_PROGRAM, 32, namcos11_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( ptblank2ua_map, AS_PROGRAM, 32, namcos11_state )
AM_IMPORT_FROM(rom8_64_map)

AM_RANGE(0x1f780000, 0x1f78000f) AM_READ16(lightgun_r, 0xffffffff)
AM_RANGE(0x1f788000, 0x1f788003) AM_WRITE16(lightgun_w, 0xffffffff)

AM_IMPORT_FROM(rom8_64_map)
ADDRESS_MAP_END

ADDRESS_MAP_START( c76_map, AS_PROGRAM, 16, namcos11_state )
@@ -1340,11 +1340,11 @@ static ADDRESS_MAP_START( ptblank2_map, AS_PROGRAM, 32, namcos12_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( tektagt_map, AS_PROGRAM, 32, namcos12_state )
AM_IMPORT_FROM( namcos12_map )

AM_RANGE(0x1fb00000, 0x1fb00003) AM_READWRITE16(tektagt_protection_1_r, tektagt_protection_1_w, 0xffffffff)
AM_RANGE(0x1fb80000, 0x1fb80003) AM_READWRITE16(tektagt_protection_2_r, tektagt_protection_2_w, 0xffffffff)
AM_RANGE(0x1f700000, 0x1f700003) AM_READ16(tektagt_protection_3_r, 0xffffffff)

AM_IMPORT_FROM( namcos12_map )
ADDRESS_MAP_END

WRITE16_MEMBER(namcos12_state::system11gun_w)
@@ -1632,10 +1632,10 @@ READ16_MEMBER(namcos12_state::s12_mcu_gun_v_r)
}

static ADDRESS_MAP_START( golgo13_h8iomap, AS_IO, 16, namcos12_state )
AM_IMPORT_FROM( s12h8iomap )

AM_RANGE(h8_device::ADC_1, h8_device::ADC_1) AM_READ(s12_mcu_gun_h_r)
AM_RANGE(h8_device::ADC_2, h8_device::ADC_2) AM_READ(s12_mcu_gun_v_r)

AM_IMPORT_FROM( s12h8iomap )
ADDRESS_MAP_END


@@ -607,108 +607,109 @@ ADDRESS_MAP_END
/*************************************************************/

static ADDRESS_MAP_START( common_default_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xc40000, 0xc40001) AM_READWRITE(gfx_ctrl_r, gfx_ctrl_w)
AM_RANGE(0xc80000, 0xc9ffff) AM_RAM_WRITE(rozram_word_w) AM_SHARE("rozram")
AM_RANGE(0xcc0000, 0xcc000f) AM_RAM AM_SHARE("rozctrl")
AM_RANGE(0xd00000, 0xd0000f) AM_READWRITE(namcos2_68k_key_r,namcos2_68k_key_w)
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( master_default_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_default_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE8(namcos2_68k_eeprom_r,namcos2_68k_eeprom_w,0x00ff)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("master_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_default_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( slave_default_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_default_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("slave_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_default_am )
ADDRESS_MAP_END


/*************************************************************/

static ADDRESS_MAP_START( common_finallap_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
AM_RANGE(0x300000, 0x33ffff) AM_READ(namcos2_finallap_prot_r)
AM_RANGE(0x800000, 0x80ffff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0x840000, 0x840001) AM_READWRITE(gfx_ctrl_r, gfx_ctrl_w)
AM_RANGE(0x880000, 0x89ffff) AM_DEVREADWRITE("c45_road", namco_c45_road_device, read, write)
AM_RANGE(0x8c0000, 0x8c0001) AM_WRITENOP
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( master_finallap_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_finallap_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE8(namcos2_68k_eeprom_r,namcos2_68k_eeprom_w,0x00ff)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("master_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_finallap_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( slave_finallap_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_finallap_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("slave_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_finallap_am )
ADDRESS_MAP_END

/*************************************************************/

static ADDRESS_MAP_START( common_sgunner_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
AM_RANGE(0x800000, 0x8141ff) AM_READWRITE(c355_obj_ram_r,c355_obj_ram_w)
AM_RANGE(0x818000, 0x818001) AM_WRITENOP
AM_RANGE(0xa00000, 0xa0000f) AM_READWRITE(namcos2_68k_key_r,namcos2_68k_key_w)
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( master_sgunner_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_sgunner_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE8(namcos2_68k_eeprom_r,namcos2_68k_eeprom_w,0x00ff)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("master_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_sgunner_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( slave_sgunner_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_sgunner_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("slave_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_sgunner_am )
ADDRESS_MAP_END

/*************************************************************/

static ADDRESS_MAP_START( common_metlhawk_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
AM_RANGE(0xc00000, 0xc03fff) AM_RAM AM_SHARE("spriteram")
AM_RANGE(0xc40000, 0xc4ffff) AM_READWRITE(c169_roz_videoram_r,c169_roz_videoram_w) AM_SHARE("rozvideoram")
AM_RANGE(0xd00000, 0xd0001f) AM_READWRITE(c169_roz_control_r,c169_roz_control_w)
AM_RANGE(0xe00000, 0xe00001) AM_READWRITE(gfx_ctrl_r, gfx_ctrl_w) /* ??? */
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( master_metlhawk_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_metlhawk_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE8(namcos2_68k_eeprom_r,namcos2_68k_eeprom_w,0x00ff)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("master_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_metlhawk_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( slave_metlhawk_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_metlhawk_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("slave_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_metlhawk_am )
ADDRESS_MAP_END

/*************************************************************/

static ADDRESS_MAP_START( common_luckywld_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
AM_RANGE(0x800000, 0x8141ff) AM_READWRITE(c355_obj_ram_r,c355_obj_ram_w)
AM_RANGE(0x818000, 0x818001) AM_NOP /* enable? */
AM_RANGE(0x81a000, 0x81a001) AM_WRITENOP /* enable? */
@@ -718,22 +719,21 @@ static ADDRESS_MAP_START( common_luckywld_am, AS_PROGRAM, 16, namcos2_state )
AM_RANGE(0xc00000, 0xc0ffff) AM_READWRITE(c169_roz_videoram_r,c169_roz_videoram_w) AM_SHARE("rozvideoram")
AM_RANGE(0xd00000, 0xd0001f) AM_READWRITE(c169_roz_control_r,c169_roz_control_w)
AM_RANGE(0xf00000, 0xf00007) AM_READWRITE(namcos2_68k_key_r,namcos2_68k_key_w)
AM_IMPORT_FROM( namcos2_68k_default_cpu_board_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( master_luckywld_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_luckywld_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAMBANK(NAMCOS2_68K_MASTER_RAM)
AM_RANGE(0x180000, 0x183fff) AM_READWRITE8(namcos2_68k_eeprom_r,namcos2_68k_eeprom_w,0x00ff)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("master_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_luckywld_am )
ADDRESS_MAP_END

static ADDRESS_MAP_START( slave_luckywld_am, AS_PROGRAM, 16, namcos2_state )
AM_IMPORT_FROM( common_luckywld_am )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAMBANK(NAMCOS2_68K_SLAVE_RAM)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("slave_intc", namco_c148_device, map)
AM_IMPORT_FROM( common_luckywld_am )
ADDRESS_MAP_END

/*************************************************************/
@@ -761,14 +761,14 @@ ADDRESS_MAP_END

static ADDRESS_MAP_START( mcu_default_am, AS_PROGRAM, 8, namcos2_state )
/* input ports and dips are mapped here */
AM_RANGE(0x0000, 0x003f) AM_RAM /* Fill in register to stop logging */
AM_RANGE(0x0000, 0x0000) AM_READNOP /* Keep logging quiet */
AM_RANGE(0x0001, 0x0001) AM_READ_PORT("MCUB")
AM_RANGE(0x0002, 0x0002) AM_READ_PORT("MCUC")
AM_RANGE(0x0003, 0x0003) AM_READWRITE(namcos2_mcu_port_d_r,namcos2_mcu_port_d_w)
AM_RANGE(0x0007, 0x0007) AM_READ_PORT("MCUH")
AM_RANGE(0x0010, 0x0010) AM_READWRITE(namcos2_mcu_analog_ctrl_r,namcos2_mcu_analog_ctrl_w)
AM_RANGE(0x0011, 0x0011) AM_READWRITE(namcos2_mcu_analog_port_r,namcos2_mcu_analog_port_w)
AM_RANGE(0x0000, 0x003f) AM_RAM /* Fill in register to stop logging */
AM_RANGE(0x0040, 0x01bf) AM_RAM
AM_RANGE(0x01c0, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW")
@@ -1255,20 +1255,20 @@ static ADDRESS_MAP_START( common_map, AS_PROGRAM, 16, namcos21_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( master_map, AS_PROGRAM, 16, namcos21_state )
AM_IMPORT_FROM( common_map )
AM_RANGE(0x000000, 0x0fffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
AM_RANGE(0x180000, 0x183fff) AM_READWRITE8(namcos2_68k_eeprom_r,namcos2_68k_eeprom_w,0x00ff)
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("master_intc", namco_c148_device, map)
AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(dspram16_r,dspram16_w<true>) AM_SHARE("dspram16")
AM_IMPORT_FROM( common_map )
ADDRESS_MAP_END

static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 16, namcos21_state )
AM_IMPORT_FROM( common_map )
AM_RANGE(0x000000, 0x07ffff) AM_ROM
AM_RANGE(0x100000, 0x13ffff) AM_RAM /* private work RAM */
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("slave_intc", namco_c148_device, map)
AM_RANGE(0x200000, 0x20ffff) AM_READWRITE(dspram16_r,dspram16_w<false>) AM_SHARE("dspram16")
AM_IMPORT_FROM( common_map )
ADDRESS_MAP_END


@@ -1537,14 +1537,14 @@ ADDRESS_MAP_END
/*************************************************************/

static ADDRESS_MAP_START( mcu_map, AS_PROGRAM, 8, namcos21_state )
AM_RANGE(0x0000, 0x003f) AM_RAM
AM_RANGE(0x0000, 0x0000) AM_READNOP
AM_RANGE(0x0001, 0x0001) AM_READ_PORT("PORTB") /* p1,p2 start */
AM_RANGE(0x0002, 0x0002) AM_READ_PORT("PORTC") /* coins */
AM_RANGE(0x0003, 0x0003) AM_READWRITE(namcos2_mcu_port_d_r,namcos2_mcu_port_d_w)
AM_RANGE(0x0007, 0x0007) AM_READ_PORT("PORTH") /* fire buttons */
AM_RANGE(0x0010, 0x0010) AM_READWRITE(namcos2_mcu_analog_ctrl_r,namcos2_mcu_analog_ctrl_w)
AM_RANGE(0x0011, 0x0011) AM_READWRITE(namcos2_mcu_analog_port_r,namcos2_mcu_analog_port_w)
AM_RANGE(0x0000, 0x003f) AM_RAM
AM_RANGE(0x0040, 0x01bf) AM_RAM
AM_RANGE(0x01c0, 0x1fff) AM_ROM
AM_RANGE(0x2000, 0x2000) AM_READ_PORT("DSW")
@@ -1577,6 +1577,7 @@ static ADDRESS_MAP_START( driveyes_common_map, AS_PROGRAM, 16, namcos21_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( driveyes_master_map, AS_PROGRAM, 16, namcos21_state )
AM_IMPORT_FROM( driveyes_common_map )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
AM_RANGE(0x180000, 0x183fff) AM_READWRITE8(namcos2_68k_eeprom_r,namcos2_68k_eeprom_w,0x00ff)
@@ -1587,14 +1588,13 @@ static ADDRESS_MAP_START( driveyes_master_map, AS_PROGRAM, 16, namcos21_state )
AM_RANGE(0x3c0000, 0x3c1fff) AM_READWRITE(winrun_68k_dspcomram_r,winrun_68k_dspcomram_w)
AM_RANGE(0x400000, 0x400001) AM_WRITE(pointram_control_w)
AM_RANGE(0x440000, 0x440001) AM_READWRITE(pointram_data_r,pointram_data_w)
AM_IMPORT_FROM( driveyes_common_map )
ADDRESS_MAP_END

static ADDRESS_MAP_START( driveyes_slave_map, AS_PROGRAM, 16, namcos21_state )
AM_IMPORT_FROM( driveyes_common_map )
AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x10ffff) AM_RAM /* private work RAM */
AM_RANGE(0x1c0000, 0x1fffff) AM_DEVICE("slave_intc", namco_c148_device, map)
AM_IMPORT_FROM( driveyes_common_map )
ADDRESS_MAP_END

/*************************************************************/
@@ -1977,8 +1977,8 @@ READ32_MEMBER(namcos22_state::namcos22_gun_r)
}

static ADDRESS_MAP_START( timecris_am, AS_PROGRAM, 32, namcos22_state )
AM_RANGE(0x430000, 0x43000f) AM_READ(namcos22_gun_r)
AM_IMPORT_FROM( namcos22s_am )
AM_RANGE(0x430000, 0x43000f) AM_READ(namcos22_gun_r)
ADDRESS_MAP_END


@@ -2010,9 +2010,9 @@ WRITE32_MEMBER(namcos22_state::alpinesa_prot_w)
}

static ADDRESS_MAP_START( alpinesa_am, AS_PROGRAM, 32, namcos22_state )
AM_IMPORT_FROM( namcos22s_am )
AM_RANGE(0x200000, 0x200003) AM_READ(alpinesa_prot_r)
AM_RANGE(0x300000, 0x300003) AM_WRITE(alpinesa_prot_w)
AM_IMPORT_FROM( namcos22s_am )
ADDRESS_MAP_END


@@ -2955,8 +2955,8 @@ WRITE8_MEMBER(namcos22_state::alpine_mcu_port5_w)
}

static ADDRESS_MAP_START( alpine_io_map, AS_IO, 8, namcos22_state )
AM_RANGE(M37710_PORT5, M37710_PORT5) AM_WRITE(alpine_mcu_port5_w)
AM_IMPORT_FROM( mcu_io )
AM_RANGE(M37710_PORT5, M37710_PORT5) AM_WRITE(alpine_mcu_port5_w)
ADDRESS_MAP_END


@@ -2972,8 +2972,8 @@ WRITE8_MEMBER(namcos22_state::propcycle_mcu_port5_w)
}

static ADDRESS_MAP_START( propcycl_io_map, AS_IO, 8, namcos22_state )
AM_RANGE(M37710_PORT5, M37710_PORT5) AM_WRITE(propcycle_mcu_port5_w)
AM_IMPORT_FROM( mcu_io )
AM_RANGE(M37710_PORT5, M37710_PORT5) AM_WRITE(propcycle_mcu_port5_w)
ADDRESS_MAP_END

TIMER_DEVICE_CALLBACK_MEMBER(namcos22_state::propcycl_pedal_interrupt)
@@ -3190,8 +3190,8 @@ READ8_MEMBER(namcos23_state::iob_gun_r)
}

static ADDRESS_MAP_START( timecrs2iobrdmap, AS_PROGRAM, 16, namcos23_state )
AM_RANGE(0x7000, 0x700f) AM_READ8(iob_gun_r, 0xffff)
AM_IMPORT_FROM( s23iobrdmap )
AM_RANGE(0x7000, 0x700f) AM_READ8(iob_gun_r, 0xffff)
ADDRESS_MAP_END


@@ -337,10 +337,10 @@ static ADDRESS_MAP_START( cpu1_map, AS_PROGRAM, 8, namcos86_state )
AM_RANGE(0x0000, 0x1fff) AM_RAM AM_WRITE(videoram1_w) AM_SHARE("videoram1")
AM_RANGE(0x2000, 0x3fff) AM_RAM AM_WRITE(videoram2_w) AM_SHARE("videoram2")

AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */

AM_RANGE(0x4000, 0x5fff) AM_RAM AM_WRITE(spriteram_w) AM_SHARE("spriteram")

AM_RANGE(0x4000, 0x43ff) AM_DEVREADWRITE("namco", namco_cus30_device, namcos1_cus30_r, namcos1_cus30_w) /* PSG device, shared RAM */

AM_RANGE(0x6000, 0x7fff) AM_ROMBANK("bank1")
AM_RANGE(0x8000, 0xffff) AM_ROM

@@ -1701,8 +1701,8 @@ static ADDRESS_MAP_START( naomi_map, AS_PROGRAM, 64, naomi_state )
AM_RANGE(0x00200000, 0x00207fff) AM_MIRROR(0x02000000) AM_RAM // bios uses it (battery backed ram ?)
AM_RANGE(0x005f6800, 0x005f69ff) AM_MIRROR(0x02000000) AM_READWRITE(dc_sysctrl_r, dc_sysctrl_w )
AM_RANGE(0x005f6c00, 0x005f6cff) AM_MIRROR(0x02000000) AM_DEVICE32( "maple_dc", maple_dc_device, amap, 0xffffffffffffffffU )
AM_RANGE(0x005f7018, 0x005f702f) AM_MIRROR(0x02000000) AM_DEVREADWRITE16( "comm_board", m3comm_device, naomi_r, naomi_w, 0x0000ffff0000ffffU )
AM_RANGE(0x005f7000, 0x005f70ff) AM_MIRROR(0x02000000) AM_DEVICE16( "rom_board", naomi_board, submap, 0x0000ffff0000ffffU )
AM_RANGE(0x005f7018, 0x005f702f) AM_MIRROR(0x02000000) AM_DEVREADWRITE16( "comm_board", m3comm_device, naomi_r, naomi_w, 0x0000ffff0000ffffU )
AM_RANGE(0x005f7400, 0x005f74ff) AM_MIRROR(0x02000000) AM_DEVICE32( "rom_board", naomi_g1_device, amap, 0xffffffffffffffffU )
AM_RANGE(0x005f7800, 0x005f78ff) AM_MIRROR(0x02000000) AM_READWRITE(dc_g2_ctrl_r, dc_g2_ctrl_w )
AM_RANGE(0x005f7c00, 0x005f7cff) AM_MIRROR(0x02000000) AM_DEVICE32("powervr2", powervr2_device, pd_dma_map, 0xffffffffffffffffU)
@@ -1433,8 +1433,8 @@ ADDRESS_MAP_END


static ADDRESS_MAP_START( main_map_slot, AS_PROGRAM, 16, neogeo_state )
AM_RANGE(0x000000, 0x00007f) AM_READ(banked_vectors_r)
AM_IMPORT_FROM( neogeo_main_map )
AM_RANGE(0x000000, 0x00007f) AM_READ(banked_vectors_r)
ADDRESS_MAP_END


@@ -888,8 +888,8 @@ MACHINE_RESET_MEMBER(ngcd_state,neocd)

static ADDRESS_MAP_START( neocd_main_map, AS_PROGRAM, 16, ngcd_state )
// AM_RANGE(0x000000, 0x00007f) AM_READ_BANK("vectors") // writes will fall through to area below
AM_RANGE(0x000000, 0x00007f) AM_READ(banked_vectors_r)
AM_RANGE(0x000000, 0x1fffff) AM_RAM AM_REGION("maincpu", 0x00000)
AM_RANGE(0x000000, 0x00007f) AM_READ(banked_vectors_r)

AM_RANGE(0x300000, 0x300001) AM_MIRROR(0x01fffe) AM_DEVREAD8("ctrl1", neogeo_control_port_device, ctrl_r, 0xff00)
AM_RANGE(0x320000, 0x320001) AM_MIRROR(0x01fffe) AM_READ_PORT("AUDIO") AM_WRITE8(audio_command_w, 0xff00)
@@ -877,8 +877,8 @@ static ADDRESS_MAP_START( nes_vt_map, AS_PROGRAM, 8, nes_vt_state )

AM_RANGE(0x4100, 0x410b) AM_WRITE(vt03_410x_w)

AM_RANGE(0x8000, 0xffff) AM_WRITE(vt03_8000_w)
AM_RANGE(0x8000, 0xffff) AM_DEVICE("prg", address_map_bank_device, amap8)
AM_RANGE(0x8000, 0xffff) AM_WRITE(vt03_8000_w)
AM_RANGE(0x6000, 0x7fff) AM_RAM
ADDRESS_MAP_END

@@ -911,8 +911,8 @@ static ADDRESS_MAP_START( nes_vt_hh_map, AS_PROGRAM, 8, nes_vt_state )

AM_RANGE(0x4100, 0x410b) AM_WRITE(vt03_410x_w)

AM_RANGE(0x8000, 0xffff) AM_WRITE(vt03_8000_w)
AM_RANGE(0x8000, 0xffff) AM_DEVICE("prg", address_map_bank_device, amap8)
AM_RANGE(0x8000, 0xffff) AM_WRITE(vt03_8000_w)

AM_RANGE(0x4034, 0x4034) AM_WRITE(vt03_4034_w)
AM_RANGE(0x4014, 0x4014) AM_READ(psg1_4014_r) AM_WRITE(vt_hh_sprite_dma_w)
@@ -932,8 +932,8 @@ static ADDRESS_MAP_START( nes_vt_dg_map, AS_PROGRAM, 8, nes_vt_state )

AM_RANGE(0x411c, 0x411c) AM_WRITE(vt03_411c_w)

AM_RANGE(0x8000, 0xffff) AM_WRITE(vt03_8000_w)
AM_RANGE(0x8000, 0xffff) AM_DEVICE("prg", address_map_bank_device, amap8)
AM_RANGE(0x8000, 0xffff) AM_WRITE(vt03_8000_w)

AM_RANGE(0x4034, 0x4034) AM_WRITE(vt03_4034_w)
AM_RANGE(0x4014, 0x4014) AM_READ(psg1_4014_r) AM_WRITE(nes_vh_sprite_dma_w)
@@ -933,42 +933,36 @@ static ADDRESS_MAP_START( next_mem, AS_PROGRAM, 32, next_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( next_0b_m_nofdc_mem, AS_PROGRAM, 32, next_state )
AM_RANGE(0x0b000000, 0x0b03ffff) AM_RAM AM_SHARE("vram")

AM_IMPORT_FROM(next_mem)
AM_RANGE(0x0b000000, 0x0b03ffff) AM_RAM AM_SHARE("vram")
ADDRESS_MAP_END

static ADDRESS_MAP_START( next_fdc_mem, AS_PROGRAM, 32, next_state )
AM_IMPORT_FROM(next_mem)
AM_RANGE(0x02014100, 0x02014107) AM_MIRROR(0x300000) AM_DEVICE8("fdc", n82077aa_device, map, 0xffffffff)
AM_RANGE(0x02014108, 0x0201410b) AM_MIRROR(0x300000) AM_READWRITE(fdc_control_r, fdc_control_w)

AM_IMPORT_FROM(next_mem)
ADDRESS_MAP_END

static ADDRESS_MAP_START( next_0b_m_mem, AS_PROGRAM, 32, next_state )
AM_RANGE(0x0b000000, 0x0b03ffff) AM_RAM AM_SHARE("vram")

AM_IMPORT_FROM(next_fdc_mem)
AM_RANGE(0x0b000000, 0x0b03ffff) AM_RAM AM_SHARE("vram")
ADDRESS_MAP_END

static ADDRESS_MAP_START( next_0c_m_mem, AS_PROGRAM, 32, next_state )
AM_RANGE(0x0c000000, 0x0c1fffff) AM_RAM AM_SHARE("vram")

AM_IMPORT_FROM(next_fdc_mem)
AM_RANGE(0x0c000000, 0x0c1fffff) AM_RAM AM_SHARE("vram")
ADDRESS_MAP_END

static ADDRESS_MAP_START( next_0c_c_mem, AS_PROGRAM, 32, next_state )
AM_IMPORT_FROM(next_fdc_mem)
AM_RANGE(0x0c000000, 0x0c1fffff) AM_RAM AM_SHARE("vram")
AM_RANGE(0x02018180, 0x02018183) AM_MIRROR(0x300000) AM_WRITE8(ramdac_w, 0xffffffff)

AM_IMPORT_FROM(next_fdc_mem)
ADDRESS_MAP_END

static ADDRESS_MAP_START( next_2c_c_mem, AS_PROGRAM, 32, next_state )
AM_IMPORT_FROM(next_fdc_mem)
AM_RANGE(0x2c000000, 0x2c1fffff) AM_RAM AM_SHARE("vram")
AM_RANGE(0x02018180, 0x02018183) AM_MIRROR(0x300000) AM_WRITE8(ramdac_w, 0xffffffff)

AM_IMPORT_FROM(next_fdc_mem)
ADDRESS_MAP_END


@@ -394,8 +394,8 @@ static ADDRESS_MAP_START( sweetgal_map, AS_PROGRAM, 8, nightgal_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( sexygal_map, AS_PROGRAM, 8, nightgal_state )
AM_RANGE(0xa000, 0xa000) AM_WRITE(sexygal_audioff_w)
AM_IMPORT_FROM(sweetgal_map)
AM_RANGE(0xa000, 0xa000) AM_WRITE(sexygal_audioff_w)
ADDRESS_MAP_END

static ADDRESS_MAP_START( common_sexygal_io, AS_IO, 8, nightgal_state )
@@ -346,9 +346,9 @@ static ADDRESS_MAP_START( vandykeb_map, AS_PROGRAM, 16, nmk16_state )
AM_RANGE(0x080008, 0x080009) AM_READ_PORT("DSW1")
AM_RANGE(0x08000a, 0x08000b) AM_READ_PORT("DSW2")
// AM_RANGE(0x08000e, 0x08000f) AM_DEVREAD8("nmk004", nmk004_device, read, 0x00ff)
AM_RANGE(0x080010, 0x08001d) AM_WRITE(vandykeb_scroll_w) /* 10, 12, 1a, 1c */
AM_RANGE(0x080016, 0x080017) AM_WRITENOP /* IRQ enable? */
AM_RANGE(0x080018, 0x080019) AM_WRITE(nmk_tilebank_w)
AM_RANGE(0x080010, 0x08001d) AM_WRITE(vandykeb_scroll_w) /* 10, 12, 1a, 1c */
// AM_RANGE(0x08001e, 0x08001f) AM_DEVWRITE8("nmk004", nmk004_device, write, 0x00ff)
AM_RANGE(0x088000, 0x0887ff) AM_RAM_DEVWRITE("palette", palette_device, write16) AM_SHARE("palette")
AM_RANGE(0x08c000, 0x08c007) AM_WRITENOP /* just in case... */
@@ -1054,9 +1054,9 @@ static ADDRESS_MAP_START( macross2_map, AS_PROGRAM, 16, nmk16_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( tdragon3h_map, AS_PROGRAM, 16, nmk16_state ) // bootleg has these 2 swapped
AM_IMPORT_FROM(macross2_map)
AM_RANGE(0x10000e, 0x10000f) AM_READ_PORT("DSW2")
AM_RANGE(0x10000a, 0x10000b) AM_DEVREAD8("soundlatch2", generic_latch_8_device, read, 0x00ff) /* from Z80 */
AM_IMPORT_FROM(macross2_map)
ADDRESS_MAP_END

static ADDRESS_MAP_START( raphero_map, AS_PROGRAM, 16, nmk16_state )
@@ -5102,11 +5102,11 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( firehawk_sound_cpu, AS_PROGRAM, 8, nmk16_state )
AM_RANGE(0x0000, 0xefff) AM_ROM
AM_RANGE(0xf000, 0xf7ff) AM_RAM
AM_RANGE(0xf800, 0xffff) AM_RAM // not used, only tested
AM_RANGE(0xfff0, 0xfff0) AM_DEVREAD("soundlatch", generic_latch_8_device, read)
AM_RANGE(0xfff2, 0xfff2) AM_WRITE(spec2k_oki1_banking_w )
AM_RANGE(0xfff8, 0xfff8) AM_DEVREADWRITE("oki2", okim6295_device, read, write)
AM_RANGE(0xfffa, 0xfffa) AM_DEVREADWRITE("oki1", okim6295_device, read, write)
AM_RANGE(0xf800, 0xffff) AM_RAM // not used, only tested
ADDRESS_MAP_END


@@ -512,9 +512,9 @@ static ADDRESS_MAP_START( supercon_map, AS_PROGRAM, 8, novag6502_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( cforte_map, AS_PROGRAM, 8, novag6502_state )
AM_IMPORT_FROM( supercon_map )
AM_RANGE(0x1e00, 0x1e00) AM_READWRITE(supercon_input2_r, cforte_mux_w)
AM_RANGE(0x1f00, 0x1f00) AM_READWRITE(supercon_input1_r, cforte_control_w)
AM_IMPORT_FROM( supercon_map )
ADDRESS_MAP_END


@@ -534,11 +534,11 @@ static ADDRESS_MAP_START( sforte_map, AS_PROGRAM, 8, novag6502_state )
ADDRESS_MAP_END

static ADDRESS_MAP_START( sexpert_map, AS_PROGRAM, 8, novag6502_state )
AM_IMPORT_FROM( sforte_map )
AM_RANGE(0x1ff4, 0x1ff4) AM_WRITE(sexpert_leds_w)
AM_RANGE(0x1ff5, 0x1ff5) AM_WRITE(sexpert_mux_w)
AM_RANGE(0x1ff6, 0x1ff6) AM_WRITE(sexpert_lcd_control_w)
AM_RANGE(0x1ff7, 0x1ff7) AM_WRITE(sexpert_lcd_data_w)
AM_IMPORT_FROM( sforte_map )
ADDRESS_MAP_END