void via6522_device::clear_int(int data) { if (m_ifr & data) { m_ifr &= ~data; output_irq(); if (TRACE_VIA) { logerror("%s:6522VIA chip %s: IFR = %02X\n", machine().describe_context(), tag(), m_ifr); } } }
void acia6850_device::device_start() { // resolve callbacks m_txd_handler.resolve_safe(); m_rts_handler.resolve_safe(); m_irq_handler.resolve_safe(); save_item(NAME(m_status)); save_item(NAME(m_tdr)); save_item(NAME(m_rdr)); save_item(NAME(m_first_master_reset)); save_item(NAME(m_dcd_irq_pending)); save_item(NAME(m_overrun_pending)); save_item(NAME(m_divide)); save_item(NAME(m_bits)); save_item(NAME(m_stopbits)); save_item(NAME(m_parity)); save_item(NAME(m_brk)); save_item(NAME(m_rts)); save_item(NAME(m_dcd)); save_item(NAME(m_irq)); save_item(NAME(m_txc)); save_item(NAME(m_txd)); save_item(NAME(m_tx_state)); save_item(NAME(m_tx_bits)); save_item(NAME(m_tx_shift)); save_item(NAME(m_tx_parity)); save_item(NAME(m_tx_counter)); save_item(NAME(m_tx_irq_enable)); save_item(NAME(m_rxc)); save_item(NAME(m_rxd)); save_item(NAME(m_rx_state)); save_item(NAME(m_rx_bits)); save_item(NAME(m_rx_shift)); save_item(NAME(m_rx_parity)); save_item(NAME(m_rx_counter)); save_item(NAME(m_rx_irq_enable)); output_txd(1); output_rts(1); output_irq(1); }
void acia6850_device::update_irq() { output_irq(calculate_txirq() && calculate_rxirq()); }