]> git.sesse.net Git - pistorm/blob - platforms/amiga/rtg/irtg_structs.h
4ab09c1c86539bf71451134eff7a3926391de5d4
[pistorm] / platforms / amiga / rtg / irtg_structs.h
1 struct P96Line {
2     int16_t     X, Y;
3     uint16_t    Length;
4     int16_t     dX, dY;
5     int16_t     sDelta, lDelta, twoSDminusLD;
6     uint16_t    LinePtrn;
7     uint16_t    PatternShift;
8     uint32_t    FgPen, BgPen;
9     uint16_t    Horizontal;
10     uint8_t     DrawMode;
11     int8_t      pad;
12     uint16_t    Xorigin, Yorigin;
13 };
14
15 #pragma pack(2)
16 struct P96Template {
17     uint32_t _p_Memory;
18     uint16_t BytesPerRow;
19     uint8_t XOffset;
20     uint8_t DrawMode;
21     uint32_t FgPen;
22     uint32_t BgPen;
23 };
24
25 #pragma pack(2)
26 struct P96Pattern {
27     uint32_t _p_Memory;
28     uint16_t XOffset, YOffset;
29     uint32_t FgPen, BgPen;
30     uint8_t Size; // Width: 16, Height: (1<<pat_Size)
31     uint8_t DrawMode;
32 };
33
34 struct MinNode_placeholder {
35     uint32_t _p_mln_Succ;
36     uint32_t _p_mln_Pred;
37 };
38
39 #pragma pack(2)
40 struct Node_placeholder {
41     uint32_t _p_ln_Succ;
42     uint32_t _p_ln_Pred;
43     uint8_t shit[2];
44     uint32_t _p_ln_Name;
45 };
46
47 struct MinList_placeholder {
48    uint32_t _p_mlh_Head;
49    uint32_t _p_mlh_Tail;
50    uint32_t _p_mlh_TailPred;
51 };
52
53 struct List_placeholder {
54    uint32_t _p_lh_Head;
55    uint32_t _p_lh_Tail;
56    uint32_t _p_lh_TailPred;
57    uint8_t lh_Type;
58    uint8_t l_pad;
59 };
60
61 struct SemaphoreRequest_placeholder {
62     struct MinNode_placeholder sr_Link;
63     uint32_t _p_sr_Waiter;
64 };
65
66 struct SignalSemaphore_placeholder {
67     struct Node_placeholder ss_Link;
68     int16_t ss_NestCount;
69     struct MinList_placeholder ss_WaitQueue;
70     struct SemaphoreRequest_placeholder ss_MultipleLink;
71     uint32_t _p_ss_Owner;
72     int16_t ss_QueueCount;
73 };
74
75 struct Interrupt_placeholder {
76     struct Node_placeholder is_Node;
77     uint32_t _p_is_Data;
78     uint32_t _p_is_Code;
79 };
80
81 struct MsgPort_placeholder {
82     struct Node_placeholder mp_Node;
83     uint8_t mp_Flags;
84     uint8_t mp_SigBit;
85     uint32_t _p_mp_SigTask;
86     struct List_placeholder mp_MsgList;
87 };
88
89 struct Rectangle {
90     int16_t MinX,MinY;
91     int16_t MaxX,MaxY;
92 };
93
94 struct CLUTEntry {
95     uint8_t Red;
96     uint8_t Green;
97     uint8_t Blue;
98 };
99
100 struct timeval_placeholder {
101     uint32_t tv_secs;
102     uint32_t tv_micro;
103 };
104
105 #define MAXMODES 5
106
107 struct ModeInfo_placeholder {
108     struct Node_placeholder Node;
109     int16_t OpenCount;
110     uint32_t Active;
111     uint16_t Width;
112     uint16_t Height;
113     uint8_t Depth;
114     uint8_t Flags;
115
116     uint16_t HorTotal;
117     uint16_t HorBlankSize;
118     uint16_t HorSyncStart;
119     uint16_t HorSyncSize;
120
121     uint8_t HorSyncSkew;
122     uint8_t HorEnableSkew;
123
124     uint16_t VerTotal;
125     uint16_t VerBlankSize;
126     uint16_t VerSyncStart;
127     uint16_t VerSyncSize;
128
129     union {
130         uint8_t Clock;
131         uint8_t Numerator;
132     } pll1;
133     union {
134         uint8_t ClockDivide;
135         uint8_t Denominator;
136     } pll2;
137     uint32_t PixelClock;
138 };
139
140 struct P96RenderInfo {
141         uint32_t _p_Memory;
142         int16_t BytesPerRow;
143         int16_t pad;
144         uint32_t RGBFormat;
145 };
146
147 struct P96BoardInfo{
148     uint32_t _p_RegisterBase, _p_MemoryBase, _p_MemoryIOBase;
149     uint32_t MemorySize;
150     uint32_t _p_BoardName;
151     int8_t VBIName[32];
152     uint32_t _p_CardBase;
153     uint32_t _p_ChipBase;
154     uint32_t _p_ExecBase;
155     uint32_t _p_UtilBase;
156     struct Interrupt_placeholder HardInterrupt;
157     struct Interrupt_placeholder SoftInterrupt;
158     struct SignalSemaphore_placeholder BoardLock;
159     struct MinList_placeholder ResolutionsList;
160     uint32_t BoardType;
161     uint32_t PaletteChipType;
162     uint32_t GraphicsControllerType;
163     uint16_t MoniSwitch;
164     uint16_t BitsPerCannon;
165     uint32_t Flags;
166     uint16_t SoftSpriteFlags;
167     uint16_t ChipFlags;
168     uint32_t CardFlags;
169
170     uint16_t BoardNum;
171     uint16_t RGBFormats;
172
173     uint16_t MaxHorValue[MAXMODES];
174     uint16_t MaxVerValue[MAXMODES];
175     uint16_t MaxHorResolution[MAXMODES];
176     uint16_t MaxVerResolution[MAXMODES];
177     uint32_t MaxMemorySize, MaxChunkSize;
178
179     uint32_t MemoryClock;
180
181     uint32_t PixelClockCount[MAXMODES];
182
183     uint32_t _p_AllocCardMem;
184     uint32_t _p_FreeCardMem;
185
186     uint32_t _p_SetSwitch;
187
188     uint32_t _p_SetColorArray;
189
190     uint32_t _p_SetDAC;
191     uint32_t _p_SetGC;
192     uint32_t _p_SetPanning;
193     uint32_t _p_CalculateBytesPerRow;
194     uint32_t _p_CalculateMemory;
195     uint32_t _p_GetCompatibleFormats;
196     uint32_t _p_SetDisplay;
197
198     uint32_t _p_ResolvePixelClock;
199     uint32_t _p_GetPixelClock;
200     uint32_t _p_SetClock;
201
202     uint32_t _p_SetMemoryMode;
203     uint32_t _p_SetWriteMask;
204     uint32_t _p_SetClearMask;
205     uint32_t _p_SetReadPlane;
206
207     uint32_t _p_WaitVerticalSync;
208     uint32_t _p_SetInterrupt;
209
210     uint32_t _p_WaitBlitter;
211
212     uint32_t _p_ScrollPlanar;
213     uint32_t _p_ScrollPlanarDefault;
214     uint32_t _p_UpdatePlanar;
215     uint32_t _p_UpdatePlanarDefault;
216     uint32_t _p_BlitPlanar2Chunky;
217     uint32_t _p_BlitPlanar2ChunkyDefault;
218
219     uint32_t _p_FillRect;
220     uint32_t _p_FillRectDefault;
221     uint32_t _p_InvertRect;
222     uint32_t _p_InvertRectDefault;
223     uint32_t _p_BlitRect;
224     uint32_t _p_BlitRectDefault;
225     uint32_t _p_BlitTemplate;
226     uint32_t _p_BlitTemplateDefault;
227     uint32_t _p_BlitPattern;
228     uint32_t _p_BlitPatternDefault;
229     uint32_t _p_DrawLine;
230     uint32_t _p_DrawLineDefault;
231     uint32_t _p_BlitRectNoMaskComplete;
232     uint32_t _p_BlitRectNoMaskCompleteDefault;
233     uint32_t _p_BlitPlanar2Direct;
234     uint32_t _p_BlitPlanar2DirectDefault;
235     uint32_t _p_EnableSoftSprite;
236     uint32_t _p_EnableSoftSpriteDefault;
237     uint32_t _p_AllocCardMemAbs;
238     uint32_t _p_SetSplitPosition;
239     uint32_t _p_ReInitMemory;
240     uint32_t _p_Reserved2Default;
241     uint32_t _p_Reserved3;
242     uint32_t _p_Reserved3Default;
243
244     uint32_t _p_WriteYUVRect;
245     uint32_t _p_WriteYUVRectDefault;
246
247     uint32_t _p_GetVSyncState;
248     uint32_t _p_GetVBeamPos;
249     uint32_t _p_SetDPMSLevel;
250     uint32_t _p_ResetChip;
251     uint32_t _p_GetFeatureAttrs;
252
253     uint32_t _p_AllocBitMap;
254     uint32_t _p_FreeBitMap;
255     uint32_t _p_GetBitMapAttr;
256     uint32_t _p_SetSprite;
257     uint32_t _p_SetSpritePosition;
258     uint32_t _p_SetSpriteImage;
259     uint32_t _p_SetSpriteColor;
260     uint32_t _p_CreateFeature;
261     uint32_t _p_SetFeatureAttrs;
262     uint32_t _p_DeleteFeature;
263     struct MinList_placeholder SpecialFeatures;
264
265     uint32_t _p_ModeInfo;
266     uint32_t RGBFormat;
267     int16_t XOffset;
268     int16_t YOffset;
269     uint8_t Depth;
270     uint8_t ClearMask;
271     uint16_t Border;
272     uint32_t Mask;
273     uint8_t CLUT[256 * 3];
274
275     uint32_t _p_ViewPort;
276     uint32_t _p_VisibleBitMap;
277     uint32_t _p_BitMapExtra;
278     struct MinList_placeholder BitMapList;
279     struct MinList_placeholder MemList;
280
281     int16_t MouseX;
282     int16_t MouseY;
283     uint8_t MouseWidth;
284     uint8_t MouseHeight;
285     uint8_t MouseXOffset;
286     uint8_t MouseYOffset;
287     uint32_t _p_MouseImage;
288     uint8_t MousePens[4];
289     struct Rectangle MouseRect;
290     uint32_t _p_MouseChunky;
291     uint32_t _p_MouseRendered;
292     uint32_t _p_MouseSaveBuffer;
293
294     uint32_t ChipData[16];
295     uint32_t CardData[16];
296
297     uint32_t _p_MemorySpaceBase;
298     uint32_t MemorySpaceSize;
299
300     uint32_t _p_DoubleBufferList;
301
302     struct timeval_placeholder SyncTime;
303     uint32_t SyncPeriod;
304     struct MsgPort_placeholder SoftVBlankPort;
305
306     struct MinList_placeholder WaitQ;
307     
308     int32_t EssentialFormats;
309     uint32_t _p_MouseImageBuffer;
310
311     uint32_t _p_backViewPort;
312     uint32_t _p_backBitMap;
313     uint32_t _p_backExtra;
314     int16_t YSplit;
315     uint32_t MaxPlanarMemory;
316     uint32_t MaxBMWidth;
317     uint32_t MaxBMHeight;
318 };