public void ExecuteInterrupt(CpuThreadState cpuThreadState) { if (InterruptEnabled && InterruptFlag) { InterruptManager.Interrupt(cpuThreadState); } }
/// <summary> /// Tries to execute the interrupt. /// </summary> /// <param name="interrupt">The interrupt.</param> /// <param name="address">The address.</param> /// <returns></returns> private bool TryExecuteInterrupt(InterruptFlag interrupt, ushort address) { if (!_interruptFlag.HasFlag(interrupt) || !_interruptEnableRegister.InterruptEnabled(interrupt)) { // Interrupt flag is not set or enabled. return(false); } // Do interrupt. _interruptManager.Interrupt(address); // Clear the interrupt flag. _interruptFlag &= ~interrupt; return(true); }