|
|
1.1 root 1:
2: /*++
3:
4: Copyright (c) 1992 Microsoft Corporation
5:
6: Module Name:
7:
8: jaginit.h
9:
10: Abstract:
11:
12: Header file for Jaguar screen mode data
13:
14: Author:
15:
16: Mark Enstrom
17:
18: Environment:
19:
20:
21: --*/
22:
23: //
24: // Define Jaguar register values to properly set up each mode.
25: //
26:
27: //
28: // Define structures for initializing timing parameters
29: //
30:
31: typedef struct _JAGUAR_REG_INIT {
32: UCHAR ClockFreq;
33: UCHAR Bt485Multiply;
34: UCHAR BitBltControl;
35: USHORT TopOfScreen;
36: USHORT HorizontalBlank;
37: USHORT HorizontalBeginSync;
38: USHORT HorizontalEndSync;
39: USHORT HorizontalLine;
40: USHORT VerticalBlank;
41: USHORT VerticalBeginSync;
42: USHORT VerticalEndSync;
43: USHORT VerticalLine;
44: USHORT XferLength;
45: USHORT VerticalInterruptLine;
46: USHORT HorizontalDisplay;
47: } JAGUAR_REG_INIT, *PJAGUAR_REG_INIT;
48:
49: //
50: // 1280 x 1024 x 8, 60 Hz (Bt485 only)
51: //
52:
53: JAGUAR_REG_INIT v1280_1024_8_60[] = {
54: 0x18, // Clock Selector
55: 1, // Bt485 clock 2x multiply
56: 1, // BitBlt Control
57: 0, // TopOfScreen
58: 102, // Horizontal Blank
59: 11, // Horizontal Begin Sync
60: 57, // Horizontal End Sync
61: 422, // Horizontal Total
62: 32, // Vertical Blank
63: 3, // Vertical Begin Sync
64: 6, // Vertical End Sync
65: 1056, // Vertical Total
66: 0x200,// XFER LENGTH
67: 4, // Vertival Interrupt Line
68: 1280 // Screen X
69: };
70:
71: //
72: // 1280 x 1024 x 8, 72 Hz (Bt485 only) (set to 70 until Bt485 bug fixed)
73: //
74:
75: JAGUAR_REG_INIT v1280_1024_8_72[] = {
76: 0x1a, // Clock Selector
77: 1, // Bt485 clock 2x multiply
78: 1, // BitBlt Control
79: 0, // TopOfScreen
80: 102, // Horizontal Blank
81: 11, // Horizontal Begin Sync
82: 57, // Horizontal End Sync
83: 422, // Horizontal Total
84: 32, // Vertical Blank
85: 3, // Vertical Begin Sync
86: 6, // Vertical End Sync
87: 1056, // Vertical Total
88: 0x200,// XFER LENGTH
89: 4, // Vertival Interrupt Line
90: 1280 // Screen X
91: };
92:
93: //
94: // 1152 x 900 x 8, 72 Hz
95: //
96:
97: JAGUAR_REG_INIT v1152_900_8_72[] = {
98: 0x17, // Clock Selector
99: 1, // Bt485 clock 2x multiply
100: 1, // BitBlt Control
101: 0, // TopOfScreen
102: 84, // Horizontal Blank
103: 7, // Horizontal Begin Sync
104: 44, // Horizontal End Sync
105: 372, // Horizontal Total
106: 48, // Vertical Blank
107: 1, // Vertical Begin Sync
108: 5, // Vertical End Sync
109: 948, // Vertical Total
110: 0x200,// XFER LENGTH
111: 4, // Vertival Interrupt Line
112: 1152 // Screen X
113: };
114:
115: //
116: // 1152 x 900 x 8, 60 Hz
117: //
118:
119: JAGUAR_REG_INIT v1152_900_8_60[] = {
120: 0x1e, // Clock Selector
121: 0, // Bt485 clock 2x multiply
122: 1, // BitBlt Control
123: 0, // TopOfScreen
124: 84, // Horizontal Blank
125: 7, // Horizontal Begin Sync
126: 30, // Horizontal End Sync
127: 372, // Horizontal Total
128: 40, // Vertical Blank
129: 1, // Vertical Begin Sync
130: 5, // Vertical End Sync
131: 940, // Vertical Total
132: 0x200,// XFER LENGTH
133: 4, // Vertival Interrupt Line
134: 1152 // Screen X
135: };
136:
137: //
138: // 1152 x 900 x 16, 60 Hz
139: //
140:
141: JAGUAR_REG_INIT v1152_900_16_60[] = {
142: 0x1e, // Clock Selector
143: 0, // Bt485 clock 2x multiply
144: 3, // BitBlt Control
145: 0, // TopOfScreen
146: 168, // Horizontal Blank
147: 14, // Horizontal Begin Sync
148: 60, // Horizontal End Sync
149: 744, // Horizontal Total
150: 40, // Vertical Blank
151: 1, // Vertical Begin Sync
152: 5, // Vertical End Sync
153: 940, // Vertical Total
154: 0x200,// XFER LENGTH
155: 4, // Vertival Interrupt Line
156: 2304 // Screen X
157: };
158:
159: //
160: // 1024 x 768 x 16, 72 Hz
161: //
162:
163: JAGUAR_REG_INIT v1024_768_16_72[] = {
164: 0x1e, // Clock Selector
165: 0, // Bt485 clock 2x multiply
166: 3, // BitBlt Control
167: 0, // TopOfScreen
168: 166, // Horizontal Blank
169: 22, // Horizontal Begin Sync
170: 92, // Horizontal End Sync
171: 678, // Horizontal Total
172: 38, // Vertical Blank
173: 3, // Vertical Begin Sync
174: 9, // Vertical End Sync
175: 806, // Vertical Total
176: 0x200, // XFER LENGTH
177: 4, // Vertival Interrupt Line
178: 2048 // Screen X
179: };
180:
181:
182: //
183: // 1024 x 768 x 8, 72 Hz
184: //
185:
186: JAGUAR_REG_INIT v1024_768_8_72[] = {
187: 0x1e, // Clock Selector
188: 0, // Bt485 clock 2x multiply
189: 1, // BitBlt Control
190: 0, // TopOfScreen
191: 83, // Horizontal Blank
192: 11, // Horizontal Begin Sync
193: 46, // Horizontal End Sync
194: 339, // Horizontal Total
195: 38, // Vertical Blank
196: 3, // Vertical Begin Sync
197: 9, // Vertical End Sync
198: 806, // Vertical Total
199: 0x200, // XFER LENGTH
200: 4, // Vertival Interrupt Line
201: 1024 // Screen X
202: };
203:
204: //
205: // 1024 x 768 x 16, 60 Hz
206: //
207:
208: JAGUAR_REG_INIT v1024_768_16_60[] = {
209: 0x1b, // Clock Selector
210: 0, // Bt485 clock 2x multiply
211: 3, // BitBlt Control
212: 0, // TopOfScreen
213: 144, // Horizontal Blank
214: 32, // Horizontal Begin Sync
215: 80, // Horizontal End Sync
216: 656, // Horizontal Total
217: 45, // Vertical Blank
218: 3, // Vertical Begin Sync
219: 6, // Vertical End Sync
220: 813, // Vertical Total
221: 0x200, // XFER LENGTH
222: 4, // Vertival Interrupt Line
223: 2048 // Screen X
224: };
225:
226: //
227: // 1024 x 768 x 8, 60 Hz
228: //
229:
230: JAGUAR_REG_INIT v1024_768_8_60[] = {
231: 0x1b, // Clock Selector
232: 0, // Bt485 clock 2x multiply
233: 1, // BitBlt Control
234: 0, // TopOfScreen
235: 72, // Horizontal Blank
236: 16, // Horizontal Begin Sync
237: 40, // Horizontal End Sync
238: 328, // Horizontal Total
239: 45, // Vertical Blank
240: 3, // Vertical Begin Sync
241: 6, // Vertical End Sync
242: 813, // Vertical Total
243: 0x200, // XFER LENGTH
244: 4, // Vertival Interrupt Line
245: 1024 // Screen X
246: };
247:
248:
249: //
250: // 800 x 600 x 8, 60 Hz
251: //
252:
253: JAGUAR_REG_INIT v800_600_8_60[] = {
254: 0x11, // Clock Selector
255: 0, // Bt485 clock 2x multiply
256: 1, // BitBlt Control
257: 0, // TopOfScreen
258: 52, // Horizontal Blank
259: 4, // Horizontal Begin Sync
260: 16, // Horizontal End Sync
261: 252, // Horizontal Total
262: 28, // Vertical Blank
263: 4, // Vertical Begin Sync
264: 8, // Vertical End Sync
265: 628, // Vertical Total
266: 0x200, // XFER LENGTH
267: 4, // Vertival Interrupt Line
268: 800 // Screen X
269: };
270:
271: //
272: // 800 x 600 x 8, 72 Hz
273: //
274:
275: JAGUAR_REG_INIT v800_600_8_72[] = {
276: 0x13, // Clock Selector
277: 0, // Bt485 clock 2x multiply
278: 1, // BitBlt Control
279: 0, // TopOfScreen
280: 52, // Horizontal Blank
281: 4, // Horizontal Begin Sync
282: 16, // Horizontal End Sync
283: 252, // Horizontal Total
284: 28, // Vertical Blank
285: 4, // Vertical Begin Sync
286: 8, // Vertical End Sync
287: 628, // Vertical Total
288: 0x200, // XFER LENGTH
289: 4, // Vertival Interrupt Line
290: 800 // Screen X
291: };
292:
293: //
294: // 800 x 600 x 16, 60 Hz
295: //
296:
297: JAGUAR_REG_INIT v800_600_16_60[] = {
298: 0x11, // Clock Selector
299: 0, // Bt485 clock 2x multiply
300: 3, // BitBlt Control (16 bpp)
301: 0, // TopOfScreen
302: 104, // Horizontal Blank
303: 8, // Horizontal Begin Sync
304: 32, // Horizontal End Sync
305: 504, // Horizontal Total
306: 28, // Vertical Blank
307: 4, // Vertical Begin Sync
308: 8, // Vertical End Sync
309: 628, // Vertical Total
310: 0x200, // XFER LENGTH
311: 4, // Vertival Interrupt Line
312: 1600 // Screen X
313: };
314:
315: //
316: // 800 x 600 x 16, 72 Hz
317: //
318:
319: JAGUAR_REG_INIT v800_600_16_72[] = {
320: 0x13, // Clock Selector
321: 0, // Bt485 clock 2x multiply
322: 3, // BitBlt Control (16 bpp)
323: 0, // TopOfScreen
324: 104, // Horizontal Blank
325: 8, // Horizontal Begin Sync
326: 32, // Horizontal End Sync
327: 504, // Horizontal Total
328: 28, // Vertical Blank
329: 4, // Vertical Begin Sync
330: 8, // Vertical End Sync
331: 628, // Vertical Total
332: 0x200, // XFER LENGTH
333: 4, // Vertival Interrupt Line
334: 1600 // Screen X
335: };
336:
337: //
338: // 800 x 600 x 32, 60 Hz
339: //
340:
341: JAGUAR_REG_INIT v800_600_32_60[] = {
342: 0x11, // Clock Selector
343: 0, // Bt485 clock 2x multiply
344: 5, // BitBlt Control (16 bpp)
345: 0, // TopOfScreen
346: 208, // Horizontal Blank
347: 16, // Horizontal Begin Sync
348: 64, // Horizontal End Sync
349: 1008, // Horizontal Total
350: 28, // Vertical Blank
351: 4, // Vertical Begin Sync
352: 8, // Vertical End Sync
353: 628, // Vertical Total
354: 0x200, // XFER LENGTH
355: 4, // Vertival Interrupt Line
356: 3200 // Screen X
357: };
358:
359: //
360: // 800 x 600 x 32, 72 Hz
361: //
362:
363: JAGUAR_REG_INIT v800_600_32_72[] = {
364: 0x13, // Clock Selector
365: 0, // Bt485 clock 2x multiply
366: 5, // BitBlt Control (16 bpp)
367: 0, // TopOfScreen
368: 208, // Horizontal Blank
369: 16, // Horizontal Begin Sync
370: 64, // Horizontal End Sync
371: 1008, // Horizontal Total
372: 28, // Vertical Blank
373: 4, // Vertical Begin Sync
374: 8, // Vertical End Sync
375: 628, // Vertical Total
376: 0x200, // XFER LENGTH
377: 4, // Vertival Interrupt Line
378: 3200 // Screen X
379: };
380:
381: //
382: // 640 x 480 x 8, 60 Hz
383: //
384:
385: JAGUAR_REG_INIT v640_480_8_60[] = {
386: 0xc, // Clock Selector
387: 0, // Bt485 clock 2x multiply
388: 1, // BitBlt Control
389: 0, // TopOfScreen
390: 41, // Horizontal Blank
391: 4, // Horizontal Begin Sync
392: 29, // Horizontal End Sync
393: 201, // Horizontal Total
394: 45, // Vertical Blank
395: 11, // Vertical Begin Sync
396: 13, // Vertical End Sync
397: 525, // Vertical Total
398: 0x200, // XFER LENGTH
399: 4, // Vertival Interrupt Line
400: 640 // Screen X
401: };
402:
403: //
404: // 640 x 480 x 8, 72 Hz
405: //
406:
407: JAGUAR_REG_INIT v640_480_8_72[] = {
408: 0xe, // Clock Selectr
409: 0, // Bt485 clock 2x multiply
410: 1, // BitBlt Control
411: 0, // TopOfScreen
412: 41, // Horizontal Blank
413: 4, // Horizontal Begin Sync
414: 29, // Horizontal End Sync
415: 201, // Horizontal Total
416: 45, // Vertical Blank
417: 11, // Vertical Begin Sync
418: 13, // Vertical End Sync
419: 525, // Vertical Total
420: 0x200, // XFER LENGTH
421: 4, // Vertival Interrupt Line
422: 640 // Screen X
423: };
424:
425: //
426: // 640 x 480 x 16, 60 Hz
427: //
428:
429: JAGUAR_REG_INIT v640_480_16_60[] = {
430: 0xc, // Clock Selector
431: 0, // Bt485 clock 2x multiply
432: 3, // BitBlt Control
433: 0, // TopOfScreen
434: 82, // Horizontal Blank
435: 8, // Horizontal Begin Sync
436: 58, // Horizontal End Sync
437: 402, // Horizontal Total
438: 45, // Vertical Blank
439: 11, // Vertical Begin Sync
440: 13, // Vertical End Sync
441: 525, // Vertical Total
442: 0x200, // XFER LENGTH
443: 4, // Vertival Interrupt Line
444: 1280 // Screen X
445: };
446:
447: //
448: // 640 x 480 x 16, 72 Hz
449: //
450:
451: JAGUAR_REG_INIT v640_480_16_72[] = {
452: 0xe, // Clock Selector
453: 0, // Bt485 clock 2x multiply
454: 3, // BitBlt Control
455: 0, // TopOfScreen
456: 82, // Horizontal Blank
457: 8, // Horizontal Begin Sync
458: 58, // Horizontal End Sync
459: 402, // Horizontal Total
460: 45, // Vertical Blank
461: 11, // Vertical Begin Sync
462: 13, // Vertical End Sync
463: 525, // Vertical Total
464: 0x200, // XFER LENGTH
465: 4, // Vertival Interrupt Line
466: 1280 // Screen X
467: };
468:
469: //
470: // 640 x 480 x 32, 60 Hz
471: //
472:
473: JAGUAR_REG_INIT v640_480_32_60[] = {
474: 0xc, // Clock Selector
475: 0, // Bt485 clock 2x multiply
476: 5, // BitBlt Control
477: 0, // TopOfScreen
478: 164, // Horizontal Blank
479: 17, // Horizontal Begin Sync
480: 116, // Horizontal End Sync
481: 804, // Horizontal Total
482: 45, // Vertical Blank
483: 11, // Vertical Begin Sync
484: 13, // Vertical End Sync
485: 525, // Vertical Total
486: 0x200, // XFER LENGTH
487: 4, // Vertival Interrupt Line
488: 2560 // Screen X
489: };
490:
491: //
492: // 640 x 480 x 32, 72 Hz
493: //
494:
495: JAGUAR_REG_INIT v640_480_32_72[] = {
496: 0xe, // Clock Selector
497: 0, // Bt485 clock 2x multiply
498: 5, // BitBlt Control
499: 0, // TopOfScreen
500: 164, // Horizontal Blank
501: 17, // Horizontal Begin Sync
502: 116, // Horizontal End Sync
503: 804, // Horizontal Total
504: 45, // Vertical Blank
505: 11, // Vertical Begin Sync
506: 13, // Vertical End Sync
507: 525, // Vertical Total
508: 0x200, // XFER LENGTH
509: 4, // Vertival Interrupt Line
510: 2560 // Screen X
511: };
512:
513: //
514: // Gamma correction table
515: //
516:
517: UCHAR Gamma[] = {
518: // 1.5 2.2 linear
519: 0, // 0, 0 , 0
520: 8, // 26, 54, 1
521: 16, // 41, 73, 2
522: 24, // 53, 88, 3
523: 32, // 65, 101, 4
524: 40, // 75, 111, 5
525: 48, // 85, 121, 6
526: 56, // 94, 130, 7
527: 64, // 103, 138, 8
528: 72, // 111, 145, 9
529: 80, // 119, 152, 0
530: 88, // 127, 159, 1
531: 96, // 135, 166, 2
532: 104,// 142, 172, 3
533: 112,// 149, 178, 4
534: 120,// 156, 183, 5
535: 128,// 163, 189, 6
536: 136,// 170, 194, 7
537: 144,// 177, 199, 8
538: 152,// 183, 205, 9
539: 160,// 189, 209, 0
540: 168,// 196, 214, 1
541: 176,// 202, 218, 2
542: 184,// 208, 223, 3
543: 192,// 214, 227, 4
544: 200,// 220, 231, 5
545: 208,// 226, 235, 6
546: 216,// 231, 239, 7
547: 224,// 237, 243, 8
548: 232,// 243, 247, 9
549: 240,// 248, 251, 0
550: 248,// 255 255 1
551: };
552:
553:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.