From 27e2aac0fe6581d9aa309d9dd69d5c9f2886517e Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Wed, 27 May 2009 14:18:44 +0000 Subject: [PATCH] Added internal memory maps and internal clock divider to the MB88xx CPUs. Removed now-redundant memory maps from drivers and removed explicitly-specified clock dividers. --- src/emu/cpu/mb88xx/mb88xx.c | 40 ++++++++++++++++++++++++++++++++++++- src/emu/sound/namco52.c | 12 +---------- src/mame/audio/namco54.c | 12 +---------- src/mame/drivers/kangaroo.c | 15 +------------- src/mame/machine/namco50.c | 12 +---------- src/mame/machine/namco51.c | 12 +---------- src/mame/machine/namco53.c | 12 +---------- 7 files changed, 45 insertions(+), 70 deletions(-) diff --git a/src/emu/cpu/mb88xx/mb88xx.c b/src/emu/cpu/mb88xx/mb88xx.c index 50bc8a15d34..1ba47322dff 100644 --- a/src/emu/cpu/mb88xx/mb88xx.c +++ b/src/emu/cpu/mb88xx/mb88xx.c @@ -744,6 +744,26 @@ static CPU_EXECUTE( mb88 ) return cycles - cpustate->icount; } +/*************************************************************************** + ADDRESS MAPS +***************************************************************************/ + +static ADDRESS_MAP_START(program_10bit, ADDRESS_SPACE_PROGRAM, 8) + AM_RANGE(0x000, 0x3ff) AM_ROM +ADDRESS_MAP_END + +static ADDRESS_MAP_START(program_11bit, ADDRESS_SPACE_PROGRAM, 8) + AM_RANGE(0x000, 0x7ff) AM_ROM +ADDRESS_MAP_END + +static ADDRESS_MAP_START(data_6bit, ADDRESS_SPACE_DATA, 8) + AM_RANGE(0x00, 0x3f) AM_RAM +ADDRESS_MAP_END + +static ADDRESS_MAP_START(data_7bit, ADDRESS_SPACE_DATA, 8) + AM_RANGE(0x00, 0x7f) AM_RAM +ADDRESS_MAP_END + /*************************************************************************** INFORMATION SETTERS ***************************************************************************/ @@ -799,7 +819,7 @@ CPU_GET_INFO( mb88 ) case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break; case CPUINFO_INT_ENDIANNESS: info->i = ENDIANNESS_BIG; break; case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break; - case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break; + case CPUINFO_INT_CLOCK_DIVIDER: info->i = 6; break; case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 1; break; case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 2; break; case CPUINFO_INT_MIN_CYCLES: info->i = 1; break; @@ -849,6 +869,8 @@ CPU_GET_INFO( mb88 ) case CPUINFO_FCT_BURN: info->burn = NULL; break; case CPUINFO_FCT_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(mb88); break; case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cpustate->icount; break; + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = ADDRESS_MAP_NAME(program_11bit); break; + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA: info->internal_map8 = ADDRESS_MAP_NAME(data_7bit); break; /* --- the following bits of info are returned as NULL-terminated strings --- */ case CPUINFO_STR_NAME: strcpy(info->s, "MB88xx"); break; @@ -898,6 +920,10 @@ CPU_GET_INFO( mb8841 ) case CPUINFO_INT_ADDRBUS_WIDTH_PROGRAM: info->i = 11; break; case CPUINFO_INT_ADDRBUS_WIDTH_DATA: info->i = 7; break; + /* --- the following bits of info are returned as pointers --- */ + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = ADDRESS_MAP_NAME(program_11bit); break; + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA: info->internal_map8 = ADDRESS_MAP_NAME(data_7bit); break; + /* --- the following bits of info are returned as NULL-terminated strings --- */ case CPUINFO_STR_NAME: strcpy(info->s, "MB8841"); break; @@ -913,6 +939,10 @@ CPU_GET_INFO( mb8842 ) case CPUINFO_INT_ADDRBUS_WIDTH_PROGRAM: info->i = 11; break; case CPUINFO_INT_ADDRBUS_WIDTH_DATA: info->i = 7; break; + /* --- the following bits of info are returned as pointers --- */ + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = ADDRESS_MAP_NAME(program_11bit); break; + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA: info->internal_map8 = ADDRESS_MAP_NAME(data_7bit); break; + /* --- the following bits of info are returned as NULL-terminated strings --- */ case CPUINFO_STR_NAME: strcpy(info->s, "MB8842"); break; @@ -928,6 +958,10 @@ CPU_GET_INFO( mb8843 ) case CPUINFO_INT_ADDRBUS_WIDTH_PROGRAM: info->i = 10; break; case CPUINFO_INT_ADDRBUS_WIDTH_DATA: info->i = 6; break; + /* --- the following bits of info are returned as pointers --- */ + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = ADDRESS_MAP_NAME(program_10bit); break; + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA: info->internal_map8 = ADDRESS_MAP_NAME(data_6bit); break; + /* --- the following bits of info are returned as NULL-terminated strings --- */ case CPUINFO_STR_NAME: strcpy(info->s, "MB8843"); break; @@ -943,6 +977,10 @@ CPU_GET_INFO( mb8844 ) case CPUINFO_INT_ADDRBUS_WIDTH_PROGRAM: info->i = 10; break; case CPUINFO_INT_ADDRBUS_WIDTH_DATA: info->i = 6; break; + /* --- the following bits of info are returned as pointers --- */ + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_PROGRAM: info->internal_map8 = ADDRESS_MAP_NAME(program_10bit); break; + case CPUINFO_PTR_INTERNAL_MEMORY_MAP_DATA: info->internal_map8 = ADDRESS_MAP_NAME(data_6bit); break; + /* --- the following bits of info are returned as NULL-terminated strings --- */ case CPUINFO_STR_NAME: strcpy(info->s, "MB8844"); break; diff --git a/src/emu/sound/namco52.c b/src/emu/sound/namco52.c index 2a603af4092..60ae0f1ce77 100644 --- a/src/emu/sound/namco52.c +++ b/src/emu/sound/namco52.c @@ -207,14 +207,6 @@ WRITE8_DEVICE_HANDLER( namco_52xx_write ) * Generic get_info **************************************************************************/ -ADDRESS_MAP_START( namco_52xx_map_program, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000, 0x3ff) AM_ROM -ADDRESS_MAP_END - -ADDRESS_MAP_START( namco_52xx_map_data, ADDRESS_SPACE_DATA, 8 ) - AM_RANGE(0x00, 0x7f) AM_RAM -ADDRESS_MAP_END - ADDRESS_MAP_START( namco_52xx_map_io, ADDRESS_SPACE_IO, 8 ) // AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_52xx_K_r) // AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_52xx_O_w) @@ -224,9 +216,7 @@ ADDRESS_MAP_END static MACHINE_DRIVER_START( namco_52xx ) - MDRV_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,6)) /* parent clock, internally divided by 6 */ - MDRV_CPU_PROGRAM_MAP(namco_52xx_map_program) - MDRV_CPU_DATA_MAP(namco_52xx_map_data) + MDRV_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ MDRV_CPU_IO_MAP(namco_52xx_map_io) MDRV_CPU_FLAGS(CPU_DISABLE) /* not implemented yet */ MACHINE_DRIVER_END diff --git a/src/mame/audio/namco54.c b/src/mame/audio/namco54.c index 86fb4869dd8..d29a8cdee1d 100644 --- a/src/mame/audio/namco54.c +++ b/src/mame/audio/namco54.c @@ -139,14 +139,6 @@ WRITE8_DEVICE_HANDLER( namco_54xx_write ) DEVICE INTERFACE ***************************************************************************/ -ADDRESS_MAP_START( namco_54xx_map_program, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000, 0x3ff) AM_ROM -ADDRESS_MAP_END - -ADDRESS_MAP_START( namco_54xx_map_data, ADDRESS_SPACE_DATA, 8 ) - AM_RANGE(0x00, 0x3f) AM_RAM -ADDRESS_MAP_END - ADDRESS_MAP_START( namco_54xx_map_io, ADDRESS_SPACE_IO, 8 ) AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_54xx_K_r) AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_54xx_O_w) @@ -157,9 +149,7 @@ ADDRESS_MAP_END static MACHINE_DRIVER_START( namco_54xx ) - MDRV_CPU_ADD("mcu", MB8844, DERIVED_CLOCK(1,6)) /* parent clock, internally divided by 6 */ - MDRV_CPU_PROGRAM_MAP(namco_54xx_map_program) - MDRV_CPU_DATA_MAP(namco_54xx_map_data) + MDRV_CPU_ADD("mcu", MB8844, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ MDRV_CPU_IO_MAP(namco_54xx_map_io) MACHINE_DRIVER_END diff --git a/src/mame/drivers/kangaroo.c b/src/mame/drivers/kangaroo.c index 700855940d2..a2195734a2c 100644 --- a/src/mame/drivers/kangaroo.c +++ b/src/mame/drivers/kangaroo.c @@ -291,18 +291,6 @@ ADDRESS_MAP_END -/************************************* - * - * Microcontroller memory handlers - * - *************************************/ - -static ADDRESS_MAP_START( mcu_map, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x0000, 0x07ff) AM_ROM -ADDRESS_MAP_END - - - /************************************* * * Port definitions @@ -475,9 +463,8 @@ static MACHINE_DRIVER_START( mcu ) MDRV_MACHINE_START(kangaroo_mcu) - MDRV_CPU_ADD("mcu", MB8841, MASTER_CLOCK/4/12) + MDRV_CPU_ADD("mcu", MB8841, MASTER_CLOCK/4/2) MDRV_CPU_FLAGS(CPU_DISABLE) - MDRV_CPU_PROGRAM_MAP(mcu_map) MACHINE_DRIVER_END diff --git a/src/mame/machine/namco50.c b/src/mame/machine/namco50.c index f9c5e6ac560..ddeca8c14bf 100644 --- a/src/mame/machine/namco50.c +++ b/src/mame/machine/namco50.c @@ -253,14 +253,6 @@ READ8_DEVICE_HANDLER( namco_50xx_read ) DEVICE INTERFACE ***************************************************************************/ -ADDRESS_MAP_START( namco_50xx_map_program, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000, 0x7ff) AM_ROM -ADDRESS_MAP_END - -ADDRESS_MAP_START( namco_50xx_map_data, ADDRESS_SPACE_DATA, 8 ) - AM_RANGE(0x00, 0x7f) AM_RAM -ADDRESS_MAP_END - ADDRESS_MAP_START( namco_50xx_map_io, ADDRESS_SPACE_IO, 8 ) AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_50xx_K_r) AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_50xx_O_w) @@ -270,9 +262,7 @@ ADDRESS_MAP_END static MACHINE_DRIVER_START( namco_50xx ) - MDRV_CPU_ADD("mcu", MB8842, DERIVED_CLOCK(1,6)) /* parent clock, internally divided by 6 */ - MDRV_CPU_PROGRAM_MAP(namco_50xx_map_program) - MDRV_CPU_DATA_MAP(namco_50xx_map_data) + MDRV_CPU_ADD("mcu", MB8842, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ MDRV_CPU_IO_MAP(namco_50xx_map_io) MACHINE_DRIVER_END diff --git a/src/mame/machine/namco51.c b/src/mame/machine/namco51.c index 781c5e3af44..abf6cdbd6e9 100644 --- a/src/mame/machine/namco51.c +++ b/src/mame/machine/namco51.c @@ -352,14 +352,6 @@ READ8_DEVICE_HANDLER( namco_51xx_read ) DEVICE INTERFACE ***************************************************************************/ -ADDRESS_MAP_START( namco_51xx_map_program, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000, 0x3ff) AM_ROM -ADDRESS_MAP_END - -ADDRESS_MAP_START( namco_51xx_map_data, ADDRESS_SPACE_DATA, 8 ) - AM_RANGE(0x00, 0x7f) AM_RAM -ADDRESS_MAP_END - ADDRESS_MAP_START( namco_51xx_map_io, ADDRESS_SPACE_IO, 8 ) // AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_51xx_K_r) // AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_51xx_O_w) @@ -369,9 +361,7 @@ ADDRESS_MAP_END static MACHINE_DRIVER_START( namco_51xx ) - MDRV_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,6)) /* parent clock, internally divided by 6 */ - MDRV_CPU_PROGRAM_MAP(namco_51xx_map_program) - MDRV_CPU_DATA_MAP(namco_51xx_map_data) + MDRV_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ MDRV_CPU_IO_MAP(namco_51xx_map_io) MDRV_CPU_FLAGS(CPU_DISABLE) MACHINE_DRIVER_END diff --git a/src/mame/machine/namco53.c b/src/mame/machine/namco53.c index 3e9bd503bb6..c3fb3a13653 100644 --- a/src/mame/machine/namco53.c +++ b/src/mame/machine/namco53.c @@ -101,14 +101,6 @@ READ8_DEVICE_HANDLER( namco_53xx_read ) DEVICE INTERFACE ***************************************************************************/ -ADDRESS_MAP_START( namco_53xx_map_program, ADDRESS_SPACE_PROGRAM, 8 ) - AM_RANGE(0x000, 0x3ff) AM_ROM -ADDRESS_MAP_END - -ADDRESS_MAP_START( namco_53xx_map_data, ADDRESS_SPACE_DATA, 8 ) - AM_RANGE(0x00, 0x7f) AM_RAM -ADDRESS_MAP_END - ADDRESS_MAP_START( namco_53xx_map_io, ADDRESS_SPACE_IO, 8 ) // AM_RANGE(MB88_PORTK, MB88_PORTK) AM_READ(namco_53xx_K_r) // AM_RANGE(MB88_PORTO, MB88_PORTO) AM_WRITE(namco_53xx_O_w) @@ -118,9 +110,7 @@ ADDRESS_MAP_END static MACHINE_DRIVER_START( namco_53xx ) - MDRV_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,6)) /* parent clock, internally divided by 6 */ - MDRV_CPU_PROGRAM_MAP(namco_53xx_map_program) - MDRV_CPU_DATA_MAP(namco_53xx_map_data) + MDRV_CPU_ADD("mcu", MB8843, DERIVED_CLOCK(1,1)) /* parent clock, internally divided by 6 */ MDRV_CPU_IO_MAP(namco_53xx_map_io) MDRV_CPU_FLAGS(CPU_DISABLE) MACHINE_DRIVER_END