From 867d51a2bc467106df98c67e22f52505c08e047a Mon Sep 17 00:00:00 2001 From: Andrew Gardner Date: Mon, 28 Jul 2008 04:48:41 +0000 Subject: [PATCH] Memory map merge for beezer.c, bishi.c, and bladestl.c --- src/mame/drivers/beezer.c | 36 ++++++------------- src/mame/drivers/bishi.c | 35 +++++++----------- src/mame/drivers/bladestl.c | 72 ++++++++++++++----------------------- 3 files changed, 51 insertions(+), 92 deletions(-) diff --git a/src/mame/drivers/beezer.c b/src/mame/drivers/beezer.c index 9cbf54afcc1..34ea9b26c07 100644 --- a/src/mame/drivers/beezer.c +++ b/src/mame/drivers/beezer.c @@ -14,35 +14,21 @@ #include "includes/beezer.h" -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_READ(SMH_RAM) - AM_RANGE(0xc000, 0xcfff) AM_READ(SMH_BANK1) - AM_RANGE(0xd000, 0xffff) AM_READ(SMH_ROM) +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0xbfff) AM_RAM AM_BASE(&videoram) AM_SIZE(&videoram_size) + AM_RANGE(0xc000, 0xcfff) AM_ROMBANK(1) + AM_RANGE(0xd000, 0xffff) AM_ROM AM_WRITE(beezer_bankswitch_w) ADDRESS_MAP_END -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0xbfff) AM_WRITE(SMH_RAM) AM_BASE(&videoram) AM_SIZE(&videoram_size) - AM_RANGE(0xc000, 0xcfff) AM_WRITE(SMH_BANK1) - AM_RANGE(0xd000, 0xffff) AM_WRITE(beezer_bankswitch_w) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(SMH_RAM) -// AM_RANGE(0x1000, 0x10ff) AM_READ(beezer_6840_r) - AM_RANGE(0x1800, 0x18ff) AM_READ(via_1_r) - AM_RANGE(0xe000, 0xffff) AM_READ(SMH_ROM) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM) -// AM_RANGE(0x1000, 0x10ff) AM_WRITE(beezer_6840_w) - AM_RANGE(0x1800, 0x18ff) AM_WRITE(via_1_w) +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x07ff) AM_RAM +// AM_RANGE(0x1000, 0x10ff) AM_READWRITE(beezer_6840_r, beezer_6840_w) + AM_RANGE(0x1800, 0x18ff) AM_READWRITE(via_1_r, via_1_w) // AM_RANGE(0x8000, 0x9fff) AM_WRITE(beezer_dac_w) - AM_RANGE(0xe000, 0xffff) AM_WRITE(SMH_ROM) + AM_RANGE(0xe000, 0xffff) AM_ROM ADDRESS_MAP_END - static INPUT_PORTS_START( beezer ) PORT_START_TAG("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_TILT ) @@ -90,11 +76,11 @@ static MACHINE_DRIVER_START( beezer ) /* basic machine hardware */ MDRV_CPU_ADD("main", M6809, 1000000) /* 1 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) + MDRV_CPU_PROGRAM_MAP(main_map, 0) MDRV_CPU_VBLANK_INT_HACK(beezer_interrupt,128) MDRV_CPU_ADD("audio", M6809, 1000000) /* 1 MHz */ - MDRV_CPU_PROGRAM_MAP(readmem_sound,writemem_sound) + MDRV_CPU_PROGRAM_MAP(sound_map, 0) /* video hardware */ MDRV_SCREEN_ADD("main", RASTER) diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c index bf299d31559..fecb1c5c1e2 100644 --- a/src/mame/drivers/bishi.c +++ b/src/mame/drivers/bishi.c @@ -190,33 +190,24 @@ static READ16_HANDLER( bishi_K056832_rom_r ) return K056832_bishi_rom_word_r(machine, ouroffs, mem_mask); } -static ADDRESS_MAP_START( readmem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_READ(SMH_ROM) - AM_RANGE(0x400000, 0x407fff) AM_READ(SMH_RAM) // work RAM - AM_RANGE(0x800000, 0x800001) AM_READ(control_r) +static ADDRESS_MAP_START( main_map, ADDRESS_SPACE_PROGRAM, 16 ) + AM_RANGE(0x000000, 0x0fffff) AM_ROM + AM_RANGE(0x400000, 0x407fff) AM_RAM // Work RAM + AM_RANGE(0x800000, 0x800001) AM_READWRITE(control_r, control_w) AM_RANGE(0x800004, 0x800005) AM_READ(dipsw_r) AM_RANGE(0x800006, 0x800007) AM_READ(player1_r) AM_RANGE(0x800008, 0x800009) AM_READ(player2_r) - AM_RANGE(0x880000, 0x880003) AM_READ(bishi_sound_r) - AM_RANGE(0xa00000, 0xa01fff) AM_READ(K056832_ram_word_r) // VRAM - AM_RANGE(0xb00000, 0xb03fff) AM_READ(SMH_RAM) - AM_RANGE(0xb04000, 0xb047ff) AM_READ(bishi_mirror_r) // bug in the ram/rom test? - AM_RANGE(0xc00000, 0xc01fff) AM_READ(bishi_K056832_rom_r) -ADDRESS_MAP_END - -static ADDRESS_MAP_START( writemem, ADDRESS_SPACE_PROGRAM, 16 ) - AM_RANGE(0x000000, 0x0fffff) AM_WRITE(SMH_ROM) - AM_RANGE(0x400000, 0x407fff) AM_WRITE(SMH_RAM) - AM_RANGE(0x800000, 0x800001) AM_WRITE(control_w) AM_RANGE(0x810000, 0x810003) AM_WRITE(control2_w) // bank switch for K056832 character ROM test - AM_RANGE(0x820000, 0x820001) AM_WRITE(SMH_NOP) // lamps (see lamp test in service menu) + AM_RANGE(0x820000, 0x820001) AM_WRITE(SMH_NOP) // lamps (see lamp test in service menu) AM_RANGE(0x830000, 0x83003f) AM_WRITE(K056832_word_w) AM_RANGE(0x840000, 0x840007) AM_WRITE(K056832_b_word_w) // VSCCS - AM_RANGE(0x850000, 0x85001f) AM_WRITE(K054338_word_w) // CLTC - AM_RANGE(0x870000, 0x8700ff) AM_WRITE(K055555_word_w) // PCU2 - AM_RANGE(0x880000, 0x880003) AM_WRITE(bishi_sound_w) - AM_RANGE(0xa00000, 0xa01fff) AM_WRITE(K056832_ram_word_w) /* Graphic planes */ - AM_RANGE(0xb00000, 0xb03fff) AM_WRITE(paletteram16_xbgr_word_be_w) AM_BASE(&paletteram16) + AM_RANGE(0x850000, 0x85001f) AM_WRITE(K054338_word_w) // CLTC + AM_RANGE(0x870000, 0x8700ff) AM_WRITE(K055555_word_w) // PCU2 + AM_RANGE(0x880000, 0x880003) AM_READWRITE(bishi_sound_r, bishi_sound_w) + AM_RANGE(0xa00000, 0xa01fff) AM_READWRITE(K056832_ram_word_r, K056832_ram_word_w) // Graphic planes + AM_RANGE(0xb00000, 0xb03fff) AM_RAM_WRITE(paletteram16_xbgr_word_be_w) AM_BASE(&paletteram16) + AM_RANGE(0xb04000, 0xb047ff) AM_READ(bishi_mirror_r) // bug in the ram/rom test? + AM_RANGE(0xc00000, 0xc01fff) AM_READ(bishi_K056832_rom_r) ADDRESS_MAP_END static INPUT_PORTS_START( bishi ) @@ -339,7 +330,7 @@ static MACHINE_DRIVER_START( bishi ) /* basic machine hardware */ MDRV_CPU_ADD("main", M68000, CPU_CLOCK) /* 12MHz (24MHz OSC / 2 ) */ - MDRV_CPU_PROGRAM_MAP(readmem,writemem) + MDRV_CPU_PROGRAM_MAP(main_map, 0) MDRV_CPU_VBLANK_INT_HACK(bishi_interrupt, 2) MDRV_MACHINE_START(bishi) diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c index cb0adb038fb..07156094efe 100644 --- a/src/mame/drivers/bladestl.c +++ b/src/mame/drivers/bladestl.c @@ -104,55 +104,37 @@ static WRITE8_HANDLER( bladestl_speech_ctrl_w ){ upd7759_start_w(0, data & 2); } -static ADDRESS_MAP_START( bladestl_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, 0x245f) AM_READ(SMH_RAM) /* Palette */ - AM_RANGE(0x2e01, 0x2e01) AM_READ_PORT("P1") /* 1P controls */ - AM_RANGE(0x2e02, 0x2e02) AM_READ_PORT("P2") /* 2P controls */ - AM_RANGE(0x2e03, 0x2e03) AM_READ_PORT("DSW2") /* DISPW #2 */ - AM_RANGE(0x2e40, 0x2e40) AM_READ_PORT("DSW1") /* DIPSW #1 */ - AM_RANGE(0x2e00, 0x2e00) AM_READ_PORT("COINSW") /* DIPSW #3, coinsw, startsw */ - AM_RANGE(0x2f00, 0x2f03) AM_READ(trackball_r) /* Trackballs */ - AM_RANGE(0x2f80, 0x2f9f) AM_READ(K051733_r) /* Protection: 051733 */ - AM_RANGE(0x4000, 0x5fff) AM_READ(SMH_RAM) /* Work RAM */ - AM_RANGE(0x6000, 0x7fff) AM_READ(SMH_BANK1) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bladestl_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, 0x245f) AM_WRITE(SMH_RAM) AM_BASE(&paletteram)/* palette */ - AM_RANGE(0x2600, 0x2607) AM_WRITE(K007342_vreg_w) /* Video Registers */ - AM_RANGE(0x2e80, 0x2e80) AM_WRITE(bladestl_sh_irqtrigger_w)/* cause interrupt on audio CPU */ +static ADDRESS_MAP_START( main_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, 0x245f) AM_RAM AM_BASE(&paletteram) /* palette */ + AM_RANGE(0x2600, 0x2607) AM_WRITE(K007342_vreg_w) /* Video Registers */ + AM_RANGE(0x2e00, 0x2e00) AM_READ_PORT("COINSW") /* DIPSW #3, coinsw, startsw */ + AM_RANGE(0x2e01, 0x2e01) AM_READ_PORT("P1") /* 1P controls */ + AM_RANGE(0x2e02, 0x2e02) AM_READ_PORT("P2") /* 2P controls */ + AM_RANGE(0x2e03, 0x2e03) AM_READ_PORT("DSW2") /* DISPW #2 */ + AM_RANGE(0x2e40, 0x2e40) AM_READ_PORT("DSW1") /* DIPSW #1 */ + AM_RANGE(0x2e80, 0x2e80) AM_WRITE(bladestl_sh_irqtrigger_w) /* cause interrupt on audio CPU */ AM_RANGE(0x2ec0, 0x2ec0) AM_WRITE(watchdog_reset_w) /* watchdog reset */ + AM_RANGE(0x2f00, 0x2f03) AM_READ(trackball_r) /* Trackballs */ AM_RANGE(0x2f40, 0x2f40) AM_WRITE(bladestl_bankswitch_w) /* bankswitch control */ - AM_RANGE(0x2f80, 0x2f9f) AM_WRITE(K051733_w) /* Protection: 051733 */ + AM_RANGE(0x2f80, 0x2f9f) AM_READWRITE(K051733_r, K051733_w) /* Protection: 051733 */ AM_RANGE(0x2fc0, 0x2fc0) AM_WRITE(SMH_NOP) /* ??? */ - AM_RANGE(0x4000, 0x5fff) AM_WRITE(SMH_RAM) /* Work RAM */ - AM_RANGE(0x6000, 0x7fff) AM_WRITE(SMH_RAM) /* banked ROM */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) /* ROM */ + AM_RANGE(0x4000, 0x5fff) AM_RAM /* Work RAM */ + AM_RANGE(0x6000, 0x7fff) AM_READWRITE(SMH_BANK1, SMH_RAM) /* banked ROM */ + AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END -static ADDRESS_MAP_START( bladestl_readmem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_READ(SMH_RAM) /* RAM */ - AM_RANGE(0x1000, 0x1000) AM_READ(YM2203_status_port_0_r) /* YM2203 */ - AM_RANGE(0x1001, 0x1001) AM_READ(YM2203_read_port_0_r) /* YM2203 */ - AM_RANGE(0x4000, 0x4000) AM_READ(upd7759_0_busy_r) /* UPD7759 */ - AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) /* soundlatch_r */ - AM_RANGE(0x8000, 0xffff) AM_READ(SMH_ROM) /* ROM */ -ADDRESS_MAP_END - -static ADDRESS_MAP_START( bladestl_writemem_sound, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_WRITE(SMH_RAM) /* RAM */ - AM_RANGE(0x1000, 0x1000) AM_WRITE(YM2203_control_port_0_w)/* YM2203 */ - AM_RANGE(0x1001, 0x1001) AM_WRITE(YM2203_write_port_0_w) /* YM2203 */ +static ADDRESS_MAP_START( sound_map, ADDRESS_SPACE_PROGRAM, 8 ) + AM_RANGE(0x0000, 0x07ff) AM_RAM + AM_RANGE(0x1000, 0x1000) AM_READWRITE(YM2203_status_port_0_r, YM2203_control_port_0_w) /* YM2203 */ + AM_RANGE(0x1001, 0x1001) AM_READWRITE(YM2203_read_port_0_r, YM2203_write_port_0_w) /* YM2203 */ AM_RANGE(0x3000, 0x3000) AM_WRITE(bladestl_speech_ctrl_w) /* UPD7759 */ - AM_RANGE(0x5000, 0x5000) AM_WRITE(SMH_NOP) /* ??? */ - AM_RANGE(0x8000, 0xffff) AM_WRITE(SMH_ROM) /* ROM */ + AM_RANGE(0x4000, 0x4000) AM_READ(upd7759_0_busy_r) /* UPD7759 */ + AM_RANGE(0x5000, 0x5000) AM_WRITE(SMH_NOP) /* ??? */ + AM_RANGE(0x6000, 0x6000) AM_READ(soundlatch_r) /* soundlatch_r */ + AM_RANGE(0x8000, 0xffff) AM_ROM ADDRESS_MAP_END /*************************************************************************** @@ -339,11 +321,11 @@ static MACHINE_DRIVER_START( bladestl ) /* basic machine hardware */ MDRV_CPU_ADD("main", HD6309, 24000000/2) /* 24MHz/2 (?) */ - MDRV_CPU_PROGRAM_MAP(bladestl_readmem,bladestl_writemem) + MDRV_CPU_PROGRAM_MAP(main_map, 0) MDRV_CPU_VBLANK_INT_HACK(bladestl_interrupt,2) /* (1 IRQ + 1 NMI) */ MDRV_CPU_ADD("audio", M6809, 2000000) - MDRV_CPU_PROGRAM_MAP(bladestl_readmem_sound,bladestl_writemem_sound) + MDRV_CPU_PROGRAM_MAP(sound_map, 0) MDRV_INTERLEAVE(10)