Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* this file was automatically generated from vesa.txt */
2
 
3
#include <u.h>
4
#include <libc.h>
5
#include <bio.h>
6
#include "pci.h"
7
#include "vga.h"
8
 
9
/*
10
 * VESA Monitor Timing Standard mode definitions as per
11
 * VESA and Industry Standards and Guidelines for Computer
12
 * Display Monitor Timing, Version 1.0, Revision 0.8, 17 September 1998.
13
 *
14
 * See /public/doc/vesa/dmtv1r08.pdf.
15
 *
16
 * This might go back into vgadb at some point. It's here mainly
17
 * so that people don't change it, and so that we can run without vgadb.
18
 */
19
 
20
static Mode vesa640x480x60 = {
21
	.name = "640x480@60Hz",
22
	.x = 640,
23
	.y = 480,
24
 
25
	.ht = 800,
26
	.shb = 648,
27
	.ehb = 648+144,
28
	.shs = 656,
29
	.ehs = 656+96,
30
 
31
	.vt = 525,
32
	.vrs = 490,
33
	.vre = 490+2,
34
	.vbs = 488,
35
	.vbe = 488+29,
36
 
37
	.frequency = 25175000,
38
 
39
	.hsync = '-',
40
	.vsync = '-',
41
	.interlace = '\0',
42
};
43
 
44
static Mode vesa640x480x72 = {
45
	.name = "640x480@72Hz",
46
	.x = 640,
47
	.y = 480,
48
 
49
	.ht = 832,
50
	.shb = 648,
51
	.ehb = 648+176,
52
	.shs = 664,
53
	.ehs = 664+40,
54
 
55
	.vt = 520,
56
	.vrs = 489,
57
	.vre = 489+3,
58
	.vbs = 488,
59
	.vbe = 488+24,
60
 
61
	.frequency = 31500000,
62
 
63
	.hsync = '-',
64
	.vsync = '-',
65
	.interlace = '\0',
66
};
67
 
68
static Mode vesa640x480x75 = {
69
	.name = "640x480@75Hz",
70
	.x = 640,
71
	.y = 480,
72
 
73
	.ht = 840,
74
	.shb = 640,
75
	.ehb = 640+200,
76
	.shs = 656,
77
	.ehs = 656+64,
78
 
79
	.vt = 500,
80
	.vrs = 481,
81
	.vre = 481+3,
82
	.vbs = 480,
83
	.vbe = 480+20,
84
 
85
	.frequency = 31500000,
86
 
87
	.hsync = '-',
88
	.vsync = '-',
89
	.interlace = '\0',
90
};
91
 
92
static Mode vesa640x480x85 = {
93
	.name = "640x480@85Hz",
94
	.x = 640,
95
	.y = 480,
96
 
97
	.ht = 832,
98
	.shb = 640,
99
	.ehb = 640+192,
100
	.shs = 696,
101
	.ehs = 696+56,
102
 
103
	.vt = 509,
104
	.vrs = 481,
105
	.vre = 481+3,
106
	.vbs = 480,
107
	.vbe = 480+29,
108
 
109
	.frequency = 36000000,
110
 
111
	.hsync = '-',
112
	.vsync = '-',
113
	.interlace = '\0',
114
};
115
 
116
static Mode vesa800x600x56 = {
117
	.name = "800x600@56Hz",
118
	.x = 800,
119
	.y = 600,
120
 
121
	.ht = 1024,
122
	.shb = 800,
123
	.ehb = 800+224,
124
	.shs = 824,
125
	.ehs = 824+72,
126
 
127
	.vt = 625,
128
	.vrs = 601,
129
	.vre = 601+2,
130
	.vbs = 600,
131
	.vbe = 600+25,
132
 
133
	.frequency = 36000000,
134
 
135
	.hsync = '+',
136
	.vsync = '+',
137
	.interlace = '\0',
138
};
139
 
140
static Mode vesa800x600x60 = {
141
	.name = "800x600@60Hz",
142
	.x = 800,
143
	.y = 600,
144
 
145
	.ht = 1056,
146
	.shb = 800,
147
	.ehb = 800+256,
148
	.shs = 840,
149
	.ehs = 840+128,
150
 
151
	.vt = 628,
152
	.vrs = 601,
153
	.vre = 601+4,
154
	.vbs = 600,
155
	.vbe = 600+28,
156
 
157
	.frequency = 40000000,
158
 
159
	.hsync = '+',
160
	.vsync = '+',
161
	.interlace = '\0',
162
};
163
 
