|
|
1.1 root 1: /*
1.1.1.3 root 2: Hatari - intercept.h
1.1 root 3:
1.1.1.3 root 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.
6: */
1.1 root 7:
1.1.1.3 root 8: #ifndef HATARI_INTERCEPT_H
9: #define HATARI_INTERCEPT_H
1.1 root 10:
1.1.1.4 ! root 11: #include "sysdeps.h"
! 12:
1.1 root 13:
1.1.1.3 root 14: #define INTERCEPT_WORKSPACE_SIZE (10*1024) /* 10k, size of intercept lists */
1.1.1.2 root 15:
16: /* Hardware address details */
1.1.1.3 root 17: typedef struct
18: {
1.1.1.2 root 19: unsigned int Address; /* ST hardware address */
20: int SpanInBytes; /* SIZE_BYTE, SIZE_WORD or SIZE_LONG */
21: void *ReadFunc; /* Read function */
22: void *WriteFunc; /* Write function */
1.1 root 23: } INTERCEPT_ACCESS_FUNC;
24:
1.1.1.2 root 25: /* List of hardware address which are not documented, ie STe, TT, Falcon locations - should be unconnected on STfm */
1.1.1.3 root 26: typedef struct
27: {
1.1 root 28: unsigned int Start_Address;
29: unsigned int End_Address;
30: } INTERCEPT_ADDRESSRANGE;
31:
32:
1.1.1.2 root 33: extern BOOL bEnableBlitter;
34:
1.1 root 35:
36: uae_u32 Intercept_ReadByte(uaecptr addr);
37: uae_u32 Intercept_ReadWord(uaecptr addr);
38: uae_u32 Intercept_ReadLong(uaecptr addr);
39:
40: void Intercept_WriteByte(uaecptr addr, uae_u32 val);
41: void Intercept_WriteWord(uaecptr addr, uae_u32 val);
42: void Intercept_WriteLong(uaecptr addr, uae_u32 val);
43:
44:
1.1.1.2 root 45: /* Read intercept functions */
1.1 root 46: extern void Intercept_VideoHigh_ReadByte(void);
47: extern void Intercept_VideoMed_ReadByte(void);
48: extern void Intercept_VideoLow_ReadByte(void);
49: extern void Intercept_VideoSync_ReadByte(void);
50: extern void Intercept_VideoBaseLow_ReadByte(void);
51: extern void Intercept_LineWidth_ReadByte(void);
52: extern void Intercept_Colour0_ReadWord(void);
53: extern void Intercept_Colour1_ReadWord(void);
54: extern void Intercept_Colour2_ReadWord(void);
55: extern void Intercept_Colour3_ReadWord(void);
56: extern void Intercept_Colour4_ReadWord(void);
57: extern void Intercept_Colour5_ReadWord(void);
58: extern void Intercept_Colour6_ReadWord(void);
59: extern void Intercept_Colour7_ReadWord(void);
60: extern void Intercept_Colour8_ReadWord(void);
61: extern void Intercept_Colour9_ReadWord(void);
62: extern void Intercept_Colour10_ReadWord(void);
63: extern void Intercept_Colour11_ReadWord(void);
64: extern void Intercept_Colour12_ReadWord(void);
65: extern void Intercept_Colour13_ReadWord(void);
66: extern void Intercept_Colour14_ReadWord(void);
67: extern void Intercept_Colour15_ReadWord(void);
68: extern void Intercept_ShifterMode_ReadByte(void);
69: extern void Intercept_DiskControl_ReadWord(void);
70: extern void Intercept_DmaStatus_ReadWord(void);
71: extern void Intercept_PSGRegister_ReadByte(void);
72: extern void Intercept_PSGData_ReadByte(void);
73: extern void Intercept_MicrowireData_ReadWord(void);
74: extern void Intercept_Monitor_ReadByte(void);
75: extern void Intercept_ActiveEdge_ReadByte(void);
76: extern void Intercept_DataDirection_ReadByte(void);
77: extern void Intercept_EnableA_ReadByte(void);
78: extern void Intercept_EnableB_ReadByte(void);
79: extern void Intercept_PendingA_ReadByte(void);
80: extern void Intercept_PendingB_ReadByte(void);
81: extern void Intercept_InServiceA_ReadByte(void);
82: extern void Intercept_InServiceB_ReadByte(void);
83: extern void Intercept_MaskA_ReadByte(void);
84: extern void Intercept_MaskB_ReadByte(void);
85: extern void Intercept_VectorReg_ReadByte(void);
86: extern void Intercept_TimerACtrl_ReadByte(void);
87: extern void Intercept_TimerBCtrl_ReadByte(void);
88: extern void Intercept_TimerCDCtrl_ReadByte(void);
89: extern void Intercept_TimerAData_ReadByte(void);
90: extern void Intercept_TimerBData_ReadByte(void);
91: extern void Intercept_TimerCData_ReadByte(void);
92: extern void Intercept_TimerDData_ReadByte(void);
93: extern void Intercept_KeyboardControl_ReadByte(void);
94: extern void Intercept_KeyboardData_ReadByte(void);
95: extern void Intercept_MidiControl_ReadByte(void);
96: extern void Intercept_MidiData_ReadByte(void);
1.1.1.2 root 97: extern void Intercept_BlitterEndmask1_ReadWord(void);
98: extern void Intercept_BlitterEndmask2_ReadWord(void);
99: extern void Intercept_BlitterEndmask3_ReadWord(void);
100: extern void Intercept_BlitterDst_ReadLong(void);
101: extern void Intercept_BlitterWPL_ReadWord(void);
102: extern void Intercept_BlitterLPB_ReadWord(void);
103: extern void Intercept_BlitterHalftoneOp_ReadByte(void);
104: extern void Intercept_BlitterLogOp_ReadByte(void);
105: extern void Intercept_BlitterLineNum_ReadByte(void);
106: extern void Intercept_BlitterSkew_ReadByte(void);
1.1 root 107:
1.1.1.2 root 108:
109: /* Write intercept functions */
1.1 root 110: extern void Intercept_VideoHigh_WriteByte(void);
111: extern void Intercept_VideoMed_WriteByte(void);
112: extern void Intercept_VideoLow_WriteByte(void);
113: extern void Intercept_VideoSync_WriteByte(void);
114: extern void Intercept_VideoBaseLow_WriteByte(void);
115: extern void Intercept_LineWidth_WriteByte(void);
116: extern void Intercept_Colour0_WriteWord(void);
117: extern void Intercept_Colour1_WriteWord(void);
118: extern void Intercept_Colour2_WriteWord(void);
119: extern void Intercept_Colour3_WriteWord(void);
120: extern void Intercept_Colour4_WriteWord(void);
121: extern void Intercept_Colour5_WriteWord(void);
122: extern void Intercept_Colour6_WriteWord(void);
123: extern void Intercept_Colour7_WriteWord(void);
124: extern void Intercept_Colour8_WriteWord(void);
125: extern void Intercept_Colour9_WriteWord(void);
126: extern void Intercept_Colour10_WriteWord(void);
127: extern void Intercept_Colour11_WriteWord(void);
128: extern void Intercept_Colour12_WriteWord(void);
129: extern void Intercept_Colour13_WriteWord(void);
130: extern void Intercept_Colour14_WriteWord(void);
131: extern void Intercept_Colour15_WriteWord(void);
132: extern void Intercept_ShifterMode_WriteByte(void);
133: extern void Intercept_DiskControl_WriteWord(void);
134: extern void Intercept_DmaStatus_WriteWord(void);
135: extern void Intercept_PSGRegister_WriteByte(void);
136: extern void Intercept_PSGData_WriteByte(void);
137: extern void Intercept_MicrowireData_WriteWord(void);
138: extern void Intercept_Monitor_WriteByte(void);
139: extern void Intercept_ActiveEdge_WriteByte(void);
140: extern void Intercept_DataDirection_WriteByte(void);
141: extern void Intercept_EnableA_WriteByte(void);
142: extern void Intercept_EnableB_WriteByte(void);
143: extern void Intercept_PendingA_WriteByte(void);
144: extern void Intercept_PendingB_WriteByte(void);
145: extern void Intercept_InServiceA_WriteByte(void);
146: extern void Intercept_InServiceB_WriteByte(void);
147: extern void Intercept_MaskA_WriteByte(void);
148: extern void Intercept_MaskB_WriteByte(void);
149: extern void Intercept_VectorReg_WriteByte(void);
150: extern void Intercept_TimerACtrl_WriteByte(void);
151: extern void Intercept_TimerBCtrl_WriteByte(void);
152: extern void Intercept_TimerCDCtrl_WriteByte(void);
153: extern void Intercept_TimerAData_WriteByte(void);
154: extern void Intercept_TimerBData_WriteByte(void);
155: extern void Intercept_TimerCData_WriteByte(void);
156: extern void Intercept_TimerDData_WriteByte(void);
157: extern void Intercept_KeyboardControl_WriteByte(void);
158: extern void Intercept_KeyboardData_WriteByte(void);
159: extern void Intercept_MidiControl_WriteByte(void);
160: extern void Intercept_MidiData_WriteByte(void);
1.1.1.2 root 161: extern void Intercept_BlitterEndmask1_WriteWord(void);
162: extern void Intercept_BlitterEndmask2_WriteWord(void);
163: extern void Intercept_BlitterEndmask3_WriteWord(void);
164: extern void Intercept_BlitterDst_WriteLong(void);
165: extern void Intercept_BlitterWPL_WriteWord(void);
166: extern void Intercept_BlitterLPB_WriteWord(void);
167: extern void Intercept_BlitterHalftoneOp_WriteByte(void);
168: extern void Intercept_BlitterLogOp_WriteByte(void);
169: extern void Intercept_BlitterLineNum_WriteByte(void);
170: extern void Intercept_BlitterSkew_WriteByte(void);
171:
1.1 root 172:
173: extern void Intercept_Init(void);
174: extern void Intercept_UnInit(void);
175: extern void Intercept_CreateTable(unsigned long *pInterceptTable[],int Span,int ReadWrite);
1.1.1.2 root 176: extern void Intercept_EnableBlitter(BOOL enableFlag);
1.1 root 177: extern void Intercept_ModifyTablesForBusErrors(void);
1.1.1.3 root 178: extern void Intercept_NoMansLand_ReadWrite(void);
1.1 root 179: extern void Intercept_ModifyTablesForNoMansLand(void);
1.1.1.3 root 180:
181: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.