|
|
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: #define MFP_INT_FDCHDC MFP_INT_GPIP5
! 33: #define MFP_INT_ACIA MFP_INT_GPIP4
! 34: #define MFP_INT_GPU_DONE MFP_INT_GPIP3
! 35:
! 36: /* MFP register defines ( 1 << Int ) */
! 37: #define MFP_GPIP7_BIT 0x80
! 38: #define MFP_GPIP6_BIT 0x40
! 39: #define MFP_TIMER_A_BIT 0x20
! 40: #define MFP_RCV_BUF_FULL_BIT 0x10
! 41: #define MFP_RCV_ERR_BIT 0x08
! 42: #define MFP_TRN_BUF_EMPTY_BIT 0x04
! 43: #define MFP_TRN_ERR_BIT 0x02
! 44: #define MFP_TIMER_B_BIT 0x01
! 45:
! 46: #define MFP_GPIP5_BIT 0x80
! 47: #define MFP_GPIP4_BIT 0x40
! 48: #define MFP_TIMER_C_BIT 0x20
! 49: #define MFP_TIMER_D_BIT 0x10
! 50: #define MFP_GPIP3_BIT 0x08
! 51: #define MFP_GPIP2_BIT 0x04
! 52: #define MFP_GPIP1_BIT 0x02
! 53: #define MFP_GPIP0_BIT 0x01
! 54:
! 55: #define MFP_FDCHDC_BIT MFP_GPIP5_BIT
! 56: #define MFP_ACIA_BIT MFP_GPIP4_BIT
! 57: #define MFP_GPU_DONE_BIT MFP_GPIP3_BIT
! 58:
1.1 root 59:
1.1.1.2 root 60: /* MFP Registers */
1.1.1.5 root 61: extern Uint8 MFP_GPIP;
62: extern Uint8 MFP_IERA,MFP_IERB;
63: extern Uint8 MFP_IPRA,MFP_IPRB;
1.1.1.7 root 64: extern Uint8 MFP_TACR,MFP_TBCR;
1.1.1.5 root 65: extern Uint8 MFP_VR;
1.1.1.10! root 66: extern bool MFP_UpdateNeeded;
1.1 root 67:
68: extern void MFP_Reset(void);
1.1.1.8 root 69: extern void MFP_MemorySnapShot_Capture(bool bSave);
1.1.1.10! root 70: extern int MFP_ProcessIACK ( int OldVecNr );
! 71: extern bool MFP_ProcessIRQ ( void );
! 72: extern void MFP_UpdateIRQ ( Uint64 Event_Time );
! 73: extern void MFP_InputOnChannel ( int Interrupt , int Interrupt_Delayed_Cycles );
1.1 root 74: extern void MFP_TimerA_EventCount_Interrupt(void);
1.1.1.10! root 75: extern void MFP_TimerB_EventCount_Interrupt( int Delayed_Cycles );
1.1 root 76: extern void MFP_InterruptHandler_TimerA(void);
77: extern void MFP_InterruptHandler_TimerB(void);
78: extern void MFP_InterruptHandler_TimerC(void);
79: extern void MFP_InterruptHandler_TimerD(void);
1.1.1.2 root 80:
1.1.1.4 root 81: extern void MFP_GPIP_ReadByte(void);
82: extern void MFP_ActiveEdge_ReadByte(void);
83: extern void MFP_DataDirection_ReadByte(void);
84: extern void MFP_EnableA_ReadByte(void);
85: extern void MFP_EnableB_ReadByte(void);
86: extern void MFP_PendingA_ReadByte(void);
87: extern void MFP_PendingB_ReadByte(void);
88: extern void MFP_InServiceA_ReadByte(void);
89: extern void MFP_InServiceB_ReadByte(void);
90: extern void MFP_MaskA_ReadByte(void);
91: extern void MFP_MaskB_ReadByte(void);
92: extern void MFP_VectorReg_ReadByte(void);
93: extern void MFP_TimerACtrl_ReadByte(void);
94: extern void MFP_TimerBCtrl_ReadByte(void);
95: extern void MFP_TimerCDCtrl_ReadByte(void);
96: extern void MFP_TimerAData_ReadByte(void);
97: extern void MFP_TimerBData_ReadByte(void);
98: extern void MFP_TimerCData_ReadByte(void);
99: extern void MFP_TimerDData_ReadByte(void);
100:
101: extern void MFP_GPIP_WriteByte(void);
102: extern void MFP_ActiveEdge_WriteByte(void);
103: extern void MFP_DataDirection_WriteByte(void);
104: extern void MFP_EnableA_WriteByte(void);
105: extern void MFP_EnableB_WriteByte(void);
106: extern void MFP_PendingA_WriteByte(void);
107: extern void MFP_PendingB_WriteByte(void);
108: extern void MFP_InServiceA_WriteByte(void);
109: extern void MFP_InServiceB_WriteByte(void);
110: extern void MFP_MaskA_WriteByte(void);
111: extern void MFP_MaskB_WriteByte(void);
112: extern void MFP_VectorReg_WriteByte(void);
113: extern void MFP_TimerACtrl_WriteByte(void);
114: extern void MFP_TimerBCtrl_WriteByte(void);
115: extern void MFP_TimerCDCtrl_WriteByte(void);
116: extern void MFP_TimerAData_WriteByte(void);
117: extern void MFP_TimerBData_WriteByte(void);
118: extern void MFP_TimerCData_WriteByte(void);
119: extern void MFP_TimerDData_WriteByte(void);
120:
1.1.1.2 root 121: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.