164
static Mode vesa800x600x72 = {
165
	.name = "800x600@72Hz",
166
	.x = 800,
167
	.y = 600,
168
 
169
	.ht = 1040,
170
	.shb = 800,
171
	.ehb = 800+240,
172
	.shs = 856,
173
	.ehs = 856+120,
174
 
175
	.vt = 666,
176
	.vrs = 637,
177
	.vre = 637+6,
178
	.vbs = 600,
179
	.vbe = 600+66,
180
 
181
	.frequency = 50000000,
182
 
183
	.hsync = '+',
184
	.vsync = '+',
185
	.interlace = '\0',
186
};
187
 
188
static Mode vesa800x600x75 = {
189
	.name = "800x600@75Hz",
190
	.x = 800,
191
	.y = 600,
192
 
193
	.ht = 1056,
194
	.shb = 800,
195
	.ehb = 800+256,
196
	.shs = 816,
197
	.ehs = 816+80,
198
 
199
	.vt = 625,
200
	.vrs = 601,
201
	.vre = 601+3,
202
	.vbs = 600,
203
	.vbe = 600+25,
204
 
205
	.frequency = 49500000,
206
 
207
	.hsync = '+',
208
	.vsync = '+',
209
	.interlace = '\0',
210
};
211
 
212
static Mode vesa800x600x85 = {
213
	.name = "800x600@85Hz",
214
	.x = 800,
215
	.y = 600,
216
 
217
	.ht = 1048,
218
	.shb = 800,
219
	.ehb = 800+248,
220
	.shs = 832,
221
	.ehs = 832+64,
222
 
223
	.vt = 631,
224
	.vrs = 601,
225
	.vre = 601+3,
226
	.vbs = 600,
227
	.vbe = 600+31,
228
 
229
	.frequency = 56250000,
230
 
231
	.hsync = '+',
232
	.vsync = '+',
233
	.interlace = '\0',
234
};
235
 
236
static Mode vesa1024x768x60 = {
237
	.name = "1024x768@60Hz",
238
	.x = 1024,
239
	.y = 768,
240
 
241
	.ht = 1344,
242
	.shb = 1024,
243
	.ehb = 1024+320,
244
	.shs = 1048,
245
	.ehs = 1048+136,
246
 
247
	.vt = 806,
248
	.vrs = 771,
249
	.vre = 771+6,
250
	.vbs = 768,
251
	.vbe = 768+38,
252
 
253
	.frequency = 65000000,
254
 
255
	.hsync = '-',
256
	.vsync = '-',
257
	.interlace = '\0',
258
};
259
 
260
static Mode vesa1024x768x70 = {
261
	.name = "1024x768@70Hz",
262
	.x = 1024,
263
	.y = 768,
264
 
265
	.ht = 1328,
266
	.shb = 1024,
267
	.ehb = 1024+304,
268
	.shs = 1048,
269
	.ehs = 1048+136,
270
 
271
	.vt = 806,
272
	.vrs = 771,
273
	.vre = 771+6,
274
	.vbs = 768,
275
	.vbe = 768+38,
276
 
277
	.frequency = 75000000,
278
 
279
	.hsync = '-',
280
	.vsync = '-',
281
	.interlace = '\0',
282
};
283
 
284
static Mode vesa1024x768x75 = {
285
	.name = "1024x768@75Hz",
286
	.x = 1024,
287
	.y = 768,
288
 
289
	.ht = 1312,
290
	.shb = 1024,
291
	.ehb = 1024+288,
292
	.shs = 1040,
293
	.ehs = 1040+96,
294
 
295
	.vt = 800,
296
	.vrs = 769,
297
	.vre = 769+3,
298
	.vbs = 768,
299
	.vbe = 768+32,
300
 
301
	.frequency = 78750000,
302
 
303
	.hsync = '+',
304
	.vsync = '+',
305
	.interlace = '\0',
306
};
307
 
