Memory map merges for drivers, tunhunt, tumblep, tugboat, trucocl, and truco.

This commit is contained in:
Andrew Gardner 2008-04-29 15:06:55 +00:00
parent 0bcb72270d
commit cf3050ad91
5 changed files with 62 additions and 113 deletions

View File

@ -29,25 +29,15 @@ PALETTE_INIT( truco );
/***************************************************************************/
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x17ff) AM_READ(SMH_RAM) /* general purpose ram */
AM_RANGE(0x1800, 0x7bff) AM_READ(SMH_RAM) /* video ram */
AM_RANGE(0x7c00, 0x7fff) AM_READ(SMH_RAM) /* battery backed ram */
AM_RANGE(0x8000, 0x8000) AM_READ(input_port_0_r) /* controls (and irq ack?) */
AM_RANGE(0x8001, 0x8001) AM_READ(SMH_NOP) /* unknown */
AM_RANGE(0x8002, 0x8002) AM_READ(input_port_1_r) /* dipswitches */
AM_RANGE(0x8003, 0x8007) AM_READ(SMH_NOP) /* unknown */
AM_RANGE(0x8008, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x17ff) AM_WRITE(SMH_RAM) /* general purpose ram */
AM_RANGE(0x1800, 0x7bff) AM_WRITE(SMH_RAM) AM_BASE(&videoram) /* video ram */
AM_RANGE(0x7c00, 0x7fff) AM_WRITE(SMH_RAM) AM_BASE(&battery_ram) /* battery backed ram */
AM_RANGE(0x8000, 0x8001) AM_WRITE(SMH_NOP) /* unknown */
AM_RANGE(0x8002, 0x8002) AM_WRITE(DAC_0_data_w)
AM_RANGE(0x8003, 0x8007) AM_WRITE(SMH_NOP) /* unknown */
AM_RANGE(0x8008, 0xffff) AM_WRITE(SMH_ROM)
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x17ff) AM_RAM /* general purpose ram */
AM_RANGE(0x1800, 0x7bff) AM_RAM AM_BASE(&videoram) /* video ram */
AM_RANGE(0x7c00, 0x7fff) AM_RAM AM_BASE(&battery_ram) /* battery backed ram */
AM_RANGE(0x8000, 0x8000) AM_READWRITE(input_port_0_r, SMH_NOP) /* controls (and irq ack?) */
AM_RANGE(0x8001, 0x8001) AM_READWRITE(SMH_NOP, SMH_NOP) /* unknown */
AM_RANGE(0x8002, 0x8002) AM_READWRITE(input_port_1_r, DAC_0_data_w) /* dipswitches */
AM_RANGE(0x8003, 0x8007) AM_READWRITE(SMH_NOP, SMH_NOP) /* unknown */
AM_RANGE(0x8008, 0xffff) AM_ROM
ADDRESS_MAP_END
static INPUT_PORTS_START( truco )
@ -149,7 +139,7 @@ static MACHINE_DRIVER_START( truco )
/* basic machine hardware */
MDRV_CPU_ADD(M6809, 750000) /* ?? guess */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT("main", truco_interrupt)

View File

@ -85,24 +85,16 @@ static WRITE8_HANDLER( audio_dac_w)
timer_set( ATTOTIME_IN_HZ( 16000 ), NULL, 0, dac_irq );
}
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_READ(SMH_ROM)
AM_RANGE(0x4000, 0x43ff) AM_READ(SMH_RAM)
AM_RANGE(0x4400, 0x47ff) AM_READ(SMH_RAM)
AM_RANGE(0x4c00, 0x4fff) AM_READ(SMH_RAM)
AM_RANGE(0x5000, 0x503f) AM_READ(input_port_0_r) /* IN0 */
AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_WRITE(SMH_ROM)
AM_RANGE(0x4000, 0x43ff) AM_WRITE(trucocl_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x4400, 0x47ff) AM_WRITE(trucocl_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x4c00, 0x4fff) AM_WRITE(SMH_RAM)
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x3fff) AM_ROM
AM_RANGE(0x4000, 0x43ff) AM_RAM_WRITE(trucocl_videoram_w) AM_BASE(&videoram)
AM_RANGE(0x4400, 0x47ff) AM_RAM_WRITE(trucocl_colorram_w) AM_BASE(&colorram)
AM_RANGE(0x4c00, 0x4fff) AM_RAM
AM_RANGE(0x5000, 0x5000) AM_WRITE(irq_enable_w)
AM_RANGE(0x5000, 0x503f) AM_READ(input_port_0_r) /* IN0 */
AM_RANGE(0x5080, 0x5080) AM_WRITE(audio_dac_w)
AM_RANGE(0x50c0, 0x50c0) AM_WRITE(watchdog_reset_w)
AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
static INPUT_PORTS_START( trucocl )
@ -144,7 +136,7 @@ static INTERRUPT_GEN( trucocl_interrupt )
static MACHINE_DRIVER_START( trucocl )
/* basic machine hardware */
MDRV_CPU_ADD(Z80, 18432000/6)
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT("main", trucocl_interrupt)
/* video hardware */

