summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Ryan Holtz <rholtz@batcountryentertainment.com>2009-04-27 02:05:09 +0000
committer Ryan Holtz <rholtz@batcountryentertainment.com>2009-04-27 02:05:09 +0000
commita8583531fd22417382cc4cac99423724503b8a63 (patch)
treebb31f0ec92d5b7e1bc51d7545d26f8bcd37e59b5 /src
parent07dab27eafe63cb2185cb03e460edae37f03decf (diff)
Merged memory maps for all driver sources beginning with 'F': [MooglyGuy]
- f1gp.c, fastlane.c, firetrap.c, flkatck.c, flstory.c, freekick.c, fromanc2.c, fromance.c, funkybee.c, funkyjet.c, funybubl.c, fuukifg2.c, fuukifg3.c Non-whatsnew note: There were a number of conflicts, but apart from the auto_malloc in funybubl.c, all of them were corrected with selecting "Your entire file", as all of them appeared to have to do with the SMH_BANK conversion that went away thanks to memory-map merging anyway.
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/f1gp.c124
-rw-r--r--src/mame/drivers/fastlane.c40
-rw-r--r--src/mame/drivers/firetrap.c82
-rw-r--r--src/mame/drivers/flkatck.c61
-rw-r--r--src/mame/drivers/flstory.c4
-rw-r--r--src/mame/drivers/freekick.c88
-rw-r--r--src/mame/drivers/fromanc2.c195
-rw-r--r--src/mame/drivers/fromance.c97
-rw-r--r--src/mame/drivers/funkybee.c27
-rw-r--r--src/mame/drivers/funkyjet.c59
-rw-r--r--src/mame/drivers/funybubl.c41
-rw-r--r--src/mame/drivers/fuukifg2.c56
-rw-r--r--src/mame/drivers/fuukifg3.c87
13 files changed, 340 insertions, 621 deletions
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index f4cb7098855..687d55855dc 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -90,107 +90,65 @@ static WRITE8_HANDLER( pending_command_clear_w )
-static ADDRESS_MAP_START( f1gp_readmem1, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
+static ADDRESS_MAP_START( f1gp_cpu1_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r)
AM_RANGE(0xa00000, 0xbfffff) AM_READ(extrarom2_r)
- AM_RANGE(0xc00000, 0xc3ffff) AM_READ(f1gp_zoomdata_r)
- AM_RANGE(0xd00000, 0xd01fff) AM_READ(f1gp_rozvideoram_r)
- AM_RANGE(0xd02000, 0xd03fff) AM_READ(f1gp_rozvideoram_r) /* mirror */
- AM_RANGE(0xd04000, 0xd05fff) AM_READ(f1gp_rozvideoram_r) /* mirror */
- AM_RANGE(0xd06000, 0xd07fff) AM_READ(f1gp_rozvideoram_r) /* mirror */
- AM_RANGE(0xe00000, 0xe03fff) AM_READ(SMH_RAM)
- AM_RANGE(0xe04000, 0xe07fff) AM_READ(SMH_RAM)
- AM_RANGE(0xf00000, 0xf003ff) AM_READ(SMH_RAM)
- AM_RANGE(0xf10000, 0xf103ff) AM_READ(SMH_RAM)
- AM_RANGE(0xff8000, 0xffbfff) AM_READ(SMH_RAM)
- AM_RANGE(0xffc000, 0xffcfff) AM_READ(sharedram_r)
- AM_RANGE(0xffd000, 0xffdfff) AM_READ(SMH_RAM)
- AM_RANGE(0xffe000, 0xffefff) AM_READ(SMH_RAM)
+ AM_RANGE(0xc00000, 0xc3ffff) AM_READWRITE(f1gp_zoomdata_r, f1gp_zoomdata_w)
+ AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(&f1gp_rozvideoram)
+ AM_RANGE(0xd02000, 0xd03fff) AM_READWRITE(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(&f1gp_rozvideoram) /* mirror */
+ AM_RANGE(0xd04000, 0xd05fff) AM_READWRITE(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(&f1gp_rozvideoram) /* mirror */
+ AM_RANGE(0xd06000, 0xd07fff) AM_READWRITE(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(&f1gp_rozvideoram) /* mirror */
+ AM_RANGE(0xe00000, 0xe03fff) AM_RAM AM_BASE(&f1gp_spr1cgram) AM_SIZE(&f1gp_spr1cgram_size) // SPR-1 CG RAM
+ AM_RANGE(0xe04000, 0xe07fff) AM_RAM AM_BASE(&f1gp_spr2cgram) AM_SIZE(&f1gp_spr2cgram_size) // SPR-2 CG RAM
+ AM_RANGE(0xf00000, 0xf003ff) AM_RAM AM_BASE(&f1gp_spr1vram) // SPR-1 VRAM
+ AM_RANGE(0xf10000, 0xf103ff) AM_RAM AM_BASE(&f1gp_spr2vram) // SPR-2 VRAM
+ AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1
+ AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(&sharedram) // DUAL RAM
+ AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(f1gp_fgvideoram_w) AM_BASE(&f1gp_fgvideoram) // CHARACTER
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // PALETTE
AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS")
+ AM_RANGE(0xfff000, 0xfff001) AM_WRITE(f1gp_gfxctrl_w)
// AM_RANGE(0xfff002, 0xfff003) analog wheel?
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1")
+ AM_RANGE(0xfff002, 0xfff005) AM_WRITE(f1gp_fgscroll_w)
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2")
AM_RANGE(0xfff008, 0xfff009) AM_READ(command_pending_r)
- AM_RANGE(0xfff050, 0xfff051) AM_READ_PORT("DSW3")
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( f1gp_writemem1, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc00000, 0xc3ffff) AM_WRITE(f1gp_zoomdata_w)
- AM_RANGE(0xd00000, 0xd01fff) AM_WRITE(f1gp_rozvideoram_w) AM_BASE(&f1gp_rozvideoram) // BACK VRAM
- AM_RANGE(0xd02000, 0xd03fff) AM_WRITE(f1gp_rozvideoram_w) /* mirror */
- AM_RANGE(0xd04000, 0xd05fff) AM_WRITE(f1gp_rozvideoram_w) /* mirror */
- AM_RANGE(0xd06000, 0xd07fff) AM_WRITE(f1gp_rozvideoram_w) /* mirror */
- AM_RANGE(0xe00000, 0xe03fff) AM_WRITE(SMH_RAM) AM_BASE(&f1gp_spr1cgram) AM_SIZE(&f1gp_spr1cgram_size) // SPR-1 CG RAM
- AM_RANGE(0xe04000, 0xe07fff) AM_WRITE(SMH_RAM) AM_BASE(&f1gp_spr2cgram) AM_SIZE(&f1gp_spr2cgram_size) // SPR-2 CG RAM
- AM_RANGE(0xf00000, 0xf003ff) AM_WRITE(SMH_RAM) AM_BASE(&f1gp_spr1vram) // SPR-1 VRAM
- AM_RANGE(0xf10000, 0xf103ff) AM_WRITE(SMH_RAM) AM_BASE(&f1gp_spr2vram) // SPR-2 VRAM
- AM_RANGE(0xff8000, 0xffbfff) AM_WRITE(SMH_RAM) // WORK RAM-1
- AM_RANGE(0xffc000, 0xffcfff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) // DUAL RAM
- AM_RANGE(0xffd000, 0xffdfff) AM_WRITE(f1gp_fgvideoram_w) AM_BASE(&f1gp_fgvideoram) // CHARACTER
- AM_RANGE(0xffe000, 0xffefff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // PALETTE
- AM_RANGE(0xfff000, 0xfff001) AM_WRITE(f1gp_gfxctrl_w)
- AM_RANGE(0xfff002, 0xfff005) AM_WRITE(f1gp_fgscroll_w)
AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
AM_RANGE(0xfff040, 0xfff05f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl)
+ AM_RANGE(0xfff050, 0xfff051) AM_READ_PORT("DSW3")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( f1gp2_readmem1, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM)
+static ADDRESS_MAP_START( f1gp2_cpu1_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x03ffff) AM_ROM
AM_RANGE(0x100000, 0x2fffff) AM_READ(extrarom_r)
- AM_RANGE(0xa00000, 0xa07fff) AM_READ(SMH_RAM)
- AM_RANGE(0xd00000, 0xd01fff) AM_READ(f1gp_rozvideoram_r)
- AM_RANGE(0xe00000, 0xe00fff) AM_READ(SMH_RAM)
- AM_RANGE(0xff8000, 0xffbfff) AM_READ(SMH_RAM)
- AM_RANGE(0xffc000, 0xffcfff) AM_READ(sharedram_r)
- AM_RANGE(0xffd000, 0xffdfff) AM_READ(SMH_RAM)
- AM_RANGE(0xffe000, 0xffefff) AM_READ(SMH_RAM)
- AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS")
+ AM_RANGE(0xa00000, 0xa07fff) AM_RAM AM_BASE(&f1gp2_sprcgram) // SPR-1 CG RAM + SPR-2 CG RAM
+ AM_RANGE(0xd00000, 0xd01fff) AM_READWRITE(f1gp_rozvideoram_r, f1gp_rozvideoram_w) AM_BASE(&f1gp_rozvideoram) // BACK VRAM
+ AM_RANGE(0xe00000, 0xe00fff) AM_RAM AM_BASE(&f1gp2_spritelist) // not checked + SPR-1 VRAM + SPR-2 VRAM
+ AM_RANGE(0xff8000, 0xffbfff) AM_RAM // WORK RAM-1
+ AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w) AM_BASE(&sharedram) // DUAL RAM
+ AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(f1gp_fgvideoram_w) AM_BASE(&f1gp_fgvideoram) // CHARACTER
+ AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // PALETTE
+ AM_RANGE(0xfff000, 0xfff001) AM_READ_PORT("INPUTS") AM_WRITE(f1gp2_gfxctrl_w)
// AM_RANGE(0xfff002, 0xfff003) analog wheel?
AM_RANGE(0xfff004, 0xfff005) AM_READ_PORT("DSW1")
AM_RANGE(0xfff006, 0xfff007) AM_READ_PORT("DSW2")
- AM_RANGE(0xfff008, 0xfff009) AM_READ(command_pending_r)
+ AM_RANGE(0xfff008, 0xfff009) AM_READWRITE(command_pending_r, sound_command_w)
AM_RANGE(0xfff00a, 0xfff00b) AM_READ_PORT("DSW3")
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( f1gp2_writemem1, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xa00000, 0xa07fff) AM_WRITE(SMH_RAM) AM_BASE(&f1gp2_sprcgram) // SPR-1 CG RAM + SPR-2 CG RAM
- AM_RANGE(0xd00000, 0xd01fff) AM_WRITE(f1gp_rozvideoram_w) AM_BASE(&f1gp_rozvideoram) // BACK VRAM
- AM_RANGE(0xe00000, 0xe00fff) AM_WRITE(SMH_RAM) AM_BASE(&f1gp2_spritelist) // not checked + SPR-1 VRAM + SPR-2 VRAM
- AM_RANGE(0xff8000, 0xffbfff) AM_WRITE(SMH_RAM) // WORK RAM-1
- AM_RANGE(0xffc000, 0xffcfff) AM_WRITE(sharedram_w) AM_BASE(&sharedram) // DUAL RAM
- AM_RANGE(0xffd000, 0xffdfff) AM_WRITE(f1gp_fgvideoram_w) AM_BASE(&f1gp_fgvideoram) // CHARACTER
- AM_RANGE(0xffe000, 0xffefff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // PALETTE
- AM_RANGE(0xfff000, 0xfff001) AM_WRITE(f1gp2_gfxctrl_w)
- AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_w)
AM_RANGE(0xfff020, 0xfff02f) AM_WRITE(SMH_RAM) AM_BASE(&K053936_0_ctrl)
AM_RANGE(0xfff044, 0xfff047) AM_WRITE(f1gp_fgscroll_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( readmem2, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x01ffff) AM_READ(SMH_ROM)
- AM_RANGE(0xff8000, 0xffbfff) AM_READ(SMH_RAM)
- AM_RANGE(0xffc000, 0xffcfff) AM_READ(sharedram_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem2, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x01ffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xff8000, 0xffbfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xffc000, 0xffcfff) AM_WRITE(sharedram_w)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x77ff) AM_READ(SMH_ROM)
- AM_RANGE(0x7800, 0x7fff) AM_READ(SMH_RAM)
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_BANK(1))
+static ADDRESS_MAP_START( f1gp_cpu2_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x01ffff) AM_ROM
+ AM_RANGE(0xff8000, 0xffbfff) AM_RAM
+ AM_RANGE(0xffc000, 0xffcfff) AM_READWRITE(sharedram_r, sharedram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x77ff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x7800, 0x7fff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x77ff) AM_ROM
+ AM_RANGE(0x7800, 0x7fff) AM_RAM
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1)
ADDRESS_MAP_END
static ADDRESS_MAP_START( sound_io_map, ADDRESS_SPACE_IO, 8 )
@@ -471,15 +429,15 @@ static MACHINE_DRIVER_START( f1gp )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu",M68000,XTAL_20MHz/2) /* verified on pcb */
- MDRV_CPU_PROGRAM_MAP(f1gp_readmem1,f1gp_writemem1)
+ MDRV_CPU_PROGRAM_MAP(f1gp_cpu1_map,0)
MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
MDRV_CPU_ADD("sub", M68000,XTAL_20MHz/2) /* verified on pcb */
- MDRV_CPU_PROGRAM_MAP(readmem2,writemem2)
+ MDRV_CPU_PROGRAM_MAP(f1gp_cpu2_map,0)
MDRV_CPU_VBLANK_INT("screen", irq1_line_hold)
MDRV_CPU_ADD("audiocpu", Z80,XTAL_20MHz/4) /* verified on pcb */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
MDRV_CPU_IO_MAP(sound_io_map,0)
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame */
@@ -551,7 +509,7 @@ static MACHINE_DRIVER_START( f1gp2 )
/* basic machine hardware */
MDRV_IMPORT_FROM(f1gp)
MDRV_CPU_MODIFY("maincpu")
- MDRV_CPU_PROGRAM_MAP(f1gp2_readmem1,f1gp2_writemem1)
+ MDRV_CPU_PROGRAM_MAP(f1gp2_cpu1_map,0)
/* video hardware */
MDRV_GFXDECODE(f1gp2)
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index f3df545f76a..740ec7a061d 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -80,36 +80,26 @@ static WRITE8_DEVICE_HANDLER( fastlane_k007232_w )
-static ADDRESS_MAP_START( fastlane_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x005f) AM_READ(SMH_RAM)
+static ADDRESS_MAP_START( fastlane_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x005f) AM_RAM_WRITE(k007121_registers_w) AM_BASE(&fastlane_k007121_regs) /* 007121 registers */
AM_RANGE(0x0800, 0x0800) AM_READ_PORT("DSW3")
AM_RANGE(0x0801, 0x0801) AM_READ_PORT("P2")
AM_RANGE(0x0802, 0x0802) AM_READ_PORT("P1")
AM_RANGE(0x0803, 0x0803) AM_READ_PORT("SYSTEM")
AM_RANGE(0x0900, 0x0900) AM_READ_PORT("DSW1")
AM_RANGE(0x0901, 0x0901) AM_READ_PORT("DSW2")
- AM_RANGE(0x0d00, 0x0d0d) AM_DEVREAD("konami1", fastlane_k007232_r)/* 007232 registers (chip 1) */
- AM_RANGE(0x0e00, 0x0e0d) AM_DEVREAD("konami2", fastlane_k007232_r)/* 007232 registers (chip 2) */
- AM_RANGE(0x0f00, 0x0f1f) AM_READ(K051733_r) /* 051733 (protection) */
- AM_RANGE(0x1000, 0x1fff) AM_READ(SMH_RAM) /* Palette RAM/Work RAM */
- AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_RAM) /* Video RAM + Sprite RAM */
- AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK(1)) /* banked ROM */
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fastlane_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x005f) AM_WRITE(k007121_registers_w) AM_BASE(&fastlane_k007121_regs)/* 007121 registers */
- AM_RANGE(0x0b00, 0x0b00) AM_WRITE(watchdog_reset_w) /* watchdog reset */
- AM_RANGE(0x0c00, 0x0c00) AM_WRITE(fastlane_bankswitch_w) /* bankswitch control */
- AM_RANGE(0x0d00, 0x0d0d) AM_DEVWRITE("konami1", fastlane_k007232_w) /* 007232 registers (chip 1) */
- AM_RANGE(0x0e00, 0x0e0d) AM_DEVWRITE("konami2", fastlane_k007232_w) /* 007232 registers (chip 2) */
- AM_RANGE(0x0f00, 0x0f1f) AM_WRITE(K051733_w) /* 051733 (protection) */
- AM_RANGE(0x1000, 0x17ff) AM_WRITE(SMH_RAM) AM_BASE(&paletteram)/* palette RAM */
- AM_RANGE(0x1800, 0x1fff) AM_WRITE(SMH_RAM) /* Work RAM */
- AM_RANGE(0x2000, 0x27ff) AM_WRITE(fastlane_vram1_w) AM_BASE(&fastlane_videoram1)
- AM_RANGE(0x2800, 0x2fff) AM_WRITE(fastlane_vram2_w) AM_BASE(&fastlane_videoram2)
- AM_RANGE(0x3000, 0x3fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) /* Sprite RAM */
- AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM) /* ROM/banked ROM */
+ AM_RANGE(0x0b00, 0x0b00) AM_WRITE(watchdog_reset_w) /* watchdog reset */
+ AM_RANGE(0x0c00, 0x0c00) AM_WRITE(fastlane_bankswitch_w) /* bankswitch control */
+ AM_RANGE(0x0d00, 0x0d0d) AM_DEVREADWRITE("konami1", fastlane_k007232_r, fastlane_k007232_w) /* 007232 registers (chip 1) */
+ AM_RANGE(0x0e00, 0x0e0d) AM_DEVREADWRITE("konami2", fastlane_k007232_r, fastlane_k007232_w) /* 007232 registers (chip 2) */
+ AM_RANGE(0x0f00, 0x0f1f) AM_READWRITE(K051733_r, K051733_w) /* 051733 (protection) */
+ AM_RANGE(0x1000, 0x17ff) AM_RAM AM_BASE(&paletteram) /* Palette RAM */
+ AM_RANGE(0x1800, 0x1fff) AM_RAM /* Work RAM */
+ AM_RANGE(0x2000, 0x27ff) AM_RAM_WRITE(fastlane_vram1_w) AM_BASE(&fastlane_videoram1) /* Video RAM (chip 1) */
+ AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(fastlane_vram2_w) AM_BASE(&fastlane_videoram2) /* Video RAM (chip 2) */
+ AM_RANGE(0x3000, 0x3fff) AM_RAM AM_BASE(&spriteram) /* Sprite RAM */
+ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) /* banked ROM */
+ AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
/***************************************************************************
@@ -217,7 +207,7 @@ static MACHINE_DRIVER_START( fastlane )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", HD6309, 3000000*4) /* 24MHz/8? */
- MDRV_CPU_PROGRAM_MAP(fastlane_readmem,fastlane_writemem)
+ MDRV_CPU_PROGRAM_MAP(fastlane_map,0)
MDRV_CPU_VBLANK_INT_HACK(fastlane_interrupt,16) /* 1 IRQ + ??? NMI (generated by the 007121) */
/* video hardware */
diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c
index ddd532ecd6f..ba788e08182 100644
--- a/src/mame/drivers/firetrap.c
+++ b/src/mame/drivers/firetrap.c
@@ -244,25 +244,14 @@ static WRITE8_HANDLER( flip_screen_w )
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK(1))
- AM_RANGE(0xc000, 0xe97f) AM_READ(SMH_RAM)
- AM_RANGE(0xf010, 0xf010) AM_READ_PORT("IN0")
- AM_RANGE(0xf011, 0xf011) AM_READ_PORT("IN1")
- AM_RANGE(0xf012, 0xf012) AM_READ_PORT("IN2")
- AM_RANGE(0xf013, 0xf013) AM_READ_PORT("DSW0")
- AM_RANGE(0xf014, 0xf014) AM_READ_PORT("DSW1")
- AM_RANGE(0xf016, 0xf016) AM_READ(firetrap_8751_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xd000, 0xd7ff) AM_WRITE(firetrap_bg1videoram_w) AM_BASE(&firetrap_bg1videoram)
- AM_RANGE(0xd800, 0xdfff) AM_WRITE(firetrap_bg2videoram_w) AM_BASE(&firetrap_bg2videoram)
- AM_RANGE(0xe000, 0xe7ff) AM_WRITE(firetrap_fgvideoram_w) AM_BASE(&firetrap_fgvideoram)
- AM_RANGE(0xe800, 0xe97f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+static ADDRESS_MAP_START( firetrap_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
+ AM_RANGE(0xc000, 0xcfff) AM_RAM
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(firetrap_bg1videoram_w) AM_BASE(&firetrap_bg1videoram)
+ AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(firetrap_bg2videoram_w) AM_BASE(&firetrap_bg2videoram)
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(firetrap_fgvideoram_w) AM_BASE(&firetrap_fgvideoram)
+ AM_RANGE(0xe800, 0xe97f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* IRQ acknowledge */
AM_RANGE(0xf001, 0xf001) AM_WRITE(firetrap_sound_command_w)
AM_RANGE(0xf002, 0xf002) AM_WRITE(firetrap_bankselect_w)
@@ -273,28 +262,22 @@ static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf00a, 0xf00b) AM_WRITE(firetrap_bg1_scrolly_w)
AM_RANGE(0xf00c, 0xf00d) AM_WRITE(firetrap_bg2_scrollx_w)
AM_RANGE(0xf00e, 0xf00f) AM_WRITE(firetrap_bg2_scrolly_w)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( readmem_bootleg, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK(1))
- AM_RANGE(0xc000, 0xe97f) AM_READ(SMH_RAM)
AM_RANGE(0xf010, 0xf010) AM_READ_PORT("IN0")
AM_RANGE(0xf011, 0xf011) AM_READ_PORT("IN1")
AM_RANGE(0xf012, 0xf012) AM_READ_PORT("IN2")
AM_RANGE(0xf013, 0xf013) AM_READ_PORT("DSW0")
AM_RANGE(0xf014, 0xf014) AM_READ_PORT("DSW1")
- AM_RANGE(0xf016, 0xf016) AM_READ(firetrap_8751_bootleg_r)
- AM_RANGE(0xf800, 0xf8ff) AM_READ(SMH_ROM) /* extra ROM in the bootleg with unprotection code */
+ AM_RANGE(0xf016, 0xf016) AM_READ(firetrap_8751_r)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( writemem_bootleg, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xd000, 0xd7ff) AM_WRITE(firetrap_bg1videoram_w) AM_BASE(&firetrap_bg1videoram)
- AM_RANGE(0xd800, 0xdfff) AM_WRITE(firetrap_bg2videoram_w) AM_BASE(&firetrap_bg2videoram)
- AM_RANGE(0xe000, 0xe7ff) AM_WRITE(firetrap_fgvideoram_w) AM_BASE(&firetrap_fgvideoram)
- AM_RANGE(0xe800, 0xe97f) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+static ADDRESS_MAP_START( firetrap_bootleg_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
+ AM_RANGE(0xc000, 0xcfff) AM_RAM
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(firetrap_bg1videoram_w) AM_BASE(&firetrap_bg1videoram)
+ AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(firetrap_bg2videoram_w) AM_BASE(&firetrap_bg2videoram)
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(firetrap_fgvideoram_w) AM_BASE(&firetrap_fgvideoram)
+ AM_RANGE(0xe800, 0xe97f) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
AM_RANGE(0xf000, 0xf000) AM_WRITENOP /* IRQ acknowledge */
AM_RANGE(0xf001, 0xf001) AM_WRITE(firetrap_sound_command_w)
AM_RANGE(0xf002, 0xf002) AM_WRITE(firetrap_bankselect_w)
@@ -305,23 +288,24 @@ static ADDRESS_MAP_START( writemem_bootleg, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xf00a, 0xf00b) AM_WRITE(firetrap_bg1_scrolly_w)
AM_RANGE(0xf00c, 0xf00d) AM_WRITE(firetrap_bg2_scrollx_w)
AM_RANGE(0xf00e, 0xf00f) AM_WRITE(firetrap_bg2_scrolly_w)
- AM_RANGE(0xf800, 0xf8ff) AM_WRITE(SMH_ROM) /* extra ROM in the bootleg with unprotection code */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_READ(SMH_RAM)
- AM_RANGE(0x3400, 0x3400) AM_READ(soundlatch_r)
- AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK(2))
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
+ AM_RANGE(0xf010, 0xf010) AM_READ_PORT("IN0")
+ AM_RANGE(0xf011, 0xf011) AM_READ_PORT("IN1")
+ AM_RANGE(0xf012, 0xf012) AM_READ_PORT("IN2")
+ AM_RANGE(0xf013, 0xf013) AM_READ_PORT("DSW0")
+ AM_RANGE(0xf014, 0xf014) AM_READ_PORT("DSW1")
+ AM_RANGE(0xf016, 0xf016) AM_READ(firetrap_8751_bootleg_r)
+ AM_RANGE(0xf800, 0xf8ff) AM_ROM /* extra ROM in the bootleg with unprotection code */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x07ff) AM_RAM
AM_RANGE(0x1000, 0x1001) AM_DEVWRITE("ym", ym3526_w)
AM_RANGE(0x2000, 0x2000) AM_WRITE(firetrap_adpcm_data_w) /* ADPCM data for the MSM5205 chip */
AM_RANGE(0x2400, 0x2400) AM_WRITE(firetrap_sound_2400_w)
AM_RANGE(0x2800, 0x2800) AM_WRITE(firetrap_sound_bankselect_w)
- AM_RANGE(0x4000, 0xffff) AM_WRITE(SMH_ROM)
+ AM_RANGE(0x3400, 0x3400) AM_READ(soundlatch_r)
+ AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(2)
+ AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -577,11 +561,11 @@ static MACHINE_DRIVER_START( firetrap )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 6000000) /* 6 MHz */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(firetrap_map,0)
MDRV_CPU_VBLANK_INT_HACK(firetrap,2)
MDRV_CPU_ADD("audiocpu", M6502,3072000/2) /* 1.536 MHz? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
/* IRQs are caused by the ADPCM chip */
/* NMIs are caused by the main CPU */
MDRV_MACHINE_RESET(firetrap)
@@ -616,11 +600,11 @@ static MACHINE_DRIVER_START( firetpbl )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 6000000) /* 6 MHz */
- MDRV_CPU_PROGRAM_MAP(readmem_bootleg,writemem_bootleg)
+ MDRV_CPU_PROGRAM_MAP(firetrap_bootleg_map,0)
MDRV_CPU_VBLANK_INT("screen", bootleg)
MDRV_CPU_ADD("audiocpu", M6502,3072000/2) /* 1.536 MHz? */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
/* IRQs are caused by the ADPCM chip */
/* NMIs are caused by the main CPU */
diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c
index d22e50abe09..aabe5a3e1cc 100644
--- a/src/mame/drivers/flkatck.c
+++ b/src/mame/drivers/flkatck.c
@@ -106,46 +106,27 @@ static WRITE8_HANDLER( multiply_w )
}
-static ADDRESS_MAP_START( flkatck_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x03ff) AM_READ(SMH_RAM)
- AM_RANGE(0x0400, 0x041f) AM_READ(flkatck_ls138_r) /* inputs + DIPS */
- AM_RANGE(0x0800, 0x0bff) AM_READ(SMH_RAM) /* palette */
- AM_RANGE(0x1000, 0x1fff) AM_READ(SMH_RAM) /* RAM */
- AM_RANGE(0x2000, 0x3fff) AM_READ(SMH_RAM) /* Video RAM (007121) */
- AM_RANGE(0x4000, 0x5fff) AM_READ(SMH_BANK(1)) /* banked ROM */
- AM_RANGE(0x6000, 0xffff) AM_READ(SMH_ROM) /* ROM */
+static ADDRESS_MAP_START( flkatck_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x0007) AM_RAM_WRITE(flkatck_k007121_regs_w) /* 007121 registers */
+ AM_RANGE(0x0008, 0x03ff) AM_RAM /* RAM */
+ AM_RANGE(0x0400, 0x041f) AM_READWRITE(flkatck_ls138_r, flkatck_ls138_w) /* inputs, DIPS, bankswitch, counters, sound command */
+ AM_RANGE(0x0800, 0x0bff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE(&paletteram) /* palette */
+ AM_RANGE(0x1000, 0x1fff) AM_RAM /* RAM */
+ AM_RANGE(0x2000, 0x3fff) AM_RAM_WRITE(flkatck_k007121_w) AM_BASE(&k007121_ram) /* Video RAM (007121) */
+ AM_RANGE(0x4000, 0x5fff) AM_ROMBANK(1) /* banked ROM */
+ AM_RANGE(0x6000, 0xffff) AM_ROM /* ROM */
ADDRESS_MAP_END
-static ADDRESS_MAP_START( flkatck_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x0007) AM_WRITE(flkatck_k007121_regs_w) /* 007121 registers */
- AM_RANGE(0x0000, 0x03ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x0400, 0x041f) AM_WRITE(flkatck_ls138_w) /* bankswitch + counters + sound command */
- AM_RANGE(0x0800, 0x0bff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_le_w) AM_BASE(&paletteram)/* palette */
- AM_RANGE(0x1000, 0x1fff) AM_WRITE(SMH_RAM) /* RAM */
- AM_RANGE(0x2000, 0x3fff) AM_WRITE(flkatck_k007121_w) AM_BASE(&k007121_ram) /* Video RAM (007121) */
- AM_RANGE(0x4000, 0x5fff) AM_WRITE(SMH_BANK(1)) /* banked ROM */
- AM_RANGE(0x6000, 0xffff) AM_WRITE(SMH_ROM) /* ROM */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( flkatck_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) /* ROM */
- AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) /* RAM */
- AM_RANGE(0x9000, 0x9000) AM_READ(multiply_r) /* ??? */
-// AM_RANGE(0x9001, 0x9001) AM_READ(SMH_RAM) /* ??? */
- AM_RANGE(0x9004, 0x9004) AM_READ(SMH_RAM) /* ??? */
- AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) /* soundlatch_r */
- AM_RANGE(0xb000, 0xb00d) AM_DEVREAD("konami", k007232_r) /* 007232 registers */
- AM_RANGE(0xc000, 0xc001) AM_DEVREAD("ym", ym2151_r) /* YM2151 */
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( flkatck_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) /* ROM */
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) /* RAM */
- AM_RANGE(0x9000, 0x9001) AM_WRITE(multiply_w) /* ??? */
-// AM_RANGE(0x9001, 0x9001) AM_WRITE(SMH_RAM) /* ??? */
- AM_RANGE(0x9006, 0x9006) AM_WRITE(SMH_RAM) /* ??? */
- AM_RANGE(0xb000, 0xb00d) AM_DEVWRITE("konami", k007232_w) /* 007232 registers */
- AM_RANGE(0xc000, 0xc001) AM_DEVWRITE("ym", ym2151_w) /* YM2151 */
+static ADDRESS_MAP_START( flkatck_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM */
+ AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */
+ AM_RANGE(0x9000, 0x9000) AM_READWRITE(multiply_r, multiply_w) /* ??? */
+// AM_RANGE(0x9001, 0x9001) AM_RAM /* ??? */
+ AM_RANGE(0x9004, 0x9004) AM_READNOP /* ??? */
+ AM_RANGE(0x9006, 0x9006) AM_WRITENOP /* ??? */
+ AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) /* soundlatch_r */
+ AM_RANGE(0xb000, 0xb00d) AM_DEVREADWRITE("konami", k007232_r, k007232_w) /* 007232 registers */
+ AM_RANGE(0xc000, 0xc001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w) /* YM2151 */
ADDRESS_MAP_END
@@ -231,11 +212,11 @@ static MACHINE_DRIVER_START( flkatck )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", HD6309,3000000*4) /* HD63C09EP, 24/8 MHz */
- MDRV_CPU_PROGRAM_MAP(flkatck_readmem,flkatck_writemem)
+ MDRV_CPU_PROGRAM_MAP(flkatck_map,0)
MDRV_CPU_VBLANK_INT("screen", flkatck_interrupt)
MDRV_CPU_ADD("audiocpu", Z80,3579545) /* NEC D780C-1, 3.579545 MHz */
- MDRV_CPU_PROGRAM_MAP(flkatck_readmem_sound,flkatck_writemem_sound)
+ MDRV_CPU_PROGRAM_MAP(flkatck_sound_map,0)
MDRV_QUANTUM_TIME(HZ(600))
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index 82576b7422f..1280739ebdf 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -722,7 +722,7 @@ static MACHINE_DRIVER_START( onna34ro )
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2) /* IRQ generated by ??? */
/* NMI generated by the main CPU */
// MDRV_CPU_ADD("mcu", M68705,4000000) /* ??? */
-// MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem)
+// MDRV_CPU_PROGRAM_MAP(m68705_map,0)
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
@@ -779,7 +779,7 @@ static MACHINE_DRIVER_START( victnine )
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2) /* IRQ generated by ??? */
/* NMI generated by the main CPU */
// MDRV_CPU_ADD("mcu", M68705,4000000) /* ??? */
-// MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem)
+// MDRV_CPU_PROGRAM_MAP(m68705_map,0)
MDRV_QUANTUM_TIME(HZ(6000)) /* 100 CPU slices per frame - an high value to ensure proper */
/* synchronization of the CPUs */
diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c
index ec1abc18f49..9d37f84fdb9 100644
--- a/src/mame/drivers/freekick.c
+++ b/src/mame/drivers/freekick.c
@@ -178,53 +178,37 @@ static WRITE8_HANDLER (freekick_ff_w)
*
*************************************/
-static ADDRESS_MAP_START( pbillrd_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK(1))
- AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
+static ADDRESS_MAP_START( pbillrd_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
+ AM_RANGE(0xc000, 0xcfff) AM_RAM
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(freek_videoram_w) AM_BASE(&freek_videoram)
+ AM_RANGE(0xd800, 0xd8ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0xd900, 0xdfff) AM_RAM
AM_RANGE(0xe000, 0xe000) AM_READ_PORT("IN0")
- AM_RANGE(0xe800, 0xe800) AM_READ_PORT("IN1")
- AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1")
- AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSW2")
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( pbillrd_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xd000, 0xd7ff) AM_WRITE(freek_videoram_w) AM_BASE(&freek_videoram)
- AM_RANGE(0xd800, 0xd8ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0xd900, 0xdfff) AM_WRITE(SMH_RAM)
AM_RANGE(0xe000, 0xe001) AM_WRITE(flipscreen_w)
AM_RANGE(0xe002, 0xe003) AM_WRITE(coin_w)
AM_RANGE(0xe004, 0xe004) AM_WRITE(nmi_enable_w)
- AM_RANGE(0xf000, 0xf000) AM_WRITE(pbillrd_bankswitch_w)
+ AM_RANGE(0xe800, 0xe800) AM_READ_PORT("IN1")
+ AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1") AM_WRITE(pbillrd_bankswitch_w)
+ AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSW2")
AM_RANGE(0xfc00, 0xfc00) AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0xfc01, 0xfc01) AM_DEVWRITE("sn2", sn76496_w)
AM_RANGE(0xfc02, 0xfc02) AM_DEVWRITE("sn3", sn76496_w)
AM_RANGE(0xfc03, 0xfc03) AM_DEVWRITE("sn4", sn76496_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( freekckb_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xcfff) AM_READ(SMH_ROM)
- AM_RANGE(0xd000, 0xdfff) AM_READ(SMH_RAM)
- AM_RANGE(0xe000, 0xe7ff) AM_READ(SMH_RAM) // tilemap
- AM_RANGE(0xe800, 0xe8ff) AM_READ(SMH_RAM) // sprites
- AM_RANGE(0xec00, 0xec03) AM_DEVREAD("ppi8255_0", ppi8255_r)
- AM_RANGE(0xf000, 0xf003) AM_DEVREAD("ppi8255_1", ppi8255_r)
- AM_RANGE(0xf800, 0xf800) AM_READ_PORT("IN0")
+static ADDRESS_MAP_START( freekckb_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xcfff) AM_ROM
+ AM_RANGE(0xd000, 0xdfff) AM_RAM
+ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(freek_videoram_w) AM_BASE(&freek_videoram) // tilemap
+ AM_RANGE(0xe800, 0xe8ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) // sprites
+ AM_RANGE(0xec00, 0xec03) AM_DEVREADWRITE("ppi8255_0", ppi8255_r, ppi8255_w)
+ AM_RANGE(0xf000, 0xf003) AM_DEVREADWRITE("ppi8255_1", ppi8255_r, ppi8255_w)
+ AM_RANGE(0xf800, 0xf800) AM_READ_PORT("IN0") AM_WRITE(flipscreen_w)
AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1")
AM_RANGE(0xf802, 0xf802) AM_READNOP //MUST return bit 0 = 0, otherwise game resets
AM_RANGE(0xf803, 0xf803) AM_READ(spinner_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( freekckb_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xcfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xd000, 0xdfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xe000, 0xe7ff) AM_WRITE(freek_videoram_w) AM_BASE(&freek_videoram)
- AM_RANGE(0xe800, 0xe8ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0xec00, 0xec03) AM_DEVWRITE("ppi8255_0", ppi8255_w)
- AM_RANGE(0xf000, 0xf003) AM_DEVWRITE("ppi8255_1", ppi8255_w)
- AM_RANGE(0xf800, 0xf801) AM_WRITE(flipscreen_w)
AM_RANGE(0xf802, 0xf803) AM_WRITE(coin_w)
AM_RANGE(0xf804, 0xf804) AM_WRITE(nmi_enable_w)
AM_RANGE(0xf806, 0xf806) AM_WRITE(spinner_select_w)
@@ -234,27 +218,20 @@ static ADDRESS_MAP_START( freekckb_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xfc03, 0xfc03) AM_DEVWRITE("sn4", sn76496_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( gigas_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
- AM_RANGE(0xe000, 0xe000) AM_READ_PORT("IN0")
- AM_RANGE(0xe800, 0xe800) AM_READ_PORT("IN1")
- AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1")
- AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSW2")
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( gigas_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xd000, 0xd7ff) AM_WRITE(freek_videoram_w) AM_BASE(&freek_videoram)
- AM_RANGE(0xd800, 0xd8ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
- AM_RANGE(0xd900, 0xdfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xe000, 0xe001) AM_WRITENOP// probably not flipscreen
+static ADDRESS_MAP_START( gigas_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROM
+ AM_RANGE(0xc000, 0xcfff) AM_RAM
+ AM_RANGE(0xd000, 0xd7ff) AM_RAM_WRITE(freek_videoram_w) AM_BASE(&freek_videoram)
+ AM_RANGE(0xd800, 0xd8ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size)
+ AM_RANGE(0xd900, 0xdfff) AM_RAM
+ AM_RANGE(0xe000, 0xe000) AM_READ_PORT("IN0") AM_WRITENOP // probably not flipscreen
AM_RANGE(0xe002, 0xe003) AM_WRITE(coin_w)
AM_RANGE(0xe004, 0xe004) AM_WRITE(nmi_enable_w)
AM_RANGE(0xe005, 0xe005) AM_WRITENOP
- AM_RANGE(0xf000, 0xf000) AM_WRITENOP //bankswitch ?
+ AM_RANGE(0xe800, 0xe800) AM_READ_PORT("IN1")
+ AM_RANGE(0xf000, 0xf000) AM_READ_PORT("DSW1") AM_WRITENOP //bankswitch ?
+ AM_RANGE(0xf800, 0xf800) AM_READ_PORT("DSW2")
AM_RANGE(0xfc00, 0xfc00) AM_DEVWRITE("sn1", sn76496_w)
AM_RANGE(0xfc01, 0xfc01) AM_DEVWRITE("sn2", sn76496_w)
AM_RANGE(0xfc02, 0xfc02) AM_DEVWRITE("sn3", sn76496_w)
@@ -290,6 +267,7 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( pbillrd )
+
PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_BUTTON1 )
PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_BUTTON2 )
@@ -636,7 +614,7 @@ GFXDECODE_END
static MACHINE_DRIVER_START( base )
MDRV_CPU_ADD("maincpu",Z80, 18432000/6) //confirmed
- MDRV_CPU_PROGRAM_MAP(pbillrd_readmem,pbillrd_writemem)
+ MDRV_CPU_PROGRAM_MAP(pbillrd_map,0)
MDRV_CPU_PERIODIC_INT(irq0_line_hold, 50*3) //??
MDRV_CPU_VBLANK_INT("screen", freekick_irqgen)
@@ -682,7 +660,7 @@ static MACHINE_DRIVER_START( freekckb )
MDRV_IMPORT_FROM(base)
MDRV_CPU_MODIFY("maincpu")
- MDRV_CPU_PROGRAM_MAP(freekckb_readmem,freekckb_writemem)
+ MDRV_CPU_PROGRAM_MAP(freekckb_map,0)
MDRV_CPU_IO_MAP(freekckb_io_map,0)
MDRV_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] )
@@ -695,7 +673,7 @@ static MACHINE_DRIVER_START( gigas )
MDRV_IMPORT_FROM(base)
MDRV_CPU_MODIFY("maincpu")
- MDRV_CPU_PROGRAM_MAP(gigas_readmem,gigas_writemem)
+ MDRV_CPU_PROGRAM_MAP(gigas_map,0)
MDRV_CPU_IO_MAP(gigas_io_map,0)
MDRV_VIDEO_UPDATE(gigas)
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index 4da1572b2a5..a1547ccb76c 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -259,111 +259,72 @@ static WRITE8_HANDLER( fromanc2_subcpu_rombank_w )
// MAIN Program (fromanc2, fromancr, fromanc4)
// ----------------------------------------------------------------------------
-static ADDRESS_MAP_START( fromanc2_readmem_main, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) // MAIN ROM
+static ADDRESS_MAP_START( fromanc2_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM // MAIN ROM
- AM_RANGE(0x802000, 0x802fff) AM_READNOP // ???
+ AM_RANGE(0x802000, 0x802fff) AM_READNOP // ???
+ AM_RANGE(0x800000, 0x803fff) AM_WRITE(fromanc2_videoram_0_w) // VRAM 0, 1 (1P)
+ AM_RANGE(0x880000, 0x883fff) AM_WRITE(fromanc2_videoram_1_w) // VRAM 2, 3 (1P)
+ AM_RANGE(0x900000, 0x903fff) AM_WRITE(fromanc2_videoram_2_w) // VRAM 0, 1 (2P)
+ AM_RANGE(0x980000, 0x983fff) AM_WRITE(fromanc2_videoram_3_w) // VRAM 2, 3 (2P)
- AM_RANGE(0xa00000, 0xa00fff) AM_READ(fromanc2_paletteram_0_r)// PALETTE (1P)
- AM_RANGE(0xa80000, 0xa80fff) AM_READ(fromanc2_paletteram_1_r)// PALETTE (2P)
+ AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(fromanc2_paletteram_0_r, fromanc2_paletteram_0_w) // PALETTE (1P)
+ AM_RANGE(0xa80000, 0xa80fff) AM_READWRITE(fromanc2_paletteram_1_r, fromanc2_paletteram_1_w) // PALETTE (2P)
- AM_RANGE(0xd01100, 0xd01101) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r ) // SUB CPU READ
- AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
-
- AM_RANGE(0xd80000, 0xd8ffff) AM_READ(SMH_RAM) // WORK RAM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fromanc2_writemem_main, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) // MAIN ROM
-
- AM_RANGE(0x800000, 0x803fff) AM_WRITE(fromanc2_videoram_0_w) // VRAM 0, 1 (1P)
- AM_RANGE(0x880000, 0x883fff) AM_WRITE(fromanc2_videoram_1_w) // VRAM 2, 3 (1P)
- AM_RANGE(0x900000, 0x903fff) AM_WRITE(fromanc2_videoram_2_w) // VRAM 0, 1 (2P)
- AM_RANGE(0x980000, 0x983fff) AM_WRITE(fromanc2_videoram_3_w) // VRAM 2, 3 (2P)
-
- AM_RANGE(0xa00000, 0xa00fff) AM_WRITE(fromanc2_paletteram_0_w)// PALETTE (1P)
- AM_RANGE(0xa80000, 0xa80fff) AM_WRITE(fromanc2_paletteram_1_w)// PALETTE (2P)
-
- AM_RANGE(0xd00000, 0xd00023) AM_WRITE(fromanc2_gfxreg_0_w) // SCROLL REG (1P/2P)
- AM_RANGE(0xd00100, 0xd00123) AM_WRITE(fromanc2_gfxreg_2_w) // SCROLL REG (1P/2P)
- AM_RANGE(0xd00200, 0xd00223) AM_WRITE(fromanc2_gfxreg_1_w) // SCROLL REG (1P/2P)
- AM_RANGE(0xd00300, 0xd00323) AM_WRITE(fromanc2_gfxreg_3_w) // SCROLL REG (1P/2P)
-
- AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
- AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
-
- AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
- AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
- AM_RANGE(0xd01400, 0xd01401) AM_WRITE(fromanc2_gfxbank_0_w) // GFXBANK (1P)
- AM_RANGE(0xd01500, 0xd01501) AM_WRITE(fromanc2_gfxbank_1_w) // GFXBANK (2P)
- AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromanc2_eeprom_w) // EEPROM DATA
- AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+ AM_RANGE(0xd00000, 0xd00023) AM_WRITE(fromanc2_gfxreg_0_w) // SCROLL REG (1P/2P)
+ AM_RANGE(0xd00100, 0xd00123) AM_WRITE(fromanc2_gfxreg_2_w) // SCROLL REG (1P/2P)
+ AM_RANGE(0xd00200, 0xd00223) AM_WRITE(fromanc2_gfxreg_1_w) // SCROLL REG (1P/2P)
+ AM_RANGE(0xd00300, 0xd00323) AM_WRITE(fromanc2_gfxreg_3_w) // SCROLL REG (1P/2P)
- AM_RANGE(0xd80000, 0xd8ffff) AM_WRITE(SMH_RAM) // WORK RAM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fromancr_readmem_main, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) // MAIN ROM
-
- AM_RANGE(0xa00000, 0xa00fff) AM_READ(fromancr_paletteram_0_r)// PALETTE (1P)
- AM_RANGE(0xa80000, 0xa80fff) AM_READ(fromancr_paletteram_1_r)// PALETTE (2P)
+ AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
+ AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
+ AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
AM_RANGE(0xd01100, 0xd01101) AM_READ_PORT("SYSTEM")
- AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r) // SUB CPU READ
- AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
-
- AM_RANGE(0xd80000, 0xd8ffff) AM_READ(SMH_RAM) // WORK RAM
+ AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
+ AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r ) // SUB CPU READ
+ AM_RANGE(0xd01400, 0xd01401) AM_WRITE(fromanc2_gfxbank_0_w) // GFXBANK (1P)
+ AM_RANGE(0xd01500, 0xd01501) AM_WRITE(fromanc2_gfxbank_1_w) // GFXBANK (2P)
+ AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromanc2_eeprom_w) // EEPROM DATA
+ AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+
+ AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromancr_writemem_main, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) // MAIN ROM
-
- AM_RANGE(0x800000, 0x803fff) AM_WRITE(fromancr_videoram_0_w) // VRAM BG (1P/2P)
- AM_RANGE(0x880000, 0x883fff) AM_WRITE(fromancr_videoram_1_w) // VRAM FG (1P/2P)
- AM_RANGE(0x900000, 0x903fff) AM_WRITE(fromancr_videoram_2_w) // VRAM TEXT (1P/2P)
- AM_RANGE(0x980000, 0x983fff) AM_WRITENOP // VRAM Unused ?
+static ADDRESS_MAP_START( fromancr_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM // MAIN ROM
- AM_RANGE(0xa00000, 0xa00fff) AM_WRITE(fromancr_paletteram_0_w)// PALETTE (1P)
- AM_RANGE(0xa80000, 0xa80fff) AM_WRITE(fromancr_paletteram_1_w)// PALETTE (2P)
+ AM_RANGE(0x800000, 0x803fff) AM_WRITE(fromancr_videoram_0_w) // VRAM BG (1P/2P)
+ AM_RANGE(0x880000, 0x883fff) AM_WRITE(fromancr_videoram_1_w) // VRAM FG (1P/2P)
+ AM_RANGE(0x900000, 0x903fff) AM_WRITE(fromancr_videoram_2_w) // VRAM TEXT (1P/2P)
+ AM_RANGE(0x980000, 0x983fff) AM_WRITENOP // VRAM Unused ?
- AM_RANGE(0xd00000, 0xd00023) AM_WRITE(fromancr_gfxreg_1_w) // SCROLL REG (1P/2P)
- AM_RANGE(0xd00100, 0xd00123) AM_WRITE(fromancr_gfxreg_0_w) // SCROLL REG (1P/2P)
+ AM_RANGE(0xa00000, 0xa00fff) AM_READWRITE(fromancr_paletteram_0_r, fromancr_paletteram_0_w) // PALETTE (1P)
+ AM_RANGE(0xa80000, 0xa80fff) AM_READWRITE(fromancr_paletteram_1_r, fromancr_paletteram_0_w) // PALETTE (2P)
- AM_RANGE(0xd00200, 0xd002ff) AM_WRITENOP // ?
-
- AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
- AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
-
- AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
- AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
- AM_RANGE(0xd01400, 0xd01401) AM_WRITENOP // COIN COUNTER ?
- AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromancr_eeprom_w) // EEPROM DATA, GFXBANK (1P/2P)
- AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
-
- AM_RANGE(0xd80000, 0xd8ffff) AM_WRITE(SMH_RAM) // WORK RAM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fromanc4_readmem_main, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) // MAIN ROM
- AM_RANGE(0x400000, 0x7fffff) AM_READ(SMH_ROM) // DATA ROM
-
- AM_RANGE(0x800000, 0x81ffff) AM_READ(SMH_RAM) // WORK RAM
-
- AM_RANGE(0xdb0000, 0xdb0fff) AM_READ(fromanc4_paletteram_0_r)// PALETTE (1P)
- AM_RANGE(0xdc0000, 0xdc0fff) AM_READ(fromanc4_paletteram_1_r)// PALETTE (2P)
-
- AM_RANGE(0xd10000, 0xd10001) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
- AM_RANGE(0xd20000, 0xd20001) AM_READ_PORT("SYSTEM")
-
- AM_RANGE(0xe5000c, 0xe5000d) AM_READNOP // EXT-COMM PORT ?
+ AM_RANGE(0xd00000, 0xd00023) AM_WRITE(fromancr_gfxreg_1_w) // SCROLL REG (1P/2P)
+ AM_RANGE(0xd00200, 0xd002ff) AM_WRITENOP // ?
+ AM_RANGE(0xd00400, 0xd00413) AM_WRITENOP // ???
+ AM_RANGE(0xd00500, 0xd00513) AM_WRITENOP // ???
+ AM_RANGE(0xd01000, 0xd01001) AM_WRITE(fromanc2_sndcmd_w) // SOUND REQ (1P/2P)
+ AM_RANGE(0xd00100, 0xd00123) AM_WRITE(fromancr_gfxreg_0_w) // SCROLL REG (1P/2P)
+ AM_RANGE(0xd01100, 0xd01101) AM_READ_PORT("SYSTEM")
+ AM_RANGE(0xd01200, 0xd01201) AM_WRITE(fromanc2_subcpu_w) // SUB CPU WRITE
+ AM_RANGE(0xd01300, 0xd01301) AM_READ(fromanc2_subcpu_r) // SUB CPU READ
+ AM_RANGE(0xd01400, 0xd01401) AM_WRITENOP // COIN COUNTER ?
+ AM_RANGE(0xd01600, 0xd01601) AM_WRITE(fromancr_eeprom_w) // EEPROM DATA, GFXBANK (1P/2P)
+ AM_RANGE(0xd01800, 0xd01801) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd01a00, 0xd01a01) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
+
+ AM_RANGE(0xd80000, 0xd8ffff) AM_RAM // WORK RAM
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromanc4_writemem_main, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) // MAIN ROM
- AM_RANGE(0x400000, 0x7fffff) AM_WRITE(SMH_ROM) // DATA ROM
+static ADDRESS_MAP_START( fromanc4_main_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM // MAIN ROM
+ AM_RANGE(0x400000, 0x7fffff) AM_ROM // DATA ROM
- AM_RANGE(0x800000, 0x81ffff) AM_WRITE(SMH_RAM) // WORK RAM
+ AM_RANGE(0x800000, 0x81ffff) AM_RAM // WORK RAM
AM_RANGE(0xd00000, 0xd00001) AM_WRITE(fromanc2_portselect_w) // PORT SELECT (1P/2P)
@@ -377,8 +338,11 @@ static ADDRESS_MAP_START( fromanc4_writemem_main, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xd90000, 0xd9ffff) AM_WRITE(fromanc4_videoram_1_w) // VRAM BG (1P/2P)
AM_RANGE(0xda0000, 0xdaffff) AM_WRITE(fromanc4_videoram_2_w) // VRAM TEXT (1P/2P)
- AM_RANGE(0xdb0000, 0xdb0fff) AM_WRITE(fromanc4_paletteram_0_w)// PALETTE (1P)
- AM_RANGE(0xdc0000, 0xdc0fff) AM_WRITE(fromanc4_paletteram_1_w)// PALETTE (2P)
+ AM_RANGE(0xdb0000, 0xdb0fff) AM_READWRITE(fromanc4_paletteram_0_r, fromanc4_paletteram_0_w) // PALETTE (1P)
+ AM_RANGE(0xdc0000, 0xdc0fff) AM_READWRITE(fromanc4_paletteram_1_r, fromanc4_paletteram_0_w) // PALETTE (2P)
+
+ AM_RANGE(0xd10000, 0xd10001) AM_READ(fromanc2_keymatrix_r) // INPUT KEY MATRIX
+ AM_RANGE(0xd20000, 0xd20001) AM_READ_PORT("SYSTEM")
AM_RANGE(0xe00000, 0xe0001d) AM_WRITE(fromanc4_gfxreg_0_w) // SCROLL, GFXBANK (1P/2P)
AM_RANGE(0xe10000, 0xe1001d) AM_WRITE(fromanc4_gfxreg_1_w) // SCROLL, GFXBANK (1P/2P)
@@ -388,6 +352,7 @@ static ADDRESS_MAP_START( fromanc4_writemem_main, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0xe40000, 0xe40013) AM_WRITENOP // ???
AM_RANGE(0xe50000, 0xe50009) AM_WRITENOP // EXT-COMM PORT ?
+ AM_RANGE(0xe5000c, 0xe5000d) AM_READNOP // EXT-COMM PORT ?
ADDRESS_MAP_END
@@ -395,18 +360,11 @@ ADDRESS_MAP_END
// Z80 SUB Program (fromanc2, fromancr)
// ----------------------------------------------------------------------------
-static ADDRESS_MAP_START( fromanc2_readmem_sub, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) // ROM
- AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK(1)) // ROM(BANK)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_RAM) // RAM(WORK)
- AM_RANGE(0xc000, 0xffff) AM_READ(SMH_BANK(2)) // RAM(BANK)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fromanc2_writemem_sub, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) // ROM
- AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_BANK(1)) // ROM(BANK)
- AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_RAM) // RAM(WORK)
- AM_RANGE(0xc000, 0xffff) AM_WRITE(SMH_BANK(2)) // RAM(BANK)
+static ADDRESS_MAP_START( fromanc2_sub_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x3fff) AM_ROM // ROM
+ AM_RANGE(0x4000, 0x7fff) AM_RAMBANK(1) // ROM(BANK) (is this comment correct? It was in the split address maps in a RAM configuration...
+ AM_RANGE(0x8000, 0xbfff) AM_RAM // RAM(WORK)
+ AM_RANGE(0xc000, 0xffff) AM_RAMBANK(2) // RAM(BANK)
ADDRESS_MAP_END
static ADDRESS_MAP_START( fromanc2_sub_io_map, ADDRESS_SPACE_IO, 8 )
@@ -422,14 +380,9 @@ ADDRESS_MAP_END
// Z80 Sound Program (fromanc2, fromancr, fromanc4)
// ----------------------------------------------------------------------------
-static ADDRESS_MAP_START( fromanc2_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xdfff) AM_READ(SMH_ROM)
- AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fromanc2_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xdfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM)
+static ADDRESS_MAP_START( fromanc2_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xdfff) AM_ROM
+ AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( fromanc2_sound_io_map, ADDRESS_SPACE_IO, 8 )
@@ -616,15 +569,15 @@ static MACHINE_DRIVER_START( fromanc2 )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */
- MDRV_CPU_PROGRAM_MAP(fromanc2_readmem_main,fromanc2_writemem_main)
+ MDRV_CPU_PROGRAM_MAP(fromanc2_main_map,0)
MDRV_CPU_VBLANK_INT("lscreen", fromanc2_interrupt)
MDRV_CPU_ADD("audiocpu", Z80,32000000/4) /* 8.00 MHz */
- MDRV_CPU_PROGRAM_MAP(fromanc2_readmem_sound,fromanc2_writemem_sound)
+ MDRV_CPU_PROGRAM_MAP(fromanc2_sound_map,0)
MDRV_CPU_IO_MAP(fromanc2_sound_io_map,0)
MDRV_CPU_ADD("sub", Z80,32000000/4) /* 8.00 MHz */
- MDRV_CPU_PROGRAM_MAP(fromanc2_readmem_sub,fromanc2_writemem_sub)
+ MDRV_CPU_PROGRAM_MAP(fromanc2_sub_map,0)
MDRV_CPU_IO_MAP(fromanc2_sub_io_map,0)
@@ -668,15 +621,15 @@ static MACHINE_DRIVER_START( fromancr )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */
- MDRV_CPU_PROGRAM_MAP(fromancr_readmem_main,fromancr_writemem_main)
+ MDRV_CPU_PROGRAM_MAP(fromancr_main_map,0)
MDRV_CPU_VBLANK_INT("lscreen", fromanc2_interrupt)
MDRV_CPU_ADD("audiocpu", Z80,32000000/4) /* 8.00 MHz */
- MDRV_CPU_PROGRAM_MAP(fromanc2_readmem_sound,fromanc2_writemem_sound)
+ MDRV_CPU_PROGRAM_MAP(fromanc2_sound_map,0)
MDRV_CPU_IO_MAP(fromanc2_sound_io_map,0)
MDRV_CPU_ADD("sub", Z80,32000000/4) /* 8.00 MHz */
- MDRV_CPU_PROGRAM_MAP(fromanc2_readmem_sub,fromanc2_writemem_sub)
+ MDRV_CPU_PROGRAM_MAP(fromanc2_sub_map,0)
MDRV_CPU_IO_MAP(fromanc2_sub_io_map,0)
MDRV_MACHINE_RESET(fromancr)
@@ -719,11 +672,11 @@ static MACHINE_DRIVER_START( fromanc4 )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000,32000000/2) /* 16.00 MHz */
- MDRV_CPU_PROGRAM_MAP(fromanc4_readmem_main,fromanc4_writemem_main)
+ MDRV_CPU_PROGRAM_MAP(fromanc4_main_map,0)
MDRV_CPU_VBLANK_INT("lscreen", fromanc2_interrupt)
MDRV_CPU_ADD("audiocpu", Z80,32000000/4) /* 8.00 MHz */
- MDRV_CPU_PROGRAM_MAP(fromanc2_readmem_sound,fromanc2_writemem_sound)
+ MDRV_CPU_PROGRAM_MAP(fromanc2_sound_map,0)
MDRV_CPU_IO_MAP(fromanc2_sound_io_map,0)
MDRV_MACHINE_RESET(fromanc4)
diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c
index 0f04932dd3b..e86398ec209 100644
--- a/src/mame/drivers/fromance.c
+++ b/src/mame/drivers/fromance.c
@@ -236,47 +236,29 @@ static WRITE8_HANDLER( fromance_coinctr_w )
*
*************************************/
-static ADDRESS_MAP_START( nekkyoku_readmem_main, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
- AM_RANGE(0xf000, 0xf000) AM_READ_PORT("SERVICE")
- AM_RANGE(0xf001, 0xf001) AM_READ(fromance_keymatrix_r)
- AM_RANGE(0xf002, 0xf002) AM_READ_PORT("COIN")
- AM_RANGE(0xf003, 0xf003) AM_READ(fromance_busycheck_main_r)
+static ADDRESS_MAP_START( nekkyoku_main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0xbfff) AM_ROM
+ AM_RANGE(0xc000, 0xdfff) AM_RAM
+ AM_RANGE(0xf000, 0xf000) AM_READ_PORT("SERVICE") AM_WRITE(fromance_portselect_w)
+ AM_RANGE(0xf001, 0xf001) AM_READ(fromance_keymatrix_r) AM_WRITENOP
+ AM_RANGE(0xf002, 0xf002) AM_READ_PORT("COIN") AM_WRITE(fromance_coinctr_w)
+ AM_RANGE(0xf003, 0xf003) AM_READWRITE(fromance_busycheck_main_r, fromance_commanddata_w)
AM_RANGE(0xf004, 0xf004) AM_READ_PORT("DSW2")
AM_RANGE(0xf005, 0xf005) AM_READ_PORT("DSW1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( nekkyoku_writemem_main, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xf000, 0xf000) AM_WRITE(fromance_portselect_w)
- AM_RANGE(0xf001, 0xf001) AM_WRITENOP
- AM_RANGE(0xf002, 0xf002) AM_WRITE(fromance_coinctr_w)
- AM_RANGE(0xf003, 0xf003) AM_WRITE(fromance_commanddata_w)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( fromance_readmem_main, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_READ(SMH_RAM)
+static ADDRESS_MAP_START( fromance_main_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0xc000, 0xdfff) AM_RAM
AM_RANGE(0x9e89, 0x9e89) AM_READNOP // unknown (idolmj)
- AM_RANGE(0xe000, 0xe000) AM_READ_PORT("SERVICE")
+ AM_RANGE(0xe000, 0xe000) AM_READ_PORT("SERVICE") AM_WRITE(fromance_portselect_w)
AM_RANGE(0xe001, 0xe001) AM_READ(fromance_keymatrix_r)
- AM_RANGE(0xe002, 0xe002) AM_READ_PORT("COIN")
- AM_RANGE(0xe003, 0xe003) AM_READ(fromance_busycheck_main_r)
+ AM_RANGE(0xe002, 0xe002) AM_READ_PORT("COIN") AM_WRITE(fromance_coinctr_w)
+ AM_RANGE(0xe003, 0xe003) AM_READWRITE(fromance_busycheck_main_r, fromance_commanddata_w)
AM_RANGE(0xe004, 0xe004) AM_READ_PORT("DSW2")
AM_RANGE(0xe005, 0xe005) AM_READ_PORT("DSW1")
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromance_writemem_main, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xe000, 0xe000) AM_WRITE(fromance_portselect_w)
- AM_RANGE(0xe002, 0xe002) AM_WRITE(fromance_coinctr_w)
- AM_RANGE(0xe003, 0xe003) AM_WRITE(fromance_commanddata_w)
-ADDRESS_MAP_END
-
/*************************************
@@ -285,37 +267,20 @@ ADDRESS_MAP_END
*
*************************************/
-static ADDRESS_MAP_START( nekkyoku_readmem_sub, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK(1))
- AM_RANGE(0xc000, 0xefff) AM_READ(fromance_videoram_r)
- AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM)
- AM_RANGE(0xf800, 0xffff) AM_READ(fromance_paletteram_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( nekkyoku_writemem_sub, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xefff) AM_WRITE(fromance_videoram_w)
- AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xf800, 0xffff) AM_WRITE(fromance_paletteram_w)
-ADDRESS_MAP_END
-
-
-static ADDRESS_MAP_START( fromance_readmem_sub, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK(1))
- AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM)
- AM_RANGE(0xc800, 0xcfff) AM_READ(fromance_paletteram_r)
- AM_RANGE(0xd000, 0xffff) AM_READ(fromance_videoram_r)
+static ADDRESS_MAP_START( nekkyoku_sub_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
+ AM_RANGE(0xc000, 0xefff) AM_READWRITE(fromance_videoram_r, fromance_videoram_w)
+ AM_RANGE(0xf000, 0xf7ff) AM_RAM
+ AM_RANGE(0xf800, 0xffff) AM_READWRITE(fromance_paletteram_r, fromance_paletteram_w)
ADDRESS_MAP_END
-static ADDRESS_MAP_START( fromance_writemem_sub, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xc800, 0xcfff) AM_WRITE(fromance_paletteram_w)
- AM_RANGE(0xd000, 0xffff) AM_WRITE(fromance_videoram_w)
+static ADDRESS_MAP_START( fromance_sub_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(1)
+ AM_RANGE(0xc000, 0xc7ff) AM_RAM
+ AM_RANGE(0xc800, 0xcfff) AM_READWRITE(fromance_paletteram_r, fromance_paletteram_w)
+ AM_RANGE(0xd000, 0xffff) AM_READWRITE(fromance_videoram_r, fromance_videoram_w)
ADDRESS_MAP_END
@@ -1012,11 +977,11 @@ static MACHINE_DRIVER_START( nekkyoku )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80,12000000/2) /* 6.00 Mhz ? */
- MDRV_CPU_PROGRAM_MAP(nekkyoku_readmem_main,nekkyoku_writemem_main)
+ MDRV_CPU_PROGRAM_MAP(nekkyoku_main_map,0)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
MDRV_CPU_ADD("sub", Z80,12000000/2) /* 6.00 Mhz ? */
- MDRV_CPU_PROGRAM_MAP(nekkyoku_readmem_sub,nekkyoku_writemem_sub)
+ MDRV_CPU_PROGRAM_MAP(nekkyoku_sub_map,0)
MDRV_CPU_IO_MAP(nekkyoku_sub_io_map,0)
MDRV_MACHINE_RESET(fromance)
@@ -1050,11 +1015,11 @@ static MACHINE_DRIVER_START( idolmj )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80,12000000/2) /* 6.00 Mhz ? */
- MDRV_CPU_PROGRAM_MAP(fromance_readmem_main,fromance_writemem_main)
+ MDRV_CPU_PROGRAM_MAP(fromance_main_map,0)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
MDRV_CPU_ADD("sub", Z80,12000000/2) /* 6.00 Mhz ? */
- MDRV_CPU_PROGRAM_MAP(fromance_readmem_sub,fromance_writemem_sub)
+ MDRV_CPU_PROGRAM_MAP(fromance_sub_map,0)
MDRV_CPU_IO_MAP(idolmj_sub_io_map,0)
MDRV_MACHINE_RESET(fromance)
@@ -1088,11 +1053,11 @@ static MACHINE_DRIVER_START( fromance )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80,12000000/2) /* 6.00 Mhz ? */
- MDRV_CPU_PROGRAM_MAP(fromance_readmem_main,fromance_writemem_main)
+ MDRV_CPU_PROGRAM_MAP(fromance_main_map,0)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
MDRV_CPU_ADD("sub", Z80,12000000/2) /* 6.00 Mhz ? */
- MDRV_CPU_PROGRAM_MAP(fromance_readmem_sub,fromance_writemem_sub)
+ MDRV_CPU_PROGRAM_MAP(fromance_sub_map,0)
MDRV_CPU_IO_MAP(fromance_sub_io_map,0)
MDRV_MACHINE_RESET(fromance)
diff --git a/src/mame/drivers/funkybee.c b/src/mame/drivers/funkybee.c
index e3c620873c1..2a621000beb 100644
--- a/src/mame/drivers/funkybee.c
+++ b/src/mame/drivers/funkybee.c
@@ -98,26 +98,19 @@ static WRITE8_HANDLER( funkybee_coin_counter_w )
coin_counter_w(offset,data);
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x4fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
- AM_RANGE(0xa000, 0xdfff) AM_READ(SMH_RAM)
- AM_RANGE(0xf000, 0xf000) AM_READNOP /* IRQ Ack */
- AM_RANGE(0xf800, 0xf800) AM_READ(funkybee_input_port_0_r)
- AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1")
- AM_RANGE(0xf802, 0xf802) AM_READ_PORT("IN2")
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x4fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
- AM_RANGE(0xa000, 0xbfff) AM_WRITE(funkybee_videoram_w) AM_BASE(&videoram)
- AM_RANGE(0xc000, 0xdfff) AM_WRITE(funkybee_colorram_w) AM_BASE(&colorram)
+static ADDRESS_MAP_START( funkybee_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x4fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
+ AM_RANGE(0xa000, 0xbfff) AM_RAM_WRITE(funkybee_videoram_w) AM_BASE(&videoram)
+ AM_RANGE(0xc000, 0xdfff) AM_RAM_WRITE(funkybee_colorram_w) AM_BASE(&colorram)
AM_RANGE(0xe000, 0xe000) AM_WRITE(funkybee_scroll_w)
AM_RANGE(0xe800, 0xe800) AM_WRITE(funkybee_flipscreen_w)
AM_RANGE(0xe802, 0xe803) AM_WRITE(funkybee_coin_counter_w)
AM_RANGE(0xe805, 0xe805) AM_WRITE(funkybee_gfx_bank_w)
- AM_RANGE(0xf800, 0xf800) AM_WRITE(watchdog_reset_w)
+ AM_RANGE(0xf000, 0xf000) AM_READNOP /* IRQ Ack */
+ AM_RANGE(0xf800, 0xf800) AM_READWRITE(funkybee_input_port_0_r, watchdog_reset_w)
+ AM_RANGE(0xf801, 0xf801) AM_READ_PORT("IN1")
+ AM_RANGE(0xf802, 0xf802) AM_READ_PORT("IN2")
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
@@ -299,7 +292,7 @@ static MACHINE_DRIVER_START( funkybee )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80, 3072000) /* 3.072 MHz */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(funkybee_map,0)
MDRV_CPU_IO_MAP(io_map,0)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c
index 4431464dea9..09733a9fc6a 100644
--- a/src/mame/drivers/funkyjet.c
+++ b/src/mame/drivers/funkyjet.c
@@ -102,53 +102,32 @@ VIDEO_UPDATE( funkyjet );
/******************************************************************************/
-static ADDRESS_MAP_START( funkyjet_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
- AM_RANGE(0x120000, 0x1207ff) AM_READ(SMH_RAM)
- AM_RANGE(0x140000, 0x143fff) AM_READ(SMH_RAM)
- AM_RANGE(0x160000, 0x1607ff) AM_READ(SMH_RAM)
- AM_RANGE(0x180000, 0x1807ff) AM_READ(deco16_146_funkyjet_prot_r)
- AM_RANGE(0x320000, 0x321fff) AM_READ(SMH_RAM)
- AM_RANGE(0x322000, 0x323fff) AM_READ(SMH_RAM)
- AM_RANGE(0x340000, 0x340bff) AM_READ(SMH_RAM)
- AM_RANGE(0x342000, 0x342bff) AM_READ(SMH_RAM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( funkyjet_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x120000, 0x1207ff) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
- AM_RANGE(0x140000, 0x143fff) AM_WRITE(SMH_RAM)
- AM_RANGE(0x160000, 0x1607ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16)
- AM_RANGE(0x180000, 0x1807ff) AM_WRITE(deco16_146_funkyjet_prot_w) AM_BASE(&deco16_prot_ram)
+static ADDRESS_MAP_START( funkyjet_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x07ffff) AM_ROM
+ AM_RANGE(0x120000, 0x1207ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
+ AM_RANGE(0x140000, 0x143fff) AM_RAM
+ AM_RANGE(0x160000, 0x1607ff) AM_RAM AM_BASE(&spriteram16)
+ AM_RANGE(0x180000, 0x1807ff) AM_READWRITE(deco16_146_funkyjet_prot_r, deco16_146_funkyjet_prot_w) AM_BASE(&deco16_prot_ram)
AM_RANGE(0x184000, 0x184001) AM_WRITENOP
AM_RANGE(0x188000, 0x188001) AM_WRITENOP
AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
- AM_RANGE(0x320000, 0x321fff) AM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
- AM_RANGE(0x322000, 0x323fff) AM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
- AM_RANGE(0x340000, 0x340bff) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf1_rowscroll)
- AM_RANGE(0x342000, 0x342bff) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf2_rowscroll)
+ AM_RANGE(0x320000, 0x321fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
+ AM_RANGE(0x322000, 0x323fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
+ AM_RANGE(0x340000, 0x340bff) AM_RAM AM_BASE(&deco16_pf1_rowscroll)
+ AM_RANGE(0x342000, 0x342bff) AM_RAM AM_BASE(&deco16_pf2_rowscroll)
ADDRESS_MAP_END
/******************************************************************************/
/* Physical memory map (21 bits) */
-static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x000000, 0x00ffff) AM_READ(SMH_ROM)
- AM_RANGE(0x100000, 0x100001) AM_READNOP
- AM_RANGE(0x110000, 0x110001) AM_DEVREAD("ym", ym2151_r)
- AM_RANGE(0x120000, 0x120001) AM_DEVREAD("oki", okim6295_r)
- AM_RANGE(0x130000, 0x130001) AM_READNOP /* This board only has 1 oki chip */
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x000000, 0x00ffff) AM_ROM
+ AM_RANGE(0x100000, 0x100001) AM_NOP /* YM2203 - this board doesn't have one */
+ AM_RANGE(0x110000, 0x110001) AM_DEVREADWRITE("ym", ym2151_r, ym2151_w)
+ AM_RANGE(0x120000, 0x120001) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w)
+ AM_RANGE(0x130000, 0x130001) AM_NOP /* This board only has 1 oki chip */
AM_RANGE(0x140000, 0x140001) AM_READ(soundlatch_r)
- AM_RANGE(0x1f0000, 0x1f1fff) AM_READ(SMH_BANK(8))
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x000000, 0x00ffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x100000, 0x100001) AM_WRITENOP /* YM2203 - this board doesn't have one */
- AM_RANGE(0x110000, 0x110001) AM_DEVWRITE("ym", ym2151_w)
- AM_RANGE(0x120000, 0x120001) AM_DEVWRITE("oki", okim6295_w)
- AM_RANGE(0x130000, 0x130001) AM_WRITENOP
- AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK(8))
+ AM_RANGE(0x1f0000, 0x1f1fff) AM_RAMBANK(8)
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(h6280_timer_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(h6280_irq_status_w)
ADDRESS_MAP_END
@@ -312,11 +291,11 @@ static MACHINE_DRIVER_START( funkyjet )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 14000000) /* 28 MHz crystal */
- MDRV_CPU_PROGRAM_MAP(funkyjet_readmem,funkyjet_writemem)
+ MDRV_CPU_PROGRAM_MAP(funkyjet_map,0)
MDRV_CPU_VBLANK_INT("screen", irq6_line_hold)
MDRV_CPU_ADD("audiocpu", H6280,32220000/4) /* Custom chip 45, Audio section crystal is 32.220 MHz */
- MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c
index 268258c6830..fca87e8f2e8 100644
--- a/src/mame/drivers/funybubl.c
+++ b/src/mame/drivers/funybubl.c
@@ -90,21 +90,12 @@ static WRITE8_DEVICE_HANDLER( funybubl_oki_bank_sw )
}
-static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_READ(SMH_BANK(2)) // banked port 1?
- AM_RANGE(0xc400, 0xc7ff) AM_READ(SMH_RAM)
- AM_RANGE(0xc800, 0xcfff) AM_READ(SMH_RAM)
- AM_RANGE(0xd000, 0xdfff) AM_READ(SMH_BANK(1)) // banked port 0?
- AM_RANGE(0xe000, 0xffff) AM_READ(SMH_RAM)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x8000, 0xbfff) AM_WRITE(SMH_ROM)
- AM_RANGE(0xc400, 0xcfff) AM_WRITE(funybubl_paldatawrite) AM_BASE(&funybubl_paletteram) // palette
- AM_RANGE(0xd000, 0xdfff) AM_WRITE(SMH_BANK(1)) // banked port 0?
- AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_RAM)
+static ADDRESS_MAP_START( funybubl_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0xbfff) AM_ROMBANK(2) // banked port 1?
+ AM_RANGE(0xc400, 0xcfff) AM_RAM_WRITE(funybubl_paldatawrite) AM_BASE(&funybubl_paletteram) // palette
+ AM_RANGE(0xd000, 0xdfff) AM_RAMBANK(1) // banked port 0?
+ AM_RANGE(0xe000, 0xffff) AM_RAM
ADDRESS_MAP_END
static ADDRESS_MAP_START( io_map, ADDRESS_SPACE_IO, 8 )
@@ -120,18 +111,12 @@ ADDRESS_MAP_END
/* Sound CPU */
-static ADDRESS_MAP_START( soundreadmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM)
- AM_RANGE(0x9800, 0x9800) AM_DEVREAD("oki", okim6295_r)
- AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( soundwritemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM)
+static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x7fff) AM_ROM
+ AM_RANGE(0x8000, 0x87ff) AM_RAM
AM_RANGE(0x9000, 0x9000) AM_DEVWRITE("oki", funybubl_oki_bank_sw)
- AM_RANGE(0x9800, 0x9800) AM_DEVWRITE("oki", okim6295_w)
+ AM_RANGE(0x9800, 0x9800) AM_DEVREADWRITE("oki", okim6295_r, okim6295_w)
+ AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r)
ADDRESS_MAP_END
@@ -238,12 +223,12 @@ static DRIVER_INIT( funybubl )
static MACHINE_DRIVER_START( funybubl )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", Z80,12000000/2) /* 6 MHz?? */
- MDRV_CPU_PROGRAM_MAP(readmem,writemem)
+ MDRV_CPU_PROGRAM_MAP(funybubl_map,0)
MDRV_CPU_IO_MAP(io_map,0)
MDRV_CPU_VBLANK_INT("screen", irq0_line_hold)
MDRV_CPU_ADD("audiocpu", Z80,8000000/2) /* 4 MHz?? */
- MDRV_CPU_PROGRAM_MAP(soundreadmem,soundwritemem)
+ MDRV_CPU_PROGRAM_MAP(sound_map,0)
/* video hardware */
MDRV_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index 94b851f3336..ea6174bfae7 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -90,34 +90,22 @@ static WRITE16_HANDLER( fuuki16_sound_command_w )
}
}
-static ADDRESS_MAP_START( fuuki16_readmem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM ) // ROM
- AM_RANGE(0x400000, 0x40ffff) AM_READ(SMH_RAM ) // RAM
- AM_RANGE(0x500000, 0x507fff) AM_READ(SMH_RAM ) // Layers
- AM_RANGE(0x600000, 0x601fff) AM_MIRROR(0x008000) AM_READ(SMH_RAM ) // Sprites, mirrored?
- AM_RANGE(0x700000, 0x703fff) AM_READ(SMH_RAM ) // Palette
+static ADDRESS_MAP_START( fuuki16_map, ADDRESS_SPACE_PROGRAM, 16 )
+ AM_RANGE(0x000000, 0x0fffff) AM_ROM // ROM
+ AM_RANGE(0x400000, 0x40ffff) AM_RAM // RAM
+ AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(fuuki16_vram_0_w) AM_BASE(&fuuki16_vram_0) // Layers
+ AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(fuuki16_vram_1_w) AM_BASE(&fuuki16_vram_1) //
+ AM_RANGE(0x504000, 0x505fff) AM_RAM_WRITE(fuuki16_vram_2_w) AM_BASE(&fuuki16_vram_2) //
+ AM_RANGE(0x506000, 0x507fff) AM_RAM_WRITE(fuuki16_vram_3_w) AM_BASE(&fuuki16_vram_3) //
+ AM_RANGE(0x600000, 0x601fff) AM_MIRROR(0x008000) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) // Sprites, mirrored?
+ AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // Palette
AM_RANGE(0x800000, 0x800001) AM_READ_PORT("SYSTEM")
AM_RANGE(0x810000, 0x810001) AM_READ_PORT("P1_P2")
AM_RANGE(0x880000, 0x880001) AM_READ_PORT("DSW")
- AM_RANGE(0x8c0000, 0x8c001f) AM_READ(SMH_RAM ) // Video Registers
-/**/AM_RANGE(0x8d0000, 0x8d0003) AM_READ(SMH_RAM ) //
-/**/AM_RANGE(0x8e0000, 0x8e0001) AM_READ(SMH_RAM ) //
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fuuki16_writemem, ADDRESS_SPACE_PROGRAM, 16 )
- AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM ) // ROM
- AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SMH_RAM ) // RAM
- AM_RANGE(0x500000, 0x501fff) AM_WRITE(fuuki16_vram_0_w) AM_BASE(&fuuki16_vram_0 ) // Layers
- AM_RANGE(0x502000, 0x503fff) AM_WRITE(fuuki16_vram_1_w) AM_BASE(&fuuki16_vram_1 ) //
- AM_RANGE(0x504000, 0x505fff) AM_WRITE(fuuki16_vram_2_w) AM_BASE(&fuuki16_vram_2 ) //
- AM_RANGE(0x506000, 0x507fff) AM_WRITE(fuuki16_vram_3_w) AM_BASE(&fuuki16_vram_3 ) //
- AM_RANGE(0x506000, 0x507fff) AM_WRITE(SMH_RAM ) //
- AM_RANGE(0x600000, 0x601fff) AM_MIRROR(0x008000) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size ) // Sprites, mirrored?
- AM_RANGE(0x700000, 0x703fff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16 ) // Palette
- AM_RANGE(0x8c0000, 0x8c001f) AM_WRITE(fuuki16_vregs_w) AM_BASE(&fuuki16_vregs ) // Video Registers
- AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE(fuuki16_sound_command_w ) // To Sound CPU
- AM_RANGE(0x8d0000, 0x8d0003) AM_WRITE(SMH_RAM) AM_BASE(&fuuki16_unknown ) //
- AM_RANGE(0x8e0000, 0x8e0001) AM_WRITE(SMH_RAM) AM_BASE(&fuuki16_priority ) //
+ AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE(fuuki16_sound_command_w) // To Sound CPU
+ AM_RANGE(0x8c0000, 0x8c001f) AM_RAM_WRITE(fuuki16_vregs_w) AM_BASE(&fuuki16_vregs ) // Video Registers
+/**/AM_RANGE(0x8d0000, 0x8d0003) AM_RAM AM_BASE(&fuuki16_unknown) //
+/**/AM_RANGE(0x8e0000, 0x8e0001) AM_RAM AM_BASE(&fuuki16_priority) //
ADDRESS_MAP_END
@@ -147,16 +135,10 @@ static WRITE8_DEVICE_HANDLER( fuuki16_oki_banking_w )
okim6295_set_bank_base(device, ((data & 6) >> 1) * 0x40000);
}
-static ADDRESS_MAP_START( fuuki16_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x5fff) AM_READ(SMH_ROM ) // ROM
- AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_RAM ) // RAM
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_BANK(1) ) // Banked ROM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fuuki16_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x5fff) AM_WRITE(SMH_ROM ) // ROM
- AM_RANGE(0x6000, 0x7fff) AM_WRITE(SMH_RAM ) // RAM
- AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM ) // Banked ROM
+static ADDRESS_MAP_START( fuuki16_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
+ AM_RANGE(0x6000, 0x7fff) AM_RAM // RAM
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1) // Banked ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( fuuki16_sound_io_map, ADDRESS_SPACE_IO, 8 )
@@ -469,10 +451,10 @@ static MACHINE_DRIVER_START( fuuki16 )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68000, 16000000)
- MDRV_CPU_PROGRAM_MAP(fuuki16_readmem,fuuki16_writemem)
+ MDRV_CPU_PROGRAM_MAP(fuuki16_map,0)
MDRV_CPU_ADD("audiocpu", Z80, 3000000) /* ? */
- MDRV_CPU_PROGRAM_MAP(fuuki16_sound_readmem,fuuki16_sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(fuuki16_sound_map,0)
MDRV_CPU_IO_MAP(fuuki16_sound_io_map,0)
MDRV_MACHINE_START(fuuki16)
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index 446c2c6b056..e9bc56d83da 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -255,56 +255,34 @@ static WRITE32_HANDLER( fuuki32_vregs_w )
// Lines with empty comment are for debug only
-static ADDRESS_MAP_START( fuuki32_readmem, ADDRESS_SPACE_PROGRAM, 32 )
- AM_RANGE(0x000000, 0x1fffff) AM_READ(SMH_ROM)
- AM_RANGE(0x400000, 0x40ffff) AM_READ(SMH_RAM) // Work RAM
- AM_RANGE(0x410000, 0x41ffff) AM_READ(SMH_RAM) // Work RAM (used by asurabus)
- AM_RANGE(0x500000, 0x501fff) AM_READ(SMH_RAM) // Tilemap 1
- AM_RANGE(0x502000, 0x503fff) AM_READ(SMH_RAM) // Tilemap 2
- AM_RANGE(0x504000, 0x505fff) AM_READ(SMH_RAM) // Tilemap bg
- AM_RANGE(0x506000, 0x507fff) AM_READ(SMH_RAM) // Tilemap bg2
- AM_RANGE(0x508000, 0x517fff) AM_READ(SMH_RAM) // More tilemap, or linescroll? Seems to be empty all of the time
- AM_RANGE(0x600000, 0x601fff) AM_READ(SMH_RAM) // Sprites
-
- AM_RANGE(0x700000, 0x703fff) AM_READ(SMH_RAM) // Palette
-
- AM_RANGE(0x800000, 0x800003) AM_READ_PORT("800000") // Coin
- AM_RANGE(0x810000, 0x810003) AM_READ_PORT("810000") // Player Inputs
- AM_RANGE(0x880000, 0x880003) AM_READ_PORT("880000") // Service + DIPS
- AM_RANGE(0x890000, 0x890003) AM_READ_PORT("890000") // More DIPS
-
- AM_RANGE(0x8c0000, 0x8c001f) AM_READ(SMH_RAM)// Video Registers
-
-/**/AM_RANGE(0x8d0000, 0x8d0003) AM_READ(SMH_RAM) // Flipscreen Related
-/**/AM_RANGE(0x8e0000, 0x8e0003) AM_READ(SMH_RAM) // Controls layer order
-
- AM_RANGE(0x903fe0, 0x903fff) AM_READ(snd_020_r) // Shared with Z80
-// AM_RANGE(0x903fe0, 0x903fe3) AM_READ(fuuki32_sound_command_r) // Shared with Z80
-// AM_RANGE(0x903fe4, 0x903fff) AM_READ(SMH_RAM) // ??
-ADDRESS_MAP_END
+static ADDRESS_MAP_START( fuuki32_map, ADDRESS_SPACE_PROGRAM, 32 )
+ AM_RANGE(0x000000, 0x1fffff) AM_ROM // ROM
+
+ AM_RANGE(0x400000, 0x40ffff) AM_RAM // Work RAM
+ AM_RANGE(0x410000, 0x41ffff) AM_RAM // Work RAM (used by asurabus)
-static ADDRESS_MAP_START( fuuki32_writemem, ADDRESS_SPACE_PROGRAM, 32 )
- AM_RANGE(0x000000, 0x1fffff) AM_WRITE(SMH_ROM)
- AM_RANGE(0x400000, 0x40ffff) AM_WRITE(SMH_RAM) // Work RAM
- AM_RANGE(0x410000, 0x41ffff) AM_WRITE(SMH_RAM) // Work RAM
- AM_RANGE(0x500000, 0x501fff) AM_WRITE(fuuki32_vram_0_w) AM_BASE(&fuuki32_vram_0) // Tilemap 1
- AM_RANGE(0x502000, 0x503fff) AM_WRITE(fuuki32_vram_1_w) AM_BASE(&fuuki32_vram_1) // Tilemap 2
- AM_RANGE(0x504000, 0x505fff) AM_WRITE(fuuki32_vram_2_w) AM_BASE(&fuuki32_vram_2) // Tilemap bg
- AM_RANGE(0x506000, 0x507fff) AM_WRITE(fuuki32_vram_3_w) AM_BASE(&fuuki32_vram_3) // Tilemap bg2
- AM_RANGE(0x508000, 0x517fff) AM_WRITE(SMH_RAM) // More tilemap, or linescroll? Seems to be empty all of the time
+ AM_RANGE(0x500000, 0x501fff) AM_RAM_WRITE(fuuki32_vram_0_w) AM_BASE(&fuuki32_vram_0) // Tilemap 1
+ AM_RANGE(0x502000, 0x503fff) AM_RAM_WRITE(fuuki32_vram_1_w) AM_BASE(&fuuki32_vram_1) // Tilemap 2
+ AM_RANGE(0x504000, 0x505fff) AM_RAM_WRITE(fuuki32_vram_2_w) AM_BASE(&fuuki32_vram_2) // Tilemap bg
+ AM_RANGE(0x506000, 0x507fff) AM_RAM_WRITE(fuuki32_vram_3_w) AM_BASE(&fuuki32_vram_3) // Tilemap bg2
+ AM_RANGE(0x508000, 0x517fff) AM_RAM // More tilemap, or linescroll? Seems to be empty all of the time
- AM_RANGE(0x600000, 0x601fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram32) AM_SIZE(&spriteram_size ) // Sprites
- AM_RANGE(0x700000, 0x703fff) AM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE(&paletteram32) // Palette
+ AM_RANGE(0x600000, 0x601fff) AM_RAM AM_BASE(&spriteram32) AM_SIZE(&spriteram_size) // Sprites
+ AM_RANGE(0x700000, 0x703fff) AM_RAM_WRITE(paletteram32_xRRRRRGGGGGBBBBB_dword_w) AM_BASE(&paletteram32) // Palette
- AM_RANGE(0x800000, 0x800003) AM_WRITENOP // Clear buffered inputs
- AM_RANGE(0x810000, 0x810003) AM_WRITENOP // Clear buffered inputs
+ AM_RANGE(0x800000, 0x800003) AM_READ_PORT("800000") AM_WRITENOP // Coin
+ AM_RANGE(0x810000, 0x810003) AM_READ_PORT("810000") AM_WRITENOP // Player Inputs
+ AM_RANGE(0x880000, 0x880003) AM_READ_PORT("880000") // Service + DIPS
+ AM_RANGE(0x890000, 0x890003) AM_READ_PORT("890000") // More DIPS
- AM_RANGE(0x8c0000, 0x8c001f) AM_WRITE(fuuki32_vregs_w) AM_BASE(&fuuki32_vregs) // Video Registers
+ AM_RANGE(0x8c0000, 0x8c001f) AM_RAM_WRITE(fuuki32_vregs_w) AM_BASE(&fuuki32_vregs) // Video Registers
- AM_RANGE(0x8d0000, 0x8d0003) AM_WRITE(SMH_RAM) // Flipscreen Related
- AM_RANGE(0x8e0000, 0x8e0003) AM_WRITE(SMH_RAM) AM_BASE(&fuuki32_priority) // Controls layer order
+ AM_RANGE(0x8d0000, 0x8d0003) AM_RAM // Flipscreen Related
+/**/AM_RANGE(0x8e0000, 0x8e0003) AM_RAM AM_BASE(&fuuki32_priority) // Controls layer order
- AM_RANGE(0x903fe0, 0x903fff) AM_WRITE(snd_020_w) // z80 comms
+ AM_RANGE(0x903fe0, 0x903fff) AM_READWRITE(snd_020_r, snd_020_w) // Shared with Z80
+// AM_RANGE(0x903fe0, 0x903fe3) AM_READ(fuuki32_sound_command_r) // Shared with Z80
+// AM_RANGE(0x903fe4, 0x903fff) AM_READ(SMH_RAM) // ??
AM_RANGE(0xa00000, 0xa00003) AM_WRITE(SMH_RAM) AM_BASE(&fuuki32_tilebank)
ADDRESS_MAP_END
@@ -334,18 +312,11 @@ static WRITE8_HANDLER( snd_z80_w )
fuuki32_shared_ram[offset] = data;
}
-static ADDRESS_MAP_START( fuuki32_sound_readmem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x5fff) AM_READ(SMH_ROM ) // ROM
- AM_RANGE(0x6000, 0x6fff) AM_READ(SMH_RAM ) // RAM
- AM_RANGE(0x7ff0, 0x7fff) AM_READ(snd_z80_r)
- AM_RANGE(0x8000, 0xffff) AM_READ(SMH_BANK(1) ) // ROM
-ADDRESS_MAP_END
-
-static ADDRESS_MAP_START( fuuki32_sound_writemem, ADDRESS_SPACE_PROGRAM, 8 )
- AM_RANGE(0x0000, 0x5fff) AM_WRITE(SMH_ROM ) // ROM
- AM_RANGE(0x6000, 0x6fff) AM_WRITE(SMH_RAM ) // RAM
- AM_RANGE(0x7ff0, 0x7fff) AM_WRITE(snd_z80_w)
- AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM ) // ROM
+static ADDRESS_MAP_START( fuuki32_sound_map, ADDRESS_SPACE_PROGRAM, 8 )
+ AM_RANGE(0x0000, 0x5fff) AM_ROM // ROM
+ AM_RANGE(0x6000, 0x6fff) AM_RAM // RAM
+ AM_RANGE(0x7ff0, 0x7fff) AM_READWRITE(snd_z80_r, snd_z80_w)
+ AM_RANGE(0x8000, 0xffff) AM_ROMBANK(1) // ROM
ADDRESS_MAP_END
static ADDRESS_MAP_START( fuuki32_sound_io_map, ADDRESS_SPACE_IO, 8 )
@@ -591,10 +562,10 @@ static MACHINE_DRIVER_START( fuuki32 )
/* basic machine hardware */
MDRV_CPU_ADD("maincpu", M68EC020, CPU_CLOCK) /* 20MHz verified */
- MDRV_CPU_PROGRAM_MAP(fuuki32_readmem,fuuki32_writemem)
+ MDRV_CPU_PROGRAM_MAP(fuuki32_map,0)
MDRV_CPU_ADD("soundcpu", Z80, SOUND_CPU_CLOCK) /* 6MHz verified */
- MDRV_CPU_PROGRAM_MAP(fuuki32_sound_readmem,fuuki32_sound_writemem)
+ MDRV_CPU_PROGRAM_MAP(fuuki32_sound_map,0)
MDRV_CPU_IO_MAP(fuuki32_sound_io_map,0)
MDRV_MACHINE_START(fuuki32)