Root/
Source at commit 1793 created 12 years 5 months ago. By blackosx, Attempt to overcome issue 211 by revising the code to remove all package .svn files before function makeSubstitutions() is called. The line it replaces should work but I can't figure out why it doesn't... | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 1999-2003 Apple Computer, Inc. All rights reserved.␊ |
3 | *␊ |
4 | * @APPLE_LICENSE_HEADER_START@␊ |
5 | * ␊ |
6 | * Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights␊ |
7 | * Reserved. This file contains Original Code and/or Modifications of␊ |
8 | * Original Code as defined in and that are subject to the Apple Public␊ |
9 | * Source License Version 2.0 (the "License"). You may not use this file␊ |
10 | * except in compliance with the License. Please obtain a copy of the␊ |
11 | * License at http://www.apple.com/publicsource and read it before using␊ |
12 | * this file.␊ |
13 | * ␊ |
14 | * The Original Code and all software distributed under the License are␊ |
15 | * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
16 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
17 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
18 | * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the␊ |
19 | * License for the specific language governing rights and limitations␊ |
20 | * under the License.␊ |
21 | * ␊ |
22 | * @APPLE_LICENSE_HEADER_END@␊ |
23 | */␊ |
24 | // Copyright 1997 by Apple Computer, Inc., all rights reserved.␊ |
25 | /* Copyright 1996-1997 NeXT Software, Inc.␊ |
26 | *␊ |
27 | * vesa.h - mode info obtained via int10␊ |
28 | *␊ |
29 | * Revision History␊ |
30 | * ----------------␊ |
31 | * 30 Jul 1996 Doug Mitchell at NeXT␊ |
32 | * Created.␊ |
33 | */␊ |
34 | ␊ |
35 | #ifndef __LIBSAIO_VBE_H␊ |
36 | #define __LIBSAIO_VBE_H␊ |
37 | ␊ |
38 | #define MIN_VESA_VERSION 0x200␊ |
39 | ␊ |
40 | #define SEG(address) \␊ |
41 | ((unsigned short)(((unsigned long)address & 0xffff0000) >> 4))␊ |
42 | ␊ |
43 | #define OFF(address) \␊ |
44 | ((unsigned short)((unsigned long)address & 0x0000ffff))␊ |
45 | ␊ |
46 | #define VBEMakeUInt32(x) \␊ |
47 | (((unsigned long)x##_high << 24) | \␊ |
48 | ((unsigned long)x##_2 << 16) | \␊ |
49 | ((unsigned long)x##_1 << 8) | \␊ |
50 | (unsigned long)x##_low)␊ |
51 | ␊ |
52 | #define VBEDecodeFP(t, fp) \␊ |
53 | ((t)(((fp ## _low) | ((fp ## _1 ) << 8)) + \␊ |
54 | (((fp ## _2) << 4) | ((fp ## _high ) << 12))))␊ |
55 | ␊ |
56 | /*␊ |
57 | * Functions␊ |
58 | */␊ |
59 | enum {␊ |
60 | funcGetControllerInfo = 0x4F00,␊ |
61 | funcGetModeInfo = 0x4F01,␊ |
62 | funcSetMode = 0x4F02,␊ |
63 | funcGetCurrentMode = 0x4F03,␊ |
64 | funcSaveRestoreState = 0x4F04,␊ |
65 | funcWindowControl = 0x4F05,␊ |
66 | funcGetSetScanLineLength = 0x4F06,␊ |
67 | funcGetSetDisplayStart = 0x4F07,␊ |
68 | funcGetSetPaletteFormat = 0x4F08,␊ |
69 | funcGetSetPaletteData = 0x4F09,␊ |
70 | funcGetProtModeInterdace = 0x4F0A,␊ |
71 | funcGetSetPixelClock = 0x4F0B␊ |
72 | };␊ |
73 | ␊ |
74 | enum {␊ |
75 | subfuncSet = 0x00,␊ |
76 | subfuncGet = 0x01,␊ |
77 | subfuncSetSecondary = 0x02,␊ |
78 | subfuncGetSecondary = 0x03␊ |
79 | };␊ |
80 | ␊ |
81 | /*␊ |
82 | * errors.␊ |
83 | */␊ |
84 | enum {␊ |
85 | errSuccess = 0,␊ |
86 | errFuncFailed = 1,␊ |
87 | errFuncNotSupported = 2,␊ |
88 | errFuncInvalid = 3␊ |
89 | };␊ |
90 | ␊ |
91 | /*␊ |
92 | * Per-controller info, returned in function 4f00.␊ |
93 | */␊ |
94 | typedef struct {␊ |
95 | unsigned char VESASignature[4];␊ |
96 | unsigned short VESAVersion;␊ |
97 | /*␊ |
98 | * Avoid packing problem...␊ |
99 | */␊ |
100 | unsigned char OEMStringPtr_low;␊ |
101 | unsigned char OEMStringPtr_1;␊ |
102 | unsigned char OEMStringPtr_2;␊ |
103 | unsigned char OEMStringPtr_high;␊ |
104 | unsigned char Capabilities_low;␊ |
105 | unsigned char Capabilities_1;␊ |
106 | unsigned char Capabilities_2;␊ |
107 | unsigned char Capabilities_high;␊ |
108 | unsigned char VideoModePtr_low;␊ |
109 | unsigned char VideoModePtr_1;␊ |
110 | unsigned char VideoModePtr_2;␊ |
111 | unsigned char VideoModePtr_high;␊ |
112 | unsigned short TotalMemory;␊ |
113 | unsigned char Reserved[236];␊ |
114 | unsigned char OEMData[256];␊ |
115 | } VBEInfoBlock;␊ |
116 | ␊ |
117 | /*␊ |
118 | * Capabilites␊ |
119 | */␊ |
120 | enum {␊ |
121 | capDACWidthIsSwitchableBit = (1 << 0), /* 1 = yes; 0 = no */␊ |
122 | capControllerIsNotVGACompatableBit = (1 << 1), /* 1 = no; 0 = yes */␊ |
123 | capOldRAMDAC = (1 << 2) /* 1 = yes; 0 = no */␊ |
124 | };␊ |
125 | ␊ |
126 | /*␊ |
127 | * Per-mode info, returned in function 4f02.␊ |
128 | */␊ |
129 | typedef struct {␊ |
130 | unsigned short ModeAttributes;␊ |
131 | unsigned char WinAAttributes;␊ |
132 | unsigned char WinBAttributes;␊ |
133 | unsigned short WinGranularity;␊ |
134 | unsigned short WinSize;␊ |
135 | unsigned short WinASegment;␊ |
136 | unsigned short WinABegment;␊ |
137 | void * WinFuncPtr;␊ |
138 | unsigned short BytesPerScanline;␊ |
139 | unsigned short XResolution;␊ |
140 | unsigned short YResolution;␊ |
141 | unsigned char XCharSize;␊ |
142 | unsigned char YCharSize;␊ |
143 | unsigned char NumberOfPlanes;␊ |
144 | unsigned char BitsPerPixel;␊ |
145 | unsigned char NumberOfBanks;␊ |
146 | unsigned char MemoryModel;␊ |
147 | unsigned char BankSize;␊ |
148 | unsigned char NumberOfImagePages;␊ |
149 | unsigned char Reserved;␊ |
150 | unsigned char RedMaskSize;␊ |
151 | unsigned char RedFieldPosition;␊ |
152 | unsigned char GreenMaskSize;␊ |
153 | unsigned char GreenFieldPosition;␊ |
154 | unsigned char BlueMaskSize;␊ |
155 | unsigned char BlueFieldPosition;␊ |
156 | unsigned char RsvdMaskSize;␊ |
157 | unsigned char RsvdFieldPosition;␊ |
158 | unsigned char DirectColorModeInfo;␊ |
159 | unsigned char PhysBasePtr_low;␊ |
160 | unsigned char PhysBasePtr_1;␊ |
161 | unsigned char PhysBasePtr_2;␊ |
162 | unsigned char PhysBasePtr_high;␊ |
163 | void * OffScreenMemOffset;␊ |
164 | unsigned short OffScreenMemSize;␊ |
165 | unsigned char Reserved1[206];␊ |
166 | } VBEModeInfoBlock;␊ |
167 | ␊ |
168 | /* ␊ |
169 | * ModeAttributes bits␊ |
170 | */␊ |
171 | enum {␊ |
172 | maModeIsSupportedBit = (1 << 0), /* mode is supported */␊ |
173 | maExtendedInfoAvailableBit = (1 << 1), /* extended info available */␊ |
174 | maOutputFuncSupportedBit = (1 << 2), /* output functions supported */␊ |
175 | maColorModeBit = (1 << 3), /* 1 = color; 0 = mono */␊ |
176 | maGraphicsModeBit = (1 << 4), /* 1 = graphics; 0 = text */␊ |
177 | maModeIsNotVGACompatableBit = (1 << 5), /* 1 = not compat; 0 = compat */␊ |
178 | maVGAMemoryModeNotAvailBit = (1 << 6), /* 1 = not avail; 0 = avail */␊ |
179 | maLinearFrameBufferAvailBit = (1 << 7) /* 1 = avail; 0 = not avail */␊ |
180 | };␊ |
181 | ␊ |
182 | /*␊ |
183 | * Modes␊ |
184 | */␊ |
185 | enum {␊ |
186 | mode640x400x256 = 0x100,␊ |
187 | mode640x480x256 = 0x101,␊ |
188 | mode800x600x16 = 0x102,␊ |
189 | mode800x600x256 = 0x103,␊ |
190 | mode1024x768x16 = 0x104,␊ |
191 | mode1024x768x256 = 0x105,␊ |
192 | mode1280x1024x16 = 0x106,␊ |
193 | mode1280x1024x256 = 0x107,␊ |
194 | mode80Cx60R = 0x108,␊ |
195 | mode132Cx25R = 0x109,␊ |
196 | mode132Cx43R = 0x10A,␊ |
197 | mode132Cx50R = 0x10B,␊ |
198 | mode132Cx60R = 0x10C,␊ |
199 | mode320x200x555 = 0x10D,␊ |
200 | mode320x200x565 = 0x10E,␊ |
201 | mode320x200x888 = 0x10F,␊ |
202 | mode640x480x555 = 0x110,␊ |
203 | mode640x480x565 = 0x111,␊ |
204 | mode640x480x888 = 0x112,␊ |
205 | mode800x600x555 = 0x113,␊ |
206 | mode800x600x565 = 0x114,␊ |
207 | mode800x600x888 = 0x115,␊ |
208 | mode1024x768x555 = 0x116,␊ |
209 | mode1024x768x565 = 0x117,␊ |
210 | mode1024x768x888 = 0x118,␊ |
211 | mode1280x1024x555 = 0x119,␊ |
212 | mode1280x1024x565 = 0x11A,␊ |
213 | mode1280x1024x888 = 0x11B,␊ |
214 | modeSpecial = 0x81FF,␊ |
215 | modeEndOfList = 0xFFFF␊ |
216 | };␊ |
217 | ␊ |
218 | /*␊ |
219 | * Get/Set VBE Mode parameters␊ |
220 | */␊ |
221 | enum {␊ |
222 | kCustomRefreshRateBit = (1 << 11),␊ |
223 | kLinearFrameBufferBit = (1 << 14),␊ |
224 | kPreserveMemoryBit = (1 << 15)␊ |
225 | };␊ |
226 | ␊ |
227 | /*␊ |
228 | * CRTC information block passed to function 4F02␊ |
229 | * to override default refresh rate.␊ |
230 | */␊ |
231 | #pragma pack(1)␊ |
232 | ␊ |
233 | typedef struct {␊ |
234 | unsigned short HTotal;␊ |
235 | unsigned short HSyncStart;␊ |
236 | unsigned short HSyncEnd;␊ |
237 | unsigned short VTotal;␊ |
238 | unsigned short VSyncStart;␊ |
239 | unsigned short VSyncEnd;␊ |
240 | unsigned char Flags;␊ |
241 | unsigned long PixelClock; /* in Hz */␊ |
242 | unsigned short RefreshRate; /* units of 0.01 Hz */␊ |
243 | unsigned char Reserved[40];␊ |
244 | } VBECRTCInfoBlock;␊ |
245 | ␊ |
246 | #pragma pack()␊ |
247 | ␊ |
248 | /*␊ |
249 | * Defined flags for 'Flags' field in VBECRTCInfoBlock.␊ |
250 | */␊ |
251 | enum {␊ |
252 | kCRTCDoubleScannedMode = (1 << 0),␊ |
253 | kCRTCInterlacedMode = (1 << 1),␊ |
254 | kCRTCNegativeHorizontalSync = (1 << 2),␊ |
255 | kCRTCNegativeVerticalSync = (1 << 3)␊ |
256 | };␊ |
257 | ␊ |
258 | /*␊ |
259 | * The type of paramter passed to generateCRTCTimings().␊ |
260 | */␊ |
261 | enum {␊ |
262 | kCRTCParamRefreshRate,␊ |
263 | kCRTCParamPixelClock␊ |
264 | };␊ |
265 | ␊ |
266 | /*␊ |
267 | * Palette␊ |
268 | */␊ |
269 | typedef unsigned long VBEPalette[256];␊ |
270 | ␊ |
271 | extern int getVBEInfo(void *vinfo_p);␊ |
272 | extern int getVBEModeInfo(int mode, void *minfo_p);␊ |
273 | extern int getVBEDACFormat(unsigned char *format);␊ |
274 | extern int setVBEDACFormat(unsigned char format);␊ |
275 | extern int setVBEPalette(void *palette);␊ |
276 | extern int getVBEPalette(void *palette);␊ |
277 | extern int setVBEMode(unsigned short mode, const VBECRTCInfoBlock *timing);␊ |
278 | extern int getVBECurrentMode(unsigned short *mode);␊ |
279 | extern int getVBEPixelClock(unsigned short mode, unsigned long *pixelClock);␊ |
280 | extern int generateCRTCTiming(unsigned short width,␊ |
281 | unsigned short height,␊ |
282 | unsigned long paramValue,␊ |
283 | int paramType,␊ |
284 | VBECRTCInfoBlock * timing);␊ |
285 | ␊ |
286 | #endif /* !__LIBSAIO_VBE_H */␊ |
287 |