View File

@ -184,28 +184,20 @@ static MACHINE_RESET( tugboat )
}
static ADDRESS_MAP_START( tugboat_readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x01ff) AM_READ(SMH_RAM)
AM_RANGE(0x11e4, 0x11e7) AM_READ(pia_0_r)
AM_RANGE(0x11e8, 0x11eb) AM_READ(pia_1_r)
//AM_RANGE(0x1700, 0x1fff) AM_READ(SMH_RAM)
AM_RANGE(0x2000, 0x2fff) AM_READ(SMH_RAM)
AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0xfff0, 0xffff) AM_READ(SMH_ROM) /* vectors */
ADDRESS_MAP_END
static ADDRESS_MAP_START( tugboat_writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x01ff) AM_WRITE(SMH_RAM) AM_BASE(&tugboat_ram)
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x01ff) AM_RAM AM_BASE(&tugboat_ram)
AM_RANGE(0x1060, 0x1060) AM_WRITE(AY8910_control_port_0_w)
AM_RANGE(0x1061, 0x1061) AM_WRITE(AY8910_write_port_0_w)
AM_RANGE(0x10a0, 0x10a1) AM_WRITE(tugboat_hd46505_0_w) // scrolling is performed changing the start_addr register (0C/0D)
AM_RANGE(0x10a0, 0x10a1) AM_WRITE(tugboat_hd46505_0_w) /* scrolling is performed changing the start_addr register (0C/0D) */
AM_RANGE(0x10c0, 0x10c1) AM_WRITE(tugboat_hd46505_1_w)
AM_RANGE(0x11e4, 0x11e7) AM_WRITE(pia_0_w)
AM_RANGE(0x11e8, 0x11eb) AM_WRITE(pia_1_w)
//AM_RANGE(0x1700, 0x1fff) AM_WRITE(SMH_RAM)
AM_RANGE(0x11e4, 0x11e7) AM_READWRITE(pia_0_r, pia_0_w)
AM_RANGE(0x11e8, 0x11eb) AM_READWRITE(pia_1_r, pia_1_w)
//AM_RANGE(0x1700, 0x1fff) AM_RAM
AM_RANGE(0x18e0, 0x18ef) AM_WRITE(tugboat_score_w)
AM_RANGE(0x2000, 0x2fff) AM_WRITE(SMH_RAM) /* tilemap RAM */
AM_RANGE(0x2000, 0x2fff) AM_RAM /* tilemap RAM */
AM_RANGE(0x4000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0x5000, 0x7fff) AM_WRITE(SMH_ROM)
AM_RANGE(0xfff0, 0xffff) AM_READ(SMH_ROM) /* vectors */
ADDRESS_MAP_END
@ -373,7 +365,7 @@ GFXDECODE_END
static MACHINE_DRIVER_START( tugboat )
MDRV_CPU_ADD_TAG("main", M6502, 2000000) /* 2 MHz ???? */
MDRV_CPU_PROGRAM_MAP(tugboat_readmem,tugboat_writemem)
MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT("main", nmi_line_pulse)
MDRV_MACHINE_START(tugboat)

View File

