Exemple #1
0
static READ16_HANDLER(dsp_BIO_r)
{
	if ( cpu_get_pc(space->cpu) == 0x0001 )
	{
		if ( dsp_idle == 0 )
		{
			dsp_idle = 1;
			dsp_BIO = 0;
		}
		return !dsp_BIO;
	}
	else if ( cpu_get_pc(space->cpu) == 0x0003 )
	{
		if ( dsp_BIO == 1 )
		{
			dsp_idle = 0;
			dsp_BIO = 0;
			cputag_resume(space->machine, "maincpu", SUSPEND_REASON_SPIN );
			return 0;
		}
		else
		{
			assert(0);
			return 0;
		}
	}
	else
	{
		return !dsp_BIO;
	}
}
Exemple #2
0
static void IntReq(running_machine *machine, int num)
{
	const address_space *space = cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM);
	UINT32 IntEn=memory_read_dword(space, 0x01800c08);
	UINT32 IntPend=memory_read_dword(space, 0x01800c0c);
	if(IntEn & (1 << num))
	{
		IntPend |= (1 << num);
		memory_write_dword(space, 0x01800c0c, IntPend);
		cputag_set_input_line(machine, "maincpu", SE3208_INT, ASSERT_LINE);
	}
#ifdef IDLE_LOOP_SPEEDUP
	FlipCntRead = 0;
	cputag_resume(machine, "maincpu", SUSPEND_REASON_SPIN);
#endif
}
Exemple #3
0
void jaguar_dsp_resume(running_machine *machine)
{
	cputag_resume(machine, "audiocpu", SUSPEND_REASON_SPIN);
}