private void sysregInterruptToOther(int value) { if (value != 0) { if (RuntimeContextLLE.MainCpu) { // Interrupt from the main cpu to the Media Engine cpu //if (log.DebugEnabled) { Console.WriteLine(string.Format("sysregInterruptToOther to ME on {0}", MMIOHandlerMeCore.Instance.ToString())); } RuntimeContextLLE.triggerInterrupt(RuntimeContextLLE.MediaEngineProcessor, PSP_MECODEC_INTR); RuntimeContextLLE.MediaEngineProcessor.triggerException(ExceptionManager.IP2); } else { // Interrupt from the Media Engine cpu to the main cpu //if (log.DebugEnabled) { Console.WriteLine(string.Format("sysregInterruptToOther from ME on {0}", MMIOHandlerMeCore.Instance.ToString())); } RuntimeContextLLE.triggerInterrupt(RuntimeContextLLE.MainProcessor, PSP_MECODEC_INTR); } } }
private void checkInterrupt() { if (interrupt != 0) { RuntimeContextLLE.triggerInterrupt(Processor, PSP_AUDIO_INTR); } else { RuntimeContextLLE.clearInterrupt(Processor, PSP_AUDIO_INTR); } }
private void checkInterrupt() { if ((isInterruptTriggered & isInterruptEnabled) != 0) { RuntimeContextLLE.triggerInterrupt(Processor, PSP_GPIO_INTR); } else { RuntimeContextLLE.clearInterrupt(Processor, PSP_GPIO_INTR); } }
public override void run() { RuntimeContext.start(); RuntimeContextLLE.start(); GEProfiler.initialise(); clock.resume(); while (true) { if (pause) { clock.pause(); try { lock (this) { while (pause) { Monitor.Wait(this); } } } catch (InterruptedException) { // Ignore exception } clock.resume(); } if (RuntimeContext.CompilerEnabled) { RuntimeContext.run(); } else { processor.step(); Modules.sceGe_userModule.step(); Modules.ThreadManForUserModule.step(); scheduler.step(); Modules.sceDisplayModule.step(); if (State.debugger != null) { State.debugger.step(); } } } }
private void clearUsbMemoryStick(int mask) { int oldUsbAndMemoryStick = usbAndMemoryStick; mask &= SYSREG_USBMS_USB_INTERRUPT_MASK | SYSREG_USBMS_MS0_INTERRUPT_MASK | SYSREG_USBMS_MS1_INTERRUPT_MASK; usbAndMemoryStick &= ~mask; if (isFalling(oldUsbAndMemoryStick, usbAndMemoryStick, SYSREG_USBMS_USB_INTERRUPT1)) { RuntimeContextLLE.clearInterrupt(Processor, IntrManager.PSP_USB_58); } if (isFalling(oldUsbAndMemoryStick, usbAndMemoryStick, SYSREG_USBMS_USB_INTERRUPT2)) { RuntimeContextLLE.clearInterrupt(Processor, IntrManager.PSP_USB_59); } if (isFalling(oldUsbAndMemoryStick, usbAndMemoryStick, SYSREG_USBMS_USB_INTERRUPT3)) { RuntimeContextLLE.clearInterrupt(Processor, IntrManager.PSP_USB_57); } if (isFalling(oldUsbAndMemoryStick, usbAndMemoryStick, SYSREG_USBMS_USB_INTERRUPT4)) { RuntimeContextLLE.clearInterrupt(Processor, IntrManager.PSP_USB_56); } }