mirror of
https://github.com/holub/mame
synced 2025-04-19 15:11:37 +03:00
fix upd7801 & upd78c05 internal ram size & removed ram from memory maps. (nw)
Fixes fp1100 regression in:
SHA-1: 907115ed06
* create c-chip device with correct CPU type in it and a bunch of notes (pinout etc.)
create a uPD78C11 derived CPU type for this purpose, with internal ROM map
use internal ROM map for other uPD78C10 chips as it's always present.
add missing NO_DUMP definitions to various games using C-Chips with correct size etc.
pump megablast through the device code as really all it ever does is bank the c-chip window and test the RAM.
This commit is contained in:
parent
b2d0022a32
commit
4b6e1f2a0c
@ -207,7 +207,6 @@ static ADDRESS_MAP_START( ex800_mem, AS_PROGRAM, 8, epson_ex800_device )
|
||||
AM_RANGE(0xf000, 0xf001) AM_MIRROR(0x07fc) AM_READ(gate7a_r)
|
||||
AM_RANGE(0xf002, 0xf003) AM_MIRROR(0x07fc) AM_WRITE(gate7a_w)
|
||||
AM_RANGE(0xf800, 0xfeff) AM_NOP /* not connected */
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM /* internal CPU RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -58,7 +58,6 @@ static ADDRESS_MAP_START( lx800_mem, AS_PROGRAM, 8, epson_lx800_device )
|
||||
AM_RANGE(0xa000, 0xbfff) AM_NOP /* not used */
|
||||
AM_RANGE(0xc000, 0xc007) AM_MIRROR(0x1ff8) AM_DEVREADWRITE("ic3b", e05a03_device, read, write)
|
||||
AM_RANGE(0xe000, 0xfeff) AM_NOP /* not used */
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM /* internal CPU RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -101,7 +101,6 @@ static ADDRESS_MAP_START( lx810l_mem, AS_PROGRAM, 8, epson_lx810l_device )
|
||||
AM_RANGE(0xa000, 0xbfff) AM_READWRITE(fakemem_r, fakemem_w) /* fake memory, write one, set all */
|
||||
AM_RANGE(0xc000, 0xc00f) AM_MIRROR(0x1ff0) AM_DEVREADWRITE("e05a30", e05a30_device, read, write)
|
||||
AM_RANGE(0xe000, 0xfeff) AM_NOP /* not used */
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM /* internal CPU RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -383,7 +383,11 @@ DEFINE_DEVICE_TYPE(UPD78C05, upd78c05_device, "upd78c05", "uPD78C05")
|
||||
DEFINE_DEVICE_TYPE(UPD78C06, upd78c06_device, "upd78c06", "uPD78C06")
|
||||
|
||||
|
||||
static ADDRESS_MAP_START( upd_internal_map, AS_PROGRAM, 8, upd7810_device )
|
||||
static ADDRESS_MAP_START( upd_internal_128_ram_map, AS_PROGRAM, 8, upd7810_device )
|
||||
AM_RANGE(0xff80, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( upd_internal_256_ram_map, AS_PROGRAM, 8, upd7810_device )
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
@ -430,7 +434,7 @@ void upd7810_device::configure_ops()
|
||||
}
|
||||
|
||||
upd7810_device::upd7810_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: upd7810_device(mconfig, UPD7810, tag, owner, clock, ADDRESS_MAP_NAME(upd_internal_map))
|
||||
: upd7810_device(mconfig, UPD7810, tag, owner, clock, ADDRESS_MAP_NAME(upd_internal_256_ram_map))
|
||||
{
|
||||
}
|
||||
|
||||
@ -448,7 +452,7 @@ void upd7807_device::configure_ops()
|
||||
|
||||
|
||||
upd7807_device::upd7807_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: upd7810_device(mconfig, UPD7807, tag, owner, clock, ADDRESS_MAP_NAME(upd_internal_map))
|
||||
: upd7810_device(mconfig, UPD7807, tag, owner, clock, ADDRESS_MAP_NAME(upd_internal_256_ram_map))
|
||||
{
|
||||
}
|
||||
|
||||
@ -465,7 +469,7 @@ void upd7801_device::configure_ops()
|
||||
}
|
||||
|
||||
upd7801_device::upd7801_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
|
||||
: upd7810_device(mconfig, UPD7801, tag, owner, clock, ADDRESS_MAP_NAME(upd_internal_map))
|
||||
: upd7810_device(mconfig, UPD7801, tag, owner, clock, ADDRESS_MAP_NAME(upd_internal_128_ram_map))
|
||||
{
|
||||
}
|
||||
|
||||
@ -487,7 +491,7 @@ upd78c05_device::upd78c05_device(const machine_config &mconfig, const char *tag,
|
||||
}
|
||||
|
||||
upd78c05_device::upd78c05_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock)
|
||||
: upd7810_device(mconfig, type, tag, owner, clock, ADDRESS_MAP_NAME(upd_internal_map))
|
||||
: upd7810_device(mconfig, type, tag, owner, clock, ADDRESS_MAP_NAME(upd_internal_128_ram_map))
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,6 @@ static ADDRESS_MAP_START( ax80_map, AS_PROGRAM, 8, ax80_state )
|
||||
AM_RANGE(0x1070, 0x1073) AM_DEVREADWRITE(PPI1_TAG, i8255_device, read, write)
|
||||
AM_RANGE(0x4000, 0x5fff) AM_ROM AM_REGION("maincpu", 0x1000) // external program EPROM
|
||||
AM_RANGE(0xc000, 0xc7ff) AM_RAM
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static MACHINE_CONFIG_START( ax80 )
|
||||
|
@ -221,7 +221,6 @@ static ADDRESS_MAP_START( snd_mem, AS_PROGRAM, 8, fitfight_state )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") /* ??? External ROM */
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
READ8_MEMBER(fitfight_state::snd_porta_r)
|
||||
|
@ -296,7 +296,6 @@ static ADDRESS_MAP_START(fp1100_slave_map, AS_PROGRAM, 8, fp1100_state )
|
||||
//AM_RANGE(0xec00, 0xefff) "Acknowledge of INT0" doesn't seem to be used
|
||||
AM_RANGE(0xf000, 0xf3ff) AM_WRITE(colour_control_w)
|
||||
AM_RANGE(0xf400, 0xff7f) AM_ROM AM_REGION("sub_ipl",0x2400)
|
||||
AM_RANGE(0xff80, 0xffff) AM_RAM /* upd7801 internal RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*
|
||||
|
@ -239,7 +239,6 @@ static ADDRESS_MAP_START( gmaster_mem, AS_PROGRAM, 8, gmaster_state )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM
|
||||
AM_RANGE(0x4000, 0x7fff) AM_READWRITE(gmaster_io_r, gmaster_io_w)
|
||||
//AM_RANGE(0x8000, 0xfeff) // mapped by the cartslot
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
@ -585,7 +585,6 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( reikaids_upd7807_map, AS_PROGRAM, 8, homedata_state )
|
||||
AM_RANGE(0x0000, 0xfeff) AM_ROMBANK("bank2") /* External ROM (Banked) */
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM /* Internal RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/**************************************************************************/
|
||||
@ -613,7 +612,6 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( pteacher_upd7807_map, AS_PROGRAM, 8, homedata_state )
|
||||
AM_RANGE(0x0000, 0x0000) AM_WRITE(pteacher_snd_answer_w)
|
||||
AM_RANGE(0x0000, 0xfeff) AM_ROMBANK("bank2") /* External ROM (Banked) */
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM /* Internal RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/**************************************************************************/
|
||||
|
@ -706,7 +706,6 @@ static ADDRESS_MAP_START( metro_sound_map, AS_PROGRAM, 8, metro_state )
|
||||
AM_RANGE(0x0000, 0x3fff) AM_ROM /* External ROM */
|
||||
AM_RANGE(0x4000, 0x7fff) AM_ROMBANK("bank1") /* External ROM (Banked) */
|
||||
AM_RANGE(0x8000, 0x87ff) AM_RAM /* External RAM */
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM /* Internal RAM */
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/*****************/
|
||||
|
@ -122,7 +122,6 @@ void mps1230_state::machine_reset()
|
||||
static ADDRESS_MAP_START( mps1230_map, AS_PROGRAM, 8, mps1230_state )
|
||||
AM_RANGE(0x0000, 0x7fff) AM_ROM AM_REGION("maincpu", 0)
|
||||
AM_RANGE(0xc000, 0xdfff) AM_RAM // as per the service manual
|
||||
AM_RANGE(0xff00, 0xffff) AM_RAM // tested at PC=77, then used for the 7810's stack
|
||||
ADDRESS_MAP_END
|
||||
|
||||
/***************************************************************************
|
||||
|
Loading…
Reference in New Issue
Block a user