308
static Mode vesa1024x768x85 = {
309
	.name = "1024x768@85Hz",
310
	.x = 1024,
311
	.y = 768,
312
 
313
	.ht = 1376,
314
	.shb = 1024,
315
	.ehb = 1024+352,
316
	.shs = 1072,
317
	.ehs = 1072+96,
318
 
319
	.vt = 808,
320
	.vrs = 769,
321
	.vre = 769+3,
322
	.vbs = 768,
323
	.vbe = 768+40,
324
 
325
	.frequency = 94500000,
326
 
327
	.hsync = '+',
328
	.vsync = '+',
329
	.interlace = '\0',
330
};
331
 
332
static Mode vesa1152x864x75 = {
333
	.name = "1152x864@75Hz",
334
	.x = 1152,
335
	.y = 864,
336
 
337
	.ht = 1600,
338
	.shb = 1152,
339
	.ehb = 1152+448,
340
	.shs = 1216,
341
	.ehs = 1216+128,
342
 
343
	.vt = 900,
344
	.vrs = 865,
345
	.vre = 865+3,
346
	.vbs = 864,
347
	.vbe = 864+36,
348
 
349
	.frequency = 108000000,
350
 
351
	.hsync = '+',
352
	.vsync = '+',
353
	.interlace = '\0',
354
};
355
 
356
static Mode vesa1280x960x60 = {
357
	.name = "1280x960@60Hz",
358
	.x = 1280,
359
	.y = 960,
360
 
361
	.ht = 1800,
362
	.shb = 1280,
363
	.ehb = 1280+520,
364
	.shs = 1376,
365
	.ehs = 1376+112,
366
 
367
	.vt = 1000,
368
	.vrs = 961,
369
	.vre = 961+3,
370
	.vbs = 960,
371
	.vbe = 960+40,
372
 
373
	.frequency = 108000000,
374
 
375
	.hsync = '+',
376
	.vsync = '+',
377
	.interlace = '\0',
378
};
379
 
380
static Mode vesa1280x960x85 = {
381
	.name = "1280x960@85Hz",
382
	.x = 1280,
383
	.y = 960,
384
 
385
	.ht = 1728,
386
	.shb = 1280,
387
	.ehb = 1280+448,
388
	.shs = 1344,
389
	.ehs = 1344+160,
390
 
391
	.vt = 1011,
392
	.vrs = 961,
393
	.vre = 961+3,
394
	.vbs = 960,
395
	.vbe = 960+51,
396
 
397
	.frequency = 148500000,
398
 
399
	.hsync = '+',
400
	.vsync = '+',
401
	.interlace = '\0',
402
};
403
 
404
static Mode vesa1280x1024x60 = {
405
	.name = "1280x1024@60Hz",
406
	.x = 1280,
407
	.y = 1024,
408
 
409
	.ht = 1688,
410
	.shb = 1280,
411
	.ehb = 1280+408,
412
	.shs = 1328,
413
	.ehs = 1328+112,
414
 
415
	.vt = 1066,
416
	.vrs = 1025,
417
	.vre = 1025+3,
418
	.vbs = 1024,
419
	.vbe = 1024+42,
420
 
421
	.frequency = 108000000,
422
 
423
	.hsync = '+',
424
	.vsync = '+',
425
	.interlace = '\0',
426
};
427
 
428
static Mode vesa1280x1024x75 = {
429
	.name = "1280x1024@75Hz",
430
	.x = 1280,
431
	.y = 1024,
432
 
433
	.ht = 1688,
434
	.shb = 1280,
435
	.ehb = 1280+408,
436
	.shs = 1296,
437
	.ehs = 1296+144,
438
 
439
	.vt = 1066,
440
	.vrs = 1025,
441
	.vre = 1025+3,
442
	.vbs = 1024,
443
	.vbe = 1024+42,
444
 
445
	.frequency = 135000000,
446
 
447
	.hsync = '+',
448
	.vsync = '+',
449
	.interlace = '\0',
450
};
451
 
452
static Mode vesa1280x1024x85 = {
453
	.name = "1280x1024@85Hz",
454
	.x = 1280,
455
	.y = 1024,
456
 
457
	.ht = 1728,
458
	.shb = 1280,
459
	.ehb = 1280+448,
460
	.shs = 1344,
461
	.ehs = 1344+160,
462
 
463
	.vt = 1072,
464
	.vrs = 1025,
465
	.vre = 1025+3,
466
	.vbs = 1024,
467
	.vbe = 1024+48,
468
 
469
	.frequency = 157500000,
470
 
471
	.hsync = '+',
472
	.vsync = '+',
473
	.interlace = '\0',
474
};
475
 
