|
|
1.1 root 1: /*
1.1.1.2 root 2: Hatari - mfp.h
3:
1.1.1.10 root 4: This file is distributed under the GNU General Public License, version 2
5: or at 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_MFP_H
9: #define HATARI_MFP_H
10:
11: /* List of MFP interrupts (GPIP is General Purpose I/O Interrupt Port) */
1.1.1.10 root 12: #define MFP_INT_MAX 15 /* We have 16 ints from 0 to 15 */
13:
14: #define MFP_INT_GPIP7 15 /* Highest Priority */
15: #define MFP_INT_GPIP6 14
16: #define MFP_INT_TIMER_A 13
17: #define MFP_INT_RCV_BUF_FULL 12
18: #define MFP_INT_RCV_ERR 11
19: #define MFP_INT_TRN_BUF_EMPTY 10
20: #define MFP_INT_TRN_ERR 9
21: #define MFP_INT_TIMER_B 8
22:
23: #define MFP_INT_GPIP5 7
24: #define MFP_INT_GPIP4 6
25: #define MFP_INT_TIMER_C 5
26: #define MFP_INT_TIMER_D 4
27: #define MFP_INT_GPIP3 3
28: #define MFP_INT_GPIP2 2
29: #define MFP_INT_GPIP1 1
30: #define MFP_INT_GPIP0 0 /* Lowest Priority */
31:
32:
33: /* MFP register defines ( 1 << Int ) */
34: #define MFP_GPIP7_BIT 0x80
35: #define MFP_GPIP6_BIT 0x40
36: #define MFP_TIMER_A_BIT 0x20
37: #define MFP_RCV_BUF_FULL_BIT 0x10
38: #define MFP_RCV_ERR_BIT 0x08
39: #define MFP_TRN_BUF_EMPTY_BIT 0x04
40: #define MFP_TRN_ERR_BIT 0x02
41: #define MFP_TIMER_B_BIT 0x01
42:
43: #define MFP_GPIP5_BIT 0x80
44: #define MFP_GPIP4_BIT 0x40
45: #define MFP_TIMER_C_BIT 0x20
46: #define MFP_TIMER_D_BIT 0x10
47: #define MFP_GPIP3_BIT 0x08
48: #define MFP_GPIP2_BIT 0x04
49: #define MFP_GPIP1_BIT 0x02
50: #define MFP_GPIP0_BIT 0x01
51:
1.1.1.11! root 52:
! 53: /* List of the GPIP lines */
! 54: #define MFP_GPIP_LINE7 7
! 55: #define MFP_GPIP_LINE6 6
! 56: #define MFP_GPIP_LINE5 5
! 57: #define MFP_GPIP_LINE4 4
! 58: #define MFP_GPIP_LINE3 3
! 59: #define MFP_GPIP_LINE2 2
! 60: #define MFP_GPIP_LINE1 1
! 61: #define MFP_GPIP_LINE0 0
! 62:
! 63: #define MFP_GPIP_LINE_FDC_HDC MFP_GPIP_LINE5
! 64: #define MFP_GPIP_LINE_ACIA MFP_GPIP_LINE4
! 65: #define MFP_GPIP_LINE_GPU_DONE MFP_GPIP_LINE3
! 66:
! 67: #define MFP_GPIP_STATE_LOW 0
! 68: #define MFP_GPIP_STATE_HIGH 1
1.1.1.10 root 69:
1.1 root 70:
1.1.1.2 root 71: /* MFP Registers */
1.1.1.5 root 72: extern Uint8 MFP_GPIP;
73: extern Uint8 MFP_IERA,MFP_IERB;
74: extern Uint8 MFP_IPRA,MFP_IPRB;
1.1.1.7 root 75: extern Uint8 MFP_TACR,MFP_TBCR;
1.1.1.5 root 76: extern Uint8 MFP_VR;
1.1.1.10 root 77: extern bool MFP_UpdateNeeded;
1.1 root 78:
79: extern void MFP_Reset(void);
1.1.1.8 root 80: extern void MFP_MemorySnapShot_Capture(bool bSave);
1.1.1.11! root 81:
! 82: extern Uint8 MFP_GetIRQ_CPU ( void );
! 83: extern void MFP_DelayIRQ ( void );
1.1.1.10 root 84: extern int MFP_ProcessIACK ( int OldVecNr );
85: extern bool MFP_ProcessIRQ ( void );
86: extern void MFP_UpdateIRQ ( Uint64 Event_Time );
87: extern void MFP_InputOnChannel ( int Interrupt , int Interrupt_Delayed_Cycles );
1.1.1.11! root 88: extern void MFP_GPIP_Set_Line_Input ( Uint8 LineNr , Uint8 Bit );
! 89:
1.1 root 90: extern void MFP_TimerA_EventCount_Interrupt(void);
1.1.1.10 root 91: extern void MFP_TimerB_EventCount_Interrupt( int Delayed_Cycles );
1.1 root 92: extern void MFP_InterruptHandler_TimerA(void);
93: extern void MFP_InterruptHandler_TimerB(void);
94: extern void MFP_InterruptHandler_TimerC(void);
95: extern void MFP_InterruptHandler_TimerD(void);
1.1.1.2 root 96:
1.1.1.4 root 97: extern void MFP_GPIP_ReadByte(void);
98: extern void MFP_ActiveEdge_ReadByte(void);
99: extern void MFP_DataDirection_ReadByte(void);
100: extern void MFP_EnableA_ReadByte(void);
101: extern void MFP_EnableB_ReadByte(void);
102: extern void MFP_PendingA_ReadByte(void);
103: extern void MFP_PendingB_ReadByte(void);
104: extern void MFP_InServiceA_ReadByte(void);
105: extern void MFP_InServiceB_ReadByte(void);
106: extern void MFP_MaskA_ReadByte(void);
107: extern void MFP_MaskB_ReadByte(void);
108: extern void MFP_VectorReg_ReadByte(void);
109: extern void MFP_TimerACtrl_ReadByte(void);
110: extern void MFP_TimerBCtrl_ReadByte(void);
111: extern void MFP_TimerCDCtrl_ReadByte(void);
112: extern void MFP_TimerAData_ReadByte(void);
113: extern void MFP_TimerBData_ReadByte(void);
114: extern void MFP_TimerCData_ReadByte(void);
115: extern void MFP_TimerDData_ReadByte(void);
116:
117: extern void MFP_GPIP_WriteByte(void);
118: extern void MFP_ActiveEdge_WriteByte(void);
119: extern void MFP_DataDirection_WriteByte(void);
120: extern void MFP_EnableA_WriteByte(void);
121: extern void MFP_EnableB_WriteByte(void);
122: extern void MFP_PendingA_WriteByte(void);
123: extern void MFP_PendingB_WriteByte(void);
124: extern void MFP_InServiceA_WriteByte(void);
125: extern void MFP_InServiceB_WriteByte(void);
126: extern void MFP_MaskA_WriteByte(void);
127: extern void MFP_MaskB_WriteByte(void);
128: extern void MFP_VectorReg_WriteByte(void);
129: extern void MFP_TimerACtrl_WriteByte(void);
130: extern void MFP_TimerBCtrl_WriteByte(void);
131: extern void MFP_TimerCDCtrl_WriteByte(void);
132: extern void MFP_TimerAData_WriteByte(void);
133: extern void MFP_TimerBData_WriteByte(void);
134: extern void MFP_TimerCData_WriteByte(void);
135: extern void MFP_TimerDData_WriteByte(void);
136:
1.1.1.2 root 137: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.