|
|
1.1 ! root 1: /* ! 2: Hatari ! 3: */ ! 4: ! 5: // Interrupt handlers in system ! 6: enum { ! 7: INTERRUPT_NULL, ! 8: ! 9: #ifdef USE_DEBUGGER ! 10: INTERRUPT_DEBUGGER, ! 11: INTERRUPT_SINGLESTEP, ! 12: #endif //USE_DEBUGGER ! 13: ! 14: INTERRUPT_VIDEO_VBL, ! 15: INTERRUPT_VIDEO_VBL_PENDING, ! 16: INTERRUPT_VIDEO_HBL, ! 17: INTERRUPT_VIDEO_ENDLINE, ! 18: INTERRUPT_MFP_TIMERA, ! 19: INTERRUPT_MFP_TIMERB, ! 20: INTERRUPT_MFP_TIMERC, ! 21: INTERRUPT_MFP_TIMERD, ! 22: INTERRUPT_IKBD_RESETTIMER, ! 23: INTERRUPT_IKBD_ACIA, ! 24: ! 25: MAX_INTERRUPTS ! 26: }; ! 27: ! 28: // Event timer structure - keeps next timer to occur in structure so don't need to check all entries ! 29: typedef struct { ! 30: BOOL bUsed; // Is interrupt active? ! 31: int Cycles; ! 32: void *pFunction; ! 33: } INTERRUPTHANDLER; ! 34: ! 35: extern void *pIntHandlerFunctions[]; ! 36: extern int nCyclesOver; ! 37: extern int nFrameCyclesOver; ! 38: ! 39: extern void Int_Reset(void); ! 40: extern void Int_MemorySnapShot_Capture(BOOL bSave); ! 41: extern int Int_HandlerFunctionToID(void *pHandlerFunction); ! 42: extern void *Int_IDToHandlerFunction(int ID); ! 43: extern int Int_FindFrameCycles(void); ! 44: extern void Int_SetNewInterrupt(void); ! 45: extern void Int_AcknowledgeInterrupt(void); ! 46: extern void Int_AddAbsoluteInterrupt(int CycleTime, int Handler); ! 47: extern void Int_AddRelativeInterrupt(int CycleTime, int Handler); ! 48: extern void Int_RemovePendingInterrupt(int Handler); ! 49: extern BOOL Int_InterruptActive(int Handler); ! 50: extern int Int_FindCyclesPassed(int Handler);
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.