diff options
author | Andrew Gardner <andrew-gardner@users.noreply.github.com> | 2008-05-11 21:07:19 +0000 |
---|---|---|
committer | Andrew Gardner <andrew-gardner@users.noreply.github.com> | 2008-05-11 21:07:19 +0000 |
commit | b59bf0ccfb13c172228ba03e42fce8f239013dbb (patch) | |
tree | ae0db5958b7d0e9b582af3974060a8f3be754b35 | |
parent | e68cfa644c134a9e239581cf9f929c25763f3024 (diff) |
Memory map merge for drivers, tagteam,tail2nos, tankbatt, tankbust, taotaido, targeth, and taxidrvr.
-rw-r--r-- | src/mame/drivers/tagteam.c | 46 | ||||
-rw-r--r-- | src/mame/drivers/tail2nos.c | 80 | ||||
-rw-r--r-- | src/mame/drivers/tankbatt.c | 23 | ||||
-rw-r--r-- | src/mame/drivers/tankbust.c | 85 | ||||
-rw-r--r-- | src/mame/drivers/taotaido.c | 68 | ||||
-rw-r--r-- | src/mame/drivers/targeth.c | 54 | ||||
-rw-r--r-- | src/mame/drivers/taxidrvr.c | 94 |
7 files changed, 149 insertions, 301 deletions
diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c index 7727dd355c2..e35a9bbb7a8 100644 --- a/src/mame/drivers/tagteam.c +++ b/src/mame/drivers/tagteam.c @@ -51,50 +51,34 @@ static WRITE8_HANDLER( sound_command_w ) } -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(SMH_RAM) - AM_RANGE(0x2000, 0x2000) AM_READ(input_port_1_r) /* IN1 */ - AM_RANGE(0x2001, 0x2001) AM_READ(input_port_0_r) /* IN0 */ - AM_RANGE(0x2002, 0x2002) AM_READ(input_port_2_r) /* DSW2 */ +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x07ff) AM_RAM + AM_RANGE(0x2000, 0x2000) AM_READWRITE(input_port_1_r, tagteam_flipscreen_w) + AM_RANGE(0x2001, 0x2001) AM_READWRITE(input_port_0_r, tagteam_control_w) + AM_RANGE(0x2002, 0x2002) AM_READWRITE(input_port_2_r, sound_command_w) AM_RANGE(0x2003, 0x2003) AM_READ(input_port_3_r) /* DSW1 */ - AM_RANGE(0x4000, 0x43ff) AM_READ(tagteam_mirrorvideoram_r) - AM_RANGE(0x4400, 0x47ff) AM_READ(tagteam_mirrorcolorram_r) - AM_RANGE(0x4800, 0x4fff) AM_READ(SMH_RAM) - AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x2000, 0x2000) AM_WRITE(tagteam_flipscreen_w) - AM_RANGE(0x2001, 0x2001) AM_WRITE(tagteam_control_w) - AM_RANGE(0x2002, 0x2002) AM_WRITE(sound_command_w) // AM_RANGE(0x2003, 0x2003) AM_WRITE(SMH_NOP) /* Appears to increment when you're out of the ring */ - AM_RANGE(0x4000, 0x43ff) AM_WRITE(tagteam_mirrorvideoram_w) - AM_RANGE(0x4400, 0x47ff) AM_WRITE(tagteam_mirrorcolorram_w) + AM_RANGE(0x4000, 0x43ff) AM_READWRITE(tagteam_mirrorvideoram_r, tagteam_mirrorvideoram_w) + AM_RANGE(0x4400, 0x47ff) AM_READWRITE(tagteam_mirrorcolorram_r, tagteam_mirrorcolorram_w) + AM_RANGE(0x4800, 0x4fff) AM_READ(SMH_RAM) AM_RANGE(0x4800, 0x4bff) AM_WRITE(tagteam_videoram_w) AM_BASE(&videoram) AM_RANGE(0x4c00, 0x4fff) AM_WRITE(tagteam_colorram_w) AM_BASE(&colorram) - AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_READ(SMH_RAM) - AM_RANGE(0x2007, 0x2007) AM_READ(soundlatch_r) - AM_RANGE(0x4000, 0xffff) AM_READ(SMH_ROM) + AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x03ff) AM_WRITE(SMH_RAM) +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x03ff) AM_RAM AM_RANGE(0x2000, 0x2000) AM_WRITE(AY8910_write_port_0_w) AM_RANGE(0x2001, 0x2001) AM_WRITE(AY8910_control_port_0_w) AM_RANGE(0x2002, 0x2002) AM_WRITE(AY8910_write_port_1_w) AM_RANGE(0x2003, 0x2003) AM_WRITE(AY8910_control_port_1_w) AM_RANGE(0x2004, 0x2004) AM_WRITE(DAC_0_data_w) AM_RANGE(0x2005, 0x2005) AM_WRITE(interrupt_enable_w) + AM_RANGE(0x2007, 0x2007) AM_READ(soundlatch_r) + AM_RANGE(0x4000, 0xffff) AM_READ(SMH_ROM) ADDRESS_MAP_END - static INTERRUPT_GEN( tagteam_interrupt ) { static int coin; @@ -271,12 +255,12 @@ static MACHINE_DRIVER_START( tagteam ) /* basic machine hardware */ MDRV_CPU_ADD(M6502, 1500000) /* 1.5 MHz ?? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) + MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT("main", tagteam_interrupt) MDRV_CPU_ADD(M6502, 975000) /* audio CPU */ /* 975 kHz ?? */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) + MDRV_CPU_PROGRAM_MAP(sound_map,0) MDRV_CPU_VBLANK_INT_HACK(nmi_line_pulse,16) /* IRQs are triggered by the main CPU */ /* video hardware */ diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c index 6299a368bdb..0d5a67c9a21 100644 --- a/src/mame/drivers/tail2nos.c +++ b/src/mame/drivers/tail2nos.c @@ -68,71 +68,43 @@ static WRITE8_HANDLER( sound_bankswitch_w ) memory_set_bankptr(3,memory_region(REGION_CPU2) + 0x10000 + (data & 0x01) * 0x8000); } - - -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) - AM_RANGE(0x200000, 0x27ffff) AM_READ(SMH_BANK1) /* extra ROM */ - AM_RANGE(0x2c0000, 0x2dffff) AM_READ(SMH_BANK2) /* extra ROM */ - AM_RANGE(0x400000, 0x41ffff) AM_READ(tail2nos_zoomdata_r) - AM_RANGE(0x500000, 0x500fff) AM_READ(tail2nos_K051316_0_r) - AM_RANGE(0xff8000, 0xffbfff) AM_READ(SMH_RAM) /* work RAM */ - AM_RANGE(0xffc000, 0xffc2ff) AM_READ(SMH_RAM) /* sprites */ - AM_RANGE(0xffc300, 0xffcfff) AM_READ(SMH_RAM) - AM_RANGE(0xffd000, 0xffdfff) AM_READ(SMH_RAM) - AM_RANGE(0xffe000, 0xffefff) AM_READ(SMH_RAM) - AM_RANGE(0xfff000, 0xfff001) AM_READ(input_port_0_word_r) - AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_1_word_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x200000, 0x27ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x2c0000, 0x2dffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x400000, 0x41ffff) AM_WRITE(tail2nos_zoomdata_w) - AM_RANGE(0x500000, 0x500fff) AM_WRITE(tail2nos_K051316_0_w) +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0x200000, 0x27ffff) AM_READWRITE(SMH_BANK1, SMH_ROM) /* extra ROM */ + AM_RANGE(0x2c0000, 0x2dffff) AM_READWRITE(SMH_BANK2, SMH_ROM) + AM_RANGE(0x400000, 0x41ffff) AM_READWRITE(tail2nos_zoomdata_r, tail2nos_zoomdata_w) + AM_RANGE(0x500000, 0x500fff) AM_READWRITE(tail2nos_K051316_0_r, tail2nos_K051316_0_w) AM_RANGE(0x510000, 0x51001f) AM_WRITE(tail2nos_K051316_ctrl_0_w) - AM_RANGE(0xff8000, 0xffbfff) AM_WRITE(SMH_RAM) /* work RAM */ - AM_RANGE(0xffc000, 0xffc2ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xffc300, 0xffcfff) AM_WRITE(SMH_RAM) - AM_RANGE(0xffd000, 0xffdfff) AM_WRITE(tail2nos_bgvideoram_w) AM_BASE(&tail2nos_bgvideoram) - AM_RANGE(0xffe000, 0xffefff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) - AM_RANGE(0xfff000, 0xfff001) AM_WRITE(tail2nos_gfxbank_w) + AM_RANGE(0xff8000, 0xffbfff) AM_RAM /* work RAM */ + AM_RANGE(0xffc000, 0xffc2ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0xffc300, 0xffcfff) AM_RAM + AM_RANGE(0xffd000, 0xffdfff) AM_RAM_WRITE(tail2nos_bgvideoram_w) AM_BASE(&tail2nos_bgvideoram) + AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) + AM_RANGE(0xfff000, 0xfff001) AM_READWRITE(input_port_0_word_r, tail2nos_gfxbank_w) + AM_RANGE(0xfff004, 0xfff005) AM_READ(input_port_1_word_r) AM_RANGE(0xfff008, 0xfff009) AM_WRITE(sound_command_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_BANK3) -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) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x07, 0x07) AM_READ(soundlatch_r) -#if 0 - AM_RANGE(0x18, 0x18) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0x1a, 0x1a) AM_READ(YM2610_status_port_0_B_r) -#endif +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_READWRITE(SMH_BANK3, SMH_ROM) ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( sound_port_map, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x07, 0x07) AM_WRITE(SMH_NOP) /* clear pending command */ + AM_RANGE(0x07, 0x07) AM_READWRITE(soundlatch_r, SMH_NOP) /* the write is a clear pending command */ AM_RANGE(0x08, 0x08) AM_WRITE(YM2608_control_port_0_A_w) AM_RANGE(0x09, 0x09) AM_WRITE(YM2608_data_port_0_A_w) AM_RANGE(0x0a, 0x0a) AM_WRITE(YM2608_control_port_0_B_w) AM_RANGE(0x0b, 0x0b) AM_WRITE(YM2608_data_port_0_B_w) +#if 0 + AM_RANGE(0x18, 0x18) AM_READ(YM2610_status_port_0_A_r) + AM_RANGE(0x1a, 0x1a) AM_READ(YM2610_status_port_0_B_r) +#endif ADDRESS_MAP_END - static INPUT_PORTS_START( tail2nos ) PORT_START PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNKNOWN ) @@ -270,13 +242,13 @@ static MACHINE_DRIVER_START( tail2nos ) /* basic machine hardware */ MDRV_CPU_ADD(M68000,XTAL_20MHz/2) /* verified on pcb */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) + MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT("main", irq6_line_hold) MDRV_CPU_ADD(Z80,XTAL_20MHz/4) /* verified on pcb */ /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sound_readport,sound_writeport) + MDRV_CPU_PROGRAM_MAP(sound_map,0) + MDRV_CPU_IO_MAP(sound_port_map,0) /* IRQs are triggered by the YM2608 */ MDRV_MACHINE_RESET(tail2nos) diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c index 2ec1d9266a5..51d31ed81cf 100644 --- a/src/mame/drivers/tankbatt.c +++ b/src/mame/drivers/tankbatt.c @@ -149,29 +149,26 @@ static WRITE8_HANDLER( tankbatt_sh_fire_w ) sample_start (0, 0, 0); } -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x01ff) AM_READ(SMH_RAM) - AM_RANGE(0x0c00, 0x0c07) AM_READ(tankbatt_in0_r) - AM_RANGE(0x0c08, 0x0c0f) AM_READ(tankbatt_in1_r) - AM_RANGE(0x0c18, 0x0c1f) AM_READ(tankbatt_dsw_r) - AM_RANGE(0x0200, 0x0bff) AM_READ(SMH_RAM) - AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_ROM) /* for the reset / interrupt vectors */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x000f) AM_WRITE(SMH_RAM) AM_BASE(&tankbatt_bulletsram) AM_SIZE(&tankbatt_bulletsram_size) AM_RANGE(0x0010, 0x01ff) AM_WRITE(SMH_RAM) AM_RANGE(0x0800, 0x0bff) AM_WRITE(tankbatt_videoram_w) AM_BASE(&videoram) - AM_RANGE(0x0000, 0x000f) AM_WRITE(SMH_RAM) AM_BASE(&tankbatt_bulletsram) AM_SIZE(&tankbatt_bulletsram_size) - AM_RANGE(0x0c18, 0x0c18) AM_WRITE(SMH_NOP) /* watchdog ?? */ + AM_RANGE(0x0c00, 0x0c07) AM_READ(tankbatt_in0_r) AM_RANGE(0x0c00, 0x0c01) AM_WRITE(tankbatt_led_w) + AM_RANGE(0x0c08, 0x0c0f) AM_READ(tankbatt_in1_r) AM_RANGE(0x0c0a, 0x0c0a) AM_WRITE(tankbatt_interrupt_enable_w) AM_RANGE(0x0c0b, 0x0c0b) AM_WRITE(tankbatt_sh_engine_w) AM_RANGE(0x0c0c, 0x0c0c) AM_WRITE(tankbatt_sh_fire_w) AM_RANGE(0x0c0d, 0x0c0d) AM_WRITE(tankbatt_sh_expl_w) AM_RANGE(0x0c0f, 0x0c0f) AM_WRITE(tankbatt_demo_interrupt_enable_w) + AM_RANGE(0x0c18, 0x0c1f) AM_READ(tankbatt_dsw_r) + AM_RANGE(0x0c18, 0x0c18) AM_WRITE(SMH_NOP) /* watchdog ?? */ + AM_RANGE(0x0200, 0x0bff) AM_READ(SMH_RAM) AM_RANGE(0x0200, 0x07ff) AM_WRITE(SMH_RAM) AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_ROM) + AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_ROM) + AM_RANGE(0xf800, 0xffff) AM_READ(SMH_ROM) /* for the reset / interrupt vectors */ ADDRESS_MAP_END static INTERRUPT_GEN( tankbatt_interrupt ) @@ -279,7 +276,7 @@ static MACHINE_DRIVER_START( tankbatt ) /* basic machine hardware */ MDRV_CPU_ADD(M6502, 1000000) /* 1 MHz ???? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) + MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT("main", tankbatt_interrupt) /* video hardware */ diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c index 566f64f93a8..2721d49e3f3 100644 --- a/src/mame/drivers/tankbust.c +++ b/src/mame/drivers/tankbust.c @@ -191,82 +191,47 @@ static READ8_HANDLER( some_changing_input ) return variable_data; } -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_READ(SMH_ROM) - AM_RANGE(0x6000, 0x9fff) AM_READ(SMH_BANK1) - AM_RANGE(0xa000, 0xbfff) AM_READ(SMH_BANK2) - - AM_RANGE(0xe000, 0xe007) AM_READ(debug_output_area_r) - - AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM) - -//AM_RANGE(0xf800, 0xffff) AM_READ(read_from_unmapped_memory) /* a bug in game code ? */ - - AM_RANGE(0xe800, 0xe800) AM_READ(input_port_0_r) +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x5fff) AM_ROM + AM_RANGE(0x6000, 0x9fff) AM_READWRITE(SMH_BANK1, SMH_ROM) + AM_RANGE(0xa000, 0xbfff) AM_READWRITE(SMH_BANK2, SMH_ROM) + AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(tankbust_background_videoram_r, tankbust_background_videoram_w) AM_BASE(&videoram) + AM_RANGE(0xc800, 0xcfff) AM_READWRITE(tankbust_background_colorram_r, tankbust_background_colorram_w) AM_BASE(&colorram) + AM_RANGE(0xd000, 0xd7ff) AM_READWRITE(tankbust_txtram_r, tankbust_txtram_w) AM_BASE(&tankbust_txtram) + AM_RANGE(0xd800, 0xd8ff) AM_RAM AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0xe000, 0xe007) AM_READWRITE(debug_output_area_r, tankbust_e0xx_w) + AM_RANGE(0xe800, 0xe800) AM_READWRITE(input_port_0_r, tankbust_yscroll_w) AM_RANGE(0xe801, 0xe801) AM_READ(input_port_1_r) AM_RANGE(0xe802, 0xe802) AM_READ(input_port_2_r) - AM_RANGE(0xe803, 0xe803) AM_READ(some_changing_input)/*unknown. Game expects this to change so this is not player input */ - - AM_RANGE(0xc000, 0xc7ff) AM_READ(tankbust_background_videoram_r) - AM_RANGE(0xc800, 0xcfff) AM_READ(tankbust_background_colorram_r) - AM_RANGE(0xd000, 0xd7ff) AM_READ(tankbust_txtram_r) - AM_RANGE(0xd800, 0xd8ff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x5fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x6000, 0x9fff) AM_WRITE(SMH_ROM) - AM_RANGE(0xa000, 0xbfff) AM_WRITE(SMH_ROM) - - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM) - - AM_RANGE(0xe000, 0xe007) AM_WRITE(tankbust_e0xx_w) - - AM_RANGE(0xe800, 0xe800) AM_WRITE(tankbust_yscroll_w) AM_RANGE(0xe801, 0xe802) AM_WRITE(tankbust_xscroll_w) - AM_RANGE(0xe803, 0xe803) AM_WRITE(tankbust_soundlatch_w) + AM_RANGE(0xe803, 0xe803) AM_READWRITE(some_changing_input, tankbust_soundlatch_w) /*unknown. Game expects this to change so this is not player input */ AM_RANGE(0xe804, 0xe804) AM_WRITE(SMH_NOP) /* watchdog ? ; written in long-lasting loops */ - - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(tankbust_background_videoram_w) AM_BASE(&videoram) - AM_RANGE(0xc800, 0xcfff) AM_WRITE(tankbust_background_colorram_w) AM_BASE(&colorram) - AM_RANGE(0xd000, 0xd7ff) AM_WRITE(tankbust_txtram_w) AM_BASE(&tankbust_txtram) - AM_RANGE(0xd800, 0xd8ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram) AM_SIZE(&spriteram_size) + AM_RANGE(0xf000, 0xf7ff) AM_RAM + //AM_RANGE(0xf800, 0xffff) AM_READ(read_from_unmapped_memory) /* a bug in game code ? */ ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport2, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( port_map_cpu2, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0xc0, 0xc0) AM_READ(AY8910_read_port_0_r) + AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_write_port_1_w) AM_RANGE(0x30, 0x30) AM_READ(AY8910_read_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport2, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0xc0, 0xc0) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w) AM_RANGE(0x30, 0x30) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x10, 0x10) AM_WRITE(AY8910_write_port_1_w) + AM_RANGE(0x40, 0x40) AM_WRITE(AY8910_write_port_0_w) + AM_RANGE(0xc0, 0xc0) AM_READ(AY8910_read_port_0_r) + AM_RANGE(0xc0, 0xc0) AM_WRITE(AY8910_control_port_0_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( readmem2, ADDRESS_SPACE_PROGRAM, 8 ) +static ADDRESS_MAP_START( map_cpu2, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem2, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x2000, 0x3fff) AM_WRITE(SMH_NOP) /* garbage, written in initialization loop */ -//0x4000 and 0x4040-0x4045 seem to be used (referenced in the code) + //0x4000 and 0x4040-0x4045 seem to be used (referenced in the code) AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_NOP) /* garbage, written in initialization loop */ + AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) + AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) ADDRESS_MAP_END - - - static INPUT_PORTS_START( tankbust ) PORT_START /* IN0 */ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY @@ -372,12 +337,12 @@ static MACHINE_DRIVER_START( tankbust ) /* basic machine hardware */ MDRV_CPU_ADD(Z80, 4000000) /* 4 MHz ? */ - MDRV_CPU_PROGRAM_MAP( readmem, writemem ) + MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) MDRV_CPU_ADD(Z80, 4000000) /* 3.072 MHz ? */ - MDRV_CPU_PROGRAM_MAP( readmem2, writemem2 ) - MDRV_CPU_IO_MAP( readport2, writeport2 ) + MDRV_CPU_PROGRAM_MAP(map_cpu2,0) + MDRV_CPU_IO_MAP(port_map_cpu2,0) MDRV_INTERLEAVE(100) diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c index 020c7bc7d8b..96fd226c79b 100644 --- a/src/mame/drivers/taotaido.c +++ b/src/mame/drivers/taotaido.c @@ -98,15 +98,14 @@ static WRITE16_HANDLER( sound_command_w ) cpunum_set_input_line(machine, 1, INPUT_LINE_NMI, PULSE_LINE); } } -static ADDRESS_MAP_START( taotaido_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) - AM_RANGE(0x800000, 0x803fff) AM_READ(SMH_RAM) // bg ram? - AM_RANGE(0xa00000, 0xa01fff) AM_READ(SMH_RAM) // sprite ram - AM_RANGE(0xc00000, 0xc0ffff) AM_READ(SMH_RAM) // sprite tile look up - AM_RANGE(0xfe0000, 0xfeffff) AM_READ(SMH_RAM) // main ram - AM_RANGE(0xffc000, 0xffcfff) AM_READ(SMH_RAM) // palette ram - AM_RANGE(0xffe000, 0xffe3ff) AM_READ(SMH_RAM) // rowscroll / rowselect / scroll ram - +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM + AM_RANGE(0x800000, 0x803fff) AM_RAM_WRITE(taotaido_bgvideoram_w) AM_BASE(&taotaido_bgram) // bg ram? + AM_RANGE(0xa00000, 0xa01fff) AM_RAM AM_BASE(&taotaido_spriteram) // sprite ram + AM_RANGE(0xc00000, 0xc0ffff) AM_RAM AM_BASE(&taotaido_spriteram2) // sprite tile lookup ram + AM_RANGE(0xfe0000, 0xfeffff) AM_RAM // main ram + AM_RANGE(0xffc000, 0xffcfff) AM_RAM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // palette ram + AM_RANGE(0xffe000, 0xffe3ff) AM_RAM AM_BASE(&taotaido_scrollram) // rowscroll / rowselect / scroll ram AM_RANGE(0xffff80, 0xffff81) AM_READ(input_port_0_word_r) // player 1 inputs AM_RANGE(0xffff82, 0xffff83) AM_READ(input_port_1_word_r) // player 2 inputs AM_RANGE(0xffff84, 0xffff85) AM_READ(input_port_2_word_r) // system inputs @@ -119,24 +118,12 @@ static ADDRESS_MAP_START( taotaido_readmem, ADDRESS_SPACE_PROGRAM, 16 ) AM_RANGE(0xffffa0, 0xffffa1) AM_READ(input_port_7_word_r) // player 3 inputs (unused) AM_RANGE(0xffffa2, 0xffffa3) AM_READ(input_port_8_word_r) // player 4 inputs (unused) #endif - - AM_RANGE(0xffffe0, 0xffffe1) AM_READ(pending_command_r) // guess - seems to be needed for all the sounds to work -ADDRESS_MAP_END - -static ADDRESS_MAP_START( taotaido_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x800000, 0x803fff) AM_WRITE(taotaido_bgvideoram_w) AM_BASE(&taotaido_bgram) // bg ram? - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(SMH_RAM) AM_BASE(&taotaido_spriteram) // sprite ram - AM_RANGE(0xc00000, 0xc0ffff) AM_WRITE(SMH_RAM) AM_BASE(&taotaido_spriteram2) // sprite tile lookup ram - AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_RAM) // main ram - AM_RANGE(0xffc000, 0xffcfff) AM_WRITE(paletteram16_xRRRRRGGGGGBBBBB_word_w) AM_BASE(&paletteram16) // palette ram - AM_RANGE(0xffe000, 0xffe3ff) AM_WRITE(SMH_RAM) AM_BASE(&taotaido_scrollram) // rowscroll / rowselect / scroll ram - AM_RANGE(0xffff00, 0xffff0f) AM_WRITE(taotaido_tileregs_w) AM_RANGE(0xffff10, 0xffff11) AM_WRITE(SMH_NOP) // unknown AM_RANGE(0xffff20, 0xffff21) AM_WRITE(SMH_NOP) // unknown - flip screen related AM_RANGE(0xffff40, 0xffff47) AM_WRITE(taotaido_sprite_character_bank_select_w) AM_RANGE(0xffffc0, 0xffffc1) AM_WRITE(sound_command_w) // seems right + AM_RANGE(0xffffe0, 0xffffe1) AM_READ(pending_command_r) // guess - seems to be needed for all the sounds to work ADDRESS_MAP_END /* sound cpu - same as aerofgt */ @@ -154,37 +141,24 @@ static WRITE8_HANDLER( taotaido_sh_bankswitch_w ) memory_set_bankptr(1,rom + (data & 0x03) * 0x8000); } -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_BANK1) -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_READWRITE(SMH_BANK1, SMH_ROM) ADDRESS_MAP_END -static ADDRESS_MAP_START( taotaido_sound_readport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( sound_port_map, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_READ(YM2610_status_port_0_A_r) - AM_RANGE(0x02, 0x02) AM_READ(YM2610_status_port_0_B_r) - AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( taotaido_sound_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2610_control_port_0_A_w) + AM_RANGE(0x00, 0x00) AM_READWRITE(YM2610_status_port_0_A_r, YM2610_control_port_0_A_w) AM_RANGE(0x01, 0x01) AM_WRITE(YM2610_data_port_0_A_w) - AM_RANGE(0x02, 0x02) AM_WRITE(YM2610_control_port_0_B_w) + AM_RANGE(0x02, 0x02) AM_READWRITE(YM2610_status_port_0_B_r, YM2610_control_port_0_B_w) AM_RANGE(0x03, 0x03) AM_WRITE(YM2610_data_port_0_B_w) AM_RANGE(0x04, 0x04) AM_WRITE(taotaido_sh_bankswitch_w) AM_RANGE(0x08, 0x08) AM_WRITE(pending_command_clear_w) + AM_RANGE(0x0c, 0x0c) AM_READ(soundlatch_r) ADDRESS_MAP_END - static INPUT_PORTS_START( taotaido ) PORT_START_TAG("IN0") /* Player 1 controls (0xffff81.b) */ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_8WAY PORT_PLAYER(1) @@ -359,13 +333,13 @@ static const struct YM2610interface ym2610_interface = static MACHINE_DRIVER_START( taotaido ) MDRV_CPU_ADD(M68000, 32000000/2) - MDRV_CPU_PROGRAM_MAP(taotaido_readmem,taotaido_writemem) + MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT("main", irq1_line_hold) - MDRV_CPU_ADD(Z80,20000000/4) // ?? /* audio CPU */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(taotaido_sound_readport,taotaido_sound_writeport) + MDRV_CPU_ADD(Z80,20000000/4) // ?? + MDRV_CPU_PROGRAM_MAP(sound_map,0) + MDRV_CPU_IO_MAP(sound_port_map,0) /* IRQs are triggered by the YM2610 */ MDRV_GFXDECODE(taotaido) diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c index 417f75e1798..79fc0669f28 100644 --- a/src/mame/drivers/targeth.c +++ b/src/mame/drivers/targeth.c @@ -54,24 +54,6 @@ static INTERRUPT_GEN(targeth_interrupt ) } } - -static ADDRESS_MAP_START( targeth_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) /* ROM */ - AM_RANGE(0x100000, 0x103fff) AM_READ(SMH_RAM) /* Video RAM */ - AM_RANGE(0x108000, 0x108001) AM_READ(input_port_0_word_r)/* Gun 1P X */ - AM_RANGE(0x108002, 0x108003) AM_READ(input_port_1_word_r)/* Gun 1P Y */ - AM_RANGE(0x108004, 0x108005) AM_READ(input_port_2_word_r)/* Gun 2P X */ - AM_RANGE(0x108006, 0x108007) AM_READ(input_port_3_word_r)/* Gun 2P Y */ - AM_RANGE(0x200000, 0x2007ff) AM_READ(SMH_RAM) /* Palette */ - AM_RANGE(0x440000, 0x440fff) AM_READ(SMH_RAM) /* Sprite RAM */ - AM_RANGE(0x700000, 0x700001) AM_READ(input_port_4_word_r)/* DIPSW #2 */ - AM_RANGE(0x700002, 0x700003) AM_READ(input_port_5_word_r)/* DIPSW #1 */ - AM_RANGE(0x700006, 0x700007) AM_READ(input_port_6_word_r)/* Coins, Start & Fire buttons */ - AM_RANGE(0x700008, 0x700009) AM_READ(input_port_7_word_r)/* Service & Guns Reload? */ - AM_RANGE(0x70000e, 0x70000f) AM_READ(OKIM6295_status_0_lsb_r)/* OKI6295 status register */ - AM_RANGE(0xfe0000, 0xfeffff) AM_READ(SMH_RAM) /* Work RAM (partially shared with DS5002FP) */ -ADDRESS_MAP_END - static WRITE16_HANDLER( OKIM6295_bankswitch_w ) { UINT8 *RAM = memory_region(REGION_SOUND1); @@ -86,21 +68,29 @@ static WRITE16_HANDLER( targeth_coin_counter_w ) coin_counter_w( (offset >> 3) & 0x01, data & 0x01); } -static ADDRESS_MAP_START( targeth_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) /* ROM */ - AM_RANGE(0x100000, 0x103fff) AM_WRITE(targeth_vram_w) AM_BASE(&targeth_videoram) /* Video RAM */ - AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&targeth_vregs) /* Video Registers */ - AM_RANGE(0x10800c, 0x10800d) AM_WRITE(SMH_NOP) /* CLR Video INT */ - AM_RANGE(0x200000, 0x2007ff) AM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16)/* Palette */ - AM_RANGE(0x440000, 0x440fff) AM_WRITE(SMH_RAM) AM_BASE(&targeth_spriteram) /* Sprite RAM */ - AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */ - AM_RANGE(0x70000e, 0x70000f) AM_WRITE(OKIM6295_data_0_lsb_w) /* OKI6295 data register */ - AM_RANGE(0x70000a, 0x70001b) AM_WRITE(SMH_NOP) /* ??? Guns reload related? */ - AM_RANGE(0x70002a, 0x70003b) AM_WRITE(targeth_coin_counter_w) /* Coin counters */ - AM_RANGE(0xfe0000, 0xfeffff) AM_WRITE(SMH_RAM) /* Work RAM (partially shared with DS5002FP) */ +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM + AM_RANGE(0x100000, 0x103fff) AM_RAM_WRITE(targeth_vram_w) AM_BASE(&targeth_videoram) /* Video RAM */ + AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&targeth_vregs) /* Video Registers */ + AM_RANGE(0x108000, 0x108001) AM_READ(input_port_0_word_r) /* Gun 1P X */ + AM_RANGE(0x108002, 0x108003) AM_READ(input_port_1_word_r) /* Gun 1P Y */ + AM_RANGE(0x108004, 0x108005) AM_READ(input_port_2_word_r) /* Gun 2P X */ + AM_RANGE(0x108006, 0x108007) AM_READ(input_port_3_word_r) /* Gun 2P Y */ + AM_RANGE(0x108000, 0x108007) AM_WRITE(SMH_RAM) AM_BASE(&targeth_vregs) /* Video Registers */ + AM_RANGE(0x10800c, 0x10800d) AM_WRITE(SMH_NOP) /* CLR Video INT */ + AM_RANGE(0x200000, 0x2007ff) AM_RAM_WRITE(paletteram16_xBBBBBGGGGGRRRRR_word_w) AM_BASE(&paletteram16) /* Palette */ + AM_RANGE(0x440000, 0x440fff) AM_RAM AM_BASE(&targeth_spriteram) /* Sprite RAM */ + AM_RANGE(0x700000, 0x700001) AM_READ(input_port_4_word_r) /* DIPSW #2 */ + AM_RANGE(0x700002, 0x700003) AM_READ(input_port_5_word_r) /* DIPSW #1 */ + AM_RANGE(0x700006, 0x700007) AM_READ(input_port_6_word_r) /* Coins, Start & Fire buttons */ + AM_RANGE(0x700008, 0x700009) AM_READ(input_port_7_word_r) /* Service & Guns Reload? */ + AM_RANGE(0x70000a, 0x70001b) AM_WRITE(SMH_NOP) /* ??? Guns reload related? */ + AM_RANGE(0x70000c, 0x70000d) AM_WRITE(OKIM6295_bankswitch_w) /* OKI6295 bankswitch */ + AM_RANGE(0x70000e, 0x70000f) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w) /* OKI6295 status register */ + AM_RANGE(0x70002a, 0x70003b) AM_WRITE(targeth_coin_counter_w) /* Coin counters */ + AM_RANGE(0xfe0000, 0xfeffff) AM_RAM /* Work RAM (partially shared with DS5002FP) */ ADDRESS_MAP_END - static INPUT_PORTS_START( targeth ) PORT_START /* Gun 1 X */ PORT_BIT( 0x01ff, 200, IPT_LIGHTGUN_X ) PORT_CROSSHAIR(X, 1.05, -0.028, 0) PORT_MINMAX( 0, 400 + 4) PORT_SENSITIVITY(100) PORT_KEYDELTA(20) PORT_PLAYER(1) @@ -190,7 +180,7 @@ static MACHINE_DRIVER_START( targeth ) /* basic machine hardware */ MDRV_CPU_ADD(M68000,24000000/2) /* 12 MHz */ - MDRV_CPU_PROGRAM_MAP(targeth_readmem,targeth_writemem) + MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT_HACK(targeth_interrupt,3) /* video hardware */ diff --git a/src/mame/drivers/taxidrvr.c b/src/mame/drivers/taxidrvr.c index d94e6c55e15..3463849dba6 100644 --- a/src/mame/drivers/taxidrvr.c +++ b/src/mame/drivers/taxidrvr.c @@ -138,50 +138,35 @@ static const ppi8255_interface ppi8255_intf[5] = }; -static ADDRESS_MAP_START( readmem1, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8000, 0x8fff) AM_READ(SMH_RAM) - AM_RANGE(0x9000, 0x9fff) AM_READ(SMH_RAM) - AM_RANGE(0xa000, 0xafff) AM_READ(SMH_RAM) - AM_RANGE(0xb000, 0xbfff) AM_READ(SMH_RAM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) - AM_RANGE(0xd800, 0xdfff) AM_READ(SMH_RAM) - AM_RANGE(0xe000, 0xf3ff) AM_READ(SMH_RAM) - AM_RANGE(0xf400, 0xf403) AM_DEVREAD(PPI8255, "ppi8255_0", ppi8255_r) - AM_RANGE(0xf480, 0xf483) AM_DEVREAD(PPI8255, "ppi8255_2", ppi8255_r) - AM_RANGE(0xf500, 0xf503) AM_DEVREAD(PPI8255, "ppi8255_3", ppi8255_r) - AM_RANGE(0xf580, 0xf583) AM_DEVREAD(PPI8255, "ppi8255_4", ppi8255_r) - AM_RANGE(0xf800, 0xffff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem1, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x8000, 0x8fff) AM_WRITE(SMH_RAM) /* ??? */ - AM_RANGE(0x9000, 0x9fff) AM_WRITE(SMH_RAM) /* ??? */ - AM_RANGE(0xa000, 0xafff) AM_WRITE(SMH_RAM) /* ??? */ - AM_RANGE(0xb000, 0xbfff) AM_WRITE(SMH_RAM) /* ??? */ - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram4) /* radar bitmap */ +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM + AM_RANGE(0x8000, 0x8fff) AM_RAM /* ??? */ + AM_RANGE(0x9000, 0x9fff) AM_RAM /* ??? */ + AM_RANGE(0xa000, 0xafff) AM_RAM /* ??? */ + AM_RANGE(0xb000, 0xbfff) AM_RAM /* ??? */ + AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_BASE(&taxidrvr_vram4) /* radar bitmap */ AM_RANGE(0xc800, 0xcfff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram5) /* "sprite1" bitmap */ AM_RANGE(0xd000, 0xd7ff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram6) /* "sprite2" bitmap */ - AM_RANGE(0xd800, 0xdfff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram7) /* "sprite3" bitmap */ + AM_RANGE(0xd800, 0xdfff) AM_RAM AM_BASE(&taxidrvr_vram7) /* "sprite3" bitmap */ + AM_RANGE(0xe000, 0xf3ff) AM_READ(SMH_RAM) AM_RANGE(0xe000, 0xe3ff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram1) /* car tilemap */ AM_RANGE(0xe400, 0xebff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram2) /* bg1 tilemap */ AM_RANGE(0xec00, 0xefff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram0) /* fg tilemap */ AM_RANGE(0xf000, 0xf3ff) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_vram3) /* bg2 tilemap */ - AM_RANGE(0xf400, 0xf403) AM_DEVWRITE(PPI8255, "ppi8255_0", ppi8255_w) - AM_RANGE(0xf480, 0xf483) AM_DEVWRITE(PPI8255, "ppi8255_2", ppi8255_w) /* "sprite1" placement */ - AM_RANGE(0xf500, 0xf503) AM_DEVWRITE(PPI8255, "ppi8255_3", ppi8255_w) /* "sprite2" placement */ - AM_RANGE(0xf580, 0xf583) AM_DEVWRITE(PPI8255, "ppi8255_4", ppi8255_w) /* "sprite3" placement */ -// AM_RANGE(0xf780, 0xf781) AM_WRITE(SMH_RAM) /* more scroll registers? */ + AM_RANGE(0xf400, 0xf403) AM_DEVREADWRITE(PPI8255, "ppi8255_0", ppi8255_r, ppi8255_w) + AM_RANGE(0xf480, 0xf483) AM_DEVREADWRITE(PPI8255, "ppi8255_2", ppi8255_r, ppi8255_w) /* "sprite1" placement */ + AM_RANGE(0xf500, 0xf503) AM_DEVREADWRITE(PPI8255, "ppi8255_3", ppi8255_r, ppi8255_w) /* "sprite2" placement */ + AM_RANGE(0xf580, 0xf583) AM_DEVREADWRITE(PPI8255, "ppi8255_4", ppi8255_r, ppi8255_w) /* "sprite3" placement */ + //AM_RANGE(0xf780, 0xf781) AM_WRITE(SMH_RAM) /* more scroll registers? */ AM_RANGE(0xf782, 0xf787) AM_WRITE(SMH_RAM) AM_BASE(&taxidrvr_scroll) /* bg scroll (three copies always identical) */ - AM_RANGE(0xf800, 0xffff) AM_WRITE(SMH_RAM) + AM_RANGE(0xf800, 0xffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( readmem2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) - AM_RANGE(0x6000, 0x67ff) AM_READ(SMH_RAM) - AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) - AM_RANGE(0xa000, 0xa003) AM_DEVREAD(PPI8255, "ppi8255_1", ppi8255_r) +static ADDRESS_MAP_START( cpu2_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x6000, 0x67ff) AM_RAM + AM_RANGE(0x8000, 0x87ff) AM_RAM + AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE(PPI8255, "ppi8255_1", ppi8255_r, ppi8255_w) AM_RANGE(0xe000, 0xe000) AM_READ(input_port_0_r) AM_RANGE(0xe001, 0xe001) AM_READ(input_port_1_r) AM_RANGE(0xe002, 0xe002) AM_READ(input_port_2_r) @@ -189,40 +174,21 @@ static ADDRESS_MAP_START( readmem2, ADDRESS_SPACE_PROGRAM, 8 ) AM_RANGE(0xe004, 0xe004) AM_READ(input_port_4_r) ADDRESS_MAP_END -static ADDRESS_MAP_START( writemem2, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x6000, 0x67ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) - AM_RANGE(0xa000, 0xa003) AM_DEVWRITE(PPI8255, "ppi8255_1", ppi8255_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(SMH_ROM) +static ADDRESS_MAP_START( cpu3_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x2000) AM_READ(SMH_NOP) /* irq ack? */ - AM_RANGE(0xfc00, 0xffff) AM_READ(SMH_RAM) + AM_RANGE(0xfc00, 0xffff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( writemem3, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(SMH_ROM) - AM_RANGE(0xfc00, 0xffff) AM_WRITE(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readport3, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x01, 0x01) AM_READ(AY8910_read_port_0_r) - AM_RANGE(0x03, 0x03) AM_READ(AY8910_read_port_1_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writeport3, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( cpu3_port_map, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(AY8910_control_port_0_w) - AM_RANGE(0x01, 0x01) AM_WRITE(AY8910_write_port_0_w) + AM_RANGE(0x01, 0x01) AM_READWRITE(AY8910_read_port_0_r, AY8910_write_port_0_w) AM_RANGE(0x02, 0x02) AM_WRITE(AY8910_control_port_1_w) - AM_RANGE(0x03, 0x03) AM_WRITE(AY8910_write_port_1_w) + AM_RANGE(0x03, 0x03) AM_READWRITE(AY8910_read_port_1_r, AY8910_write_port_1_w) ADDRESS_MAP_END - static INPUT_PORTS_START( taxidrvr ) PORT_START_TAG("DSW0") PORT_DIPNAME( 0x0f, 0x00, DEF_STR( Coin_A ) ) @@ -395,16 +361,16 @@ static MACHINE_DRIVER_START( taxidrvr ) /* basic machine hardware */ MDRV_CPU_ADD(Z80,4000000) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(readmem1,writemem1) + MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) MDRV_CPU_ADD(Z80,4000000) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(readmem2,writemem2) + MDRV_CPU_PROGRAM_MAP(cpu2_map,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* ??? */ MDRV_CPU_ADD(Z80,4000000) /* 4 MHz ??? */ - MDRV_CPU_PROGRAM_MAP(readmem3,writemem3) - MDRV_CPU_IO_MAP(readport3,writeport3) + MDRV_CPU_PROGRAM_MAP(cpu3_map,0) + MDRV_CPU_IO_MAP(cpu3_port_map,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* ??? */ MDRV_INTERLEAVE(100) /* 100 CPU slices per frame - an high value to ensure proper */ |