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.
This commit is contained in:
Aaron Giles 2009-05-27 14:18:44 +00:00
parent 47112c063b
commit 27e2aac0fe
7 changed files with 45 additions and 70 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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