summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Andrew Gardner <andrew-gardner@users.noreply.github.com>2008-03-04 04:37:01 +0000
committer Andrew Gardner <andrew-gardner@users.noreply.github.com>2008-03-04 04:37:01 +0000
commit7a52f023ac888154ddc15fe64e176c65cc8ce849 (patch)
tree9cce41296b2ea9888c92523586d8c2674252bf87
parent77ed3a81efa2e0179cb7fbc28ff1d7eebb094538 (diff)
Merges memory maps X->Z.
Regression tests consist of running through demo mode with -log, diff'ing the results, and playing a bit.
-rw-r--r--src/mame/drivers/xain.c72
-rw-r--r--src/mame/drivers/xexex.c94
-rw-r--r--src/mame/drivers/xmen.c169
-rw-r--r--src/mame/drivers/xyonix.c36
-rw-r--r--src/mame/drivers/yiear.c29
-rw-r--r--src/mame/drivers/yumefuda.c45
-rw-r--r--src/mame/drivers/yunsun16.c85
-rw-r--r--src/mame/drivers/yunsung8.c64
-rw-r--r--src/mame/drivers/zac2650.c37
-rw-r--r--src/mame/drivers/zerozone.c40
-rw-r--r--src/mame/drivers/zodiack.c62
11 files changed, 262 insertions, 471 deletions
diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c
index efc478ac2da..97d498cb12b 100644
--- a/src/mame/drivers/xain.c
+++ b/src/mame/drivers/xain.c
@@ -267,29 +267,23 @@ static INTERRUPT_GEN( xain_interrupt )
vblank=0;
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(xain_sharedram_r)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_READWRITE(xain_sharedram_r, xain_sharedram_w) AM_BASE(&xain_sharedram)
AM_RANGE(0x2000, 0x37ff) AM_READ(MRA8_RAM)
+ AM_RANGE(0x2000, 0x27ff) AM_WRITE(xain_charram_w) AM_BASE(&xain_charram)
+ AM_RANGE(0x2800, 0x2fff) AM_WRITE(xain_bgram1_w) AM_BASE(&xain_bgram1)
+ AM_RANGE(0x3000, 0x37ff) AM_WRITE(xain_bgram0_w) AM_BASE(&xain_bgram0)
+ AM_RANGE(0x3800, 0x397f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0x3a00, 0x3a00) AM_READ(input_port_0_r)
+ AM_RANGE(0x3a00, 0x3a01) AM_WRITE(xain_scrollxP1_w)
AM_RANGE(0x3a01, 0x3a01) AM_READ(input_port_1_r)
AM_RANGE(0x3a02, 0x3a02) AM_READ(input_port_2_r)
+ AM_RANGE(0x3a02, 0x3a03) AM_WRITE(xain_scrollyP1_w)
AM_RANGE(0x3a03, 0x3a03) AM_READ(input_port_3_r)
AM_RANGE(0x3a04, 0x3a04) AM_READ(xain_68705_r) /* from the 68705 */
+ AM_RANGE(0x3a04, 0x3a05) AM_WRITE(xain_scrollxP0_w)
AM_RANGE(0x3a05, 0x3a05) AM_READ(xain_input_port_4_r)
// AM_RANGE(0x3a06, 0x3a06) AM_READ(MRA8_NOP) /* ?? read (and discarded) on startup. Maybe reset the 68705 */
- AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(xain_sharedram_w) AM_BASE(&xain_sharedram)
- AM_RANGE(0x2000, 0x27ff) AM_WRITE(xain_charram_w) AM_BASE(&xain_charram)
- AM_RANGE(0x2800, 0x2fff) AM_WRITE(xain_bgram1_w) AM_BASE(&xain_bgram1)
- AM_RANGE(0x3000, 0x37ff) AM_WRITE(xain_bgram0_w) AM_BASE(&xain_bgram0)
- AM_RANGE(0x3800, 0x397f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0x3a00, 0x3a01) AM_WRITE(xain_scrollxP1_w)
- AM_RANGE(0x3a02, 0x3a03) AM_WRITE(xain_scrollyP1_w)
- AM_RANGE(0x3a04, 0x3a05) AM_WRITE(xain_scrollxP0_w)
AM_RANGE(0x3a06, 0x3a07) AM_WRITE(xain_scrollyP0_w)
AM_RANGE(0x3a08, 0x3a08) AM_WRITE(xain_sound_command_w)
AM_RANGE(0x3a09, 0x3a0c) AM_WRITE(xain_main_irq_w)
@@ -298,52 +292,36 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x3a0f, 0x3a0f) AM_WRITE(xainCPUA_bankswitch_w)
AM_RANGE(0x3c00, 0x3dff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split1_w) AM_BASE(&paletteram)
AM_RANGE(0x3e00, 0x3fff) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_split2_w) AM_BASE(&paletteram_2)
- AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( readmemB, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(xain_sharedram_r)
- AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK2)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM)
+ AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK1)
+ AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( writememB, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(xain_sharedram_w)
+static ADDRESS_MAP_START( cpu_map_B, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_READWRITE(xain_sharedram_r, xain_sharedram_w)
AM_RANGE(0x2000, 0x2000) AM_WRITE(xain_irqA_assert_w)
AM_RANGE(0x2800, 0x2800) AM_WRITE(xain_irqB_clear_w)
AM_RANGE(0x3000, 0x3000) AM_WRITE(xainCPUB_bankswitch_w)
- AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0x4000, 0x7fff) AM_READ(MRA8_BANK2)
+ AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
#if 0
-static ADDRESS_MAP_START( mcu_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0010, 0x007f) AM_READ(MRA8_RAM)
- AM_RANGE(0x0080, 0x07ff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( mcu_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0010, 0x007f) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x0080, 0x07ff) AM_WRITE(MWA8_ROM)
+static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0010, 0x007f) AM_RAM
+ AM_RANGE(0x0080, 0x07ff) AM_ROM
ADDRESS_MAP_END
#endif
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_READ(MRA8_RAM)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x1000) AM_READ(soundlatch_r)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_WRITE(MWA8_RAM)
AM_RANGE(0x2800, 0x2800) AM_WRITE(YM2203_control_port_0_w)
AM_RANGE(0x2801, 0x2801) AM_WRITE(YM2203_write_port_0_w)
AM_RANGE(0x3000, 0x3000) AM_WRITE(YM2203_control_port_1_w)
AM_RANGE(0x3001, 0x3001) AM_WRITE(YM2203_write_port_1_w)
- AM_RANGE(0x4000, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0x4000, 0xffff) AM_ROM
ADDRESS_MAP_END
-
-
static INPUT_PORTS_START( xsleena )
PORT_START_TAG("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_8WAY
@@ -477,18 +455,18 @@ static MACHINE_DRIVER_START( xsleena )
/* basic machine hardware */
MDRV_CPU_ADD(M6809, 1500000) /* Confirmed 1.5MHz */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT_HACK(xain_interrupt,256)
MDRV_CPU_ADD(M6809, 1500000) /* Confirmed 1.5MHz */
- MDRV_CPU_PROGRAM_MAP(readmemB,writememB)
+ MDRV_CPU_PROGRAM_MAP(cpu_map_B,0)
MDRV_CPU_ADD(M6809, 1500000) /* Confirmed 1.5MHz */
/* audio CPU */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
// MDRV_CPU_ADD(M68705, 3000000) /* Confirmed 3MHz */
-// MDRV_CPU_PROGRAM_MAP(mcu_readmem,mcu_writemem)
+// MDRV_CPU_PROGRAM_MAP(mcu_map,0)
MDRV_MACHINE_START(xsleena)
diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c
index ce3145ddc30..2cfa2f889cd 100644
--- a/src/mame/drivers/xexex.c
+++ b/src/mame/drivers/xexex.c
@@ -343,30 +343,42 @@ static INTERRUPT_GEN( xexex_interrupt )
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_BASE(&xexex_workram) // work RAM
+
#if XE_SKIPIDLE
- AM_RANGE(0x080014, 0x080015) AM_READ(xexex_waitskip_r) // helps sound CPU by giving back control as early as possible
+ AM_RANGE(0x080014, 0x080015) AM_READ(xexex_waitskip_r) // helps sound CPU by giving back control as early as possible
#endif
- AM_RANGE(0x080000, 0x08ffff) AM_READ(MRA16_RAM)
- AM_RANGE(0x090000, 0x097fff) AM_READ(MRA16_RAM) // K053247 sprite RAM
- AM_RANGE(0x098000, 0x09ffff) AM_READ(spriteram16_mirror_r) // K053247 sprite RAM mirror read
- AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r) // Passthrough to sprite roms
- AM_RANGE(0x0c6000, 0x0c7fff) AM_READ(K053250_0_ram_r) // K053250 "road" RAM
- AM_RANGE(0x0c8000, 0x0c800f) AM_READ(K053250_0_r)
+
+ AM_RANGE(0x090000, 0x097fff) AM_RAM AM_BASE(&spriteram16) // K053247 sprite RAM
+ AM_RANGE(0x098000, 0x09ffff) AM_READWRITE(spriteram16_mirror_r, spriteram16_mirror_w) // K053247 sprite RAM mirror read
+ AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w) // VACSET (K054157)
+ AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w) // OBJSET1
+ AM_RANGE(0x0c4000, 0x0c4001) AM_READ(K053246_word_r) // Passthrough to sprite roms
+ AM_RANGE(0x0c6000, 0x0c7fff) AM_READWRITE(K053250_0_ram_r, K053250_0_ram_w) // K053250 "road" RAM
+ AM_RANGE(0x0c8000, 0x0c800f) AM_READWRITE(K053250_0_r, K053250_0_w)
+ AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) // CLTC
+ AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w) // priority encoder
+ AM_RANGE(0x0d0000, 0x0d001f) AM_WRITE(K053252_word_w) // CCU
+ AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
+ AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
AM_RANGE(0x0d6014, 0x0d6015) AM_READ(sound_status_r)
- AM_RANGE(0x0d6000, 0x0d601f) AM_READ(MRA16_RAM)
+ AM_RANGE(0x0d6000, 0x0d601f) AM_RAM // sound regs fall through
+ AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) // VSCCS regs
AM_RANGE(0x0da000, 0x0da001) AM_READ(input_port_2_word_r)
AM_RANGE(0x0da002, 0x0da003) AM_READ(input_port_3_word_r)
AM_RANGE(0x0dc000, 0x0dc001) AM_READ(input_port_0_word_r)
AM_RANGE(0x0dc002, 0x0dc003) AM_READ(control1_r)
- AM_RANGE(0x0de000, 0x0de001) AM_READ(control2_r)
- AM_RANGE(0x100000, 0x17ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x180000, 0x181fff) AM_READ(K056832_ram_word_r)
- AM_RANGE(0x182000, 0x183fff) AM_READ(K056832_ram_word_r)
- AM_RANGE(0x190000, 0x191fff) AM_READ(K056832_rom_word_r) // Passthrough to tile roms
+ AM_RANGE(0x0de000, 0x0de001) AM_READWRITE(control2_r, control2_w)
+ AM_RANGE(0x100000, 0x17ffff) AM_ROM
+ AM_RANGE(0x180000, 0x181fff) AM_READWRITE(K056832_ram_word_r, K056832_ram_word_w)
+ AM_RANGE(0x182000, 0x183fff) AM_READWRITE(K056832_ram_word_r, K056832_ram_word_w)
+ AM_RANGE(0x190000, 0x191fff) AM_READWRITE(K056832_rom_word_r, MWA16_ROM) // Passthrough to tile roms
AM_RANGE(0x1a0000, 0x1a1fff) AM_READ(K053250_0_rom_r)
- AM_RANGE(0x1b0000, 0x1b1fff) AM_READ(MRA16_RAM)
+ AM_RANGE(0x1b0000, 0x1b1fff) AM_READWRITE(MRA16_RAM, paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16)
+
#if XE_DEBUG
AM_RANGE(0x0c0000, 0x0c003f) AM_READ(K056832_word_r)
AM_RANGE(0x0c2000, 0x0c2007) AM_READ(K053246_reg_word_r)
@@ -375,50 +387,20 @@ static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x0d0000, 0x0d001f) AM_READ(K053252_word_r)
AM_RANGE(0x0d8000, 0x0d8007) AM_READ(K056832_b_word_r)
#endif
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM) // main ROM
- AM_RANGE(0x080000, 0x08ffff) AM_WRITE(MWA16_RAM) AM_BASE(&xexex_workram) // work RAM
- AM_RANGE(0x090000, 0x097fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) // K053247 sprite RAM
- AM_RANGE(0x098000, 0x09ffff) AM_WRITE(spriteram16_mirror_w) // K053247 sprite RAM mirror write
- AM_RANGE(0x0c0000, 0x0c003f) AM_WRITE(K056832_word_w) // VACSET (K054157)
- AM_RANGE(0x0c2000, 0x0c2007) AM_WRITE(K053246_word_w) // OBJSET1
- AM_RANGE(0x0c6000, 0x0c7fff) AM_WRITE(K053250_0_ram_w) // K053250 "road" RAM
- AM_RANGE(0x0c8000, 0x0c800f) AM_WRITE(K053250_0_w) // background effects generator
- AM_RANGE(0x0ca000, 0x0ca01f) AM_WRITE(K054338_word_w) // CLTC
- AM_RANGE(0x0cc000, 0x0cc01f) AM_WRITE(K053251_lsb_w) // priority encoder
- AM_RANGE(0x0d0000, 0x0d001f) AM_WRITE(K053252_word_w) // CCU
- AM_RANGE(0x0d4000, 0x0d4001) AM_WRITE(sound_irq_w)
- AM_RANGE(0x0d600c, 0x0d600d) AM_WRITE(sound_cmd1_w)
- AM_RANGE(0x0d600e, 0x0d600f) AM_WRITE(sound_cmd2_w)
- AM_RANGE(0x0d6000, 0x0d601f) AM_WRITE(MWA16_RAM) // sound regs fall through
- AM_RANGE(0x0d8000, 0x0d8007) AM_WRITE(K056832_b_word_w) // VSCCS regs
- AM_RANGE(0x0de000, 0x0de001) AM_WRITE(control2_w)
- AM_RANGE(0x100000, 0x17ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x180000, 0x181fff) AM_WRITE(K056832_ram_word_w) // tilemap RAM
- AM_RANGE(0x182000, 0x183fff) AM_WRITE(K056832_ram_word_w) // tilemap RAM mirror
- AM_RANGE(0x190000, 0x191fff) AM_WRITE(MWA16_ROM) // tile ROM
- AM_RANGE(0x1b0000, 0x1b1fff) AM_WRITE(paletteram16_xrgb_word_be_w) AM_BASE(&paletteram16)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK2)
- AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM)
- AM_RANGE(0xe000, 0xe22f) AM_READ(K054539_0_r)
- AM_RANGE(0xec01, 0xec01) AM_READ(YM2151_status_port_0_r)
- AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r)
- AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r)
-ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0xe000, 0xe22f) AM_WRITE(K054539_0_w)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK2)
+ AM_RANGE(0x0000, 0xbfff) AM_ROM
+ AM_RANGE(0xc000, 0xdfff) AM_RAM
+ AM_RANGE(0xe000, 0xe22f) AM_READWRITE(K054539_0_r, K054539_0_w)
AM_RANGE(0xec00, 0xec00) AM_WRITE(YM2151_register_port_0_w)
- AM_RANGE(0xec01, 0xec01) AM_WRITE(YM2151_data_port_0_w)
+ AM_RANGE(0xec01, 0xec01) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch3_w)
+ AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r)
+ AM_RANGE(0xf003, 0xf003) AM_READ(soundlatch2_r)
AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
@@ -474,7 +456,7 @@ static MACHINE_DRIVER_START( xexex )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 16000000) // 16MHz (32MHz xtal)
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT_HACK(xexex_interrupt,2)
// 8MHz (PCB shows one 32MHz/18.432MHz xtal, reference: www.system16.com)
@@ -482,7 +464,7 @@ static MACHINE_DRIVER_START( xexex )
MDRV_CPU_ADD(Z80, 8000000)
/* audio CPU */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_INTERLEAVE(32)
diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c
index c389866cff8..69827247a2c 100644
--- a/src/mame/drivers/xmen.c
+++ b/src/mame/drivers/xmen.c
@@ -170,158 +170,105 @@ static WRITE8_HANDLER( sound_bankswitch_w )
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x080000, 0x0fffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x100000, 0x100fff) AM_READ(K053247_word_r)
- AM_RANGE(0x101000, 0x101fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x104000, 0x104fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x108054, 0x108055) AM_READ(sound_status_r)
- AM_RANGE(0x10a000, 0x10a001) AM_READ(input_port_0_word_r)
- AM_RANGE(0x10a002, 0x10a003) AM_READ(input_port_1_word_r)
- AM_RANGE(0x10a004, 0x10a005) AM_READ(eeprom_r)
- AM_RANGE(0x10a00c, 0x10a00d) AM_READ(K053246_word_r)
- AM_RANGE(0x110000, 0x113fff) AM_READ(MRA16_RAM) /* main RAM */
- AM_RANGE(0x18c000, 0x197fff) AM_READ(K052109_lsb_r)
-
-
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x080000, 0x0fffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x100000, 0x100fff) AM_WRITE(K053247_word_w)
- AM_RANGE(0x101000, 0x101fff) AM_WRITE(MWA16_RAM)
- AM_RANGE(0x104000, 0x104fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x080000, 0x0fffff) AM_ROM
+ AM_RANGE(0x100000, 0x100fff) AM_READWRITE(K053247_word_r, K053247_word_w)
+ AM_RANGE(0x101000, 0x101fff) AM_RAM
+ AM_RANGE(0x104000, 0x104fff) AM_READWRITE(MRA16_RAM, paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x108000, 0x108001) AM_WRITE(eeprom_w)
AM_RANGE(0x108020, 0x108027) AM_WRITE(K053246_word_w)
AM_RANGE(0x10804c, 0x10804d) AM_WRITE(sound_cmd_w)
AM_RANGE(0x10804e, 0x10804f) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x108054, 0x108055) AM_READ(sound_status_r)
AM_RANGE(0x108060, 0x10807f) AM_WRITE(K053251_lsb_w)
- AM_RANGE(0x10a000, 0x10a001) AM_WRITE(watchdog_reset16_w)
- AM_RANGE(0x110000, 0x113fff) AM_WRITE(MWA16_RAM) /* main RAM */
+ AM_RANGE(0x10a000, 0x10a001) AM_READWRITE(input_port_0_word_r, watchdog_reset16_w)
+ AM_RANGE(0x10a002, 0x10a003) AM_READ(input_port_1_word_r)
+ AM_RANGE(0x10a004, 0x10a005) AM_READ(eeprom_r)
+ AM_RANGE(0x10a00c, 0x10a00d) AM_READ(K053246_word_r)
+ AM_RANGE(0x110000, 0x113fff) AM_RAM /* main RAM */
AM_RANGE(0x18fa00, 0x18fa01) AM_WRITE(xmen_18fa00_w)
- AM_RANGE(0x18c000, 0x197fff) AM_WRITE(K052109_lsb_w)
-
+ AM_RANGE(0x18c000, 0x197fff) AM_READWRITE(K052109_lsb_r, K052109_lsb_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK4)
- AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM)
- AM_RANGE(0xe000, 0xe22f) AM_READ(K054539_0_r)
- AM_RANGE(0xec01, 0xec01) AM_READ(YM2151_status_port_0_r)
- AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0xe000, 0xe22f) AM_WRITE(K054539_0_w)
+ AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0xc000, 0xdfff) AM_RAM
+ AM_RANGE(0xe000, 0xe22f) AM_READWRITE(K054539_0_r, K054539_0_w)
AM_RANGE(0xe800, 0xe800) AM_WRITE(YM2151_register_port_0_w)
- AM_RANGE(0xec01, 0xec01) AM_WRITE(YM2151_data_port_0_w)
+ AM_RANGE(0xec01, 0xec01) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w)
AM_RANGE(0xf000, 0xf000) AM_WRITE(soundlatch2_w)
+ AM_RANGE(0xf002, 0xf002) AM_READ(soundlatch_r)
AM_RANGE(0xf800, 0xf800) AM_WRITE(sound_bankswitch_w)
ADDRESS_MAP_END
-/* 6p version */
-
-static ADDRESS_MAP_START( readmem6p, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x080000, 0x0fffff) AM_READ(MRA16_ROM)
- AM_RANGE(0x100000, 0x100fff) AM_READ(MRA16_RAM) /* 1st sprite list on 6p */
- AM_RANGE(0x101000, 0x101fff) AM_READ(MRA16_RAM)
-
-
- AM_RANGE(0x102000, 0x102fff) AM_READ(MRA16_RAM) /* 2nd sprite list on 6p */
- AM_RANGE(0x102000, 0x103fff) AM_READ(MRA16_RAM) /* 6p - a buffer? */
-
-
- AM_RANGE(0x104000, 0x104fff) AM_READ(MRA16_RAM)
- AM_RANGE(0x108054, 0x108055) AM_READ(sound_status_r)
- AM_RANGE(0x10a000, 0x10a001) AM_READ(input_port_0_word_r)
- AM_RANGE(0x10a002, 0x10a003) AM_READ(input_port_1_word_r)
- AM_RANGE(0x10a004, 0x10a005) AM_READ(xmen6p_eeprom_r)
- AM_RANGE(0x10a006, 0x10a007) AM_READ(input_port_3_word_r)
- AM_RANGE(0x10a00c, 0x10a00d) AM_READ(K053246_word_r) /* sprites */
- AM_RANGE(0x110000, 0x113fff) AM_READ(MRA16_RAM) /* main RAM */
- AM_RANGE(0x18c000, 0x197fff) AM_READ(MRA16_RAM) /* left tilemap */
-
-/*
- AM_RANGE(0x1ac000, 0x1af7ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1b0000, 0x1b37ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1b4000, 0x1b77ff) AM_READ(MRA16_RAM)
-*/
- AM_RANGE(0x1ac000, 0x1b7fff) AM_READ(MRA16_RAM) /* right tilemap */
-
-
- /* what are the regions below buffers? (used by hw or software?) */
-/*
- AM_RANGE(0x1cc000, 0x1cf7ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1d0000, 0x1d37ff) AM_READ(MRA16_RAM)
-*/
- AM_RANGE(0x1cc000, 0x1d7fff) AM_READ(MRA16_RAM) /* tilemap ?*/
-
-/*
- AM_RANGE(0x1ec000, 0x1ef7ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1f0000, 0x1f37ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x1f4000, 0x1f77ff) AM_READ(MRA16_RAM)
-*/
- AM_RANGE(0x1ec000, 0x1f7fff) AM_READ(MRA16_RAM) /* tilemap ?*/
-
-ADDRESS_MAP_END
+/* 6p version */
UINT16*xmen6p_spriteramleft;
UINT16*xmen6p_spriteramright;
UINT16*xmen6p_tilemapleft;
UINT16*xmen6p_tilemapright;
-static ADDRESS_MAP_START( writemem6p, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x080000, 0x0fffff) AM_WRITE(MWA16_ROM)
- AM_RANGE(0x100000, 0x100fff) AM_WRITE(MWA16_RAM) AM_BASE(&xmen6p_spriteramleft) /* sprites (screen 1) */
- AM_RANGE(0x101000, 0x101fff) AM_WRITE(MWA16_RAM)
-
- AM_RANGE(0x102000, 0x102fff) AM_WRITE(MWA16_RAM) AM_BASE(&xmen6p_spriteramright)/* sprites (screen 2) */
- AM_RANGE(0x103000, 0x103fff) AM_WRITE(MWA16_RAM)
-
- AM_RANGE(0x104000, 0x104fff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
+static ADDRESS_MAP_START( 6p_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
+ AM_RANGE(0x080000, 0x0fffff) AM_ROM
+ AM_RANGE(0x100000, 0x100fff) AM_RAM AM_BASE(&xmen6p_spriteramleft) /* sprites (screen 1) */
+ AM_RANGE(0x101000, 0x101fff) AM_RAM
+ AM_RANGE(0x102000, 0x102fff) AM_RAM AM_BASE(&xmen6p_spriteramright) /* sprites (screen 2) */
+ AM_RANGE(0x103000, 0x103fff) AM_RAM /* 6p - a buffer? */
+ AM_RANGE(0x104000, 0x104fff) AM_READWRITE(MRA16_RAM,paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x108000, 0x108001) AM_WRITE(eeprom_w)
AM_RANGE(0x108020, 0x108027) AM_WRITE(K053246_word_w) /* sprites */
AM_RANGE(0x10804c, 0x10804d) AM_WRITE(sound_cmd_w)
AM_RANGE(0x10804e, 0x10804f) AM_WRITE(sound_irq_w)
+ AM_RANGE(0x108054, 0x108055) AM_READ(sound_status_r)
AM_RANGE(0x108060, 0x10807f) AM_WRITE(K053251_lsb_w)
- AM_RANGE(0x10a000, 0x10a001) AM_WRITE(watchdog_reset16_w)
- AM_RANGE(0x110000, 0x113fff) AM_WRITE(MWA16_RAM) /* main RAM */
+ AM_RANGE(0x10a000, 0x10a001) AM_READWRITE(input_port_0_word_r,watchdog_reset16_w)
+ AM_RANGE(0x10a002, 0x10a003) AM_READ(input_port_1_word_r)
+ AM_RANGE(0x10a004, 0x10a005) AM_READ(xmen6p_eeprom_r)
+ AM_RANGE(0x10a006, 0x10a007) AM_READ(input_port_3_word_r)
+ AM_RANGE(0x10a00c, 0x10a00d) AM_READ(K053246_word_r) /* sprites */
+ AM_RANGE(0x110000, 0x113fff) AM_RAM /* main RAM */
AM_RANGE(0x18fa00, 0x18fa01) AM_WRITE(xmen_18fa00_w)
- AM_RANGE(0x18c000, 0x197fff) AM_WRITE(MWA16_RAM/*K052109_lsb_w*/) AM_BASE(&xmen6p_tilemapleft) /* left tilemap (p1,p2,p3 counters) */
-
+/* AM_RANGE(0x18c000, 0x197fff) AM_WRITE(K052109_lsb_w) AM_BASE(&xmen6p_tilemapleft) */
+ AM_RANGE(0x18c000, 0x197fff) AM_RAM AM_BASE(&xmen6p_tilemapleft) /* left tilemap (p1,p2,p3 counters) */
/*
+ AM_RANGE(0x1ac000, 0x1af7ff) AM_READ(MRA16_RAM)
AM_RANGE(0x1ac000, 0x1af7ff) AM_WRITE(MWA16_RAM)
+
+ AM_RANGE(0x1b0000, 0x1b37ff) AM_READ(MRA16_RAM)
AM_RANGE(0x1b0000, 0x1b37ff) AM_WRITE(MWA16_RAM)
+
+ AM_RANGE(0x1b4000, 0x1b77ff) AM_READ(MRA16_RAM)
AM_RANGE(0x1b4000, 0x1b77ff) AM_WRITE(MWA16_RAM)
*/
- AM_RANGE(0x1ac000, 0x1b7fff) AM_WRITE(MWA16_RAM) AM_BASE(&xmen6p_tilemapright)/* tilemap right side (p4,p5,p6 counters) */
-
- /* whats the stuff below, buffers? */
+ AM_RANGE(0x1ac000, 0x1b7fff) AM_RAM AM_BASE(&xmen6p_tilemapright) /* right tilemap */
+ /* what are the regions below buffers? (used by hw or software?) */
/*
+ AM_RANGE(0x1cc000, 0x1cf7ff) AM_READ(MRA16_RAM)
AM_RANGE(0x1cc000, 0x1cf7ff) AM_WRITE(MWA16_RAM)
+
+ AM_RANGE(0x1d0000, 0x1d37ff) AM_READ(MRA16_RAM)
AM_RANGE(0x1d0000, 0x1d37ff) AM_WRITE(MWA16_RAM)
*/
- AM_RANGE(0x1cc000, 0x1d7fff) AM_WRITE(MWA16_RAM) /* tilemap? */
+ AM_RANGE(0x1cc000, 0x1d7fff) AM_RAM /* tilemap ? */
+ /* whats the stuff below, buffers? */
/*
+ AM_RANGE(0x1ec000, 0x1ef7ff) AM_READ(MRA16_RAM)
AM_RANGE(0x1ec000, 0x1ef7ff) AM_WRITE(MWA16_RAM)
+ AM_RANGE(0x1f0000, 0x1f37ff) AM_READ(MRA16_RAM)
AM_RANGE(0x1f0000, 0x1f37ff) AM_WRITE(MWA16_RAM)
+ AM_RANGE(0x1f4000, 0x1f77ff) AM_READ(MRA16_RAM)
AM_RANGE(0x1f4000, 0x1f77ff) AM_WRITE(MWA16_RAM)
*/
- AM_RANGE(0x1ec000, 0x1f7fff) AM_WRITE(MWA16_RAM) /* tilemap? */
-
+ AM_RANGE(0x1ec000, 0x1f7fff) AM_RAM /* tilemap ? */
ADDRESS_MAP_END
-
static INPUT_PORTS_START( xmen )
PORT_START /* IN1 */
PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(2)
@@ -523,12 +470,12 @@ static MACHINE_DRIVER_START( xmen )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 16000000) /* ? */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT_HACK(xmen_interrupt,2)
MDRV_CPU_ADD(Z80,8000000) /* verified with M1, guessed but accurate */
/* audio CPU */ /* ????? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_MACHINE_START(xmen)
@@ -591,12 +538,12 @@ static MACHINE_DRIVER_START( xmen6p )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 16000000) /* ? */
- MDRV_CPU_PROGRAM_MAP(readmem6p,writemem6p)
+ MDRV_CPU_PROGRAM_MAP(6p_main_map,0)
MDRV_CPU_VBLANK_INT_HACK(xmen6p_interrupt,2)
MDRV_CPU_ADD(Z80,8000000) /* verified with M1, guessed but accurate */
/* audio CPU */ /* ????? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_NVRAM_HANDLER(xmen)
diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c
index 90e1b249970..ca7eb0ad552 100644
--- a/src/mame/drivers/xyonix.c
+++ b/src/mame/drivers/xyonix.c
@@ -149,32 +149,20 @@ static WRITE8_HANDLER ( xyonix_io_w )
/* Mem / Port Maps ***********************************************************/
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_READ(MRA8_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_READ(MRA8_RAM)
- AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xbfff) AM_ROM
+ AM_RANGE(0xc000, 0xdfff) AM_RAM
+ AM_RANGE(0xe000, 0xffff) AM_READWRITE(MRA8_RAM, xyonix_vidram_w) AM_BASE(&xyonix_vidram)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0xe000, 0xffff) AM_WRITE(xyonix_vidram_w) AM_BASE(&xyonix_vidram)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( port_readmem, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x20, 0x21) AM_READ(MRA8_NOP) /* SN76496 ready signal */
- AM_RANGE(0xe0, 0xe0) AM_READ(xyonix_io_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( port_writemem, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x20, 0x20) AM_WRITE(SN76496_0_w)
- AM_RANGE(0x21, 0x21) AM_WRITE(SN76496_1_w)
- AM_RANGE(0xe0, 0xe0) AM_WRITE(xyonix_io_w)
- AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP) // NMI ack?
+ AM_RANGE(0x20, 0x20) AM_READWRITE(MRA8_NOP, SN76496_0_w) /* SN76496 ready signal */
+ AM_RANGE(0x21, 0x21) AM_READWRITE(MRA8_NOP, SN76496_1_w)
+ AM_RANGE(0x40, 0x40) AM_WRITE(MWA8_NOP) /* NMI ack? */
AM_RANGE(0x50, 0x50) AM_WRITE(xyonix_irqack_w)
- AM_RANGE(0x60, 0x61) AM_WRITE(MWA8_NOP) // mc6845
+ AM_RANGE(0x60, 0x61) AM_WRITE(MWA8_NOP) /* mc6845 */
+ AM_RANGE(0xe0, 0xe0) AM_READWRITE(xyonix_io_r, xyonix_io_w)
ADDRESS_MAP_END
/* Inputs Ports **************************************************************/
@@ -245,8 +233,8 @@ static MACHINE_DRIVER_START( xyonix )
/* basic machine hardware */
MDRV_CPU_ADD(Z80,16000000 / 4) /* 4 MHz ? */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
- MDRV_CPU_IO_MAP(port_readmem,port_writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
+ MDRV_CPU_IO_MAP(port_map,0)
MDRV_CPU_VBLANK_INT("main", nmi_line_pulse)
MDRV_CPU_PERIODIC_INT(irq0_line_assert,4*60) /* ?? controls music tempo */
diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c
index e14f6304764..8a38dea9f97 100644
--- a/src/mame/drivers/yiear.c
+++ b/src/mame/drivers/yiear.c
@@ -86,35 +86,30 @@ static INTERRUPT_GEN( yiear_nmi_interrupt )
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x0000) AM_READ(yiear_speech_r)
+ AM_RANGE(0x4000, 0x4000) AM_WRITE(yiear_control_w)
+ AM_RANGE(0x4800, 0x4800) AM_WRITE(konami_SN76496_latch_w)
+ AM_RANGE(0x4900, 0x4900) AM_WRITE(konami_SN76496_0_w)
+ AM_RANGE(0x4a00, 0x4a00) AM_WRITE(yiear_VLM5030_control_w)
+ AM_RANGE(0x4b00, 0x4b00) AM_WRITE(VLM5030_data_w)
AM_RANGE(0x4c00, 0x4c00) AM_READ(input_port_3_r)
AM_RANGE(0x4d00, 0x4d00) AM_READ(input_port_4_r)
AM_RANGE(0x4e00, 0x4e00) AM_READ(input_port_0_r)
AM_RANGE(0x4e01, 0x4e01) AM_READ(input_port_1_r)
AM_RANGE(0x4e02, 0x4e02) AM_READ(input_port_2_r)
AM_RANGE(0x4e03, 0x4e03) AM_READ(input_port_5_r)
- AM_RANGE(0x5000, 0x5fff) AM_READ(MRA8_RAM)
- AM_RANGE(0x8000, 0xffff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x4000, 0x4000) AM_WRITE(yiear_control_w)
- AM_RANGE(0x4800, 0x4800) AM_WRITE(konami_SN76496_latch_w)
- AM_RANGE(0x4900, 0x4900) AM_WRITE(konami_SN76496_0_w)
- AM_RANGE(0x4a00, 0x4a00) AM_WRITE(yiear_VLM5030_control_w)
- AM_RANGE(0x4b00, 0x4b00) AM_WRITE(VLM5030_data_w)
AM_RANGE(0x4f00, 0x4f00) AM_WRITE(watchdog_reset_w)
- AM_RANGE(0x5000, 0x502f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0x5030, 0x53ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x5400, 0x542f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram_2)
- AM_RANGE(0x5430, 0x57ff) AM_WRITE(MWA8_RAM)
+ AM_RANGE(0x5000, 0x502f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x5400, 0x542f) AM_RAM AM_BASE(&spriteram_2)
AM_RANGE(0x5800, 0x5fff) AM_WRITE(yiear_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(MWA8_ROM)
+ AM_RANGE(0x5000, 0x5fff) AM_RAM
+ AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
+
static INPUT_PORTS_START( yiear )
PORT_START /* IN0 */
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
@@ -260,7 +255,7 @@ static MACHINE_DRIVER_START( yiear )
/* basic machine hardware */
MDRV_CPU_ADD(M6809,18432000/16) /* ???? */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_CPU_PERIODIC_INT(yiear_nmi_interrupt,500) /* music tempo (correct frequency unknown) */
diff --git a/src/mame/drivers/yumefuda.c b/src/mame/drivers/yumefuda.c
index 933762fdc83..f1f38530d03 100644
--- a/src/mame/drivers/yumefuda.c
+++ b/src/mame/drivers/yumefuda.c
@@ -198,49 +198,34 @@ static WRITE8_HANDLER( mux_w )
/***************************************************************************************/
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0x9fff) AM_READ(MRA8_BANK1)
- AM_RANGE(0xaf80, 0xafff) AM_READ(custom_ram_r)
- AM_RANGE(0xb000, 0xb0ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xc000, 0xc3ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xd000, 0xd3ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x9fff) AM_WRITE(MWA8_ROM)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x9fff) AM_READWRITE(MRA8_BANK1, MWA8_ROM)
AM_RANGE(0xa7fc, 0xa7fc) AM_WRITE(prot_lock_w)
AM_RANGE(0xa7ff, 0xa7ff) AM_WRITE(eeprom_w)
- AM_RANGE(0xaf80, 0xafff) AM_WRITE(custom_ram_w) AM_BASE(&cus_ram) //260d - 2626
- AM_RANGE(0xb000, 0xb0ff) AM_WRITE(MWA8_RAM) AM_WRITE(paletteram_RRRGGGBB_w) AM_BASE(&paletteram)/*Wrong format*/
- AM_RANGE(0xc000, 0xc3ff) AM_WRITE(yumefuda_vram_w) AM_BASE(&videoram)
- AM_RANGE(0xd000, 0xd3ff) AM_WRITE(yumefuda_cram_w) AM_BASE(&colorram)
- AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_RAM)
+ AM_RANGE(0xaf80, 0xafff) AM_READWRITE(custom_ram_r, custom_ram_w) AM_BASE(&cus_ram) /*260d - 2626*/
+ AM_RANGE(0xb000, 0xb0ff) AM_READWRITE(MRA8_RAM, paletteram_RRRGGGBB_w) AM_BASE(&paletteram) /*Wrong format*/
+ AM_RANGE(0xc000, 0xc3ff) AM_READWRITE(MRA8_RAM, yumefuda_vram_w) AM_BASE(&videoram)
+ AM_RANGE(0xd000, 0xd3ff) AM_READWRITE(MRA8_RAM, yumefuda_cram_w) AM_BASE(&colorram)
+ AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x40, 0x40) AM_READ(AY8910_read_port_0_r)
- AM_RANGE(0x81, 0x81) AM_READ(eeprom_r)
- AM_RANGE(0x82, 0x82) AM_READ(mux_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_control_port_0_w)
+ AM_RANGE(0x40, 0x40) AM_READWRITE(AY8910_read_port_0_r, AY8910_control_port_0_w)
AM_RANGE(0x41, 0x41) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x80, 0x80) AM_WRITE(mux_w)
- AM_RANGE(0xc0, 0xc0) AM_WRITE(port_c0_w) //watchdog write?
+ AM_RANGE(0x81, 0x81) AM_READ(eeprom_r)
+ AM_RANGE(0x82, 0x82) AM_READ(mux_r)
+ AM_RANGE(0xc0, 0xc0) AM_WRITE(port_c0_w) /*watchdog write?*/
ADDRESS_MAP_END
static MACHINE_DRIVER_START( yumefuda )
/* basic machine hardware */
MDRV_CPU_ADD(Z80 , 6000000) /*???*/
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
- MDRV_CPU_IO_MAP(readport,writeport)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
+ MDRV_CPU_IO_MAP(port_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold)
MDRV_NVRAM_HANDLER(93C46)
diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c
index 8f3530ff66b..91de54d553b 100644
--- a/src/mame/drivers/yunsun16.c
+++ b/src/mame/drivers/yunsun16.c
@@ -123,38 +123,28 @@ static WRITE16_HANDLER( yunsun16_sound_bank_w )
}
}
-static ADDRESS_MAP_START( yunsun16_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(MRA16_ROM ) // ROM
- AM_RANGE(0xff0000, 0xffffff) AM_READ(MRA16_RAM ) // RAM
- AM_RANGE(0x800000, 0x800001) AM_READ(input_port_0_word_r ) // P1 + P2
- AM_RANGE(0x800018, 0x800019) AM_READ(input_port_1_word_r ) // Coins
- AM_RANGE(0x80001a, 0x80001b) AM_READ(input_port_2_word_r ) // DSW1
- AM_RANGE(0x80001c, 0x80001d) AM_READ(input_port_3_word_r ) // DSW2
- AM_RANGE(0x800188, 0x800189) AM_READ(OKIM6295_status_0_lsb_r ) // Sound
- AM_RANGE(0x900000, 0x903fff) AM_READ(MRA16_RAM ) // Palette
- AM_RANGE(0x908000, 0x90bfff) AM_READ(MRA16_RAM ) // Layer 1
- AM_RANGE(0x90c000, 0x90ffff) AM_READ(MRA16_RAM ) // Layer 0
- AM_RANGE(0x910000, 0x910fff) AM_READ(MRA16_RAM ) // Sprites
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( yunsun16_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(MWA16_ROM ) // ROM
- AM_RANGE(0xff0000, 0xffffff) AM_WRITE(MWA16_RAM ) // RAM
- AM_RANGE(0x800030, 0x800031) AM_WRITE(MWA16_NOP ) // ? (value: don't care)
- AM_RANGE(0x800100, 0x800101) AM_WRITE(MWA16_NOP ) // ? $9100
- AM_RANGE(0x800102, 0x800103) AM_WRITE(MWA16_NOP ) // ? $9080
- AM_RANGE(0x800104, 0x800105) AM_WRITE(MWA16_NOP ) // ? $90c0
- AM_RANGE(0x80010a, 0x80010b) AM_WRITE(MWA16_NOP ) // ? $9000
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x800000, 0x800001) AM_READ(input_port_0_word_r ) // P1 + P2
+ AM_RANGE(0x800018, 0x800019) AM_READ(input_port_1_word_r ) // Coins
+ AM_RANGE(0x80001a, 0x80001b) AM_READ(input_port_2_word_r ) // DSW1
+ AM_RANGE(0x80001c, 0x80001d) AM_READ(input_port_3_word_r ) // DSW2
+ AM_RANGE(0x800030, 0x800031) AM_WRITE(MWA16_NOP ) // ? (value: don't care)
+ AM_RANGE(0x800100, 0x800101) AM_WRITE(MWA16_NOP ) // ? $9100
+ AM_RANGE(0x800102, 0x800103) AM_WRITE(MWA16_NOP ) // ? $9080
+ AM_RANGE(0x800104, 0x800105) AM_WRITE(MWA16_NOP ) // ? $90c0
+ AM_RANGE(0x80010a, 0x80010b) AM_WRITE(MWA16_NOP ) // ? $9000
AM_RANGE(0x80010c, 0x80010f) AM_WRITE(MWA16_RAM) AM_BASE(&yunsun16_scroll_1 ) // Scrolling
- AM_RANGE(0x800114, 0x800117) AM_WRITE(MWA16_RAM) AM_BASE(&yunsun16_scroll_0 ) //
+ AM_RANGE(0x800114, 0x800117) AM_WRITE(MWA16_RAM) AM_BASE(&yunsun16_scroll_0 ) // Scrolling
AM_RANGE(0x800154, 0x800155) AM_WRITE(MWA16_RAM) AM_BASE(&yunsun16_priority ) // Priority
- AM_RANGE(0x800180, 0x800181) AM_WRITE(yunsun16_sound_bank_w ) // Sound
- AM_RANGE(0x800188, 0x800189) AM_WRITE(OKIM6295_data_0_lsb_w ) //
- AM_RANGE(0x8001fe, 0x8001ff) AM_WRITE(MWA16_NOP ) // ? 0 (during int)
- AM_RANGE(0x900000, 0x903fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette
- AM_RANGE(0x908000, 0x90bfff) AM_WRITE(yunsun16_vram_1_w) AM_BASE(&yunsun16_vram_1 ) // Layer 1
- AM_RANGE(0x90c000, 0x90ffff) AM_WRITE(yunsun16_vram_0_w) AM_BASE(&yunsun16_vram_0 ) // Layer 0
- AM_RANGE(0x910000, 0x910fff) AM_WRITE(MWA16_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites
+ AM_RANGE(0x800180, 0x800181) AM_WRITE(yunsun16_sound_bank_w ) // Sound
+ AM_RANGE(0x800188, 0x800189) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w ) // Sound
+ AM_RANGE(0x8001fe, 0x8001ff) AM_WRITE(MWA16_NOP ) // ? 0 (during int)
+ AM_RANGE(0x900000, 0x903fff) AM_READWRITE(MRA16_RAM, paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // Palette
+ AM_RANGE(0x908000, 0x90bfff) AM_READWRITE(MRA16_RAM, yunsun16_vram_1_w) AM_BASE(&yunsun16_vram_1 ) // Layer 1
+ AM_RANGE(0x90c000, 0x90ffff) AM_READWRITE(MRA16_RAM, yunsun16_vram_0_w) AM_BASE(&yunsun16_vram_0 ) // Layer 0
+ AM_RANGE(0x910000, 0x910fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites
+ AM_RANGE(0xff0000, 0xffffff) AM_RAM
ADDRESS_MAP_END
@@ -188,28 +178,17 @@ static DRIVER_INIT( magicbub )
***************************************************************************/
-static ADDRESS_MAP_START( yunsun16_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xdfff) AM_READ(MRA8_ROM ) // ROM
- AM_RANGE(0xe000, 0xe7ff) AM_READ(MRA8_RAM ) // RAM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( yunsun16_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xdfff) AM_WRITE(MWA8_ROM ) // ROM
- AM_RANGE(0xe000, 0xe7ff) AM_WRITE(MWA8_RAM ) // RAM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( yunsun16_sound_readport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x10, 0x10) AM_READ(YM3812_status_port_0_r ) // YM3812
- AM_RANGE(0x18, 0x18) AM_READ(soundlatch_r ) // From Main CPU
- AM_RANGE(0x1c, 0x1c) AM_READ(OKIM6295_status_0_r ) // M6295
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xdfff) AM_ROM
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yunsun16_sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( sound_port_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x10, 0x10) AM_WRITE(YM3812_control_port_0_w ) // YM3812
- AM_RANGE(0x11, 0x11) AM_WRITE(YM3812_write_port_0_w )
- AM_RANGE(0x1c, 0x1c) AM_WRITE(OKIM6295_data_0_w ) // M6295
+ AM_RANGE(0x10, 0x10) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w ) // YM3812
+ AM_RANGE(0x11, 0x11) AM_WRITE(YM3812_write_port_0_w )
+ AM_RANGE(0x18, 0x18) AM_READ(soundlatch_r ) // From Main CPU
+ AM_RANGE(0x1c, 0x1c) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w ) // M6295
ADDRESS_MAP_END
@@ -529,13 +508,13 @@ static MACHINE_DRIVER_START( magicbub )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 16000000)
- MDRV_CPU_PROGRAM_MAP(yunsun16_readmem,yunsun16_writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT("main", irq2_line_hold)
MDRV_CPU_ADD(Z80, 3000000)
/* audio CPU */ /* ? */
- MDRV_CPU_PROGRAM_MAP(yunsun16_sound_readmem,yunsun16_sound_writemem)
- MDRV_CPU_IO_MAP(yunsun16_sound_readport,yunsun16_sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(sound_port_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
@@ -574,7 +553,7 @@ static MACHINE_DRIVER_START( shocking )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 16000000)
- MDRV_CPU_PROGRAM_MAP(yunsun16_readmem,yunsun16_writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT("main", irq2_line_hold)
/* video hardware */
diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c
index 25c90008918..e652c51d48e 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -77,7 +77,7 @@ static WRITE8_HANDLER( yunsung8_bankswitch_w )
{
UINT8 *RAM = memory_region(REGION_CPU1);
- int bank = data & 7; // ROM bank
+ int bank = data & 7; // ROM bank
yunsung8_layers_ctrl = data & 0x30; // Layers enable
if (data & ~0x37) logerror("CPU #0 - PC %04X: Bank %02X\n",activecpu_get_pc(),data);
@@ -97,38 +97,24 @@ static WRITE8_HANDLER( yunsung8_bankswitch_w )
d000-dfff Tiles ""
*/
-static ADDRESS_MAP_START( yunsung8_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM
- AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // Banked ROM
- AM_RANGE(0xc000, 0xdfff) AM_READ(yunsung8_videoram_r ) // Video RAM (Banked)
- AM_RANGE(0xe000, 0xffff) AM_READ(MRA8_RAM ) // RAM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( yunsung8_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0000) AM_WRITE(MWA8_ROM ) // ROM
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0001, 0x0001) AM_WRITE(yunsung8_bankswitch_w ) // ROM Bank (again?)
- AM_RANGE(0x0002, 0xbfff) AM_WRITE(MWA8_ROM ) // ROM
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(yunsung8_videoram_w ) // Video RAM (Banked)
- AM_RANGE(0xe000, 0xffff) AM_WRITE(MWA8_RAM ) // RAM
+ AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK1 ) // Banked ROM
+ AM_RANGE(0x0000, 0xbfff) AM_ROM
+ AM_RANGE(0xc000, 0xdfff) AM_READWRITE(yunsung8_videoram_r, yunsung8_videoram_w ) // Video RAM (Banked)
+ AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( yunsung8_readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_READ(input_port_0_r ) // Coins
- AM_RANGE(0x01, 0x01) AM_READ(input_port_1_r ) // P1
- AM_RANGE(0x02, 0x02) AM_READ(input_port_2_r ) // P2
- AM_RANGE(0x03, 0x03) AM_READ(input_port_3_r ) // DSW 1
- AM_RANGE(0x04, 0x04) AM_READ(input_port_4_r ) // DSW 2
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( yunsung8_writeport, ADDRESS_SPACE_IO, 8 )
- ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
- AM_RANGE(0x00, 0x00) AM_WRITE(yunsung8_videobank_w ) // Video RAM Bank
- AM_RANGE(0x01, 0x01) AM_WRITE(yunsung8_bankswitch_w ) // ROM Bank + Layers Enable
- AM_RANGE(0x02, 0x02) AM_WRITE(soundlatch_w ) // To Sound CPU
- AM_RANGE(0x06, 0x06) AM_WRITE(yunsung8_flipscreen_w ) // Flip Screen
- AM_RANGE(0x07, 0x07) AM_WRITE(MWA8_NOP ) // ? (end of IRQ, random value)
+ AM_RANGE(0x00, 0x00) AM_READWRITE(input_port_0_r, yunsung8_videobank_w ) // read = coins . write = video RAM bank
+ AM_RANGE(0x01, 0x01) AM_READWRITE(input_port_1_r, yunsung8_bankswitch_w ) // read = P1 . write = ROM Bank + Layers Enable
+ AM_RANGE(0x02, 0x02) AM_READWRITE(input_port_2_r, soundlatch_w ) // read = P2 . write = To Sound CPU
+ AM_RANGE(0x03, 0x03) AM_READ(input_port_3_r ) // DSW 1
+ AM_RANGE(0x04, 0x04) AM_READ(input_port_4_r ) // DSW 2
+ AM_RANGE(0x06, 0x06) AM_WRITE(yunsung8_flipscreen_w ) // Flip Screen
+ AM_RANGE(0x07, 0x07) AM_WRITE(MWA8_NOP ) // ? (end of IRQ, random value)
ADDRESS_MAP_END
@@ -167,21 +153,15 @@ static WRITE8_HANDLER( yunsung8_adpcm_w )
-static ADDRESS_MAP_START( yunsung8_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM ) // ROM
- AM_RANGE(0x8000, 0xbfff) AM_READ(MRA8_BANK2 ) // Banked ROM
- AM_RANGE(0xf000, 0xf7ff) AM_READ(MRA8_RAM ) // RAM
- AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r ) // From Main CPU
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( yunsung8_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM ) // ROM
- AM_RANGE(0x8000, 0xbfff) AM_WRITE(MWA8_ROM ) // Banked ROM
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_READWRITE(MRA8_BANK2,MWA8_ROM ) // Banked ROM
AM_RANGE(0xe000, 0xe000) AM_WRITE(yunsung8_sound_bankswitch_w ) // ROM Bank
AM_RANGE(0xe400, 0xe400) AM_WRITE(yunsung8_adpcm_w )
AM_RANGE(0xec00, 0xec00) AM_WRITE(YM3812_control_port_0_w ) // YM3812
AM_RANGE(0xec01, 0xec01) AM_WRITE(YM3812_write_port_0_w )
- AM_RANGE(0xf000, 0xf7ff) AM_WRITE(MWA8_RAM ) // RAM
+ AM_RANGE(0xf000, 0xf7ff) AM_RAM
+ AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r ) // From Main CPU
ADDRESS_MAP_END
@@ -528,13 +508,13 @@ static MACHINE_DRIVER_START( yunsung8 )
/* basic machine hardware */
MDRV_CPU_ADD(Z80, 8000000) /* Z80B */
- MDRV_CPU_PROGRAM_MAP(yunsung8_readmem,yunsung8_writemem)
- MDRV_CPU_IO_MAP(yunsung8_readport,yunsung8_writeport)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
+ MDRV_CPU_IO_MAP(port_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* No nmi routine */
MDRV_CPU_ADD(Z80, 4000000) /* ? */
/* audio CPU */
- MDRV_CPU_PROGRAM_MAP(yunsung8_sound_readmem,yunsung8_sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* NMI caused by the MSM5205? */
MDRV_MACHINE_RESET(yunsung8)
diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c
index 963217032ed..a6c97ddddae 100644
--- a/src/mame/drivers/zac2650.c
+++ b/src/mame/drivers/zac2650.c
@@ -23,31 +23,20 @@ READ8_HANDLER( tinvader_port_0_r );
VIDEO_START( tinvader );
VIDEO_UPDATE( tinvader );
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x17ff) AM_READ(MRA8_ROM)
- AM_RANGE(0x1800, 0x1bff) AM_READ(MRA8_RAM)
- AM_RANGE(0x1c00, 0x1cff) AM_READ(MRA8_RAM)
- AM_RANGE(0x1d00, 0x1dff) AM_READ(MRA8_RAM)
- AM_RANGE(0x1e80, 0x1e80) AM_READ(tinvader_port_0_r)
- AM_RANGE(0x1e81, 0x1e81) AM_READ(input_port_1_r)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x17ff) AM_ROM
+ AM_RANGE(0x1800, 0x1bff) AM_READWRITE(MRA8_RAM, tinvader_videoram_w) AM_BASE(&videoram)
+ AM_RANGE(0x1c00, 0x1cff) AM_RAM
+ AM_RANGE(0x1d00, 0x1dff) AM_RAM
+ AM_RANGE(0x1e80, 0x1e80) AM_READWRITE(tinvader_port_0_r, tinvader_sound_w)
+ AM_RANGE(0x1e81, 0x1e81) AM_READ(input_port_1_r)
AM_RANGE(0x1e82, 0x1e82) AM_READ(input_port_2_r)
- AM_RANGE(0x1e85, 0x1e85) AM_READ(input_port_4_r) /* Dodgem Only */
- AM_RANGE(0x1e86, 0x1e86) AM_READ(input_port_5_r) /* Dodgem Only */
- AM_RANGE(0x1f00, 0x1fff) AM_READ(zac_s2636_r) /* S2636 Chip */
+ AM_RANGE(0x1e85, 0x1e85) AM_READ(input_port_4_r) /* Dodgem Only */
+ AM_RANGE(0x1e86, 0x1e86) AM_READWRITE(input_port_5_r, MWA8_NOP) /* Dodgem Only */
+ AM_RANGE(0x1f00, 0x1fff) AM_READWRITE(zac_s2636_r, MWA8_RAM) AM_BASE(&zac2650_s2636_0_ram)
ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x17ff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x1800, 0x1bff) AM_WRITE(tinvader_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0x1c00, 0x1cff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x1d00, 0x1dff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x1e80, 0x1e80) AM_WRITE(tinvader_sound_w)
- AM_RANGE(0x1e86, 0x1e86) AM_WRITE(MWA8_NOP) /* Dodgem Only */
- AM_RANGE(0x1f00, 0x1fff) AM_WRITE(MWA8_RAM) AM_BASE(&zac2650_s2636_0_ram)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( readport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( port_map, ADDRESS_SPACE_IO, 8 )
AM_RANGE(S2650_SENSE_PORT, S2650_SENSE_PORT) AM_READ(input_port_3_r)
ADDRESS_MAP_END
@@ -320,8 +309,8 @@ static MACHINE_DRIVER_START( tinvader )
/* basic machine hardware */
MDRV_CPU_ADD(S2650, 3800000/4)
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
- MDRV_CPU_IO_MAP(readport,0)
+ MDRV_CPU_PROGRAM_MAP(main_map, 0)
+ MDRV_CPU_IO_MAP(port_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)
diff --git a/src/mame/drivers/zerozone.c b/src/mame/drivers/zerozone.c
index e4e81cc00ac..556b80dcf1e 100644
--- a/src/mame/drivers/zerozone.c
+++ b/src/mame/drivers/zerozone.c
@@ -66,39 +66,25 @@ static WRITE16_HANDLER( zerozone_sound_w )
}
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x01ffff) AM_READ(MRA16_ROM)
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x01ffff) AM_ROM
AM_RANGE(0x080000, 0x08000f) AM_READ(zerozone_input_r)
- AM_RANGE(0x088000, 0x0881ff) AM_READ(MRA16_RAM)
- AM_RANGE(0x098000, 0x098001) AM_READ(MRA16_RAM) /* watchdog? */
- AM_RANGE(0x09ce00, 0x09ffff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0c0000, 0x0cffff) AM_READ(MRA16_RAM)
- AM_RANGE(0x0f8000, 0x0f87ff) AM_READ(MRA16_RAM) // never actually used
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x01ffff) AM_WRITE(MWA16_ROM)
AM_RANGE(0x084000, 0x084001) AM_WRITE(zerozone_sound_w)
- AM_RANGE(0x088000, 0x0881ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
- AM_RANGE(0x09ce00, 0x09ddff) AM_WRITE(zerozone_tilemap_w) AM_BASE(&zerozone_videoram) AM_SIZE(&videoram_size)
+ AM_RANGE(0x088000, 0x0881ff) AM_READWRITE(MRA16_RAM, paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16)
+ AM_RANGE(0x098000, 0x098001) AM_RAM /* Watchdog? */
+ AM_RANGE(0x09ce00, 0x09ffff) AM_READWRITE(MRA16_RAM, zerozone_tilemap_w) AM_BASE(&zerozone_videoram) AM_SIZE(&videoram_size)
AM_RANGE(0x0b4000, 0x0b4001) AM_WRITE(zerozone_tilebank_w)
- AM_RANGE(0x0c0000, 0x0cffff) AM_WRITE(MWA16_RAM) /* RAM */
- AM_RANGE(0x0f8000, 0x0f87ff) AM_WRITE(MWA16_RAM)
+ AM_RANGE(0x0c0000, 0x0cffff) AM_RAM
+ AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM /* Never read from */
ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x9800, 0x9800) AM_READ(OKIM6295_status_0_r)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
+ AM_RANGE(0x9800, 0x9800) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_w)
AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x9800, 0x9800) AM_WRITE(OKIM6295_data_0_w)
-ADDRESS_MAP_END
static INPUT_PORTS_START( zerozone )
PORT_START_TAG("IN0")
@@ -192,12 +178,12 @@ static MACHINE_DRIVER_START( zerozone )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 10000000) /* 10 MHz */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT("main", irq1_line_hold)
MDRV_CPU_ADD(Z80, 1000000)
/* audio CPU */ /* 1 MHz ??? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_INTERLEAVE(10)
diff --git a/src/mame/drivers/zodiack.c b/src/mame/drivers/zodiack.c
index f8e085522c9..1a78089639b 100644
--- a/src/mame/drivers/zodiack.c
+++ b/src/mame/drivers/zodiack.c
@@ -49,53 +49,35 @@ static WRITE8_HANDLER( zodiack_control_w )
/* Bit 2 - ???? */
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x4fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x5800, 0x5fff) AM_READ(MRA8_RAM)
- AM_RANGE(0x6081, 0x6081) AM_READ(input_port_0_r)
+
+static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x4fff) AM_ROM
+ AM_RANGE(0x5800, 0x5fff) AM_RAM
+ AM_RANGE(0x6081, 0x6081) AM_READWRITE(input_port_0_r, zodiack_control_w)
AM_RANGE(0x6082, 0x6082) AM_READ(input_port_1_r)
AM_RANGE(0x6083, 0x6083) AM_READ(input_port_2_r)
AM_RANGE(0x6084, 0x6084) AM_READ(input_port_3_r)
- AM_RANGE(0x6090, 0x6090) AM_READ(soundlatch_r)
- AM_RANGE(0x7000, 0x7000) AM_READ(MRA8_NOP) /* ??? */
- AM_RANGE(0x9000, 0x93ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xa000, 0xa3ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xb000, 0xb3ff) AM_READ(MRA8_RAM)
- AM_RANGE(0xc000, 0xcfff) AM_READ(MRA8_ROM)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x4fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x5800, 0x5fff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0x6081, 0x6081) AM_WRITE(zodiack_control_w)
- AM_RANGE(0x6090, 0x6090) AM_WRITE(zodiac_master_soundlatch_w)
- AM_RANGE(0x7000, 0x7000) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0x6090, 0x6090) AM_READWRITE(soundlatch_r, zodiac_master_soundlatch_w)
+ AM_RANGE(0x7000, 0x7000) AM_READWRITE(MRA8_NOP,watchdog_reset_w) /* NOP??? */
AM_RANGE(0x7100, 0x7100) AM_WRITE(zodiac_master_interrupt_enable_w)
AM_RANGE(0x7200, 0x7200) AM_WRITE(zodiack_flipscreen_w)
- AM_RANGE(0x9000, 0x903f) AM_WRITE(zodiack_attributes_w) AM_BASE(&zodiack_attributesram)
- AM_RANGE(0x9040, 0x905f) AM_WRITE(MWA8_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0x9060, 0x907f) AM_WRITE(MWA8_RAM) AM_BASE(&zodiack_bulletsram) AM_SIZE(&zodiack_bulletsram_size)
- AM_RANGE(0x9080, 0x93ff) AM_WRITE(MWA8_RAM)
- AM_RANGE(0xa000, 0xa3ff) AM_WRITE(zodiack_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size)
- AM_RANGE(0xb000, 0xb3ff) AM_WRITE(zodiack_videoram2_w) AM_BASE(&zodiack_videoram2)
- AM_RANGE(0xc000, 0xcfff) AM_WRITE(MWA8_ROM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_READ(MRA8_ROM)
- AM_RANGE(0x2000, 0x23ff) AM_READ(MRA8_RAM)
- AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r)
+ AM_RANGE(0x9000, 0x93ff) AM_READWRITE(MRA8_RAM, zodiack_attributes_w) AM_BASE(&zodiack_attributesram)
+ AM_RANGE(0x9040, 0x905f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0x9060, 0x907f) AM_RAM AM_BASE(&zodiack_bulletsram) AM_SIZE(&zodiack_bulletsram_size)
+ AM_RANGE(0x9080, 0x93ff) AM_RAM
+ AM_RANGE(0xa000, 0xa3ff) AM_READWRITE(MRA8_RAM, zodiack_videoram_w) AM_BASE(&videoram) AM_SIZE(&videoram_size)
+ AM_RANGE(0xb000, 0xb3ff) AM_READWRITE(MRA8_RAM, zodiack_videoram2_w) AM_BASE(&zodiack_videoram2)
+ AM_RANGE(0xc000, 0xcfff) AM_ROM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x1fff) AM_WRITE(MWA8_ROM)
- AM_RANGE(0x2000, 0x23ff) AM_WRITE(MWA8_RAM)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x1fff) AM_ROM
+ AM_RANGE(0x2000, 0x23ff) AM_RAM
AM_RANGE(0x4000, 0x4000) AM_WRITE(espial_sound_nmi_enable_w)
- AM_RANGE(0x6000, 0x6000) AM_WRITE(soundlatch_w)
+ AM_RANGE(0x6000, 0x6000) AM_READWRITE(soundlatch_r, soundlatch_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 )
+static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
ADDRESS_MAP_FLAGS( AMEF_ABITS(8) )
AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w)
@@ -476,12 +458,12 @@ static MACHINE_DRIVER_START( zodiack )
/* basic machine hardware */
MDRV_CPU_ADD(Z80, 4000000) /* 4.00 MHz??? */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT_HACK(zodiac_master_interrupt,2)
MDRV_CPU_ADD(Z80, 14318000/8) /* 1.78975 MHz??? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
- MDRV_CPU_IO_MAP(0,sound_writeport)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
+ MDRV_CPU_IO_MAP(io_map,0)
MDRV_CPU_VBLANK_INT_HACK(espial_sound_nmi_gen,8) /* IRQs are triggered by the main CPU */
MDRV_MACHINE_RESET(zodiack)