|
|
1.1 root 1: /*
1.1.1.2 root 2: Hatari - int.h
3:
4: This file is distributed under the GNU Public License, version 2 or at
5: your option any later version. Read the file gpl.txt for details.
1.1 root 6: */
7:
1.1.1.2 root 8: #ifndef HATARI_INT_H
9: #define HATARI_INT_H
10:
11: /* Interrupt handlers in system */
12: enum
13: {
1.1 root 14: INTERRUPT_NULL,
15: INTERRUPT_VIDEO_VBL,
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,
1.1.1.4 ! root 24: INTERRUPT_DMASOUND,
! 25:
1.1 root 26: MAX_INTERRUPTS
27: };
28:
1.1.1.2 root 29: /* Event timer structure - keeps next timer to occur in structure so don't need to check all entries */
30: typedef struct
31: {
32: BOOL bUsed; /* Is interrupt active? */
1.1 root 33: int Cycles;
34: void *pFunction;
35: } INTERRUPTHANDLER;
36:
37: extern void *pIntHandlerFunctions[];
38: extern int nCyclesOver;
39: extern int nFrameCyclesOver;
40:
41: extern void Int_Reset(void);
42: extern void Int_MemorySnapShot_Capture(BOOL bSave);
43: extern int Int_HandlerFunctionToID(void *pHandlerFunction);
44: extern void *Int_IDToHandlerFunction(int ID);
45: extern int Int_FindFrameCycles(void);
46: extern void Int_SetNewInterrupt(void);
47: extern void Int_AcknowledgeInterrupt(void);
48: extern void Int_AddAbsoluteInterrupt(int CycleTime, int Handler);
49: extern void Int_AddRelativeInterrupt(int CycleTime, int Handler);
50: extern void Int_RemovePendingInterrupt(int Handler);
51: extern BOOL Int_InterruptActive(int Handler);
52: extern int Int_FindCyclesPassed(int Handler);
1.1.1.2 root 53:
54: #endif /* ifndef HATARI_INT_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.