Memory map merge for beezer.c, bishi.c, and bladestl.c

This commit is contained in:
Andrew Gardner 2008-07-28 04:48:41 +00:00
parent 6e13a53ff7
commit 867d51a2bc
3 changed files with 51 additions and 92 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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)