Re-routed empty get/set context calls to the dummy CPU's, and removed them
from the CPU cores. Disabled the use of PULSE_LINE for any input lines except NMI and RESET. Added a helper function generic_pulse_irq_line() for doing a single-cycle assert/deassert for those few drivers remaining that were trying to use PULSE_LINE directly.
This commit is contained in:
parent
183b7c9de7
commit
eb43d34725
@ -536,24 +536,10 @@ static void set_irq_line(adsp2100_state *adsp, int irqline, int state)
|
||||
|
||||
/* update the absolute state */
|
||||
adsp->irq_state[irqline] = state;
|
||||
|
||||
/* check for IRQs */
|
||||
if (state != CLEAR_LINE)
|
||||
check_irqs(adsp);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
CONTEXT SWITCHING
|
||||
***************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( adsp21xx ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( adsp21xx ) { }
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INITIALIZATION AND SHUTDOWN
|
||||
***************************************************************************/
|
||||
@ -1901,8 +1887,8 @@ static CPU_GET_INFO( adsp21xx )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: /* set per CPU */ break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(adsp21xx);break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(adsp21xx);break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy);break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy);break;
|
||||
case CPUINFO_PTR_INIT: /* set per CPU */ break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(adsp21xx); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(adsp21xx); break;
|
||||
@ -2088,7 +2074,6 @@ CPU_GET_INFO( adsp2100 )
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(adsp2100); break;
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(adsp2100); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(adsp21xx); break;
|
||||
|
||||
/* --- the following bits of info are returned as NULL-terminated strings --- */
|
||||
case CPUINFO_STR_NAME: strcpy(info->s, "ADSP2100"); break;
|
||||
|
@ -430,10 +430,6 @@ static CPU_EXECUTE( arm )
|
||||
} /* arm_execute */
|
||||
|
||||
|
||||
static CPU_GET_CONTEXT( arm ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( arm ) { }
|
||||
|
||||
static void arm_check_irq_state(ARM_REGS* cpustate)
|
||||
{
|
||||
UINT32 pc = R15+4; /* save old pc (already incremented in pipeline) */;
|
||||
@ -1512,8 +1508,8 @@ CPU_GET_INFO( arm )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(arm); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(arm); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(arm); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(arm); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(arm); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(arm); break;
|
||||
|
@ -117,10 +117,6 @@ static void set_irq_line(arm_state *cpustate, int irqline, int state)
|
||||
arm7_core_set_irq_line(cpustate, irqline, state);
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( arm7 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( arm7 ) { }
|
||||
|
||||
static CPU_DISASSEMBLE( arm7 )
|
||||
{
|
||||
arm_state *cpustate = device->token;
|
||||
@ -308,8 +304,8 @@ CPU_GET_INFO( arm7 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(arm7); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(arm7); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(arm7); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(arm7); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(arm7); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(arm7); break;
|
||||
|
@ -388,17 +388,6 @@ static void set_irq_line(asap_state *asap, int irqline, int state)
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
CONTEXT SWITCHING
|
||||
***************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( asap ) { }
|
||||
|
||||
|
||||
static CPU_SET_CONTEXT( asap ) { }
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INITIALIZATION AND SHUTDOWN
|
||||
***************************************************************************/
|
||||
@ -1778,8 +1767,8 @@ CPU_GET_INFO( asap )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(asap); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(asap); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(asap); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(asap); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(asap); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(asap); break;
|
||||
|
@ -90,17 +90,6 @@ do { \
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
CONTEXT SWITCHING
|
||||
***************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( ccpu ) { }
|
||||
|
||||
|
||||
static CPU_SET_CONTEXT( ccpu ) { }
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INITIALIZATION AND SHUTDOWN
|
||||
***************************************************************************/
|
||||
@ -782,8 +771,8 @@ CPU_GET_INFO( ccpu )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ccpu); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(ccpu); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(ccpu); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(ccpu); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(ccpu); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = NULL; break;
|
||||
|
@ -926,9 +926,6 @@ static CPU_INIT( cdp1802 )
|
||||
state_save_register_device_item(device, 0, cpustate->ef);
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( cdp1802 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( cdp1802 ) { }
|
||||
|
||||
/**************************************************************************
|
||||
* Generic set_info
|
||||
@ -1044,8 +1041,8 @@ CPU_GET_INFO( cdp1802 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(cdp1802); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(cdp1802); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(cdp1802); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(cdp1802); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(cdp1802); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(cdp1802); break;
|
||||
|
@ -347,16 +347,6 @@ static CPU_EXECUTE( cop410 )
|
||||
return cycles - cop400->icount;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( cop410 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( cop410 ) { }
|
||||
|
||||
/**************************************************************************
|
||||
* Validity check
|
||||
**************************************************************************/
|
||||
@ -452,8 +442,8 @@ CPU_GET_INFO( cop410 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(cop410); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(cop410); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(cop410); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(cop410); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(cop410); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(cop410); break;
|
||||
|
@ -416,16 +416,6 @@ static CPU_EXECUTE( cop420 )
|
||||
return cycles - cop400->icount;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( cop420 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( cop420 ) { }
|
||||
|
||||
/**************************************************************************
|
||||
* Validity check
|
||||
**************************************************************************/
|
||||
@ -537,8 +527,8 @@ CPU_GET_INFO( cop420 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(cop420); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(cop420); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(cop420); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(cop420); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(cop420); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(cop420); break;
|
||||
|
@ -451,16 +451,6 @@ static CPU_EXECUTE( cop444 )
|
||||
return cycles - cop400->icount;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( cop444 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( cop444 ) { }
|
||||
|
||||
/**************************************************************************
|
||||
* Validity check
|
||||
**************************************************************************/
|
||||
@ -559,8 +549,8 @@ CPU_GET_INFO( cop444 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(cop444); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(cop444); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(cop444); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(cop444); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(cop444); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(cop444); break;
|
||||
|
@ -290,16 +290,6 @@ static void update_pcr(dsp32_state *cpustate, UINT16 newval)
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
CONTEXT SWITCHING
|
||||
***************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( dsp32c ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( dsp32c ) { }
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INITIALIZATION AND SHUTDOWN
|
||||
***************************************************************************/
|
||||
@ -824,8 +814,8 @@ CPU_GET_INFO( dsp32c )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(dsp32c); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dsp32c); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dsp32c); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(dsp32c); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(dsp32c); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(dsp32c); break;
|
||||
|
@ -282,13 +282,6 @@ static void set_irq_line(int irqline, int state)
|
||||
{
|
||||
logerror("DSP56k set irq line %d %d\n", irqline, state);
|
||||
|
||||
/* I seem to recall this is an okay thing to do */
|
||||
if (state == PULSE_LINE)
|
||||
{
|
||||
logerror("WARNING: The dsp56k does not support pulsed interrupts.\n");
|
||||
return;
|
||||
}
|
||||
|
||||
switch(irqline)
|
||||
{
|
||||
case DSP56K_IRQ_MODA:
|
||||
|
@ -1714,10 +1714,6 @@ static CPU_EXIT( hyperstone )
|
||||
// nothing to do
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( hyperstone ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( hyperstone ) { }
|
||||
|
||||
static CPU_DISASSEMBLE( hyperstone )
|
||||
{
|
||||
hyperstone_state *cpustate = device->token;
|
||||
@ -5022,8 +5018,8 @@ static CPU_GET_INFO( hyperstone )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(hyperstone); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(hyperstone); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(hyperstone); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = NULL; break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(hyperstone); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(hyperstone); break;
|
||||
|
@ -240,12 +240,6 @@ static CPU_EXECUTE( g65816 )
|
||||
}
|
||||
|
||||
|
||||
/* Get the current CPU context */
|
||||
static CPU_GET_CONTEXT( g65816 ) { }
|
||||
|
||||
/* Set the current CPU context */
|
||||
static CPU_SET_CONTEXT( g65816 ) { }
|
||||
|
||||
/* Get the current Program Counter */
|
||||
static unsigned g65816_get_pc(g65816i_cpu_struct *cpustate)
|
||||
{
|
||||
@ -460,8 +454,8 @@ CPU_GET_INFO( g65816 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(g65816); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(g65816); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(g65816); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(g65816); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(g65816); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(g65816); break;
|
||||
|
@ -2323,7 +2323,7 @@ TABLE_FUNCTION(void, set_line, (g65816i_cpu_struct *cpustate, int line, int stat
|
||||
}
|
||||
if(!LINE_NMI)
|
||||
{
|
||||
LINE_NMI = state != PULSE_LINE;
|
||||
LINE_NMI = 1;
|
||||
CPU_STOPPED &= ~STOP_LEVEL_WAI;
|
||||
if(!CPU_STOPPED)
|
||||
g65816i_interrupt_nmi(cpustate);
|
||||
|
@ -358,10 +358,6 @@ static void h8_check_irqs(h83xx_state *h8)
|
||||
|
||||
// MAME interface stuff
|
||||
|
||||
static CPU_GET_CONTEXT( h8 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( h8 ) { }
|
||||
|
||||
static CPU_SET_INFO( h8 )
|
||||
{
|
||||
h83xx_state *h8 = device->token;
|
||||
@ -546,8 +542,8 @@ CPU_GET_INFO( h8_3002 )
|
||||
switch(state) {
|
||||
// Interface functions and variables
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(h8); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(h8); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(h8); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(h8); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(h8); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = 0; break;
|
||||
|
@ -349,10 +349,6 @@ static void h8_check_irqs(h83xx_state *h8)
|
||||
|
||||
// MAME interface stuff
|
||||
|
||||
static CPU_GET_CONTEXT( h8 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( h8 ) { }
|
||||
|
||||
static CPU_SET_INFO( h8 )
|
||||
{
|
||||
h83xx_state *h8 = device->token;
|
||||
@ -522,8 +518,8 @@ CPU_GET_INFO( h8_3334 )
|
||||
switch(state) {
|
||||
// Interface functions and variables
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(h8); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(h8); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(h8); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(h8bit); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(h8bit); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = 0; break;
|
||||
|
@ -494,16 +494,6 @@ static void check_irq_lines( m68_state_t *m68_state )
|
||||
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( hd6309 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( hd6309 ) { }
|
||||
|
||||
static STATE_POSTLOAD( hd6309_postload )
|
||||
{
|
||||
const device_config *device = param;
|
||||
@ -1309,8 +1299,8 @@ CPU_GET_INFO( hd6309 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(hd6309); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(hd6309); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(hd6309); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(hd6309); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(hd6309); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(hd6309); break;
|
||||
|
@ -1008,19 +1008,6 @@ static CPU_EXECUTE( i8x41 )
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( i8x41 ) { }
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
|
||||
static CPU_SET_CONTEXT( i8x41 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set IRQ line state
|
||||
****************************************************************************/
|
||||
@ -1267,8 +1254,8 @@ CPU_GET_INFO( i8041 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(i8x41); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(i8x41); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(i8x41); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(i8x41); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(i8x41); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(i8x41); break;
|
||||
|
@ -1958,10 +1958,6 @@ static CPU_EXECUTE( i960 )
|
||||
return cycles - i960->icount;
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( i960 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( i960 ) { }
|
||||
|
||||
static void set_irq_line(i960_state_t *i960, int irqline, int state)
|
||||
{
|
||||
int int_tab = memory_read_dword_32le(i960->program, i960->PRCB+20); // interrupt table
|
||||
@ -2118,8 +2114,8 @@ CPU_GET_INFO( i960 )
|
||||
switch(state) {
|
||||
// Interface functions and variables
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(i960); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(i960); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(i960); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(i960); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(i960); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = 0; break;
|
||||
|
@ -340,15 +340,6 @@ static void set_irq_line(jaguar_state *jaguar, int irqline, int state)
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
CONTEXT SWITCHING
|
||||
***************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( jaguar ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( jaguar ) { }
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INITIALIZATION AND SHUTDOWN
|
||||
***************************************************************************/
|
||||
@ -1577,8 +1568,8 @@ CPU_GET_INFO( jaguargpu )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(jaguargpu); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(jaguar); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(jaguar); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(jaguargpu); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(jaguar); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(jaguar); break;
|
||||
|
@ -386,16 +386,6 @@ static void check_irq_lines(konami_state *cpustate)
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( konami ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( konami ) { }
|
||||
|
||||
/****************************************************************************/
|
||||
/* Reset registers to their initial values */
|
||||
/****************************************************************************/
|
||||
@ -589,8 +579,8 @@ CPU_GET_INFO( konami )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(konami); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(konami);break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(konami);break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy);break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy);break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(konami); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(konami); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(konami); break;
|
||||
|
@ -859,12 +859,6 @@ static CPU_EXECUTE( m37710 )
|
||||
}
|
||||
|
||||
|
||||
/* Get the current CPU context */
|
||||
static CPU_GET_CONTEXT( m37710 ) { }
|
||||
|
||||
/* Set the current CPU context */
|
||||
static CPU_SET_CONTEXT( m37710 ) { }
|
||||
|
||||
/* Set the Program Counter */
|
||||
static void m37710_set_pc(m37710i_cpu_struct *cpustate, unsigned val)
|
||||
{
|
||||
@ -1119,8 +1113,8 @@ CPU_GET_INFO( m37710 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(m37710); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(m37710); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(m37710); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(m37710); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(m37710); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(m37710); break;
|
||||
|
@ -2864,8 +2864,6 @@ TABLE_FUNCTION(void, set_line, (m37710i_cpu_struct *cpustate, int line, int stat
|
||||
return;
|
||||
break;
|
||||
case ASSERT_LINE:
|
||||
case PULSE_LINE:
|
||||
case HOLD_LINE:
|
||||
LINE_IRQ |= (1 << line);
|
||||
if (m37710_irq_levels[line])
|
||||
{
|
||||
|
@ -127,10 +127,6 @@ static CPU_EXIT( m65ce02 )
|
||||
/* nothing to do yet */
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( m65ce02 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( m65ce02 ) { }
|
||||
|
||||
INLINE void m65ce02_take_irq(m65ce02_Regs *cpustate)
|
||||
{
|
||||
if( !(P & F_I) )
|
||||
@ -312,8 +308,8 @@ CPU_GET_INFO( m65ce02 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(m65ce02); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(m65ce02); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(m65ce02); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(m65ce02); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(m65ce02); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(m65ce02); break;
|
||||
|
@ -107,6 +107,7 @@ struct _m6800_state
|
||||
UINT8 cc; /* Condition codes */
|
||||
UINT8 wai_state; /* WAI opcode state ,(or sleep opcode state) */
|
||||
UINT8 nmi_state; /* NMI line state */
|
||||
UINT8 nmi_pending; /* NMI pending */
|
||||
UINT8 irq_state[2]; /* IRQ line state [IRQ1,TIN] */
|
||||
UINT8 ic_eddge; /* InputCapture eddge , b.0=fall,b.1=raise */
|
||||
|
||||
@ -118,7 +119,6 @@ struct _m6800_state
|
||||
const address_space *data;
|
||||
const address_space *io;
|
||||
|
||||
int extra_cycles; /* cycles used for interrupts */
|
||||
void (* const * insn)(m6800_state *); /* instruction table */
|
||||
const UINT8 *cycles; /* clock cycle of instruction table */
|
||||
/* internal registers */
|
||||
@ -536,7 +536,7 @@ static void enter_interrupt(m6800_state *cpustate, const char *message,UINT16 ir
|
||||
if( cpustate->wai_state & (M6800_WAI|M6800_SLP) )
|
||||
{
|
||||
if( cpustate->wai_state & M6800_WAI )
|
||||
cpustate->extra_cycles += 4;
|
||||
cpustate->icount -= 4;
|
||||
cpustate->wai_state &= ~(M6800_WAI|M6800_SLP);
|
||||
}
|
||||
else
|
||||
@ -546,7 +546,7 @@ static void enter_interrupt(m6800_state *cpustate, const char *message,UINT16 ir
|
||||
PUSHBYTE(A);
|
||||
PUSHBYTE(B);
|
||||
PUSHBYTE(CC);
|
||||
cpustate->extra_cycles += 12;
|
||||
cpustate->icount -= 12;
|
||||
}
|
||||
SEI;
|
||||
PCD = RM16(cpustate, irq_vector );
|
||||
@ -582,7 +582,12 @@ static void m6800_check_irq2(m6800_state *cpustate)
|
||||
/* check the IRQ lines for pending interrupts */
|
||||
INLINE void CHECK_IRQ_LINES(m6800_state *cpustate)
|
||||
{
|
||||
if( !(CC & 0x10) )
|
||||
if (cpustate->nmi_pending)
|
||||
{
|
||||
cpustate->nmi_pending = FALSE;
|
||||
enter_interrupt(cpustate, "M6800 '%s' take NMI\n",0xfffc);
|
||||
}
|
||||
else if( !(CC & 0x10) )
|
||||
{
|
||||
if( cpustate->irq_state[M6800_IRQ_LINE] != CLEAR_LINE )
|
||||
{ /* standard IRQ */
|
||||
@ -845,6 +850,7 @@ static void state_register(m6800_state *cpustate, const char *type)
|
||||
state_save_register_device_item(cpustate->device, 0, cpustate->cc);
|
||||
state_save_register_device_item(cpustate->device, 0, cpustate->wai_state);
|
||||
state_save_register_device_item(cpustate->device, 0, cpustate->nmi_state);
|
||||
state_save_register_device_item(cpustate->device, 0, cpustate->nmi_pending);
|
||||
state_save_register_device_item_array(cpustate->device, 0, cpustate->irq_state);
|
||||
state_save_register_device_item(cpustate->device, 0, cpustate->ic_eddge);
|
||||
|
||||
@ -905,6 +911,7 @@ static CPU_RESET( m6800 )
|
||||
|
||||
cpustate->wai_state = 0;
|
||||
cpustate->nmi_state = 0;
|
||||
cpustate->nmi_pending = 0;
|
||||
cpustate->irq_state[M6800_IRQ_LINE] = 0;
|
||||
cpustate->irq_state[M6800_TIN_LINE] = 0;
|
||||
cpustate->ic_eddge = 0;
|
||||
@ -937,51 +944,24 @@ static CPU_EXIT( m6800 )
|
||||
/* nothing to do */
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( m6800 )
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( m6800 )
|
||||
{
|
||||
m6800_state *cpustate = src;
|
||||
|
||||
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
|
||||
}
|
||||
|
||||
|
||||
static void set_irq_line(m6800_state *cpustate, int irqline, int state)
|
||||
{
|
||||
if (irqline == INPUT_LINE_NMI)
|
||||
{
|
||||
if (cpustate->nmi_state == state) return;
|
||||
LOG(("M6800 '%s' set_nmi_line %d \n", cpustate->device->tag, state));
|
||||
if (!cpustate->nmi_state && state != CLEAR_LINE)
|
||||
cpustate->nmi_pending = TRUE;
|
||||
cpustate->nmi_state = state;
|
||||
if (state == CLEAR_LINE) return;
|
||||
|
||||
/* NMI */
|
||||
enter_interrupt(cpustate, "M6800 '%s' take NMI\n",0xfffc);
|
||||
}
|
||||
else
|
||||
{
|
||||
int eddge;
|
||||
|
||||
if (cpustate->irq_state[irqline] == state) return;
|
||||
LOG(("M6800 '%s' set_irq_line %d,%d\n", cpustate->device->tag, irqline, state));
|
||||
cpustate->irq_state[irqline] = state;
|
||||
|
||||
switch(irqline)
|
||||
if (irqline == M6800_TIN_LINE && state != cpustate->irq_state[irqline])
|
||||
{
|
||||
case M6800_IRQ_LINE:
|
||||
if (state == CLEAR_LINE) return;
|
||||
break;
|
||||
case M6800_TIN_LINE:
|
||||
eddge = (state == CLEAR_LINE ) ? 2 : 0;
|
||||
if( ((cpustate->tcsr&TCSR_IEDG) ^ (state==CLEAR_LINE ? TCSR_IEDG : 0))==0 )
|
||||
return;
|
||||
@ -990,13 +970,7 @@ static void set_irq_line(m6800_state *cpustate, int irqline, int state)
|
||||
cpustate->pending_tcsr |= TCSR_ICF;
|
||||
cpustate->input_capture = CT;
|
||||
MODIFIED_tcsr;
|
||||
if( !(CC & 0x10) )
|
||||
m6800_check_irq2(cpustate);
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
|
||||
}
|
||||
}
|
||||
|
||||
@ -1276,9 +1250,9 @@ static CPU_EXECUTE( m6800 )
|
||||
UINT8 ireg;
|
||||
cpustate->icount = cycles;
|
||||
|
||||
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
|
||||
|
||||
CLEANUP_COUNTERS();
|
||||
increment_counter(cpustate, cpustate->extra_cycles);
|
||||
cpustate->extra_cycles = 0;
|
||||
|
||||
do
|
||||
{
|
||||
@ -1297,9 +1271,6 @@ static CPU_EXECUTE( m6800 )
|
||||
}
|
||||
} while( cpustate->icount>0 );
|
||||
|
||||
increment_counter(cpustate, cpustate->extra_cycles);
|
||||
cpustate->extra_cycles = 0;
|
||||
|
||||
return cycles - cpustate->icount;
|
||||
}
|
||||
|
||||
@ -1651,9 +1622,9 @@ static CPU_EXECUTE( m6803 )
|
||||
UINT8 ireg;
|
||||
cpustate->icount = cycles;
|
||||
|
||||
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
|
||||
|
||||
CLEANUP_COUNTERS();
|
||||
increment_counter(cpustate, cpustate->extra_cycles);
|
||||
cpustate->extra_cycles = 0;
|
||||
|
||||
do
|
||||
{
|
||||
@ -1672,9 +1643,6 @@ static CPU_EXECUTE( m6803 )
|
||||
}
|
||||
} while( cpustate->icount>0 );
|
||||
|
||||
increment_counter(cpustate, cpustate->extra_cycles);
|
||||
cpustate->extra_cycles = 0;
|
||||
|
||||
return cycles - cpustate->icount;
|
||||
}
|
||||
#endif
|
||||
@ -2014,9 +1982,9 @@ static CPU_EXECUTE( hd63701 )
|
||||
UINT8 ireg;
|
||||
cpustate->icount = cycles;
|
||||
|
||||
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
|
||||
|
||||
CLEANUP_COUNTERS();
|
||||
increment_counter(cpustate, cpustate->extra_cycles);
|
||||
cpustate->extra_cycles = 0;
|
||||
|
||||
do
|
||||
{
|
||||
@ -2035,9 +2003,6 @@ static CPU_EXECUTE( hd63701 )
|
||||
}
|
||||
} while( cpustate->icount>0 );
|
||||
|
||||
increment_counter(cpustate, cpustate->extra_cycles);
|
||||
cpustate->extra_cycles = 0;
|
||||
|
||||
return cycles - cpustate->icount;
|
||||
}
|
||||
|
||||
@ -2365,9 +2330,9 @@ static CPU_EXECUTE( nsc8105 )
|
||||
UINT8 ireg;
|
||||
cpustate->icount = cycles;
|
||||
|
||||
CHECK_IRQ_LINES(cpustate); /* HJB 990417 */
|
||||
|
||||
CLEANUP_COUNTERS();
|
||||
increment_counter(cpustate, cpustate->extra_cycles);
|
||||
cpustate->extra_cycles = 0;
|
||||
|
||||
do
|
||||
{
|
||||
@ -2386,9 +2351,6 @@ static CPU_EXECUTE( nsc8105 )
|
||||
}
|
||||
} while( cpustate->icount>0 );
|
||||
|
||||
increment_counter(cpustate, cpustate->extra_cycles);
|
||||
cpustate->extra_cycles = 0;
|
||||
|
||||
return cycles - cpustate->icount;
|
||||
}
|
||||
#endif
|
||||
@ -2763,8 +2725,8 @@ CPU_GET_INFO( m6800 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(m6800); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(m6800); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(m6800); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(m6800); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(m6800); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(m6800); break;
|
||||
|
@ -572,10 +572,6 @@ static CPU_RESET( m68k )
|
||||
m68k->run_mode = RUN_MODE_NORMAL;
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( m68k ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( m68k ) { }
|
||||
|
||||
static CPU_DISASSEMBLE( m68k )
|
||||
{
|
||||
m68ki_cpu_core *m68k = device->token;
|
||||
@ -650,8 +646,8 @@ static CPU_GET_INFO( m68k )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: /* set per-core */ break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(m68k); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(m68k); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: /* set per-core */ break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(m68k); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(m68k); break;
|
||||
|
@ -466,16 +466,6 @@ static CPU_EXIT( m6805 )
|
||||
/* nothing to do */
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( m6805 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( m6805 ) { }
|
||||
|
||||
|
||||
static void set_irq_line( m6805_Regs *cpustate, int irqline, int state )
|
||||
{
|
||||
@ -937,8 +927,8 @@ CPU_GET_INFO( m6805 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(m6805); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(m6805); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(m6805); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(m6805); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(m6805); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(m6805); break;
|
||||
|
@ -355,17 +355,6 @@ static void check_irq_lines(m68_state_t *m68_state)
|
||||
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( m6809 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( m6809 ) { }
|
||||
|
||||
|
||||
/****************************************************************************/
|
||||
/* Reset registers to their initial values */
|
||||
/****************************************************************************/
|
||||
@ -1148,8 +1137,8 @@ CPU_GET_INFO( m6809 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(m6809); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(m6809); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(m6809); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(m6809); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(m6809); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(m6809); break;
|
||||
|
@ -984,22 +984,6 @@ ADDRESS_MAP_END
|
||||
GENERAL CONTEXT ACCESS
|
||||
***************************************************************************/
|
||||
|
||||
/*-------------------------------------------------
|
||||
mcs48_get_context - copy the context to the
|
||||
destination
|
||||
-------------------------------------------------*/
|
||||
|
||||
static CPU_GET_CONTEXT( mcs48 ) { }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
mcs48_set_context - set the current context
|
||||
from the source
|
||||
-------------------------------------------------*/
|
||||
|
||||
static CPU_SET_CONTEXT( mcs48 ) { }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
mcs48_set_info - set a piece of information
|
||||
on the CPU core
|
||||
@ -1093,8 +1077,8 @@ static CPU_GET_INFO( mcs48 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(mcs48); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(mcs48); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(mcs48); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: /*info->init = CPU_INIT_NAME(i8039);*/ break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(mcs48); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(mcs48); break;
|
||||
|
@ -2410,14 +2410,6 @@ static ADDRESS_MAP_START(data_8bit, ADDRESS_SPACE_DATA, 8)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
GENERAL CONTEXT ACCESS
|
||||
***************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( mcs51 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( mcs51 ) { }
|
||||
|
||||
/**************************************************************************
|
||||
* Generic set_info
|
||||
**************************************************************************/
|
||||
@ -2516,8 +2508,8 @@ static CPU_GET_INFO( mcs51 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(mcs51); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(mcs51); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(mcs51); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(mcs51); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(mcs51); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(mcs51); break;
|
||||
|
@ -210,11 +210,6 @@ static CPU_BURN( minx )
|
||||
}
|
||||
|
||||
|
||||
static CPU_GET_CONTEXT( minx ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( minx ) { }
|
||||
|
||||
|
||||
static unsigned minx_get_reg( int regnum )
|
||||
{
|
||||
switch( regnum )
|
||||
@ -345,8 +340,8 @@ CPU_GET_INFO( minx )
|
||||
case CPUINFO_INT_REGISTER + MINX_YI: info->i = minx_get_reg( state - CPUINFO_INT_REGISTER ); break;
|
||||
case CPUINFO_INT_PREVIOUSPC: info->i = 0x0000; break;
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(minx); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(minx); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(minx); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(minx); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(minx); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(minx); break;
|
||||
|
@ -539,22 +539,6 @@ static CPU_EXIT( mips3 )
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
mips3_get_context - return a copy of the
|
||||
current context
|
||||
-------------------------------------------------*/
|
||||
|
||||
static CPU_GET_CONTEXT( mips3 ) { }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
mips3_set_context - copy the current context
|
||||
into the global state
|
||||
-------------------------------------------------*/
|
||||
|
||||
static CPU_SET_CONTEXT( mips3 ) { }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
mips3_translate - perform virtual-to-physical
|
||||
address translation
|
||||
@ -626,8 +610,8 @@ static CPU_GET_INFO( mips3 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(mips3); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(mips3); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(mips3); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: /* provided per-CPU */ break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(mips3); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(mips3); break;
|
||||
|
@ -2835,10 +2835,6 @@ static CPU_EXECUTE( psxcpu )
|
||||
return cycles - psxcpu->icount;
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( psxcpu ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( psxcpu ) { }
|
||||
|
||||
static void set_irq_line( psxcpu_state *psxcpu, int irqline, int state )
|
||||
{
|
||||
UINT32 ip;
|
||||
@ -4192,8 +4188,8 @@ CPU_GET_INFO( psxcpu )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(psxcpu); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(psxcpu); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(psxcpu); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(psxcpu); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(psxcpu); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(psxcpu); break;
|
||||
|
@ -280,17 +280,6 @@ static void set_irq_line(r3000_state *r3000, int irqline, int state)
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
CONTEXT SWITCHING
|
||||
***************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( r3000 ) { }
|
||||
|
||||
|
||||
static CPU_SET_CONTEXT( r3000 ) { }
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INITIALIZATION AND SHUTDOWN
|
||||
***************************************************************************/
|
||||
@ -1253,8 +1242,8 @@ static CPU_GET_INFO( r3000 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(r3000); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(r3000); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(r3000); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(r3000); break;
|
||||
case CPUINFO_PTR_RESET: /* provided per-CPU */ break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(r3000); break;
|
||||
|
@ -1048,10 +1048,6 @@ static void i_invalid(nec_state_t *nec_state)
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( nec ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( nec ) { }
|
||||
|
||||
static void set_irq_line(nec_state_t *nec_state, int irqline, int state)
|
||||
{
|
||||
if (irqline == INPUT_LINE_NMI)
|
||||
@ -1373,8 +1369,8 @@ static CPU_GET_INFO( nec )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(nec); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(nec); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(nec); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: /* set per-CPU */ break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(nec); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(nec); break;
|
||||
|
@ -152,13 +152,6 @@ static CPU_RESET( tx0 )
|
||||
cpustate->gbl_cm_sel = 1; /* HACK */
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( tx0 )
|
||||
{
|
||||
}
|
||||
|
||||
static CPU_SET_CONTEXT( tx0 ) { }
|
||||
|
||||
|
||||
/* execute instructions on this CPU until icount expires */
|
||||
static CPU_EXECUTE( tx0_64kw )
|
||||
{
|
||||
@ -502,8 +495,8 @@ CPU_GET_INFO( tx0_64kw )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(tx0); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(tx0); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(tx0); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(tx0_64kw); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(tx0); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(tx0_64kw); break;
|
||||
@ -630,8 +623,8 @@ CPU_GET_INFO( tx0_8kw )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(tx0); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(tx0); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(tx0); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(tx0_8kw); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(tx0); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(tx0_8kw); break;
|
||||
|
@ -734,22 +734,6 @@ static CPU_EXIT( ppcdrc )
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
ppcdrc_get_context - return a copy of the
|
||||
current context
|
||||
-------------------------------------------------*/
|
||||
|
||||
static CPU_GET_CONTEXT( ppcdrc ) { }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
ppcdrc_set_context - copy the current context
|
||||
into the global state
|
||||
-------------------------------------------------*/
|
||||
|
||||
static CPU_SET_CONTEXT( ppcdrc ) { }
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
ppcdrc_translate - perform virtual-to-physical
|
||||
address translation
|
||||
@ -821,8 +805,8 @@ static CPU_GET_INFO( ppcdrc )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ppcdrc); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(ppcdrc);break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(ppcdrc);break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy);break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy);break;
|
||||
case CPUINFO_PTR_INIT: /* provided per-CPU */ break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(ppcdrc); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(ppcdrc); break;
|
||||
|
@ -806,10 +806,6 @@ static CPU_EXIT( s2650 )
|
||||
/* nothing to do */
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( s2650 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( s2650 ) { }
|
||||
|
||||
static void set_irq_line(s2650_regs *s2650c, int irqline, int state)
|
||||
{
|
||||
if (irqline == 1)
|
||||
@ -1561,8 +1557,8 @@ CPU_GET_INFO( s2650 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(s2650); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(s2650); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(s2650); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(s2650); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(s2650); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(s2650); break;
|
||||
|
@ -1793,10 +1793,6 @@ static CPU_EXIT( SE3208 )
|
||||
}
|
||||
|
||||
|
||||
static CPU_GET_CONTEXT( SE3208 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( SE3208 ) { }
|
||||
|
||||
static void set_irq_line(se3208_state_t *se3208_state, int line,int state)
|
||||
{
|
||||
if(line==INPUT_LINE_NMI) //NMI
|
||||
@ -1884,8 +1880,8 @@ CPU_GET_INFO( SE3208 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(SE3208); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(SE3208); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(SE3208); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(SE3208); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(SE3208); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(SE3208); break;
|
||||
|
@ -604,10 +604,6 @@ static CPU_EXIT( sharc )
|
||||
/* TODO */
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( sharc ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( sharc ) { }
|
||||
|
||||
static void sharc_set_irq_line(SHARC_REGS *cpustate, int irqline, int state)
|
||||
{
|
||||
if (state)
|
||||
@ -1201,8 +1197,8 @@ static CPU_GET_INFO( sharc )
|
||||
case CPUINFO_INT_REGISTER + SHARC_B15: info->i = cpustate->dag2.b[7]; break;
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(sharc); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(sharc); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(sharc); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(sharc); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(sharc); break;
|
||||
|
@ -253,10 +253,6 @@ static CPU_BURN( sm8500 )
|
||||
}
|
||||
}
|
||||
|
||||
static CPU_SET_CONTEXT( sm8500 ) { }
|
||||
|
||||
static CPU_GET_CONTEXT( sm8500 ) { }
|
||||
|
||||
unsigned sm8500_get_reg( int regnum )
|
||||
{
|
||||
switch( regnum )
|
||||
@ -489,8 +485,8 @@ CPU_GET_INFO( sm8500 )
|
||||
|
||||
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(sm8500); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(sm8500); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(sm8500); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(sm8500); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(sm8500); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(sm8500); break;
|
||||
|
@ -1227,12 +1227,6 @@ CPU_EXIT( spc700 )
|
||||
}
|
||||
|
||||
|
||||
/* Get the current CPU context */
|
||||
CPU_GET_CONTEXT( spc700 ) { }
|
||||
|
||||
/* Set the current CPU context */
|
||||
CPU_SET_CONTEXT( spc700 ) { }
|
||||
|
||||
/* Get the current Program Counter */
|
||||
unsigned spc700_get_pc(spc700i_cpu *cpustate)
|
||||
{
|
||||
@ -1656,8 +1650,8 @@ CPU_GET_INFO( spc700 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(spc700); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(spc700); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(spc700); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(spc700); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(spc700); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(spc700); break;
|
||||
|
@ -756,10 +756,6 @@ static CPU_EXECUTE( ssp1601 )
|
||||
* MAME interface
|
||||
**************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( ssp1601 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( ssp1601 ) { }
|
||||
|
||||
static CPU_DISASSEMBLE( ssp1601 )
|
||||
{
|
||||
//ssp1601_state_t *ssp1601_state = device->token;
|
||||
@ -868,8 +864,8 @@ CPU_GET_INFO( ssp1601 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(ssp1601); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(ssp1601); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(ssp1601); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(ssp1601); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(ssp1601); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(ssp1601); break;
|
||||
|
@ -236,26 +236,6 @@ static void t11_check_irqs(t11_state *cpustate)
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Fetch current context into buffer
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( t11 ) { }
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Retrieve context from buffer
|
||||
*
|
||||
*************************************/
|
||||
|
||||
static CPU_SET_CONTEXT( t11 ) { }
|
||||
|
||||
|
||||
|
||||
/*************************************
|
||||
*
|
||||
* Low-level initialization/cleanup
|
||||
@ -470,8 +450,8 @@ CPU_GET_INFO( t11 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(t11); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(t11); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(t11); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(t11); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(t11); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(t11); break;
|
||||
|
@ -352,17 +352,6 @@ static void set_irq_line(tms32031_state *tms, int irqline, int state)
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
CONTEXT SWITCHING
|
||||
***************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( tms32031 ) { }
|
||||
|
||||
|
||||
static CPU_SET_CONTEXT( tms32031 ) { }
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
INITIALIZATION AND SHUTDOWN
|
||||
***************************************************************************/
|
||||
@ -787,8 +776,8 @@ CPU_GET_INFO( tms32031 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(tms32031); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(tms32031); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(tms32031); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(tms32031); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(tms32031); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(tms32031); break;
|
||||
|
@ -711,16 +711,6 @@ static CPU_GET_CONTEXT( tms34020 ) { }
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
Set all registers to given values
|
||||
***************************************************************************/
|
||||
|
||||
static CPU_SET_CONTEXT( tms34010 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( tms34020 ) { }
|
||||
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
Set IRQ line state
|
||||
***************************************************************************/
|
||||
@ -1819,8 +1809,8 @@ CPU_GET_INFO( tms34010 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(tms34010); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(tms34010); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(tms34010); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(tms34010); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(tms34010); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(tms34010); break;
|
||||
@ -1909,8 +1899,8 @@ CPU_GET_INFO( tms34020 )
|
||||
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(tms34020); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(tms34020); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(tms34020); break;
|
||||
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(tms34020); break;
|
||||
|
||||
|
@ -881,10 +881,6 @@ static void i_invalid(v30mz_state *cpustate)
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static CPU_GET_CONTEXT( nec ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( nec ) { }
|
||||
|
||||
static void set_irq_line(v30mz_state *cpustate, int irqline, int state)
|
||||
{
|
||||
if (irqline == INPUT_LINE_NMI)
|
||||
@ -1091,8 +1087,8 @@ CPU_GET_INFO( v30mz )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(nec); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(nec); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(nec); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(nec); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(nec); break;
|
||||
case CPUINFO_PTR_BURN: info->burn = NULL; break;
|
||||
|
@ -423,8 +423,7 @@ static void v60_try_irq(v60_state *cpustate)
|
||||
vector = cpustate->irq_cb(cpustate->device, 0);
|
||||
|
||||
v60_do_irq(cpustate, vector + 0x40);
|
||||
} else if(cpustate->irq_line == PULSE_LINE)
|
||||
cpustate->irq_line = CLEAR_LINE;
|
||||
}
|
||||
}
|
||||
|
||||
static void set_irq_line(v60_state *cpustate, int irqline, int state)
|
||||
@ -440,11 +439,6 @@ static void set_irq_line(v60_state *cpustate, int irqline, int state)
|
||||
case CLEAR_LINE:
|
||||
cpustate->nmi_line = CLEAR_LINE;
|
||||
break;
|
||||
case HOLD_LINE:
|
||||
case PULSE_LINE:
|
||||
cpustate->nmi_line = CLEAR_LINE;
|
||||
v60_do_irq(cpustate, 2);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
cpustate->irq_line = state;
|
||||
@ -477,10 +471,6 @@ static CPU_EXECUTE( v60 )
|
||||
return cycles - cpustate->icount;
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( v60 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( v60 ) { }
|
||||
|
||||
|
||||
CPU_DISASSEMBLE( v60 );
|
||||
CPU_DISASSEMBLE( v70 );
|
||||
@ -666,8 +656,8 @@ CPU_GET_INFO( v60 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(v60); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(v60); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(v60); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(v60); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(v60); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(v60); break;
|
||||
|
@ -1031,9 +1031,6 @@ static CPU_EXECUTE( v810 )
|
||||
return cycles-cpustate->icount;
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( v810 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( v810 ) { }
|
||||
|
||||
static void set_irq_line(v810_state *cpustate, int irqline, int state)
|
||||
{
|
||||
@ -1221,8 +1218,8 @@ CPU_GET_INFO( v810 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(v810); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(v810); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(v810); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(v810); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(v810); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = NULL; break;
|
||||
|
@ -2267,16 +2267,6 @@ static CPU_BURN( z180 )
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( z180 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( z180 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set IRQ line state
|
||||
****************************************************************************/
|
||||
@ -2551,8 +2541,8 @@ CPU_GET_INFO( z180 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(z180); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(z180); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(z180); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(z180); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(z180); break;
|
||||
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(z180); break;
|
||||
|
@ -3484,16 +3484,6 @@ static CPU_BURN( z80 )
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Get all registers in given buffer
|
||||
****************************************************************************/
|
||||
static CPU_GET_CONTEXT( z80 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set all registers to given values
|
||||
****************************************************************************/
|
||||
static CPU_SET_CONTEXT( z80 ) { }
|
||||
|
||||
/****************************************************************************
|
||||
* Set IRQ line state
|
||||
****************************************************************************/
|
||||
@ -3640,8 +3630,8 @@ CPU_GET_INFO( z80 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(z80); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(z80); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(z80); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(z80); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(z80); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(z80); break;
|
||||
|
@ -404,10 +404,6 @@ static CPU_EXECUTE( z8000 )
|
||||
|
||||
}
|
||||
|
||||
static CPU_GET_CONTEXT( z8000 ) { }
|
||||
|
||||
static CPU_SET_CONTEXT( z8000 ) { }
|
||||
|
||||
static void set_irq_line(z8000_state *cpustate, int irqline, int state)
|
||||
{
|
||||
if (irqline == INPUT_LINE_NMI)
|
||||
@ -572,8 +568,8 @@ CPU_GET_INFO( z8000 )
|
||||
|
||||
/* --- the following bits of info are returned as pointers to data or functions --- */
|
||||
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(z8000); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(z8000); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(z8000); break;
|
||||
case CPUINFO_PTR_GET_CONTEXT: info->getcontext = CPU_GET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_SET_CONTEXT: info->setcontext = CPU_SET_CONTEXT_NAME(dummy); break;
|
||||
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(z8000); break;
|
||||
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(z8000); break;
|
||||
case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(z8000); break;
|
||||
|
@ -922,57 +922,7 @@ void cpu_set_input_line_and_vector(const device_config *device, int line, int st
|
||||
#ifdef MAME_DEBUG
|
||||
/* catch errors where people use PULSE_LINE for CPUs that don't support it */
|
||||
if (state == PULSE_LINE && line != INPUT_LINE_NMI && line != INPUT_LINE_RESET)
|
||||
{
|
||||
switch (classdata->header.cputype)
|
||||
{
|
||||
case CPU_KONAMI:
|
||||
case CPU_Z80:
|
||||
case CPU_Z180:
|
||||
case CPU_M68000:
|
||||
case CPU_M68008:
|
||||
case CPU_M68010:
|
||||
case CPU_M68EC020:
|
||||
case CPU_M68020:
|
||||
case CPU_M68040:
|
||||
case CPU_R4600BE:
|
||||
case CPU_R4600LE:
|
||||
case CPU_R4650BE:
|
||||
case CPU_R4650LE:
|
||||
case CPU_R4700BE:
|
||||
case CPU_R4700LE:
|
||||
case CPU_R5000BE:
|
||||
case CPU_R5000LE:
|
||||
case CPU_QED5271BE:
|
||||
case CPU_QED5271LE:
|
||||
case CPU_RM7000BE:
|
||||
case CPU_RM7000LE:
|
||||
case CPU_PPC403GA:
|
||||
case CPU_PPC403GCX:
|
||||
case CPU_PPC601:
|
||||
case CPU_PPC602:
|
||||
case CPU_PPC603:
|
||||
case CPU_PPC603E:
|
||||
case CPU_PPC603R:
|
||||
case CPU_PPC604:
|
||||
case CPU_I8035:
|
||||
case CPU_I8041:
|
||||
case CPU_I8048:
|
||||
case CPU_I8648:
|
||||
case CPU_I8748:
|
||||
case CPU_MB8884:
|
||||
case CPU_N7751:
|
||||
case CPU_TMS34010:
|
||||
case CPU_TMS34020:
|
||||
case CPU_TMS32010:
|
||||
case CPU_TMS32025:
|
||||
case CPU_TMS32026:
|
||||
fatalerror("CPU %s: PULSE_LINE used with level-detected IRQ %d\n", device->tag, line);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
fatalerror("CPU %s: PULSE_LINE can only be used for NMI and RESET lines\n", device->tag);
|
||||
#endif
|
||||
|
||||
if (line >= 0 && line < MAX_INPUT_LINES)
|
||||
|
@ -1466,8 +1466,8 @@ static CPU_INIT( dummy ) { }
|
||||
static CPU_RESET( dummy ) { }
|
||||
static CPU_EXIT( dummy ) { }
|
||||
static CPU_EXECUTE( dummy ) { return cycles; }
|
||||
static CPU_GET_CONTEXT( dummy ) { }
|
||||
static CPU_SET_CONTEXT( dummy ) { }
|
||||
CPU_GET_CONTEXT( dummy ) { }
|
||||
CPU_SET_CONTEXT( dummy ) { }
|
||||
|
||||
static CPU_DISASSEMBLE( dummy )
|
||||
{
|
||||
|
@ -749,6 +749,9 @@ genf *cputype_get_info_fct(cpu_type cputype, UINT32 state);
|
||||
const char *cputype_get_info_string(cpu_type cputype, UINT32 state);
|
||||
|
||||
|
||||
/* temporary */
|
||||
extern CPU_GET_CONTEXT( dummy );
|
||||
extern CPU_SET_CONTEXT( dummy );
|
||||
|
||||
|
||||
/***************************************************************************
|
||||
|
@ -590,6 +590,46 @@ static TIMER_CALLBACK( clear_all_lines )
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
irq_pulse_clear - clear a "pulsed" IRQ line
|
||||
-------------------------------------------------*/
|
||||
|
||||
static TIMER_CALLBACK( irq_pulse_clear )
|
||||
{
|
||||
const device_config *device = ptr;
|
||||
int irqline = param;
|
||||
cpu_set_input_line(device, irqline, CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
generic_pulse_irq_line - "pulse" an IRQ line by
|
||||
asserting it and then clearing it 1 cycle
|
||||
later
|
||||
-------------------------------------------------*/
|
||||
|
||||
void generic_pulse_irq_line(const device_config *device, int irqline)
|
||||
{
|
||||
assert(irqline != INPUT_LINE_NMI && irqline != INPUT_LINE_RESET);
|
||||
cpu_set_input_line(device, irqline, ASSERT_LINE);
|
||||
timer_set(device->machine, cpu_clocks_to_attotime(device, 1), (void *)device, irqline, irq_pulse_clear);
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
generic_pulse_irq_line_and_vector - "pulse" an
|
||||
IRQ line by asserting it and then clearing it
|
||||
1 cycle later, specifying a vector
|
||||
-------------------------------------------------*/
|
||||
|
||||
void generic_pulse_irq_line_and_vector(const device_config *device, int irqline, int vector)
|
||||
{
|
||||
assert(irqline != INPUT_LINE_NMI && irqline != INPUT_LINE_RESET);
|
||||
cpu_set_input_line_and_vector(device, irqline, ASSERT_LINE, vector);
|
||||
timer_set(device->machine, cpu_clocks_to_attotime(device, 1), (void *)device, irqline, irq_pulse_clear);
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------
|
||||
cpu_interrupt_enable - controls the enable/
|
||||
disable value for global interrupts
|
||||
@ -660,35 +700,35 @@ INTERRUPT_GEN( nmi_line_assert ) { irqn_line_set(device, INPUT_LINE_NMI, ASSERT_
|
||||
-------------------------------------------------*/
|
||||
|
||||
INTERRUPT_GEN( irq0_line_hold ) { irqn_line_set(device, 0, HOLD_LINE); }
|
||||
INTERRUPT_GEN( irq0_line_pulse ) { irqn_line_set(device, 0, PULSE_LINE); }
|
||||
INTERRUPT_GEN( irq0_line_pulse ) { if (interrupt_enable[cpu_get_index(device)]) generic_pulse_irq_line(device, 0); }
|
||||
INTERRUPT_GEN( irq0_line_assert ) { irqn_line_set(device, 0, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN( irq1_line_hold ) { irqn_line_set(device, 1, HOLD_LINE); }
|
||||
INTERRUPT_GEN( irq1_line_pulse ) { irqn_line_set(device, 1, PULSE_LINE); }
|
||||
INTERRUPT_GEN( irq1_line_pulse ) { if (interrupt_enable[cpu_get_index(device)]) generic_pulse_irq_line(device, 1); }
|
||||
INTERRUPT_GEN( irq1_line_assert ) { irqn_line_set(device, 1, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN( irq2_line_hold ) { irqn_line_set(device, 2, HOLD_LINE); }
|
||||
INTERRUPT_GEN( irq2_line_pulse ) { irqn_line_set(device, 2, PULSE_LINE); }
|
||||
INTERRUPT_GEN( irq2_line_pulse ) { if (interrupt_enable[cpu_get_index(device)]) generic_pulse_irq_line(device, 2); }
|
||||
INTERRUPT_GEN( irq2_line_assert ) { irqn_line_set(device, 2, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN( irq3_line_hold ) { irqn_line_set(device, 3, HOLD_LINE); }
|
||||
INTERRUPT_GEN( irq3_line_pulse ) { irqn_line_set(device, 3, PULSE_LINE); }
|
||||
INTERRUPT_GEN( irq3_line_pulse ) { if (interrupt_enable[cpu_get_index(device)]) generic_pulse_irq_line(device, 3); }
|
||||
INTERRUPT_GEN( irq3_line_assert ) { irqn_line_set(device, 3, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN( irq4_line_hold ) { irqn_line_set(device, 4, HOLD_LINE); }
|
||||
INTERRUPT_GEN( irq4_line_pulse ) { irqn_line_set(device, 4, PULSE_LINE); }
|
||||
INTERRUPT_GEN( irq4_line_pulse ) { if (interrupt_enable[cpu_get_index(device)]) generic_pulse_irq_line(device, 4); }
|
||||
INTERRUPT_GEN( irq4_line_assert ) { irqn_line_set(device, 4, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN( irq5_line_hold ) { irqn_line_set(device, 5, HOLD_LINE); }
|
||||
INTERRUPT_GEN( irq5_line_pulse ) { irqn_line_set(device, 5, PULSE_LINE); }
|
||||
INTERRUPT_GEN( irq5_line_pulse ) { if (interrupt_enable[cpu_get_index(device)]) generic_pulse_irq_line(device, 5); }
|
||||
INTERRUPT_GEN( irq5_line_assert ) { irqn_line_set(device, 5, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN( irq6_line_hold ) { irqn_line_set(device, 6, HOLD_LINE); }
|
||||
INTERRUPT_GEN( irq6_line_pulse ) { irqn_line_set(device, 6, PULSE_LINE); }
|
||||
INTERRUPT_GEN( irq6_line_pulse ) { if (interrupt_enable[cpu_get_index(device)]) generic_pulse_irq_line(device, 6); }
|
||||
INTERRUPT_GEN( irq6_line_assert ) { irqn_line_set(device, 6, ASSERT_LINE); }
|
||||
|
||||
INTERRUPT_GEN( irq7_line_hold ) { irqn_line_set(device, 7, HOLD_LINE); }
|
||||
INTERRUPT_GEN( irq7_line_pulse ) { irqn_line_set(device, 7, PULSE_LINE); }
|
||||
INTERRUPT_GEN( irq7_line_pulse ) { if (interrupt_enable[cpu_get_index(device)]) generic_pulse_irq_line(device, 7); }
|
||||
INTERRUPT_GEN( irq7_line_assert ) { irqn_line_set(device, 7, ASSERT_LINE); }
|
||||
|
||||
|
||||
|
@ -119,6 +119,8 @@ void set_led_status(int num, int value);
|
||||
|
||||
/* ----- interrupt enable and vector helpers ----- */
|
||||
|
||||
void generic_pulse_irq_line(const device_config *device, int irqline);
|
||||
void generic_pulse_irq_line_and_vector(const device_config *device, int irqline, int vector);
|
||||
void cpu_interrupt_enable(int cpu, int enabled);
|
||||
READ8_HANDLER( interrupt_enable_r );
|
||||
WRITE8_HANDLER( interrupt_enable_w );
|
||||
|
@ -1732,7 +1732,10 @@ static TIMER_CALLBACK( internal_timer_callback )
|
||||
/* set the next timer, but only if it's for a reasonable number */
|
||||
if (!dcs.timer_ignore && (dcs.timer_period > 10 || dcs.timer_scale > 1))
|
||||
timer_adjust_oneshot(dcs.internal_timer, cpu_clocks_to_attotime(dcs.cpu, target_cycles), 0);
|
||||
cpu_set_input_line(dcs.cpu, ADSP2105_TIMER, PULSE_LINE);
|
||||
|
||||
/* the IRQ line is edge triggered */
|
||||
cpu_set_input_line(dcs.cpu, ADSP2105_TIMER, ASSERT_LINE);
|
||||
cpu_set_input_line(dcs.cpu, ADSP2105_TIMER, CLEAR_LINE);
|
||||
}
|
||||
|
||||
|
||||
@ -1945,7 +1948,8 @@ static TIMER_CALLBACK( dcs_irq )
|
||||
reg = dcs.ireg_base;
|
||||
|
||||
/* generate the (internal, thats why the pulse) irq */
|
||||
cpu_set_input_line(dcs.cpu, ADSP2105_IRQ1, PULSE_LINE);
|
||||
cpu_set_input_line(dcs.cpu, ADSP2105_IRQ1, ASSERT_LINE);
|
||||
cpu_set_input_line(dcs.cpu, ADSP2105_IRQ1, CLEAR_LINE);
|
||||
}
|
||||
|
||||
/* store it */
|
||||
@ -1960,7 +1964,10 @@ static TIMER_CALLBACK( sport0_irq )
|
||||
/* register; if we don't interlock it, we will eventually lose sound (see CarnEvil) */
|
||||
/* so we skip the SPORT interrupt if we read with output_control within the last 5 cycles */
|
||||
if ((cpu_get_total_cycles(dcs.cpu) - dcs.output_control_cycles) > 5)
|
||||
cpu_set_input_line(dcs.cpu, ADSP2115_SPORT0_RX, PULSE_LINE);
|
||||
{
|
||||
cpu_set_input_line(dcs.cpu, ADSP2115_SPORT0_RX, ASSERT_LINE);
|
||||
cpu_set_input_line(dcs.cpu, ADSP2115_SPORT0_RX, CLEAR_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -201,7 +201,7 @@ static void spacefev_sound_pins_changed(void)
|
||||
}
|
||||
if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5)))
|
||||
{
|
||||
cpu_set_input_line(Machine->cpu[1], 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(Machine->cpu[1], 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -224,7 +224,7 @@ static void sheriff_sound_pins_changed(void)
|
||||
}
|
||||
if (changes & ((1 << 0x2) | (1 << 0x3) | (1 << 0x5)))
|
||||
{
|
||||
cpu_set_input_line(Machine->cpu[1], 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(Machine->cpu[1], 0);
|
||||
}
|
||||
}
|
||||
|
||||
@ -239,7 +239,7 @@ static void helifire_sound_pins_changed(void)
|
||||
|
||||
if (changes & (1 << 6))
|
||||
{
|
||||
cpu_set_input_line(Machine->cpu[1], 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(Machine->cpu[1], 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1377,7 +1377,7 @@ static WRITE8_HANDLER( meter_w )
|
||||
if (changed & (1 << i))
|
||||
{
|
||||
Mechmtr_update(i, cycles, data & (1 << i) );
|
||||
cpu_set_input_line(space->cpu, M6809_FIRQ_LINE, PULSE_LINE );
|
||||
generic_pulse_irq_line(space->cpu, M6809_FIRQ_LINE);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1695,7 +1695,7 @@ static DRIVER_INIT( bfcobra )
|
||||
/* TODO */
|
||||
static INTERRUPT_GEN( timer_irq )
|
||||
{
|
||||
cpu_set_input_line(device, M6809_IRQ_LINE, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, M6809_IRQ_LINE);
|
||||
}
|
||||
|
||||
/* TODO */
|
||||
|
@ -522,7 +522,7 @@ static INTERRUPT_GEN( timer_irq )
|
||||
irq_timer_stat = 0x01;
|
||||
irq_status = 0x02;
|
||||
|
||||
cpu_set_input_line(device, M6809_IRQ_LINE, PULSE_LINE );
|
||||
generic_pulse_irq_line(device, M6809_IRQ_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -432,7 +432,7 @@ static INTERRUPT_GEN( bishjan_interrupt )
|
||||
switch (cpu_getiloops(device))
|
||||
{
|
||||
case 0:
|
||||
cpu_set_input_line(device, 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, 0);
|
||||
break;
|
||||
default:
|
||||
cpu_set_input_line(device->machine->cpu[0], H8_METRO_TIMER_HACK, HOLD_LINE);
|
||||
|
@ -55,7 +55,7 @@ static TIMER_CALLBACK( interrupt_callback )
|
||||
{
|
||||
int scanline = param;
|
||||
|
||||
cpu_set_input_line(machine->cpu[0], 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[0], 0);
|
||||
|
||||
scanline = scanline + 32;
|
||||
|
||||
|
@ -480,7 +480,7 @@ static INTERRUPT_GEN( chl_interrupt )
|
||||
//so we should cause an INT on the cpu 1 here, as well.
|
||||
//but only once per frame !
|
||||
if (vector == 0xdf) /* only on vblank */
|
||||
cpu_set_input_line(device->machine->cpu[1], 0, PULSE_LINE );
|
||||
generic_pulse_irq_line(device->machine->cpu[1], 0);
|
||||
|
||||
}
|
||||
|
||||
|
@ -246,7 +246,7 @@ WRITE8_HANDLER( cvs_s2636_2_or_character_ram_w )
|
||||
static INTERRUPT_GEN( cvs_main_cpu_interrupt )
|
||||
{
|
||||
cpu_set_input_line_vector(device, 0, 0x03);
|
||||
cpu_set_input_line(device, 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, 0);
|
||||
|
||||
cvs_scroll_stars();
|
||||
}
|
||||
|
@ -445,7 +445,7 @@ static WRITE8_HANDLER(equites_c0f8_w)
|
||||
|
||||
case 1: // c0f9: RST75 trigger (written by NMI handler)
|
||||
// Note: solder pad CP3 on the pcb would allow to disable this
|
||||
cpu_set_input_line(space->machine->cpu[1], I8085_RST75_LINE, PULSE_LINE);
|
||||
generic_pulse_irq_line(space->machine->cpu[1], I8085_RST75_LINE);
|
||||
break;
|
||||
|
||||
case 2: // c0fa: INTR trigger (written by NMI handler)
|
||||
|
@ -66,7 +66,7 @@ static TIMER_CALLBACK( periodic_callback )
|
||||
{
|
||||
int scanline = param;
|
||||
|
||||
cpu_set_input_line(machine->cpu[0], 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[0], 0);
|
||||
|
||||
/* IRQs are generated by inverse 16V signal */
|
||||
scanline += 32;
|
||||
|
@ -30,7 +30,7 @@ static TIMER_CALLBACK( flyball_joystick_callback )
|
||||
int potsense = param;
|
||||
|
||||
if (potsense & ~flyball_potmask)
|
||||
cpu_set_input_line(machine->cpu[0], 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[0], 0);
|
||||
|
||||
flyball_potsense |= potsense;
|
||||
}
|
||||
|
@ -562,7 +562,8 @@ static TIMER_CALLBACK( adsp_autobuffer_irq )
|
||||
reg = adsp_ireg_base;
|
||||
|
||||
/* generate the (internal, thats why the pulse) irq */
|
||||
cpu_set_input_line(machine->cpu[2], ADSP2105_IRQ1, PULSE_LINE);
|
||||
cpu_set_input_line(machine->cpu[2], ADSP2105_IRQ1, ASSERT_LINE);
|
||||
cpu_set_input_line(machine->cpu[2], ADSP2105_IRQ1, CLEAR_LINE);
|
||||
}
|
||||
|
||||
/* store it */
|
||||
|
@ -359,7 +359,7 @@ GFXDECODE_END
|
||||
|
||||
static INTERRUPT_GEN( igs_majhong_interrupt )
|
||||
{
|
||||
cpu_set_input_line(device, ARM7_FIRQ_LINE, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, ARM7_FIRQ_LINE);
|
||||
}
|
||||
|
||||
|
||||
|
@ -681,7 +681,7 @@ static MACHINE_RESET( catnmous )
|
||||
|
||||
static INTERRUPT_GEN( laserbat_interrupt )
|
||||
{
|
||||
cpu_set_input_line_and_vector(device,0,PULSE_LINE,0x0a);
|
||||
generic_pulse_irq_line_and_vector(device,0,0x0a);
|
||||
}
|
||||
|
||||
static INTERRUPT_GEN( zaccaria_cb1_toggle )
|
||||
|
@ -50,7 +50,7 @@ static UINT8 *lasso_chip_data;
|
||||
static WRITE8_HANDLER( sound_command_w )
|
||||
{
|
||||
soundlatch_w(space,offset,data);
|
||||
cpu_set_input_line(space->machine->cpu[1], 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(space->machine->cpu[1], 0);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( pinbo_sound_command_w )
|
||||
|
@ -452,7 +452,7 @@ static INTERRUPT_GEN( unknown_interrupt )
|
||||
switch (cpu_getiloops(device))
|
||||
{
|
||||
case 0:
|
||||
cpu_set_input_line(device, 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, 0);
|
||||
break;
|
||||
default:
|
||||
cpu_set_input_line(device->machine->cpu[0], H8_METRO_TIMER_HACK, HOLD_LINE);
|
||||
|
@ -154,7 +154,7 @@ static TIMER_CALLBACK( mcu_timer_proc )
|
||||
if ( (tcr & 0x40) == 0 )
|
||||
{
|
||||
//timer interrupt!
|
||||
cpu_set_input_line(machine->cpu[1], M68705_INT_TIMER, PULSE_LINE );
|
||||
generic_pulse_irq_line(machine->cpu[1], M68705_INT_TIMER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ static TIMER_CALLBACK( interrupt_callback )
|
||||
|
||||
update_plunger(machine);
|
||||
|
||||
cpu_set_input_line(machine->cpu[0], 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[0], 0);
|
||||
|
||||
scanline = scanline + 32;
|
||||
|
||||
|
@ -213,7 +213,7 @@ static void multigam3_mmc3_scanline_cb( int num, int scanline, int vblank, int b
|
||||
if ( --multigam3_mmc3_scanline_counter == -1 )
|
||||
{
|
||||
multigam3_mmc3_scanline_counter = multigam3_mmc3_scanline_latch;
|
||||
cpu_set_input_line(Machine->cpu[0], 0, PULSE_LINE );
|
||||
generic_pulse_irq_line(Machine->cpu[0], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2600,7 +2600,7 @@ static READ8_HANDLER( propcycle_mcu_adc_r )
|
||||
int i;
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
cpu_set_input_line(space->machine->cpu[3], M37710_LINE_TIMERA3TICK, PULSE_LINE);
|
||||
generic_pulse_irq_line(space->machine->cpu[3], M37710_LINE_TIMERA3TICK);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1145,9 +1145,9 @@ MACHINE_DRIVER_END
|
||||
static void sound_irq_callback(running_machine *machine, int irq)
|
||||
{
|
||||
if (irq == 0)
|
||||
cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ1, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[1], INPUT_LINE_IRQ1);
|
||||
else
|
||||
cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ2, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[1], INPUT_LINE_IRQ2);
|
||||
}
|
||||
|
||||
static DRIVER_INIT(nwktr)
|
||||
|
@ -308,7 +308,7 @@ static READ32_HANDLER( arm7_latch_arm_r )
|
||||
#ifdef PGMARM7SPEEDHACK
|
||||
static TIMER_CALLBACK( arm_irq )
|
||||
{
|
||||
cpu_set_input_line(machine->cpu[2], ARM7_FIRQ_LINE, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[2], ARM7_FIRQ_LINE);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -356,7 +356,7 @@ static WRITE16_HANDLER( arm7_latch_68k_w )
|
||||
timer_set(space->machine, ATTOTIME_IN_USEC(50), NULL, 0, arm_irq); // i don't know how long..
|
||||
cpu_spinuntil_trigger(space->cpu, 1002);
|
||||
#else
|
||||
cpu_set_input_line(space->machine->cpu[2], ARM7_FIRQ_LINE, PULSE_LINE);
|
||||
generic_pulse_irq_line(space->machine->cpu[2], ARM7_FIRQ_LINE);
|
||||
cpuexec_boost_interleave(space->machine, attotime_zero, ATTOTIME_IN_USEC(200));
|
||||
cpu_spinuntil_time(space->cpu, cpu_clocks_to_attotime(space->machine->cpu[2], 200)); // give the arm time to respond (just boosting the interleave doesn't help
|
||||
#endif
|
||||
|
@ -412,11 +412,11 @@ ADDRESS_MAP_END
|
||||
static INTERRUPT_GEN( pntnpuzl_irq )
|
||||
{
|
||||
if (input_port_read(device->machine, "IN0") & 0x02) /* coin */
|
||||
cpu_set_input_line(device, 1, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, 1);
|
||||
else if (input_port_read(device->machine, "IN0") & 0x04) /* service */
|
||||
cpu_set_input_line(device, 2, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, 2);
|
||||
else if (input_port_read(device->machine, "IN0") & 0x08) /* coin */
|
||||
cpu_set_input_line(device, 4, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, 4);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( pntnpuzl )
|
||||
|
@ -315,7 +315,7 @@ GFXDECODE_END
|
||||
|
||||
static INTERRUPT_GEN( quasar_interrupt )
|
||||
{
|
||||
cpu_set_input_line_and_vector(device,0,PULSE_LINE,0x03);
|
||||
generic_pulse_irq_line_and_vector(device,0,0x03);
|
||||
}
|
||||
|
||||
// ************************(***************
|
||||
|
@ -1353,7 +1353,7 @@ static void upd7759_generate_nmi(int state)
|
||||
static WRITE8_HANDLER( mcu_data_w )
|
||||
{
|
||||
mcu_data = data;
|
||||
cpu_set_input_line(space->machine->cpu[2], 1, PULSE_LINE);
|
||||
generic_pulse_irq_line(space->machine->cpu[2], 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -258,7 +258,7 @@ static TIMER_CALLBACK( PS7500_Timer0_callback )
|
||||
PS7500_IO[IRQSTA]|=0x20;
|
||||
if(PS7500_IO[IRQMSKA]&0x20)
|
||||
{
|
||||
cpu_set_input_line(machine->cpu[0], ARM7_IRQ_LINE, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[0], ARM7_IRQ_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -277,7 +277,7 @@ static TIMER_CALLBACK( PS7500_Timer1_callback )
|
||||
PS7500_IO[IRQSTA]|=0x40;
|
||||
if(PS7500_IO[IRQMSKA]&0x40)
|
||||
{
|
||||
cpu_set_input_line(machine->cpu[0], ARM7_IRQ_LINE, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[0], ARM7_IRQ_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
@ -295,7 +295,7 @@ static INTERRUPT_GEN( ssfindo_interrupt )
|
||||
PS7500_IO[IRQSTA]|=0x08;
|
||||
if(PS7500_IO[IRQMSKA]&0x08)
|
||||
{
|
||||
cpu_set_input_line(device, ARM7_IRQ_LINE, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, ARM7_IRQ_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,7 @@ static int starshp1_analog_in_select;
|
||||
static INTERRUPT_GEN( starshp1_interrupt )
|
||||
{
|
||||
if ((input_port_read(device->machine, "SYSTEM") & 0x90) != 0x90)
|
||||
cpu_set_input_line(device, 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, 0);
|
||||
}
|
||||
|
||||
|
||||
|
@ -142,7 +142,7 @@ static UINT8 last = 0;
|
||||
if (last != (input_port_read(device->machine, "INPUT") & 0x0f))
|
||||
{
|
||||
last = input_port_read(device->machine, "INPUT") & 0x0f;
|
||||
cpu_set_input_line(device, 0, PULSE_LINE);
|
||||
generic_pulse_irq_line(device, 0);
|
||||
}
|
||||
pia_set_input_a(0, input_port_read(device->machine, "INPUT") & 0x0f, 0);
|
||||
|
||||
|
@ -127,7 +127,7 @@ static INTERRUPT_GEN( truco_interrupt )
|
||||
{
|
||||
if ( trigger == 0 )
|
||||
{
|
||||
cpu_set_input_line(device, M6809_IRQ_LINE, PULSE_LINE );
|
||||
generic_pulse_irq_line(device, M6809_IRQ_LINE);
|
||||
trigger++;
|
||||
}
|
||||
} else
|
||||
|
@ -36,12 +36,12 @@ static WRITE8_HANDLER( tryout_nmi_ack_w )
|
||||
static WRITE8_HANDLER( tryout_sound_w )
|
||||
{
|
||||
soundlatch_w(space,0,data);
|
||||
cpu_set_input_line(space->machine->cpu[1], 0, PULSE_LINE );
|
||||
cpu_set_input_line(space->machine->cpu[1], 0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( tryout_sound_irq_ack_w )
|
||||
{
|
||||
cpu_set_input_line(space->machine->cpu[1], 0, CLEAR_LINE );
|
||||
cpu_set_input_line(space->cpu, 0, CLEAR_LINE);
|
||||
}
|
||||
|
||||
static WRITE8_HANDLER( tryout_bankswitch_w )
|
||||
|
@ -270,9 +270,9 @@ MACHINE_DRIVER_END
|
||||
static void sound_irq_callback(running_machine *machine, int irq)
|
||||
{
|
||||
if (irq == 0)
|
||||
/*cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ5, PULSE_LINE)*/;
|
||||
/*generic_pulse_irq_line(machine->cpu[1], INPUT_LINE_IRQ5)*/;
|
||||
else
|
||||
cpu_set_input_line(machine->cpu[1], INPUT_LINE_IRQ6, PULSE_LINE);
|
||||
generic_pulse_irq_line(machine->cpu[1], INPUT_LINE_IRQ6);
|
||||
}
|
||||
|
||||
static DRIVER_INIT( ultrsprt )
|
||||
|
@ -1127,7 +1127,7 @@ MACHINE_DRIVER_END
|
||||
|
||||
static INTERRUPT_GEN( hotchase_sound_timer )
|
||||
{
|
||||
cpu_set_input_line(device, M6809_FIRQ_LINE, PULSE_LINE );
|
||||
generic_pulse_irq_line(device, M6809_FIRQ_LINE);
|
||||
}
|
||||
|
||||
static MACHINE_DRIVER_START( hotchase )
|
||||
|
@ -405,7 +405,7 @@ DRIVER_INIT( 4in1 )
|
||||
|
||||
INTERRUPT_GEN( hunchbks_vh_interrupt )
|
||||
{
|
||||
cpu_set_input_line_and_vector(device,0,PULSE_LINE,0x03);
|
||||
generic_pulse_irq_line_and_vector(device,0,0x03);
|
||||
}
|
||||
|
||||
DRIVER_INIT( ladybugg )
|
||||
|
@ -315,7 +315,6 @@ WRITE8_HANDLER( mexico86_68705_portB_w )
|
||||
if ((ddrB & 0x20) && (data & 0x20) && (~portB_out & 0x20))
|
||||
{
|
||||
cpu_set_input_line_vector(space->machine->cpu[0],0,mexico86_protection_ram[0]);
|
||||
//cpu_set_input_line(space->machine->cpu[0],0,PULSE_LINE);
|
||||
cpu_set_input_line(space->machine->cpu[0], 0, HOLD_LINE); //AT: HOLD_LINE works better in Z80 interrupt mode 1.
|
||||
}
|
||||
if ((ddrB & 0x40) && (~data & 0x40) && (portB_out & 0x40))
|
||||
|
@ -784,7 +784,7 @@ WRITE8_HANDLER( namcos2_mcu_analog_ctrl_w )
|
||||
/* If the interrupt enable bit is set trigger an A/D IRQ */
|
||||
if(data & 0x20)
|
||||
{
|
||||
cpu_set_input_line(space->machine->cpu[CPU_MCU], HD63705_INT_ADCONV , PULSE_LINE);
|
||||
generic_pulse_irq_line(space->machine->cpu[CPU_MCU], HD63705_INT_ADCONV);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -675,7 +675,7 @@ static void gboard_scanline_cb( int num, int scanline, int vblank, int blanked )
|
||||
if ( --gboard_scanline_counter == -1 )
|
||||
{
|
||||
gboard_scanline_counter = gboard_scanline_latch;
|
||||
cpu_set_input_line(Machine->cpu[1], 0, PULSE_LINE );
|
||||
generic_pulse_irq_line(Machine->cpu[1], 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user