@ -106,30 +106,22 @@ static READ16_HANDLER( tumblepop_controls_r )
/******************************************************************************/
static ADDRESS_MAP_START( tumblepop_readmem, ADDRESS_SPACE_PROGRAM, 16 )
AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
AM_RANGE(0x120000, 0x123fff) AM_READ(SMH_RAM)
AM_RANGE(0x140000, 0x1407ff) AM_READ(SMH_RAM)
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepop_controls_r)
AM_RANGE(0x1a0000, 0x1a07ff) AM_READ(SMH_RAM)
AM_RANGE(0x320000, 0x320fff) AM_READ(SMH_RAM)
AM_RANGE(0x322000, 0x322fff) AM_READ(SMH_RAM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( tumblepop_writemem, ADDRESS_SPACE_PROGRAM, 16 )
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 )
#if TUMBLEP_HACK
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_RAM) // To write levels modifications
AM_RANGE(0x000000, 0x07ffff) AM_READ(SMH_ROM)
#else
AM_RANGE(0x000000, 0x07ffff) AM_WRITE(SMH_ROM)
AM_RANGE(0x000000, 0x07ffff) AM_ROM
#endif
AM_RANGE(0x100000, 0x100001) AM_WRITE(tumblep_sound_w)
AM_RANGE(0x120000, 0x123fff) AM_WRITE(SMH_RAM)
AM_RANGE(0x140000, 0x1407ff) AM_READ(SMH_RAM) AM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x120000, 0x123fff) AM_RAM
AM_RANGE(0x140000, 0x1407ff) AM_RAM_WRITE(paletteram16_xxxxBBBBGGGGRRRR_word_w) AM_BASE(&paletteram16)
AM_RANGE(0x180000, 0x18000f) AM_READ(tumblepop_controls_r)
AM_RANGE(0x18000c, 0x18000d) AM_WRITE(SMH_NOP)
AM_RANGE(0x1a0000, 0x1a07ff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
AM_RANGE(0x1a0000, 0x1a07ff) AM_RAM AM_BASE(&spriteram16) AM_SIZE(&spriteram_size)
AM_RANGE(0x300000, 0x30000f) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf12_control)
AM_RANGE(0x320000, 0x320fff) AM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
AM_RANGE(0x322000, 0x322fff) AM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
AM_RANGE(0x320000, 0x320fff) AM_RAM_WRITE(deco16_pf1_data_w) AM_BASE(&deco16_pf1_data)
AM_RANGE(0x322000, 0x322fff) AM_RAM_WRITE(deco16_pf2_data_w) AM_BASE(&deco16_pf2_data)
AM_RANGE(0x340000, 0x3407ff) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf1_rowscroll) // unused
AM_RANGE(0x342000, 0x3427ff) AM_WRITE(SMH_RAM) AM_BASE(&deco16_pf2_rowscroll) // unused
ADDRESS_MAP_END
@ -149,23 +141,14 @@ static WRITE8_HANDLER( YM2151_w )
}
/* 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_READ(SMH_NOP)
AM_RANGE(0x110000, 0x110001) AM_READ(YM2151_status_port_0_r)
AM_RANGE(0x120000, 0x120001) AM_READ(OKIM6295_status_0_r)
AM_RANGE(0x130000, 0x130001) AM_READ(SMH_NOP) /* 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_READWRITE(YM2151_status_port_0_r, YM2151_w)
AM_RANGE(0x120000, 0x120001) AM_READWRITE(OKIM6295_status_0_r, OKIM6295_data_0_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_BANK8)
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_WRITE(SMH_NOP) /* YM2203 - this board doesn't have one */
AM_RANGE(0x110000, 0x110001) AM_WRITE(YM2151_w)
AM_RANGE(0x120000, 0x120001) AM_WRITE(OKIM6295_data_0_w)
AM_RANGE(0x130000, 0x130001) AM_WRITE(SMH_NOP)
AM_RANGE(0x1f0000, 0x1f1fff) AM_WRITE(SMH_BANK8)
AM_RANGE(0x1f0000, 0x1f1fff) AM_READWRITE(SMH_BANK8, SMH_BANK8)
AM_RANGE(0x1fec00, 0x1fec01) AM_WRITE(H6280_timer_w)
AM_RANGE(0x1ff400, 0x1ff403) AM_WRITE(H6280_irq_status_w)
ADDRESS_MAP_END
@ -320,12 +303,12 @@ static MACHINE_DRIVER_START( tumblep )
/* basic machine hardware */
MDRV_CPU_ADD(M68000, 14000000)
MDRV_CPU_PROGRAM_MAP(tumblepop_readmem,tumblepop_writemem)
MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT("main", irq6_line_hold)
MDRV_CPU_ADD(H6280, 32220000/8) /* Custom chip 45; Audio section crystal is 32.220 MHz */
/* audio CPU */
MDRV_CPU_PROGRAM_MAP(sound_readmem,sound_writemem)
MDRV_CPU_ADD(H6280, 32220000/8) /* Custom chip 45; Audio section crystal is 32.220 MHz */
MDRV_CPU_PROGRAM_MAP(sound_map,0)
/* video hardware */
MDRV_SCREEN_ADD("main", RASTER)

