From 04d8b6dcdf1deeae4ff6e58c778c4fd7b1b574a6 Mon Sep 17 00:00:00 2001 From: kazblox Date: Mon, 26 Oct 2015 17:03:20 -0400 Subject: [PATCH 1/3] dpcplus - correct ARM speed, fix RAM, add ROM to map according to Darrell Spice Jr's docs this is correct. --- src/devices/bus/vcs/dpcplus.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/devices/bus/vcs/dpcplus.c b/src/devices/bus/vcs/dpcplus.c index 556584c634e..1255408d31b 100644 --- a/src/devices/bus/vcs/dpcplus.c +++ b/src/devices/bus/vcs/dpcplus.c @@ -41,12 +41,13 @@ void a26_rom_dpcplus_device::device_reset() } static ADDRESS_MAP_START( dpcplus_arm7_map, AS_PROGRAM, 32, a26_rom_dpcplus_device ) - AM_RANGE(0x00000000, 0x00003fff) AM_RAM + //AM_RANGE(0x00000000, 0x00007fff) AM_ROM AM_REGION("flash", 0) + AM_RANGE(0x00000000, 0x00007fff) AM_ROM // 32k + AM_RANGE(0x00000000, 0x00001fff) AM_RAM // 8k ADDRESS_MAP_END - static MACHINE_CONFIG_FRAGMENT( a26_dpcplus ) - MCFG_CPU_ADD("arm", ARM7, 20000000) // ? type ? speed + MCFG_CPU_ADD("arm", ARM7, 70000000) // ? type MCFG_CPU_PROGRAM_MAP(dpcplus_arm7_map) MACHINE_CONFIG_END From 5d089bd14bd4b3feec9c88e7b8563d803def5f3b Mon Sep 17 00:00:00 2001 From: kazblox Date: Mon, 26 Oct 2015 18:24:49 -0400 Subject: [PATCH 2/3] document map in notes; improve preliminary memmap --- src/devices/bus/vcs/dpcplus.c | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/devices/bus/vcs/dpcplus.c b/src/devices/bus/vcs/dpcplus.c index 1255408d31b..0ba33e7ed3f 100644 --- a/src/devices/bus/vcs/dpcplus.c +++ b/src/devices/bus/vcs/dpcplus.c @@ -4,7 +4,23 @@ Atari 2600 cart with DPC+ -the DPC+ adds an ARM CPU amongst other things +the DPC+ adds an ARM CPU amongst other things (display improvements, etc.) + +map (according to a blogpost on atariage): + NOTE: All banks are accessible via $F000 + + * ARM RAM mapped at $40000000 in this area + $0000-$0BFF: DPC+ driver (not accessible by 2600 itself) + $0C00-$1BFF: Bank 0 + $1C00-$2BFF: Bank 1 + $2C00-$3BFF: Bank 2 + $3C00-$4BFF: Bank 3 + $4C00-$5BFF: Bank 4 + $5C00-$6BFF: Bank 5 + * ARM RAM mapped at $40000C00 in this area + $6C00-$7BFF: Display Data (indirect access) + * ARM RAM mapped at $40001C00 in this area + $7C00-$7FFF: Frequency Data (not accessible by 2600 itself) ***************************************************************************/ @@ -41,13 +57,13 @@ void a26_rom_dpcplus_device::device_reset() } static ADDRESS_MAP_START( dpcplus_arm7_map, AS_PROGRAM, 32, a26_rom_dpcplus_device ) - //AM_RANGE(0x00000000, 0x00007fff) AM_ROM AM_REGION("flash", 0) - AM_RANGE(0x00000000, 0x00007fff) AM_ROM // 32k - AM_RANGE(0x00000000, 0x00001fff) AM_RAM // 8k + // todo: implement all this correctly + AM_RANGE(0x00000000, 0x00007fff) AM_ROM // flash, 32k + AM_RANGE(0x40000000, 0x40001fff) AM_RAM // sram, 8k ADDRESS_MAP_END static MACHINE_CONFIG_FRAGMENT( a26_dpcplus ) - MCFG_CPU_ADD("arm", ARM7, 70000000) // ? type + MCFG_CPU_ADD("arm", ARM7, 70000000) // correct type? MCFG_CPU_PROGRAM_MAP(dpcplus_arm7_map) MACHINE_CONFIG_END From 855b967d5ac68d1c685e8afcd5660a7a892b3cd8 Mon Sep 17 00:00:00 2001 From: kazblox Date: Tue, 27 Oct 2015 08:01:15 -0400 Subject: [PATCH 3/3] commented out AM_ROM entry for now --- src/devices/bus/vcs/dpcplus.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/devices/bus/vcs/dpcplus.c b/src/devices/bus/vcs/dpcplus.c index 0ba33e7ed3f..64c274e31c3 100644 --- a/src/devices/bus/vcs/dpcplus.c +++ b/src/devices/bus/vcs/dpcplus.c @@ -58,7 +58,7 @@ void a26_rom_dpcplus_device::device_reset() static ADDRESS_MAP_START( dpcplus_arm7_map, AS_PROGRAM, 32, a26_rom_dpcplus_device ) // todo: implement all this correctly - AM_RANGE(0x00000000, 0x00007fff) AM_ROM // flash, 32k + //AM_RANGE(0x00000000, 0x00007fff) AM_ROM // flash, 32k AM_RANGE(0x40000000, 0x40001fff) AM_RAM // sram, 8k ADDRESS_MAP_END