476
static Mode vesa1600x1200x60 = {
477
	.name = "1600x1200@60Hz",
478
	.x = 1600,
479
	.y = 1200,
480
 
481
	.ht = 2160,
482
	.shb = 1600,
483
	.ehb = 1600+560,
484
	.shs = 1664,
485
	.ehs = 1664+192,
486
 
487
	.vt = 1250,
488
	.vrs = 1201,
489
	.vre = 1201+3,
490
	.vbs = 1200,
491
	.vbe = 1200+50,
492
 
493
	.frequency = 162000000,
494
 
495
	.hsync = '+',
496
	.vsync = '+',
497
	.interlace = '\0',
498
};
499
 
500
static Mode vesa1600x1200x65 = {
501
	.name = "1600x1200@65Hz",
502
	.x = 1600,
503
	.y = 1200,
504
 
505
	.ht = 2160,
506
	.shb = 1600,
507
	.ehb = 1600+560,
508
	.shs = 1664,
509
	.ehs = 1664+192,
510
 
511
	.vt = 1250,
512
	.vrs = 1201,
513
	.vre = 1201+3,
514
	.vbs = 1200,
515
	.vbe = 1200+50,
516
 
517
	.frequency = 175500000,
518
 
519
	.hsync = '+',
520
	.vsync = '+',
521
	.interlace = '\0',
522
};
523
 
524
static Mode vesa1600x1200x70 = {
525
	.name = "1600x1200@70Hz",
526
	.x = 1600,
527
	.y = 1200,
528
 
529
	.ht = 2160,
530
	.shb = 1600,
531
	.ehb = 1600+560,
532
	.shs = 1664,
533
	.ehs = 1664+192,
534
 
535
	.vt = 1250,
536
	.vrs = 1201,
537
	.vre = 1201+3,
538
	.vbs = 1200,
539
	.vbe = 1200+50,
540
 
541
	.frequency = 189000000,
542
 
543
	.hsync = '+',
544
	.vsync = '+',
545
	.interlace = '\0',
546
};
547
 
548
static Mode vesa1600x1200x75 = {
549
	.name = "1600x1200@75Hz",
550
	.x = 1600,
551
	.y = 1200,
552
 
553
	.ht = 2160,
554
	.shb = 1600,
555
	.ehb = 1600+560,
556
	.shs = 1664,
557
	.ehs = 1664+192,
558
 
559
	.vt = 1250,
560
	.vrs = 1201,
561
	.vre = 1201+3,
562
	.vbs = 1200,
563
	.vbe = 1200+50,
564
 
565
	.frequency = 202500000,
566
 
567
	.hsync = '+',
568
	.vsync = '+',
569
	.interlace = '\0',
570
};
571
 
572
static Mode vesa1600x1200x85 = {
573
	.name = "1600x1200@85Hz",
574
	.x = 1600,
575
	.y = 1200,
576
 
577
	.ht = 2160,
578
	.shb = 1600,
579
	.ehb = 1600+560,
580
	.shs = 1664,
581
	.ehs = 1664+192,
582
 
583
	.vt = 1250,
584
	.vrs = 1201,
585
	.vre = 1201+3,
586
	.vbs = 1200,
587
	.vbe = 1200+50,
588
 
589
	.frequency = 229500000,
590
 
591
	.hsync = '+',
592
	.vsync = '+',
593
	.interlace = '\0',
594
};
595
 
596
static Mode vesa1792x1344x60 = {
597
	.name = "1792x1344@60Hz",
598
	.x = 1792,
599
	.y = 1344,
600
 
601
	.ht = 2448,
602
	.shb = 1792,
603
	.ehb = 1792+656,
604
	.shs = 1920,
605
	.ehs = 1920+200,
606
 
607
	.vt = 1394,
608
	.vrs = 1345,
609
	.vre = 1345+3,
610
	.vbs = 1344,
611
	.vbe = 1344+50,
612
 
613
	.frequency = 204750000,
614
 
615
	.hsync = '-',
616
	.vsync = '+',
617
	.interlace = '\0',
618
};
619
 
