Пример #1
0
INLINE void saturn_call(int adr)
{
	saturn_push(saturn.pc);
	saturn.pc=adr;
//	saturn_ICount-=10;
	change_pc(saturn.pc);
}
Пример #2
0
void saturn_set_nmi_line(int state)
{
	if (saturn.nmi_state == state) return;
	saturn.nmi_state = state;
	if( state != CLEAR_LINE )
	{
		LOG(( "M6502#%d set_nmi_line(ASSERT)\n", cpu_getactivecpu()));
		saturn_ICount -= 7;
		saturn_push(saturn.pc);
		saturn.pc=IRQ_ADDRESS;

		LOG(("M6502#%d takes NMI ($%04x)\n", cpu_getactivecpu(), PC));
		change_pc(saturn.pc);
	}
}
Пример #3
0
INLINE void saturn_take_irq(void)
{
	{
		saturn_ICount -= 7;

		saturn_push(saturn.pc);
		saturn.pc=IRQ_ADDRESS;

		LOG(("Saturn#%d takes IRQ ($%04x)\n", cpu_getactivecpu(), saturn.pc));
		/* call back the cpuintrf to let it clear the line */
		if (saturn.irq_callback) (*saturn.irq_callback)(0);
		change_pc(saturn.pc);
	}
	saturn.pending_irq = 0;
}
Пример #4
0
INLINE void saturn_push_c(void)
{
	saturn_push(S64_READ_A(C));
}