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