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:
smf- 2017-07-12 10:10:56 +01:00
parent b2d0022a32
commit 4b6e1f2a0c
11 changed files with 9 additions and 16 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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
/*

View File

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

View File

@ -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
/**************************************************************************/

View File

@ -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
/*****************/

View File

@ -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
/***************************************************************************