mirror of
https://github.com/holub/mame
synced 2025-05-24 06:30:04 +03:00
Placeholder for the Zilog Z8001 CPU core
This commit is contained in:
parent
82293e597c
commit
3f3cf7748d
@ -367,8 +367,16 @@ static CPU_RESET( z8000 )
|
|||||||
cpustate->program = device->space(AS_PROGRAM);
|
cpustate->program = device->space(AS_PROGRAM);
|
||||||
cpustate->io = device->space(AS_IO);
|
cpustate->io = device->space(AS_IO);
|
||||||
cpustate->fcw = RDMEM_W(cpustate, 2); /* get reset cpustate->fcw */
|
cpustate->fcw = RDMEM_W(cpustate, 2); /* get reset cpustate->fcw */
|
||||||
|
if(cpustate->fcw & F_SEG)
|
||||||
|
{
|
||||||
|
//cpustate->seg_pc = RDMEM_W(cpustate, 4);
|
||||||
|
cpustate->pc = RDMEM_W(cpustate, 6);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
cpustate->pc = RDMEM_W(cpustate, 4); /* get reset cpustate->pc */
|
cpustate->pc = RDMEM_W(cpustate, 4); /* get reset cpustate->pc */
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static CPU_EXIT( z8000 )
|
static CPU_EXIT( z8000 )
|
||||||
{
|
{
|
||||||
@ -468,7 +476,7 @@ static void set_irq_line(z8000_state *cpustate, int irqline, int state)
|
|||||||
* Generic set_info
|
* Generic set_info
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
static CPU_SET_INFO( z8000 )
|
static CPU_SET_INFO( z8002 )
|
||||||
{
|
{
|
||||||
z8000_state *cpustate = get_safe_token(device);
|
z8000_state *cpustate = get_safe_token(device);
|
||||||
|
|
||||||
@ -514,7 +522,7 @@ static CPU_SET_INFO( z8000 )
|
|||||||
* Generic get_info
|
* Generic get_info
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
CPU_GET_INFO( z8000 )
|
CPU_GET_INFO( z8002 )
|
||||||
{
|
{
|
||||||
z8000_state *cpustate = (device != NULL && device->token != NULL) ? get_safe_token(device) : NULL;
|
z8000_state *cpustate = (device != NULL && device->token != NULL) ? get_safe_token(device) : NULL;
|
||||||
|
|
||||||
@ -576,7 +584,7 @@ CPU_GET_INFO( z8000 )
|
|||||||
case CPUINFO_INT_REGISTER + Z8000_R15: info->i = cpustate->RW(15); break;
|
case CPUINFO_INT_REGISTER + Z8000_R15: info->i = cpustate->RW(15); break;
|
||||||
|
|
||||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||||
case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(z8000); break;
|
case CPUINFO_FCT_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(z8002); break;
|
||||||
case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(z8000); break;
|
case CPUINFO_FCT_INIT: info->init = CPU_INIT_NAME(z8000); break;
|
||||||
case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(z8000); break;
|
case CPUINFO_FCT_RESET: info->reset = CPU_RESET_NAME(z8000); break;
|
||||||
case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(z8000); break;
|
case CPUINFO_FCT_EXIT: info->exit = CPU_EXIT_NAME(z8000); break;
|
||||||
@ -638,3 +646,20 @@ CPU_GET_INFO( z8000 )
|
|||||||
case CPUINFO_STR_REGISTER + Z8000_R15: sprintf(info->s, "R15:%04X", cpustate->RW(15)); break;
|
case CPUINFO_STR_REGISTER + Z8000_R15: sprintf(info->s, "R15:%04X", cpustate->RW(15)); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
handling for the z8001
|
||||||
|
*/
|
||||||
|
|
||||||
|
CPU_GET_INFO( z8001 )
|
||||||
|
{
|
||||||
|
switch (state)
|
||||||
|
{
|
||||||
|
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||||
|
|
||||||
|
/* --- the following bits of info are returned as NULL-terminated strings --- */
|
||||||
|
case DEVINFO_STR_NAME: strcpy(info->s, "Zilog Z8001"); break;
|
||||||
|
|
||||||
|
default: CPU_GET_INFO_CALL(z8002); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -24,8 +24,10 @@ enum
|
|||||||
#define Z8000_HALT 0x0100 /* halted flag */
|
#define Z8000_HALT 0x0100 /* halted flag */
|
||||||
|
|
||||||
/* PUBLIC FUNCTIONS */
|
/* PUBLIC FUNCTIONS */
|
||||||
extern CPU_GET_INFO( z8000 );
|
extern CPU_GET_INFO( z8001 );
|
||||||
#define CPU_Z8000 CPU_GET_INFO_NAME( z8000 )
|
#define CPU_Z8001 CPU_GET_INFO_NAME( z8001 )
|
||||||
|
extern CPU_GET_INFO( z8002 );
|
||||||
|
#define CPU_Z8002 CPU_GET_INFO_NAME( z8002 )
|
||||||
|
|
||||||
CPU_DISASSEMBLE( z8000 );
|
CPU_DISASSEMBLE( z8000 );
|
||||||
|
|
||||||
|
@ -922,11 +922,11 @@ static MACHINE_DRIVER_START( polepos )
|
|||||||
MDRV_CPU_IO_MAP(z80_io)
|
MDRV_CPU_IO_MAP(z80_io)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(irq0_line_assert,2) /* 64V */
|
MDRV_CPU_VBLANK_INT_HACK(irq0_line_assert,2) /* 64V */
|
||||||
|
|
||||||
MDRV_CPU_ADD("sub", Z8000, 24576000/8) /* 3.072 MHz */
|
MDRV_CPU_ADD("sub", Z8002, 24576000/8) /* 3.072 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(z8002_map)
|
MDRV_CPU_PROGRAM_MAP(z8002_map)
|
||||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
|
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
|
||||||
|
|
||||||
MDRV_CPU_ADD("sub2", Z8000, 24576000/8) /* 3.072 MHz */
|
MDRV_CPU_ADD("sub2", Z8002, 24576000/8) /* 3.072 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(z8002_map)
|
MDRV_CPU_PROGRAM_MAP(z8002_map)
|
||||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
|
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
|
||||||
|
|
||||||
@ -1005,11 +1005,11 @@ static MACHINE_DRIVER_START( topracern )
|
|||||||
MDRV_CPU_IO_MAP(z80_io)
|
MDRV_CPU_IO_MAP(z80_io)
|
||||||
MDRV_CPU_VBLANK_INT_HACK(irq0_line_assert,2) /* 64V */
|
MDRV_CPU_VBLANK_INT_HACK(irq0_line_assert,2) /* 64V */
|
||||||
|
|
||||||
MDRV_CPU_ADD("sub", Z8000, 24576000/8) /* 3.072 MHz */
|
MDRV_CPU_ADD("sub", Z8002, 24576000/8) /* 3.072 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(z8002_map)
|
MDRV_CPU_PROGRAM_MAP(z8002_map)
|
||||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
|
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
|
||||||
|
|
||||||
MDRV_CPU_ADD("sub2", Z8000, 24576000/8) /* 3.072 MHz */
|
MDRV_CPU_ADD("sub2", Z8002, 24576000/8) /* 3.072 MHz */
|
||||||
MDRV_CPU_PROGRAM_MAP(z8002_map)
|
MDRV_CPU_PROGRAM_MAP(z8002_map)
|
||||||
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
|
MDRV_CPU_VBLANK_INT("screen", irq0_line_assert)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user