mirror of
https://github.com/holub/mame
synced 2025-05-25 23:35:26 +03:00
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:
parent
47112c063b
commit
27e2aac0fe
@ -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;
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user