620
static Mode vesa1792x1344x75 = {
621
	.name = "1792x1344@75Hz",
622
	.x = 1792,
623
	.y = 1344,
624
 
625
	.ht = 2456,
626
	.shb = 1792,
627
	.ehb = 1792+664,
628
	.shs = 1888,
629
	.ehs = 1888+216,
630
 
631
	.vt = 1417,
632
	.vrs = 1345,
633
	.vre = 1345+3,
634
	.vbs = 1344,
635
	.vbe = 1344+73,
636
 
637
	.frequency = 261000000,
638
 
639
	.hsync = '-',
640
	.vsync = '+',
641
	.interlace = '\0',
642
};
643
 
644
static Mode vesa1856x1392x60 = {
645
	.name = "1856x1392@60Hz",
646
	.x = 1856,
647
	.y = 1392,
648
 
649
	.ht = 2528,
650
	.shb = 1856,
651
	.ehb = 1856+672,
652
	.shs = 1952,
653
	.ehs = 1952+224,
654
 
655
	.vt = 1439,
656
	.vrs = 1393,
657
	.vre = 1393+3,
658
	.vbs = 1392,
659
	.vbe = 1392+47,
660
 
661
	.frequency = 218250000,
662
 
663
	.hsync = '-',
664
	.vsync = '+',
665
	.interlace = '\0',
666
};
667
 
668
static Mode vesa1856x1392x75 = {
669
	.name = "1856x1392@75Hz",
670
	.x = 1856,
671
	.y = 1392,
672
 
673
	.ht = 2560,
674
	.shb = 1856,
675
	.ehb = 1856+704,
676
	.shs = 1984,
677
	.ehs = 1984+224,
678
 
679
	.vt = 1500,
680
	.vrs = 1393,
681
	.vre = 1393+3,
682
	.vbs = 1392,
683
	.vbe = 1392+108,
684
 
685
	.frequency = 288000000,
686
 
687
	.hsync = '-',
688
	.vsync = '+',
689
	.interlace = '\0',
690
};
691
 
692
static Mode vesa1920x1440x60 = {
693
	.name = "1920x1440@60Hz",
694
	.x = 1920,
695
	.y = 1440,
696
 
697
	.ht = 2600,
698
	.shb = 1920,
699
	.ehb = 1920+680,
700
	.shs = 2048,
701
	.ehs = 2048+208,
702
 
703
	.vt = 1500,
704
	.vrs = 1441,
705
	.vre = 1441+3,
706
	.vbs = 1440,
707
	.vbe = 1440+60,
708
 
709
	.frequency = 234000000,
710
 
711
	.hsync = '-',
712
	.vsync = '+',
713
	.interlace = '\0',
714
};
715
 
716
static Mode vesa1920x1440x75 = {
717
	.name = "1920x1440@75Hz",
718
	.x = 1920,
719
	.y = 1440,
720
 
721
	.ht = 2640,
722
	.shb = 1920,
723
	.ehb = 1920+720,
724
	.shs = 2064,
725
	.ehs = 2064+224,
726
 
727
	.vt = 1500,
728
	.vrs = 1441,
729
	.vre = 1441+3,
730
	.vbs = 1440,
731
	.vbe = 1440+60,
732
 
733
	.frequency = 297000000,
734
 
735
	.hsync = '-',
736
	.vsync = '+',
737
	.interlace = '\0',
738
};
739
 
740
Mode *vesamodes[] = {
741
	&vesa640x480x60,
742
	&vesa640x480x72,
743
	&vesa640x480x75,
744
	&vesa640x480x85,
745
	&vesa800x600x56,
746
	&vesa800x600x60,
747
	&vesa800x600x72,
748
	&vesa800x600x75,
749
	&vesa800x600x85,
750
	&vesa1024x768x60,
751
	&vesa1024x768x70,
752
	&vesa1024x768x75,
753
	&vesa1024x768x85,
754
	&vesa1152x864x75,
755
	&vesa1280x960x60,
756
	&vesa1280x960x85,
757
	&vesa1280x1024x60,
758
	&vesa1280x1024x75,
759
	&vesa1280x1024x85,
760
	&vesa1600x1200x60,
761
	&vesa1600x1200x65,
762
	&vesa1600x1200x70,
763
	&vesa1600x1200x75,
764
	&vesa1600x1200x85,
765
	&vesa1792x1344x60,
766
	&vesa1792x1344x75,
767
	&vesa1856x1392x60,
768
	&vesa1856x1392x75,
769
	&vesa1920x1440x60,
770
	&vesa1920x1440x75,
771
 
772
};