void msm58321_device::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) { switch (id) { case TIMER_CLOCK: advance_seconds(); break; case TIMER_BUSY: m_out_busy_func(m_busy); m_busy = !m_busy; break; } }
inline void wd11c00_17_device::check_interrupt() { if (BIT(m_ra, 10)) { m_status &= ~STATUS_DRQ; } int ra3 = BIT(m_ra, 3); if (m_ra3 != ra3) { m_out_ra3_func(ra3 ? ASSERT_LINE : CLEAR_LINE); m_ra3 = ra3; } int irq5 = ((m_status & STATUS_IRQ) && (m_mask & MASK_IRQ)) ? ASSERT_LINE : CLEAR_LINE; if (m_irq5 != irq5) { m_out_irq5_func(irq5); m_irq5 = irq5; } int drq3 = ((m_status & STATUS_DRQ) && (m_mask & MASK_DMA)) ? ASSERT_LINE : CLEAR_LINE; if (m_drq3 != drq3) { m_out_drq3_func(drq3); m_drq3 = drq3; } int busy = (m_status & STATUS_BUSY) ? 0 : 1; if (m_busy != busy) { m_out_busy_func(busy); m_busy = busy; } int req = (m_status & STATUS_REQ) ? 1 : 0; if (m_req != req) { m_out_req_func(req); m_req = req; } }