Exemple #1
0
static TIMER_CALLBACK( timerC_cb )
{
	scsp_state *scsp = (scsp_state *)ptr;

	scsp->TimCnt[2] = 0xFFFF;
	scsp->udata.data[0x20/2]|=0x100;
	scsp->udata.data[0x1c/2]&=0xff00;
	scsp->udata.data[0x1c/2]|=scsp->TimCnt[2]>>8;

	CheckPendingIRQ(scsp);
}
Exemple #2
0
static TIMER_CALLBACK( timerC_cb )
{
	aica_state *AICA = (aica_state *)ptr;

	AICA->TimCnt[2] = 0xFFFF;
	AICA->udata.data[0xa0/2]|=0x100;
	AICA->udata.data[0x98/2]&=0xff00;
	AICA->udata.data[0x98/2]|=AICA->TimCnt[2]>>8;

	CheckPendingIRQ(AICA);
}
Exemple #3
0
static TIMER_CALLBACK( timerA_cb )
{
	scsp_state *scsp = (scsp_state *)ptr;

	scsp->TimCnt[0] = 0xFFFF;
	scsp->udata.data[0x20/2]|=0x40;
	scsp->udata.data[0x18/2]&=0xff00;
	scsp->udata.data[0x18/2]|=scsp->TimCnt[0]>>8;

	CheckPendingIRQ(scsp);
	MainCheckPendingIRQ(scsp, 0x40);
}
Exemple #4
0
static TIMER_CALLBACK( timerB_cb )
{
	aica_state *AICA = (aica_state *)ptr;

	AICA->TimCnt[1] = 0xFFFF;
	AICA->udata.data[0xa0/2]|=0x80;
	AICA->mcipd |= 0x80;
	AICA->udata.data[0x94/2]&=0xff00;
	AICA->udata.data[0x94/2]|=AICA->TimCnt[1]>>8;

	CheckPendingIRQ(AICA);
	CheckPendingIRQ_SH4(AICA);
}
Exemple #5
0
static void ResetInterrupts(scsp_state *scsp)
{
	UINT32 reset = scsp->udata.data[0x22/2];

	if (reset & 0x40)
	{
		scsp->Int68kCB(-scsp->IrqTimA);
	}
	if (reset & 0x180)
	{
		scsp->Int68kCB(-scsp->IrqTimBC);
	}
	if (reset & 0x8)
	{
		scsp->Int68kCB(-scsp->IrqMidi);
	}

	CheckPendingIRQ(scsp);
}
Exemple #6
0
void scsp_device::ResetInterrupts()
{
	UINT32 reset = m_udata.data[0x22/2];

	if (reset & 0x40)
	{
		m_irq_cb(m_IrqTimA, CLEAR_LINE);
	}
	if (reset & 0x180)
	{
		m_irq_cb(m_IrqTimBC, CLEAR_LINE);
	}
	if (reset & 0x8)
	{
		m_irq_cb(m_IrqMidi, CLEAR_LINE);
	}

	CheckPendingIRQ();
}