コード例 #1
0
ファイル: irq.c プロジェクト: CJBass/mame2013-libretro
void psxirq_device::psx_irq_update( void )
{
	if( ( n_irqdata & n_irqmask ) != 0 )
	{
		verboselog( machine(), 2, "psx irq assert\n" );
		m_irq_handler( ASSERT_LINE );
	}
	else
	{
		verboselog( machine(), 2, "psx irq clear\n" );
		m_irq_handler( CLEAR_LINE );
	}
}
コード例 #2
0
ファイル: 6522via.c プロジェクト: felipesanches/ume
inline void via6522_device::set_irq_line(int state)
{
	if (m_irq != state)
	{
		m_irq_handler(state);
		m_irq = state;
	}
}
コード例 #3
0
ファイル: ncr5380n.c プロジェクト: AreaScout/mame-libretro
void ncr5380n_device::check_irq()
{
	#if 0
	bool oldirq = irq;
	irq = istatus != 0;
	if(irq != oldirq)
		m_irq_handler(irq);
	#endif
}
コード例 #4
0
ファイル: 6522via.cpp プロジェクト: crazii/mameui
void via6522_device::output_irq()
{
	if (m_ier & m_ifr & 0x7f)
	{
		if ((m_ifr & INT_ANY) == 0)
		{
			m_ifr |= INT_ANY;
			m_irq_handler(ASSERT_LINE);
		}
	}
	else
	{
		if (m_ifr & INT_ANY)
		{
			m_ifr &= ~INT_ANY;
			m_irq_handler(CLEAR_LINE);
		}
	}
}
コード例 #5
0
ファイル: idectrl.c プロジェクト: Ilgrim/MAMEHub
void ide_controller_device::set_irq(int state)
{
	if (state == ASSERT_LINE)
		LOG(("IDE interrupt assert\n"));
	else
		LOG(("IDE interrupt clear\n"));

	/* signal an interrupt */
	m_irq_handler(state);
	interrupt_pending = state;
}
コード例 #6
0
ファイル: ef9365.cpp プロジェクト: DragonMinded/mame
//-------------------------------------------------
//  update_interrupts
//-------------------------------------------------
void ef9365_device::update_interrupts()
{
    int new_state = ( m_irq_vb  && (m_registers[EF936X_REG_CTRL1] & 0x20) )
                    || ( m_irq_rdy && (m_registers[EF936X_REG_CTRL1] & 0x40) )
                    || ( m_irq_lb  && (m_registers[EF936X_REG_CTRL1] & 0x10) );

    if (new_state != m_irq_state)
    {
        m_irq_state = new_state;
        m_irq_handler(m_irq_state);
    }
}
コード例 #7
0
ファイル: pc_lpt.c プロジェクト: BrandoCommando/mame
void pc_lpt_device::update_irq()
{
	int irq = 1; // high impedance
	if (!m_irq_enabled)
	{
		irq = m_centronics_ack;
	}

	if (m_irq != irq)
	{
		m_irq = irq;
		m_irq_handler(!irq);
	}
}
コード例 #8
0
ファイル: ym3802.cpp プロジェクト: Dagarman/mame
void ym3802_device::set_irq(uint8_t irq)
{
	uint8_t x;

	m_irq_status |= (irq & m_reg[REG_IER]);
	for(x=0;x<8;x++)
	{
		if(m_irq_status & (1 << x))
			break;
	}
	m_vector = (m_reg[REG_IOR] & 0xe0) | (x << 1);
	if(m_irq_status != 0)
		m_irq_handler(ASSERT_LINE);
}
コード例 #9
0
ファイル: mos6551.c プロジェクト: dezi/mame-libretro-odroid
void mos6551_device::tra_complete()
{
	if (!(m_st & ST_TDRE))
	{
		transmit_register_setup(m_tdr);
		m_st |= ST_TDRE;

		if ((m_cmd & CMD_TC_MASK) == CMD_TC_TIE_RTS_LO)
		{
			m_st |= ST_IRQ;
			m_irq_handler(ASSERT_LINE);
		}
	}
}
コード例 #10
0
ファイル: ncr5380n.c プロジェクト: AreaScout/mame-libretro
void ncr5380n_device::device_reset()
{
	clock_conv = 2;
	sync_period = 5;
	sync_offset = 0;
	seq = 0;
	status = 0;
	m_tcommand = 0;
	m_icommand = 0;
	istatus = 0;
	m_busstatus = 0;
	irq = false;
	m_irq_handler(irq);
	reset_soft();
}
コード例 #11
0
ファイル: ncr5390.c プロジェクト: Eduardop/mame
void ncr5390_device::device_reset()
{
	fifo_pos = 0;
	memset(fifo, 0, sizeof(fifo));

	clock_conv = 2;
	sync_period = 5;
	sync_offset = 0;
	seq = 0;
	config &= 7;
	status &= 0x90;
	istatus = 0;
	irq = false;
	m_irq_handler(irq);
	reset_soft();
}
コード例 #12
0
ファイル: mos6551.c プロジェクト: dezi/mame-libretro-odroid
void mos6551_device::rcv_complete()
{
	if (m_st & ST_RDRF)
	{
		m_st |= ST_OR;
	}

	m_st &= ~(ST_FE | ST_PE);

	m_st |= ST_RDRF;

	if (!(m_cmd & CMD_RIE))
	{
		m_st |= ST_IRQ;
		m_irq_handler(ASSERT_LINE);
	}
}
コード例 #13
0
ファイル: ef9365.cpp プロジェクト: DragonMinded/mame
void ef9365_device::device_reset()
{
    m_state = 0;

    m_bf = 0;
    m_irq_state = 0;
    m_irq_vb = 0;
    m_irq_lb = 0;
    m_irq_rdy = 0;

    memset(m_registers, 0, sizeof(m_registers));
    memset(m_border, 0, sizeof(m_border));

    m_screen_out.fill(0);

    set_video_mode();

    m_irq_handler(FALSE);
}
コード例 #14
0
ファイル: sio.cpp プロジェクト: Robbbert/store1
void psxsio_device::sio_interrupt()
{
	verboselog( *this, 1, "sio_interrupt( %s )\n", tag() );
	m_status |= SIO_STATUS_IRQ;
	m_irq_handler(1);
}
コード例 #15
0
ファイル: 3526intf.c プロジェクト: LeWoY/MAMEHub
void ym3526_device::_IRQHandler(int irq)
{
	if (!m_irq_handler.isnull())
		m_irq_handler(irq);
}
コード例 #16
0
ファイル: ataintf.c プロジェクト: fesh0r/old-mame
void ata_interface_device::set_irq(int state)
{
//  printf( "irq %d\n", state );

	m_irq_handler(state);
}
コード例 #17
0
ファイル: k052109.cpp プロジェクト: fesh0r/mame-full
void k052109_device::vblank_callback(screen_device &screen, bool state)
{
	if (state)
		m_irq_handler(ASSERT_LINE);
}
コード例 #18
0
ファイル: am53cf96.c プロジェクト: dezi/mame-libretro-odroid
void am53cf96_device::device_timer(emu_timer &timer, device_timer_id tid, int param, void *ptr)
{
	scsi_regs[REG_IRQSTATE] = 8;    // indicate success
	scsi_regs[REG_STATUS] |= 0x80;  // indicate IRQ
	m_irq_handler(1);
}
コード例 #19
0
ファイル: 8950intf.c プロジェクト: AreaScout/mame-libretro
void y8950_device::_IRQHandler(int irq)
{
	m_irq_handler(irq);
}
コード例 #20
0
ファイル: ym3802.cpp プロジェクト: Dagarman/mame
void ym3802_device::reset_irq(uint8_t irq)
{
	m_irq_status &= ~irq;
	if(m_irq_status == 0)
		m_irq_handler(CLEAR_LINE);
}
コード例 #21
0
ファイル: ataintf.cpp プロジェクト: Ashura-X/mame
void ata_interface_device::set_irq(int state)
{
//  printf( "%s: irq %d\n", machine().describe_context(), state );

	m_irq_handler(state);
}