View File

@ -145,37 +145,29 @@ static READ8_HANDLER( dsw2_4r )
*
*************************************/
static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_READ(SMH_RAM) /* Work RAM */
AM_RANGE(0x2000, 0x2007) AM_READ(tunhunt_button_r)
AM_RANGE(0x3000, 0x300f) AM_READ(pokey1_r)
AM_RANGE(0x4000, 0x400f) AM_READ(pokey2_r)
AM_RANGE(0x5000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0xfffa, 0xffff) AM_READ(SMH_ROM)
ADDRESS_MAP_END
static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_WRITE(SMH_RAM) AM_BASE(&tunhunt_ram) /* Work RAM */
static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x03ff) AM_RAM AM_BASE(&tunhunt_ram) /* Work RAM */
AM_RANGE(0x1080, 0x10ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x1200, 0x12ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x1400, 0x14ff) AM_WRITE(SMH_RAM)
AM_RANGE(0x1600, 0x160f) AM_WRITE(SMH_RAM) AM_BASE(&paletteram) /* COLRAM (D7-D4 SHADE; D3-D0 COLOR) */
AM_RANGE(0x1800, 0x1800) AM_WRITE(SMH_RAM) /* SHEL0H */
AM_RANGE(0x1a00, 0x1a00) AM_WRITE(SMH_RAM) /* SHEL1H */
AM_RANGE(0x1c00, 0x1c00) AM_WRITE(SMH_RAM) /* MOBJV */
AM_RANGE(0x1600, 0x160f) AM_WRITE(SMH_RAM) AM_BASE(&paletteram) /* COLRAM (D7-D4 SHADE; D3-D0 COLOR) */
AM_RANGE(0x1800, 0x1800) AM_WRITE(SMH_RAM) /* SHEL0H */
AM_RANGE(0x1a00, 0x1a00) AM_WRITE(SMH_RAM) /* SHEL1H */
AM_RANGE(0x1c00, 0x1c00) AM_WRITE(SMH_RAM) /* MOBJV */
AM_RANGE(0x1e00, 0x1eff) AM_WRITE(tunhunt_videoram_w) AM_BASE(&videoram) /* ALPHA */
AM_RANGE(0x2c00, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)
AM_RANGE(0x2000, 0x2000) AM_WRITE(SMH_NOP) /* watchdog */
AM_RANGE(0x2400, 0x2400) AM_WRITE(SMH_NOP) /* INT ACK */
AM_RANGE(0x2000, 0x2000) AM_WRITE(SMH_NOP) /* watchdog */
AM_RANGE(0x2000, 0x2007) AM_READ(tunhunt_button_r)
AM_RANGE(0x2400, 0x2400) AM_WRITE(SMH_NOP) /* INT ACK */
AM_RANGE(0x2800, 0x2800) AM_WRITE(tunhunt_control_w)
AM_RANGE(0x3000, 0x300f) AM_WRITE(pokey1_w)
AM_RANGE(0x4000, 0x400f) AM_WRITE(pokey2_w)
AM_RANGE(0x2c00, 0x2fff) AM_WRITE(SMH_RAM) AM_BASE(&spriteram)
AM_RANGE(0x3000, 0x300f) AM_READWRITE(pokey1_r, pokey1_w)
AM_RANGE(0x4000, 0x400f) AM_READWRITE(pokey2_r, pokey2_w)
AM_RANGE(0x5000, 0x7fff) AM_READ(SMH_ROM)
AM_RANGE(0xfffa, 0xffff) AM_READ(SMH_ROM)
AM_RANGE(0x5000, 0xffff) AM_WRITE(SMH_ROM)
ADDRESS_MAP_END
/*************************************
*
* Port definitions
@ -319,7 +311,7 @@ static MACHINE_DRIVER_START( tunhunt )
/* basic machine hardware */
MDRV_CPU_ADD(M6502,2000000) /* ??? */
MDRV_CPU_PROGRAM_MAP(readmem,writemem)
MDRV_CPU_PROGRAM_MAP(main_map,0)
MDRV_CPU_VBLANK_INT_HACK(irq0_line_hold,2) /* ? probably wrong */
/* video hardware */