mirror of
https://github.com/holub/mame
synced 2025-04-26 10:13:37 +03:00
Memory map merge for beezer.c, bishi.c, and bladestl.c
This commit is contained in:
parent
6e13a53ff7
commit
867d51a2bc
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user