From 4b6e1f2a0c68fa106b4959423265146d7984e35a Mon Sep 17 00:00:00 2001 From: smf- Date: Wed, 12 Jul 2017 10:10:56 +0100 Subject: fix upd7801 & upd78c05 internal ram size & removed ram from memory maps. (nw) Fixes fp1100 regression in: SHA-1: 907115ed06c57c22fe4df154a68e07f73d9578f6 * 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. --- src/devices/bus/centronics/epson_ex800.cpp | 1 - src/devices/bus/centronics/epson_lx800.cpp | 1 - src/devices/bus/centronics/epson_lx810l.cpp | 1 - src/devices/cpu/upd7810/upd7810.cpp | 14 +++++++++----- src/mame/drivers/akaiax80.cpp | 1 - src/mame/drivers/fitfight.cpp | 1 - src/mame/drivers/fp1100.cpp | 1 - src/mame/drivers/gmaster.cpp | 1 - src/mame/drivers/homedata.cpp | 2 -- src/mame/drivers/metro.cpp | 1 - src/mame/drivers/mps1230.cpp | 1 - 11 files changed, 9 insertions(+), 16 deletions(-) diff --git a/src/devices/bus/centronics/epson_ex800.cpp b/src/devices/bus/centronics/epson_ex800.cpp index 45dd6588e55..0899c39fb47 100644 --- a/src/devices/bus/centronics/epson_ex800.cpp +++ b/src/devices/bus/centronics/epson_ex800.cpp @@ -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 diff --git a/src/devices/bus/centronics/epson_lx800.cpp b/src/devices/bus/centronics/epson_lx800.cpp index cfe0263172e..8fc5168bbb5 100644 --- a/src/devices/bus/centronics/epson_lx800.cpp +++ b/src/devices/bus/centronics/epson_lx800.cpp @@ -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 diff --git a/src/devices/bus/centronics/epson_lx810l.cpp b/src/devices/bus/centronics/epson_lx810l.cpp index 3f426f6021f..ae44e4a7d57 100644 --- a/src/devices/bus/centronics/epson_lx810l.cpp +++ b/src/devices/bus/centronics/epson_lx810l.cpp @@ -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 diff --git a/src/devices/cpu/upd7810/upd7810.cpp b/src/devices/cpu/upd7810/upd7810.cpp index e22050fa1f3..67b6818ec72 100644 --- a/src/devices/cpu/upd7810/upd7810.cpp +++ b/src/devices/cpu/upd7810/upd7810.cpp @@ -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)) { } diff --git a/src/mame/drivers/akaiax80.cpp b/src/mame/drivers/akaiax80.cpp index 0cb00e9148d..f5a12d40c23 100644 --- a/src/mame/drivers/akaiax80.cpp +++ b/src/mame/drivers/akaiax80.cpp @@ -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 ) diff --git a/src/mame/drivers/fitfight.cpp b/src/mame/drivers/fitfight.cpp index 541dc8dfb66..7eb816fdd4c 100644 --- a/src/mame/drivers/fitfight.cpp +++ b/src/mame/drivers/fitfight.cpp @@ -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) diff --git a/src/mame/drivers/fp1100.cpp b/src/mame/drivers/fp1100.cpp index 968f0cca55e..4dec3a64009 100644 --- a/src/mame/drivers/fp1100.cpp +++ b/src/mame/drivers/fp1100.cpp @@ -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 /* diff --git a/src/mame/drivers/gmaster.cpp b/src/mame/drivers/gmaster.cpp index b98decd6318..23c568525b5 100644 --- a/src/mame/drivers/gmaster.cpp +++ b/src/mame/drivers/gmaster.cpp @@ -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 diff --git a/src/mame/drivers/homedata.cpp b/src/mame/drivers/homedata.cpp index c1bc171ae4e..7f9e15ea41d 100644 --- a/src/mame/drivers/homedata.cpp +++ b/src/mame/drivers/homedata.cpp @@ -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 /**************************************************************************/ diff --git a/src/mame/drivers/metro.cpp b/src/mame/drivers/metro.cpp index fb9fe77f03e..f7009880e05 100644 --- a/src/mame/drivers/metro.cpp +++ b/src/mame/drivers/metro.cpp @@ -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 /*****************/ diff --git a/src/mame/drivers/mps1230.cpp b/src/mame/drivers/mps1230.cpp index 99cdff6ff25..e80530b3643 100644 --- a/src/mame/drivers/mps1230.cpp +++ b/src/mame/drivers/mps1230.cpp @@ -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 /*************************************************************************** -- cgit v1.2.3