static void external_int(nec_state_t *nec_state) { if (nec_state->pending_irq & NMI_IRQ) { nec_interrupt(nec_state, NEC_NMI_VECTOR, NMI_IRQ); nec_state->pending_irq &= ~NMI_IRQ; } else if (nec_state->pending_irq) { /* the actual vector is retrieved after pushing flags */ /* and clearing the IF */ nec_interrupt(nec_state, (UINT32)-1, INT_IRQ); nec_state->irq_state = CLEAR_LINE; nec_state->pending_irq &= ~INT_IRQ; } }
void nec_common_device::external_int() { if (m_pending_irq & NMI_IRQ) { nec_interrupt(NEC_NMI_VECTOR, NMI_IRQ); m_pending_irq &= ~NMI_IRQ; } else if (m_pending_irq) { /* the actual vector is retrieved after pushing flags */ /* and clearing the IF */ nec_interrupt((UINT32)-1, INT_IRQ); m_irq_state = CLEAR_LINE; m_pending_irq &= ~INT_IRQ; } }
static void nec_trap(nec_state_t *nec_state) { nec_instruction[fetchop(nec_state)](nec_state); nec_interrupt(nec_state, NEC_TRAP_VECTOR, BRK); }
void nec_common_device::nec_trap() { (this->*s_nec_instruction[fetchop()])(); nec_interrupt(NEC_TRAP_VECTOR, BRK); }