diff options
author | 2008-07-21 17:09:40 +0000 | |
---|---|---|
committer | 2008-07-21 17:09:40 +0000 | |
commit | 5e3116fd87717ac364d12d9e87454f5a5556a4bf (patch) | |
tree | bfdf190bf19cbfa8c2228a815db5d615f7b69675 /src | |
parent | 2f823ff24f1bed7cc230facbb5c9a72b83dbb8c2 (diff) |
Merged some memory maps.
Diffstat (limited to 'src')
-rw-r--r-- | src/emu/info.c | 3 | ||||
-rw-r--r-- | src/mame/drivers/battlnts.c | 64 | ||||
-rw-r--r-- | src/mame/drivers/bbusters.c | 121 | ||||
-rw-r--r-- | src/mame/drivers/bigevglf.c | 134 | ||||
-rw-r--r-- | src/mame/drivers/bigstrkb.c | 86 | ||||
-rw-r--r-- | src/mame/drivers/bionicc.c | 61 |
6 files changed, 161 insertions, 308 deletions
diff --git a/src/emu/info.c b/src/emu/info.c index caa7fe85374..3c7dcf1c949 100644 --- a/src/emu/info.c +++ b/src/emu/info.c @@ -629,8 +629,7 @@ static void print_game_chips(FILE *out, const game_driver *game, const machine_c { fprintf(out, "\t\t<chip"); fprintf(out, " type=\"cpu\""); - if (config->cpu[chipnum].tag != NULL) - fprintf(out, " tag=\"%s\"", xml_normalize_string(config->cpu[chipnum].tag)); + fprintf(out, " tag=\"%s\"", xml_normalize_string(config->cpu[chipnum].tag)); fprintf(out, " name=\"%s\"", xml_normalize_string(cputype_name(config->cpu[chipnum].type))); fprintf(out, " clock=\"%d\"", config->cpu[chipnum].clock); fprintf(out, "/>\n"); diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c index 522773ac6ef..ff94f540736 100644 --- a/src/mame/drivers/battlnts.c +++ b/src/mame/drivers/battlnts.c @@ -48,50 +48,34 @@ static WRITE8_HANDLER( battlnts_bankswitch_w ) /* other bits unknown */ } -static ADDRESS_MAP_START( battlnts_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_READ(K007342_r) /* Color RAM + Video RAM */ - AM_RANGE(0x2000, 0x21ff) AM_READ(K007420_r) /* Sprite RAM */ - AM_RANGE(0x2200, 0x23ff) AM_READ(K007342_scroll_r) /* Scroll RAM */ - AM_RANGE(0x2400, 0x24ff) AM_READ(SMH_RAM) /* Palette */ - AM_RANGE(0x2e00, 0x2e00) AM_READ(input_port_0_r) /* DIPSW #1 */ - AM_RANGE(0x2e01, 0x2e01) AM_READ(input_port_4_r) /* 2P controls */ - AM_RANGE(0x2e02, 0x2e02) AM_READ(input_port_3_r) /* 1P controls */ - AM_RANGE(0x2e03, 0x2e03) AM_READ(input_port_2_r) /* coinsw, testsw, startsw */ - AM_RANGE(0x2e04, 0x2e04) AM_READ(input_port_1_r) /* DISPW #2 */ - AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_BANK1) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM 777e02.bin */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( battlnts_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x1fff) AM_WRITE(K007342_w) /* Color RAM + Video RAM */ - AM_RANGE(0x2000, 0x21ff) AM_WRITE(K007420_w) /* Sprite RAM */ - AM_RANGE(0x2200, 0x23ff) AM_WRITE(K007342_scroll_w) /* Scroll RAM */ - AM_RANGE(0x2400, 0x24ff) AM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)/* palette */ - AM_RANGE(0x2600, 0x2607) AM_WRITE(K007342_vreg_w) /* Video Registers */ +static ADDRESS_MAP_START( battlnts_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x1fff) AM_READWRITE(K007342_r, K007342_w) /* Color RAM + Video RAM */ + AM_RANGE(0x2000, 0x21ff) AM_READWRITE(K007420_r, K007420_w) /* Sprite RAM */ + AM_RANGE(0x2200, 0x23ff) AM_READWRITE(K007342_scroll_r, K007342_scroll_w) /* Scroll RAM */ + AM_RANGE(0x2400, 0x24ff) AM_RAM_WRITE(paletteram_xBBBBBGGGGGRRRRR_be_w) AM_BASE(&paletteram)/* palette */ + AM_RANGE(0x2600, 0x2607) AM_WRITE(K007342_vreg_w) /* Video Registers */ + AM_RANGE(0x2e00, 0x2e00) AM_READ(input_port_0_r) /* DIPSW #1 */ + AM_RANGE(0x2e01, 0x2e01) AM_READ(input_port_4_r) /* 2P controls */ + AM_RANGE(0x2e02, 0x2e02) AM_READ(input_port_3_r) /* 1P controls */ + AM_RANGE(0x2e03, 0x2e03) AM_READ(input_port_2_r) /* coinsw, testsw, startsw */ + AM_RANGE(0x2e04, 0x2e04) AM_READ(input_port_1_r) /* DISPW #2 */ AM_RANGE(0x2e08, 0x2e08) AM_WRITE(battlnts_bankswitch_w) /* bankswitch control */ AM_RANGE(0x2e0c, 0x2e0c) AM_WRITE(battlnts_spritebank_w) /* sprite bank select */ - AM_RANGE(0x2e10, 0x2e10) AM_WRITE(watchdog_reset_w) /* watchdog reset */ - AM_RANGE(0x2e14, 0x2e14) AM_WRITE(soundlatch_w) /* sound code # */ - AM_RANGE(0x2e18, 0x2e18) AM_WRITE(battlnts_sh_irqtrigger_w)/* cause interrupt on audio CPU */ - AM_RANGE(0x4000, 0x7fff) AM_WRITE(SMH_ROM) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) /* ROM 777e02.bin */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( battlnts_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) /* ROM 777c01.rom */ - AM_RANGE(0x8000, 0x87ff) AM_READ(SMH_RAM) /* RAM */ - AM_RANGE(0xa000, 0xa000) AM_READ(YM3812_status_port_0_r) /* YM3812 (chip 1) */ - AM_RANGE(0xc000, 0xc000) AM_READ(YM3812_status_port_1_r) /* YM3812 (chip 2) */ - AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) /* soundlatch_r */ + AM_RANGE(0x2e10, 0x2e10) AM_WRITE(watchdog_reset_w) /* watchdog reset */ + AM_RANGE(0x2e14, 0x2e14) AM_WRITE(soundlatch_w) /* sound code # */ + AM_RANGE(0x2e18, 0x2e18) AM_WRITE(battlnts_sh_irqtrigger_w) /* cause interrupt on audio CPU */ + AM_RANGE(0x4000, 0x7fff) AM_ROMBANK(1) /* banked ROM */ + AM_RANGE(0x8000, 0xffff) AM_ROM /* ROM 777e02.bin */ ADDRESS_MAP_END -static ADDRESS_MAP_START( battlnts_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) /* ROM 777c01.rom */ - AM_RANGE(0x8000, 0x87ff) AM_WRITE(SMH_RAM) /* RAM */ - AM_RANGE(0xa000, 0xa000) AM_WRITE(YM3812_control_port_0_w) /* YM3812 (chip 1) */ +static ADDRESS_MAP_START( battlnts_sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM /* ROM 777c01.rom */ + AM_RANGE(0x8000, 0x87ff) AM_RAM /* RAM */ + AM_RANGE(0xa000, 0xa000) AM_READWRITE(YM3812_status_port_0_r, YM3812_control_port_0_w) /* YM3812 (chip 1) */ AM_RANGE(0xa001, 0xa001) AM_WRITE(YM3812_write_port_0_w) /* YM3812 (chip 1) */ - AM_RANGE(0xc000, 0xc000) AM_WRITE(YM3812_control_port_1_w) /* YM3812 (chip 2) */ + AM_RANGE(0xc000, 0xc000) AM_READWRITE(YM3812_status_port_1_r, YM3812_control_port_1_w) /* YM3812 (chip 2) */ AM_RANGE(0xc001, 0xc001) AM_WRITE(YM3812_write_port_1_w) /* YM3812 (chip 2) */ + AM_RANGE(0xe000, 0xe000) AM_READ(soundlatch_r) /* soundlatch_r */ ADDRESS_MAP_END /*************************************************************************** @@ -262,11 +246,11 @@ static MACHINE_DRIVER_START( battlnts ) /* basic machine hardware */ MDRV_CPU_ADD("main", HD6309, 3000000*4) /* ? */ - MDRV_CPU_PROGRAM_MAP(battlnts_readmem,battlnts_writemem) + MDRV_CPU_PROGRAM_MAP(battlnts_map,0) MDRV_CPU_VBLANK_INT("main", battlnts_interrupt) MDRV_CPU_ADD("audio", Z80, 3579545) - MDRV_CPU_PROGRAM_MAP(battlnts_readmem_sound,battlnts_writemem_sound) + MDRV_CPU_PROGRAM_MAP(battlnts_sound_map,0) /* video hardware */ MDRV_SCREEN_ADD("main", RASTER) diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c index 1a0d5854012..a896f7d6cb9 100644 --- a/src/mame/drivers/bbusters.c +++ b/src/mame/drivers/bbusters.c @@ -306,113 +306,72 @@ static READ16_HANDLER( mechatt_gun_r ) /*******************************************************************************/ -static ADDRESS_MAP_START( bbuster_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_READ(SMH_RAM) - AM_RANGE(0x090000, 0x090fff) AM_READ(SMH_RAM) - AM_RANGE(0x0a0000, 0x0a0fff) AM_READ(SMH_RAM) - AM_RANGE(0x0a8000, 0x0a8fff) AM_READ(SMH_RAM) - AM_RANGE(0x0b0000, 0x0b1fff) AM_READ(SMH_RAM) - AM_RANGE(0x0b2000, 0x0b3fff) AM_READ(SMH_RAM) - AM_RANGE(0x0d0000, 0x0d0fff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( bbuster_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM + AM_RANGE(0x080000, 0x08ffff) AM_RAM AM_BASE(&bbuster_ram) + AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(bbuster_video_w) AM_BASE(&videoram16) + AM_RANGE(0x0a0000, 0x0a0fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x0a8000, 0x0a8fff) AM_RAM AM_BASE(&spriteram16_2) AM_SIZE(&spriteram_2_size) + AM_RANGE(0x0b0000, 0x0b1fff) AM_RAM_WRITE(bbuster_pf1_w) AM_BASE(&bbuster_pf1_data) + AM_RANGE(0x0b2000, 0x0b3fff) AM_RAM_WRITE(bbuster_pf2_w) AM_BASE(&bbuster_pf2_data) + AM_RANGE(0x0b8000, 0x0b8003) AM_WRITE(SMH_RAM) AM_BASE(&bbuster_pf1_scroll_data) + AM_RANGE(0x0b8008, 0x0b800b) AM_WRITE(SMH_RAM) AM_BASE(&bbuster_pf2_scroll_data) + AM_RANGE(0x0d0000, 0x0d0fff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("COINS") /* Coins */ AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("IN0") /* Player 1 & 2 */ AM_RANGE(0x0e0004, 0x0e0005) AM_READ_PORT("IN1") /* Player 3 */ AM_RANGE(0x0e0008, 0x0e0009) AM_READ_PORT("DSW1") /* Dip 1 */ AM_RANGE(0x0e000a, 0x0e000b) AM_READ_PORT("DSW2") /* Dip 2 */ AM_RANGE(0x0e0018, 0x0e0019) AM_READ(sound_cpu_r) - AM_RANGE(0x0e8000, 0x0e8001) AM_READ(kludge_r) + AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(kludge_r, gun_select_w) AM_RANGE(0x0e8002, 0x0e8003) AM_READ(control_3_r) - AM_RANGE(0x0f8000, 0x0f80ff) AM_READ(eprom_r) /* Eeprom */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bbuster_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x080000, 0x08ffff) AM_WRITE(SMH_RAM) AM_BASE(&bbuster_ram) - AM_RANGE(0x090000, 0x090fff) AM_WRITE(bbuster_video_w) AM_BASE(&videoram16) - AM_RANGE(0x0a0000, 0x0a0fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0a8000, 0x0a8fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16_2) AM_SIZE(&spriteram_2_size) - AM_RANGE(0x0b0000, 0x0b1fff) AM_WRITE(bbuster_pf1_w) AM_BASE(&bbuster_pf1_data) - AM_RANGE(0x0b2000, 0x0b3fff) AM_WRITE(bbuster_pf2_w) AM_BASE(&bbuster_pf2_data) - AM_RANGE(0x0b8000, 0x0b8003) AM_WRITE(SMH_RAM) AM_BASE(&bbuster_pf1_scroll_data) - AM_RANGE(0x0b8008, 0x0b800b) AM_WRITE(SMH_RAM) AM_BASE(&bbuster_pf2_scroll_data) - AM_RANGE(0x0d0000, 0x0d0fff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0e8000, 0x0e8001) AM_WRITE(gun_select_w) AM_RANGE(0x0f0008, 0x0f0009) AM_WRITE(SMH_NOP) AM_RANGE(0x0f0018, 0x0f0019) AM_WRITE(sound_cpu_w) - AM_RANGE(0x0f8000, 0x0f80ff) AM_WRITE(SMH_RAM) AM_BASE(&eprom_data) /* Eeprom */ + AM_RANGE(0x0f8000, 0x0f80ff) AM_READWRITE(eprom_r, SMH_RAM) AM_BASE(&eprom_data) /* Eeprom */ ADDRESS_MAP_END /*******************************************************************************/ -static ADDRESS_MAP_START( mechatt_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x06ffff) AM_READ(SMH_ROM) - AM_RANGE(0x070000, 0x07ffff) AM_READ(SMH_RAM) - AM_RANGE(0x090000, 0x090fff) AM_READ(SMH_RAM) - AM_RANGE(0x0a0000, 0x0a0fff) AM_READ(SMH_RAM) - AM_RANGE(0x0b0000, 0x0b3fff) AM_READ(SMH_RAM) - AM_RANGE(0x0c0000, 0x0c3fff) AM_READ(SMH_RAM) - AM_RANGE(0x0d0000, 0x0d07ff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( mechatt_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x06ffff) AM_ROM + AM_RANGE(0x070000, 0x07ffff) AM_RAM AM_BASE(&bbuster_ram) + AM_RANGE(0x090000, 0x090fff) AM_RAM_WRITE(bbuster_video_w) AM_BASE(&videoram16) + AM_RANGE(0x0a0000, 0x0a0fff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0x0a1000, 0x0a7fff) AM_WRITENOP + AM_RANGE(0x0b0000, 0x0b3fff) AM_RAM_WRITE(bbuster_pf1_w) AM_BASE(&bbuster_pf1_data) + AM_RANGE(0x0b8000, 0x0b8003) AM_WRITEONLY AM_BASE(&bbuster_pf1_scroll_data) + AM_RANGE(0x0c0000, 0x0c3fff) AM_RAM_WRITE(bbuster_pf2_w) AM_BASE(&bbuster_pf2_data) + AM_RANGE(0x0c8000, 0x0c8003) AM_WRITEONLY AM_BASE(&bbuster_pf2_scroll_data) + AM_RANGE(0x0d0000, 0x0d07ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) AM_RANGE(0x0e0000, 0x0e0001) AM_READ_PORT("IN0") AM_RANGE(0x0e0002, 0x0e0003) AM_READ_PORT("DSW1") AM_RANGE(0x0e0004, 0x0e0007) AM_READ(mechatt_gun_r) - AM_RANGE(0x0e8000, 0x0e8001) AM_READ(sound_cpu_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( mechatt_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x06ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x070000, 0x07ffff) AM_WRITE(SMH_RAM) AM_BASE(&bbuster_ram) - AM_RANGE(0x090000, 0x090fff) AM_WRITE(bbuster_video_w) AM_BASE(&videoram16) - AM_RANGE(0x0a0000, 0x0a0fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0x0a1000, 0x0a7fff) AM_WRITE(SMH_NOP) - AM_RANGE(0x0b0000, 0x0b3fff) AM_WRITE(bbuster_pf1_w) AM_BASE(&bbuster_pf1_data) - AM_RANGE(0x0b8000, 0x0b8003) AM_WRITE(SMH_RAM) AM_BASE(&bbuster_pf1_scroll_data) - AM_RANGE(0x0c0000, 0x0c3fff) AM_WRITE(bbuster_pf2_w) AM_BASE(&bbuster_pf2_data) - AM_RANGE(0x0c8000, 0x0c8003) AM_WRITE(SMH_RAM) AM_BASE(&bbuster_pf2_scroll_data) - AM_RANGE(0x0d0000, 0x0d07ff) AM_WRITE(paletteram16_RRRRGGGGBBBBxxxx_word_w) AM_BASE(&paletteram16) AM_RANGE(0x0e4002, 0x0e4003) AM_WRITE(SMH_NOP) /* Gun force feedback? */ - AM_RANGE(0x0e8000, 0x0e8001) AM_WRITE(sound_cpu_w) + AM_RANGE(0x0e8000, 0x0e8001) AM_READWRITE(sound_cpu_r, sound_cpu_w) ADDRESS_MAP_END /******************************************************************************/ -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_READ(SMH_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_READ(SMH_RAM) +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0xefff) AM_ROM + AM_RANGE(0xf000, 0xf7ff) AM_RAM AM_RANGE(0xf800, 0xf800) AM_READ(soundlatch_r) ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xefff) AM_WRITE(SMH_ROM) - AM_RANGE(0xf000, 0xf7ff) AM_WRITE(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_readport, 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) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writeport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( sound_portmap, 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(0xc0, 0xc1) AM_WRITE(SMH_NOP) /* -> Main CPU */ ADDRESS_MAP_END -static ADDRESS_MAP_START( sounda_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_READ(YM2608_status_port_0_A_r) - AM_RANGE(0x02, 0x02) AM_READ(YM2608_status_port_0_B_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sounda_writeport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( sounda_portmap, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x00) AM_WRITE(YM2608_control_port_0_A_w) + AM_RANGE(0x00, 0x00) AM_READWRITE(YM2608_status_port_0_A_r, YM2608_control_port_0_A_w) AM_RANGE(0x01, 0x01) AM_WRITE(YM2608_data_port_0_A_w) - AM_RANGE(0x02, 0x02) AM_WRITE(YM2608_control_port_0_B_w) + AM_RANGE(0x02, 0x02) AM_READWRITE(YM2608_status_port_0_B_r, YM2608_control_port_0_B_w) AM_RANGE(0x03, 0x03) AM_WRITE(YM2608_data_port_0_B_w) AM_RANGE(0xc0, 0xc1) AM_WRITE(SMH_NOP) /* -> Main CPU */ ADDRESS_MAP_END @@ -728,12 +687,12 @@ static MACHINE_DRIVER_START( bbusters ) /* basic machine hardware */ MDRV_CPU_ADD("main", M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(bbuster_readmem,bbuster_writemem) + MDRV_CPU_PROGRAM_MAP(bbuster_map,0) MDRV_CPU_VBLANK_INT_HACK(bbuster,4) MDRV_CPU_ADD("audio", Z80,4000000) /* Accurate */ - 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_portmap,0) #if BBUSTERS_HACK MDRV_MACHINE_RESET(bbusters) @@ -771,12 +730,12 @@ static MACHINE_DRIVER_START( mechatt ) /* basic machine hardware */ MDRV_CPU_ADD("main", M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(mechatt_readmem,mechatt_writemem) + MDRV_CPU_PROGRAM_MAP(mechatt_map,0) MDRV_CPU_VBLANK_INT("main", irq4_line_hold) MDRV_CPU_ADD("audio", Z80,4000000) /* Accurate */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) - MDRV_CPU_IO_MAP(sounda_readport,sounda_writeport) + MDRV_CPU_PROGRAM_MAP(sound_map,0) + MDRV_CPU_IO_MAP(sounda_portmap,0) #if MECHATT_HACK MDRV_MACHINE_RESET(mechatt) diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c index 400c798a500..d5a06280652 100644 --- a/src/mame/drivers/bigevglf.c +++ b/src/mame/drivers/bigevglf.c @@ -65,7 +65,6 @@ J1100072A static UINT8 port_select; /* for muxed controls */ static UINT32 beg_bank=0; -static UINT8 *beg_sharedram; static int sound_nmi_enable=0,pending_nmi=0; static UINT8 for_sound = 0; @@ -192,16 +191,6 @@ static READ8_HANDLER( beg_status_r ) } -static READ8_HANDLER( beg_sharedram_r ) -{ - return beg_sharedram[offset]; -} -static WRITE8_HANDLER( beg_sharedram_w ) -{ - beg_sharedram[offset] = data; -} - - static READ8_HANDLER( beg_trackball_x_r ) { static const char *const portx_name[2] = { "P1X", "P2X" }; @@ -303,27 +292,18 @@ INPUT_PORTS_END /*****************************************************************************/ /* Main CPU */ -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) - AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_RAM) - AM_RANGE(0xd000, 0xd7ff) AM_READ(SMH_BANK1) - AM_RANGE(0xd800, 0xdbff) AM_READ(beg_sharedram_r) /* only half of the RAM is accessible, line a10 of IC73 (6116) is GNDed */ - AM_RANGE(0xf000, 0xf0ff) AM_READ(bigevglf_vidram_r) /* 41464 (64kB * 8 chips), addressed using ports 1 and 5 */ - AM_RANGE(0xf840, 0xf8ff) AM_READ(SMH_RAM) -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(SMH_ROM) - AM_RANGE(0xd800, 0xdbff) AM_WRITE(beg_sharedram_w) AM_BASE(&beg_sharedram) +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0xbfff) AM_ROM + AM_RANGE(0xc000, 0xcfff) AM_RAM + AM_RANGE(0xd000, 0xd7ff) AM_ROMBANK(1) + AM_RANGE(0xd800, 0xdbff) AM_RAM AM_SHARE(1) /* only half of the RAM is accessible, line a10 of IC73 (6116) is GNDed */ AM_RANGE(0xe000, 0xe7ff) AM_WRITE(bigevglf_palette_w) AM_BASE(&paletteram) - AM_RANGE(0xe800, 0xefff) AM_WRITE(SMH_RAM) AM_BASE(&bigevglf_spriteram1) /* sprite 'templates' */ - AM_RANGE(0xf000, 0xf0ff) AM_WRITE(bigevglf_vidram_w) - AM_RANGE(0xf840, 0xf8ff) AM_WRITE(SMH_RAM) AM_BASE(&bigevglf_spriteram2) /* spriteram (x,y,offset in spriteram1,palette) */ + AM_RANGE(0xe800, 0xefff) AM_WRITEONLY AM_BASE(&bigevglf_spriteram1) /* sprite 'templates' */ + AM_RANGE(0xf000, 0xf0ff) AM_READWRITE(bigevglf_vidram_r, bigevglf_vidram_w) /* 41464 (64kB * 8 chips), addressed using ports 1 and 5 */ + AM_RANGE(0xf840, 0xf8ff) AM_RAM AM_BASE(&bigevglf_spriteram2) /* spriteram (x,y,offset in spriteram1,palette) */ ADDRESS_MAP_END -static ADDRESS_MAP_START( bigevglf_writeport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( bigevglf_portmap, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(SMH_NOP) /* video ram enable ???*/ AM_RANGE(0x01, 0x01) AM_WRITE(bigevglf_gfxcontrol_w) /* plane select */ @@ -331,10 +311,6 @@ static ADDRESS_MAP_START( bigevglf_writeport, ADDRESS_SPACE_IO, 8 ) AM_RANGE(0x03, 0x03) AM_WRITE(beg13A_set_w) AM_RANGE(0x04, 0x04) AM_WRITE(beg13B_clr_w) AM_RANGE(0x05, 0x05) AM_WRITE(bigevglf_vidram_addr_w) /* video banking (256 banks) for f000-f0ff area */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bigevglf_readport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x06, 0x06) AM_READ(beg_status_r) ADDRESS_MAP_END @@ -342,31 +318,13 @@ ADDRESS_MAP_END /*********************************************************************************/ /* Sub CPU */ -static ADDRESS_MAP_START( readmem_sub, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM) - AM_RANGE(0x4000, 0x47ff) AM_READ(SMH_RAM) - AM_RANGE(0x8000, 0x83ff) AM_READ(beg_sharedram_r) /* shared with main CPU */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_sub, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM) - AM_RANGE(0x4000, 0x47ff) AM_WRITE(SMH_RAM) - AM_RANGE(0x8000, 0x83ff) AM_WRITE(beg_sharedram_w) /* shared with main CPU */ -ADDRESS_MAP_END - - -static ADDRESS_MAP_START( bigevglf_sub_writeport, ADDRESS_SPACE_IO, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x08, 0x08) AM_WRITE(beg_port08_w) /* muxed port select + other unknown stuff */ - AM_RANGE(0x0c, 0x0c) AM_WRITE(bigevglf_mcu_w) - AM_RANGE(0x0e, 0x0e) AM_WRITE(SMH_NOP) /* 0-enable MCU, 1-keep reset line ASSERTED; D0 goes to the input of ls74 and the /Q of this ls74 goes to reset line on 68705 */ - AM_RANGE(0x10, 0x17) AM_WRITE(beg13A_clr_w) - AM_RANGE(0x18, 0x1f) AM_WRITE(beg13B_set_w) - AM_RANGE(0x20, 0x20) AM_WRITE(sound_command_w) +static ADDRESS_MAP_START( sub_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x3fff) AM_ROM + AM_RANGE(0x4000, 0x47ff) AM_RAM + AM_RANGE(0x8000, 0x83ff) AM_RAM AM_SHARE(1) /* shared with main CPU */ ADDRESS_MAP_END - static READ8_HANDLER( sub_cpu_mcu_coin_port_r ) { static int bit5=0; @@ -380,7 +338,7 @@ static READ8_HANDLER( sub_cpu_mcu_coin_port_r ) return bigevglf_mcu_status_r(machine,0) | (input_port_read(machine, "PORT04") & 3) | bit5; /* bit 0 and bit 1 - coin inputs */ } -static ADDRESS_MAP_START( bigevglf_sub_readport, ADDRESS_SPACE_IO, 8 ) +static ADDRESS_MAP_START( bigevglf_sub_portmap, ADDRESS_SPACE_IO, 8 ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_READ_PORT("PORT00") AM_RANGE(0x01, 0x01) AM_READ(SMH_NOP) @@ -390,60 +348,51 @@ static ADDRESS_MAP_START( bigevglf_sub_readport, ADDRESS_SPACE_IO, 8 ) AM_RANGE(0x05, 0x05) AM_READ_PORT("DSW1") AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW2") AM_RANGE(0x07, 0x07) AM_READ(SMH_NOP) + AM_RANGE(0x08, 0x08) AM_WRITE(beg_port08_w) /* muxed port select + other unknown stuff */ AM_RANGE(0x0b, 0x0b) AM_READ(bigevglf_mcu_r) - AM_RANGE(0x20, 0x20) AM_READ(beg_fromsound_r) + AM_RANGE(0x0c, 0x0c) AM_WRITE(bigevglf_mcu_w) + AM_RANGE(0x0e, 0x0e) AM_WRITE(SMH_NOP) /* 0-enable MCU, 1-keep reset line ASSERTED; D0 goes to the input of ls74 and the /Q of this ls74 goes to reset line on 68705 */ + AM_RANGE(0x10, 0x17) AM_WRITE(beg13A_clr_w) + AM_RANGE(0x18, 0x1f) AM_WRITE(beg13B_set_w) + AM_RANGE(0x20, 0x20) AM_READWRITE(beg_fromsound_r, sound_command_w) AM_RANGE(0x21, 0x21) AM_READ(beg_soundstate_r) ADDRESS_MAP_END + + /*********************************************************************************/ /* Sound CPU */ -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) - AM_RANGE(0xda00, 0xda00) AM_READ(soundstate_r) - AM_RANGE(0xd800, 0xd800) AM_READ(sound_command_r) /* read from D800 sets bit 0 in status */ - AM_RANGE(0xe000, 0xefff) AM_READ(SMH_NOP) /* space for diagnostics ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_ROM) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0xbfff) AM_ROM + AM_RANGE(0xc000, 0xc7ff) AM_RAM AM_RANGE(0xc800, 0xc800) AM_WRITE(AY8910_control_port_0_w) AM_RANGE(0xc801, 0xc801) AM_WRITE(AY8910_write_port_0_w) AM_RANGE(0xca00, 0xca0d) AM_WRITE(MSM5232_0_w) AM_RANGE(0xcc00, 0xcc00) AM_WRITE(SMH_NOP) AM_RANGE(0xce00, 0xce00) AM_WRITE(SMH_NOP) - AM_RANGE(0xd800, 0xd800) AM_WRITE(beg_fromsound_w) /* write to D800 sets bit 1 in status */ - AM_RANGE(0xda00, 0xda00) AM_WRITE(nmi_enable_w) + AM_RANGE(0xd800, 0xd800) AM_READWRITE(sound_command_r, beg_fromsound_w) /* write to D800 sets bit 1 in status */ + AM_RANGE(0xda00, 0xda00) AM_READWRITE(soundstate_r, nmi_enable_w) AM_RANGE(0xdc00, 0xdc00) AM_WRITE(nmi_disable_w) - AM_RANGE(0xde00, 0xde00) AM_WRITE(SMH_NOP) + AM_RANGE(0xde00, 0xde00) AM_WRITENOP + AM_RANGE(0xe000, 0xefff) AM_READNOP /* space for diagnostics ROM */ ADDRESS_MAP_END /*********************************************************************************/ /* MCU */ -static ADDRESS_MAP_START( m68705_readmem, ADDRESS_SPACE_PROGRAM, 8 ) +static ADDRESS_MAP_START( m68705_map, ADDRESS_SPACE_PROGRAM, 8 ) ADDRESS_MAP_GLOBAL_MASK(0x7ff) - AM_RANGE(0x0000, 0x0000) AM_READ(bigevglf_68705_portA_r) - AM_RANGE(0x0001, 0x0001) AM_READ(bigevglf_68705_portB_r) - AM_RANGE(0x0002, 0x0002) AM_READ(bigevglf_68705_portC_r) - AM_RANGE(0x0010, 0x007f) AM_READ(SMH_RAM) - AM_RANGE(0x0080, 0x07ff) AM_READ(SMH_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( m68705_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - ADDRESS_MAP_GLOBAL_MASK(0x7ff) - AM_RANGE(0x0000, 0x0000) AM_WRITE(bigevglf_68705_portA_w) - AM_RANGE(0x0001, 0x0001) AM_WRITE(bigevglf_68705_portB_w) - AM_RANGE(0x0002, 0x0002) AM_WRITE(bigevglf_68705_portC_w) + AM_RANGE(0x0000, 0x0000) AM_READWRITE(bigevglf_68705_portA_r, bigevglf_68705_portA_w) + AM_RANGE(0x0001, 0x0001) AM_READWRITE(bigevglf_68705_portB_r, bigevglf_68705_portB_w) + AM_RANGE(0x0002, 0x0002) AM_READWRITE(bigevglf_68705_portC_r, bigevglf_68705_portC_w) AM_RANGE(0x0004, 0x0004) AM_WRITE(bigevglf_68705_ddrA_w) AM_RANGE(0x0005, 0x0005) AM_WRITE(bigevglf_68705_ddrB_w) AM_RANGE(0x0006, 0x0006) AM_WRITE(bigevglf_68705_ddrC_w) - AM_RANGE(0x0010, 0x007f) AM_WRITE(SMH_RAM) - AM_RANGE(0x0080, 0x07ff) AM_WRITE(SMH_ROM) + AM_RANGE(0x0010, 0x007f) AM_RAM + AM_RANGE(0x0080, 0x07ff) AM_ROM ADDRESS_MAP_END @@ -475,25 +424,26 @@ static const struct MSM5232interface msm5232_interface = }; static MACHINE_DRIVER_START( bigevglf ) + /* basic machine hardware */ MDRV_CPU_ADD("main", Z80,10000000/2) /* 5 MHz ? */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) - MDRV_CPU_IO_MAP(bigevglf_readport,bigevglf_writeport) + MDRV_CPU_PROGRAM_MAP(main_map,0) + MDRV_CPU_IO_MAP(bigevglf_portmap,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* vblank */ MDRV_CPU_ADD("sub", Z80,10000000/2) /* 5 MHz ? */ - MDRV_CPU_PROGRAM_MAP(readmem_sub,writemem_sub) - MDRV_CPU_IO_MAP(bigevglf_sub_readport,bigevglf_sub_writeport) + MDRV_CPU_PROGRAM_MAP(sub_map,0) + MDRV_CPU_IO_MAP(bigevglf_sub_portmap,0) MDRV_CPU_VBLANK_INT("main", irq0_line_hold) /* vblank */ MDRV_CPU_ADD("audio", Z80,8000000/2) /* 4 MHz ? */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) + MDRV_CPU_PROGRAM_MAP(sound_map,0) MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2) /* IRQ generated by ???; 2 irqs/frame give good music tempo but also SOUND ERROR in test mode, 4 irqs/frame give SOUND OK in test mode but music seems to be running too fast */ MDRV_CPU_ADD("mcu", M68705,2000000) /* ??? */ - MDRV_CPU_PROGRAM_MAP(m68705_readmem,m68705_writemem) + MDRV_CPU_PROGRAM_MAP(m68705_map,0) MDRV_INTERLEAVE(10) /* 10 CPU slices per frame - interleaving is forced on the fly */ diff --git a/src/mame/drivers/bigstrkb.c b/src/mame/drivers/bigstrkb.c index 6c94cee674b..245c875c3c8 100644 --- a/src/mame/drivers/bigstrkb.c +++ b/src/mame/drivers/bigstrkb.c @@ -43,67 +43,49 @@ VIDEO_UPDATE(bigstrkb); /* some regions might be too large */ -static ADDRESS_MAP_START( bigstrkb_readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM) - /* most region sizes are unknown */ -// AM_RANGE(0x0c0000, 0x0cffff) AM_READ(megasys1_vregs_C_r) - AM_RANGE(0x0D0000, 0x0dffff) AM_READ(SMH_RAM) - AM_RANGE(0x0E0000, 0x0E3fff) AM_READ(SMH_RAM) - AM_RANGE(0x0e8000, 0x0ebfff) AM_READ(SMH_RAM) - AM_RANGE(0x0ec000, 0x0effff) AM_READ(SMH_RAM) - AM_RANGE(0x0f0000, 0x0fffff) AM_READ(SMH_RAM) - AM_RANGE(0x1f0000, 0x1fffff) AM_READ(SMH_RAM) - AM_RANGE(0x700000, 0x700001) AM_READ(input_port_0_word_r) /* Dip 1 */ - AM_RANGE(0x700002, 0x700003) AM_READ(input_port_1_word_r) /* Dip 2 */ - AM_RANGE(0x700004, 0x700005) AM_READ(input_port_2_word_r) /* System */ - AM_RANGE(0x70000a, 0x70000b) AM_READ(input_port_4_word_r) /* Player 1 */ - AM_RANGE(0x70000c, 0x70000d) AM_READ(input_port_3_word_r) /* Player 2 */ - - AM_RANGE(0xE00000, 0xE00001) AM_READ(OKIM6295_status_0_lsb_r) - AM_RANGE(0xE00002, 0xE00003) AM_READ(OKIM6295_status_1_lsb_r) - - AM_RANGE(0xF00000, 0xFFFFFF) AM_READ(SMH_RAM) // main RAM -ADDRESS_MAP_END +static ADDRESS_MAP_START( bigstrkb_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x07ffff) AM_ROM +// AM_RANGE(0x0c0000, 0x0cffff) AM_READWRITE(megasys1_vregs_C_r, megasys1_vregs_C_w) AM_BASE(&megasys1_vregs) + AM_RANGE(0x0C2004, 0x0C2005) AM_WRITENOP + AM_RANGE(0x0C200C, 0x0C200d) AM_WRITENOP + AM_RANGE(0x0C2104, 0x0C2105) AM_WRITENOP + AM_RANGE(0x0C2108, 0x0C2109) AM_WRITENOP + AM_RANGE(0x0C2200, 0x0C2201) AM_WRITENOP + AM_RANGE(0x0C2208, 0x0C2209) AM_WRITENOP + AM_RANGE(0x0c2308, 0x0c2309) AM_WRITENOP // bit 0 of DSW1 (flip screen) - use vregs -static ADDRESS_MAP_START( bigstrkb_writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM) -// AM_RANGE(0x0c0000, 0x0cffff) AM_WRITE(megasys1_vregs_C_w) AM_BASE(&megasys1_vregs) + AM_RANGE(0x0D0000, 0x0dffff) AM_RAM // 0xd2000 - 0xd3fff? 0xd8000? - AM_RANGE(0x0C2004, 0x0C2005) AM_WRITE(SMH_NOP) - AM_RANGE(0x0C200C, 0x0C200d) AM_WRITE(SMH_NOP) - AM_RANGE(0x0C2104, 0x0C2105) AM_WRITE(SMH_NOP) - AM_RANGE(0x0C2108, 0x0C2109) AM_WRITE(SMH_NOP) - AM_RANGE(0x0C2200, 0x0C2201) AM_WRITE(SMH_NOP) - AM_RANGE(0x0C2208, 0x0C2209) AM_WRITE(SMH_NOP) - AM_RANGE(0x0c2308, 0x0c2309) AM_WRITE(SMH_NOP) // bit 0 of DSW1 (flip screen) - use vregs + AM_RANGE(0x0e0000, 0x0e3fff) AM_RAM_WRITE(bsb_videoram2_w) AM_BASE(&bsb_videoram2) + AM_RANGE(0x0e8000, 0x0ebfff) AM_RAM_WRITE(bsb_videoram3_w) AM_BASE(&bsb_videoram3) + AM_RANGE(0x0ec000, 0x0effff) AM_RAM_WRITE(bsb_videoram_w) AM_BASE(&bsb_videoram) - AM_RANGE(0x0D0000, 0x0dffff) AM_WRITE(SMH_RAM) // 0xd2000 - 0xd3fff? 0xd8000? + AM_RANGE(0x0f0000, 0x0f7fff) AM_RAM + AM_RANGE(0x0f8000, 0x0f87ff) AM_RAM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) + AM_RANGE(0x0f8800, 0x0fffff) AM_RAM - AM_RANGE(0x0e0000, 0x0e3fff) AM_WRITE(bsb_videoram2_w) AM_BASE(&bsb_videoram2) - AM_RANGE(0x0e8000, 0x0ebfff) AM_WRITE(bsb_videoram3_w) AM_BASE(&bsb_videoram3) - AM_RANGE(0x0ec000, 0x0effff) AM_WRITE(bsb_videoram_w) AM_BASE(&bsb_videoram) + AM_RANGE(0x1f0000, 0x1f7fff) AM_RAM + AM_RANGE(0x1f8000, 0x1f87ff) AM_RAM AM_BASE(&bigstrkb_spriteram) + AM_RANGE(0x1f8800, 0x1fffff) AM_RAM - AM_RANGE(0x0f0000, 0x0f7fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x0f8000, 0x0f87ff) AM_WRITE(paletteram16_RRRRGGGGBBBBRGBx_word_w) AM_BASE(&paletteram16) - AM_RANGE(0x0f8800, 0x0fffff) AM_WRITE(SMH_RAM) - - AM_RANGE(0x1f0000, 0x1f7fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x1f8000, 0x1f87ff) AM_WRITE(SMH_RAM) AM_BASE(&bigstrkb_spriteram) - AM_RANGE(0x1f8800, 0x1fffff) AM_WRITE(SMH_RAM) - - AM_RANGE(0x700020, 0x700027) AM_WRITE(SMH_RAM) AM_BASE(&bsb_vidreg1) - AM_RANGE(0x700030, 0x700037) AM_WRITE(SMH_RAM) AM_BASE(&bsb_vidreg2) + AM_RANGE(0x700000, 0x700001) AM_READ(input_port_0_word_r) /* Dip 1 */ + AM_RANGE(0x700002, 0x700003) AM_READ(input_port_1_word_r) /* Dip 2 */ + AM_RANGE(0x700004, 0x700005) AM_READ(input_port_2_word_r) /* System */ + AM_RANGE(0x70000a, 0x70000b) AM_READ(input_port_4_word_r) /* Player 1 */ + AM_RANGE(0x70000c, 0x70000d) AM_READ(input_port_3_word_r) /* Player 2 */ + AM_RANGE(0x700020, 0x700027) AM_WRITEONLY AM_BASE(&bsb_vidreg1) + AM_RANGE(0x700030, 0x700037) AM_WRITEONLY AM_BASE(&bsb_vidreg2) - AM_RANGE(0xB00000, 0xB00001) AM_WRITE(SMH_NOP) + AM_RANGE(0xB00000, 0xB00001) AM_WRITENOP - AM_RANGE(0xE00000, 0xE00001) AM_WRITE(OKIM6295_data_0_lsb_w) - AM_RANGE(0xE00002, 0xE00003) AM_WRITE(OKIM6295_data_1_lsb_w) + AM_RANGE(0xE00000, 0xE00001) AM_READWRITE(OKIM6295_status_0_lsb_r, OKIM6295_data_0_lsb_w) + AM_RANGE(0xE00002, 0xE00003) AM_READWRITE(OKIM6295_status_1_lsb_r, OKIM6295_data_1_lsb_w) - AM_RANGE(0xE00008, 0xE00009) AM_WRITE(SMH_NOP) - AM_RANGE(0xE0000c, 0xE0000d) AM_WRITE(SMH_NOP) + AM_RANGE(0xE00008, 0xE00009) AM_WRITENOP + AM_RANGE(0xE0000c, 0xE0000d) AM_WRITENOP - AM_RANGE(0xF00000, 0xFFFFFF) AM_WRITE(SMH_RAM) + AM_RANGE(0xF00000, 0xFFFFFF) AM_RAM ADDRESS_MAP_END #define BIGSTRKB_PLAYER_INPUT( player, start ) \ @@ -223,7 +205,7 @@ GFXDECODE_END static MACHINE_DRIVER_START( bigstrkb ) MDRV_CPU_ADD("main", M68000, 12000000) - MDRV_CPU_PROGRAM_MAP(bigstrkb_readmem,bigstrkb_writemem) + MDRV_CPU_PROGRAM_MAP(bigstrkb_map,0) MDRV_CPU_VBLANK_INT("main", irq6_line_hold) MDRV_GFXDECODE(bigstrkb) diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c index 70463dfa353..2e9ee3decba 100644 --- a/src/mame/drivers/bionicc.c +++ b/src/mame/drivers/bionicc.c @@ -144,52 +144,32 @@ static INTERRUPT_GEN( bionicc_interrupt ) cpunum_set_input_line(machine, 0, 4, HOLD_LINE); } -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_READ(SMH_ROM) /* 68000 ROM */ - AM_RANGE(0xfe0000, 0xfe07ff) AM_READ(SMH_RAM) /* RAM? */ - AM_RANGE(0xfe0800, 0xfe0cff) AM_READ(SMH_RAM) /* sprites */ - AM_RANGE(0xfe0d00, 0xfe3fff) AM_READ(SMH_RAM) /* RAM? */ +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x03ffff) AM_ROM + AM_RANGE(0xfe0000, 0xfe07ff) AM_RAM /* RAM? */ + AM_RANGE(0xfe0800, 0xfe0cff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) + AM_RANGE(0xfe0d00, 0xfe3fff) AM_RAM /* RAM? */ + AM_RANGE(0xfe4000, 0xfe4001) AM_WRITE(bionicc_gfxctrl_w) /* + coin counters */ AM_RANGE(0xfe4000, 0xfe4001) AM_READ(input_port_0_word_r) AM_RANGE(0xfe4002, 0xfe4003) AM_READ(input_port_1_word_r) - AM_RANGE(0xfec000, 0xfecfff) AM_READ(SMH_RAM) - AM_RANGE(0xff0000, 0xff3fff) AM_READ(SMH_RAM) - AM_RANGE(0xff4000, 0xff7fff) AM_READ(SMH_RAM) - AM_RANGE(0xff8000, 0xff87ff) AM_READ(SMH_RAM) - AM_RANGE(0xffc000, 0xfffff7) AM_READ(SMH_RAM) /* working RAM */ - AM_RANGE(0xfffff8, 0xfffff9) AM_READ(hacked_soundcommand_r) /* hack */ - AM_RANGE(0xfffffa, 0xffffff) AM_READ(hacked_controls_r) /* hack */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x03ffff) AM_WRITE(SMH_ROM) - AM_RANGE(0xfe0000, 0xfe07ff) AM_WRITE(SMH_RAM) /* RAM? */ - AM_RANGE(0xfe0800, 0xfe0cff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size) - AM_RANGE(0xfe0d00, 0xfe3fff) AM_WRITE(SMH_RAM) /* RAM? */ - AM_RANGE(0xfe4000, 0xfe4001) AM_WRITE(bionicc_gfxctrl_w) /* + coin counters */ AM_RANGE(0xfe8010, 0xfe8017) AM_WRITE(bionicc_scroll_w) AM_RANGE(0xfe801a, 0xfe801b) AM_WRITE(bionicc_mpu_trigger_w) /* ??? not sure, but looks like it */ - AM_RANGE(0xfec000, 0xfecfff) AM_WRITE(bionicc_txvideoram_w) AM_BASE(&bionicc_txvideoram) - AM_RANGE(0xff0000, 0xff3fff) AM_WRITE(bionicc_fgvideoram_w) AM_BASE(&bionicc_fgvideoram) - AM_RANGE(0xff4000, 0xff7fff) AM_WRITE(bionicc_bgvideoram_w) AM_BASE(&bionicc_bgvideoram) - AM_RANGE(0xff8000, 0xff87ff) AM_WRITE(bionicc_paletteram_w) AM_BASE(&paletteram16) - AM_RANGE(0xffc000, 0xfffff7) AM_WRITE(SMH_RAM) /* working RAM */ - AM_RANGE(0xfffff8, 0xfffff9) AM_WRITE(hacked_soundcommand_w) /* hack */ - AM_RANGE(0xfffffa, 0xffffff) AM_WRITE(hacked_controls_w) /* hack */ + AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE(bionicc_txvideoram_w) AM_BASE(&bionicc_txvideoram) + AM_RANGE(0xff0000, 0xff3fff) AM_RAM_WRITE(bionicc_fgvideoram_w) AM_BASE(&bionicc_fgvideoram) + AM_RANGE(0xff4000, 0xff7fff) AM_RAM_WRITE(bionicc_bgvideoram_w) AM_BASE(&bionicc_bgvideoram) + AM_RANGE(0xff8000, 0xff87ff) AM_RAM_WRITE(bionicc_paletteram_w) AM_BASE(&paletteram16) + AM_RANGE(0xffc000, 0xfffff7) AM_RAM /* working RAM */ + AM_RANGE(0xfffff8, 0xfffff9) AM_READWRITE(hacked_soundcommand_r, hacked_soundcommand_w) /* hack */ + AM_RANGE(0xfffffa, 0xffffff) AM_READWRITE(hacked_controls_r, hacked_controls_w) /* hack */ ADDRESS_MAP_END -static ADDRESS_MAP_START( sound_readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_READ(SMH_ROM) - AM_RANGE(0x8001, 0x8001) AM_READ(YM2151_status_port_0_r) - AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) - AM_RANGE(0xc000, 0xc7ff) AM_READ(SMH_RAM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( sound_writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x7fff) AM_WRITE(SMH_ROM) +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x8000) AM_WRITE(YM2151_register_port_0_w) - AM_RANGE(0x8001, 0x8001) AM_WRITE(YM2151_data_port_0_w) - AM_RANGE(0xc000, 0xc7ff) AM_WRITE(SMH_RAM) + AM_RANGE(0x8001, 0x8001) AM_READWRITE(YM2151_status_port_0_r, YM2151_data_port_0_w) + AM_RANGE(0xa000, 0xa000) AM_READ(soundlatch_r) + AM_RANGE(0xc000, 0xc7ff) AM_RAM ADDRESS_MAP_END @@ -347,12 +327,11 @@ static MACHINE_DRIVER_START( bionicc ) /* basic machine hardware */ MDRV_CPU_ADD("main", M68000, MASTER_CLOCK / 2) /* 12 MHz - verified in schematics */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) + MDRV_CPU_PROGRAM_MAP(main_map,0) MDRV_CPU_VBLANK_INT_HACK(bionicc_interrupt,8) - /* audio CPU */ MDRV_CPU_ADD("audio", Z80, EXO3_F0_CLK / 4) /* EXO3 C,B=GND, A=5V ==> Divisor 2^2 */ - MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem) + MDRV_CPU_PROGRAM_MAP(sound_map,0) /* FIXME: interrupt timing * schematics indicate that nmi_line is set on M680000 access with AB1=1 * and IOCS=0 (active low), see pages A-1/10, A-4/10 in schematics |