如何在VBE中获得宽屏分辨率

时间:2014-05-15 07:27:00

标签: assembly driver bios vbe widescreen

我正在编写图形采用者驱动程序。我知道VBE提供的分辨率如1024×768或800×600等。我的问题是如何在VESA BIOS中获得1366×768等宽屏分辨率?应该使用哪种BIOS功能?请给我136​​6x786(或其他)的模式功能号,例如0117h是1024x768 16bit颜色。我正在使用x86程序集和VBE3。

2 个答案:

答案 0 :(得分:0)

如果您使用的是VBE,则应熟悉模式列表函数4F004F01。如果您的BIOS提供了这些,请使用这些来查找适当的自定义模式。否则,您可以尝试传递更高分辨率模式,传递限制垂直大小的覆盖CRTC参数。但不能保证这会奏效。

答案 1 :(得分:0)

所有信息均来自 vesa.org vbe3.pdf :"注意:从VBE 2.0版开始,VESA将不再定义新的VESA模式编号,不再必须支持这些旧模式编号。"

但是一些较新的PCIe卡,如我的Nvidia GTX 295(来自制造商Colofull)和我的Radeon 7950(Saphire),我也可以使用它们的宽屏视频模式,但模式数量不同,因BIOS而异,不同于Bios和制造商。最后,我想分享上述两张卡的模式表。

第一步是调用funktion 4F00h,以便在512字节的缓冲区中获取VBE-Info。如果通话成功,则在AX中返回4Fh。

下一步是检查地址缓冲区+ 5的VBE BIOS的主版本号,如果值为2或3或1.从VBE 2开始,我们必须从VBE Bios本身获取模式编号

下一步是从地址:buffer + 0Eh获取modetable的指针,使用这个指针我们可以获得modenumbers。每个模式编号为16位,模式表以0FFFFh结束。

下一步是调用函数4F01h以获取模式特定信息,每个模式编号在256字节的单独缓冲区中,以找到我们想要使用的分辨率和每像素位数。

- - - -

从VBE 3开始,可以使用我们自己的CRTC参数表来获得更高的刷新率,并切换到给定的分辨率之一,并且具有我们无法通过这种方式改变的给定宽高比。我和19" CRT-Monitor具有96khz和160hz容量示例,1280x1024,85hz,或1024x768,100hz,800x600,140hz,640x480,160hz刷新率。但我的28" LCD只提供一个1920x1200的原始分辨率和60hz,但宽屏比例为16:10。

------------------------------------- 
VBE Modelist Saphire 7950
------------------------------------- 
mode
number xres yres bpp LFB
0100 640x400x8 C0000000 VGA 4:3
0101 640x480x8 C0000000 VGA 4:3
0103 800x600x8 C0000000 SVGA 4:3
0105 1024x768x8 C0000000 XGA 4:3
0107 1280x1024x8 C0000000 SXGA 5:4
0110 640x480x16 C0000000 VGA 4:3
0111 640x480x16 C0000000 VGA 4:3
0113 800x600x16 C0000000 SVGA 4:3
0114 800x600x16 C0000000 SVGA 4:3
0116 1024x768x16 C0000000 XGA 4:3
0117 1024x768x16 C0000000 XGA 4:3
0119 1280x1024x16 C0000000 SXGA 5:4
011A 1280x1024x16 C0000000 SXGA 5:4
010D 320x200x16 C0000000 CGA 4:3
010E 320x200x16 C0000000 CGA 4:3
0120 320x200x32 C0000000 CGA 4:3
0193 320x240x8 C0000000 QVGA 4:3
0195 320x240x16 C0000000 QVGA 4:3
0196 320x240x32 C0000000 QVGA 4:3
01B3 512x384x8 C0000000 4:3
01B5 512x384x16 C0000000 4:3
01B6 512x384x32 C0000000 4:3
01C3 640x350x8 C0000000 EGA 4:3
01C5 640x350x16 C0000000 EGA 4:3
01C6 640x350x32 C0000000 EGA 4:3
0133 720x400x8 C0000000 WVGA 18:10
0135 720x400x16 C0000000 WVGA 18:10
0136 720x400x32 C0000000 WVGA 18:10
0153 1152x864x8 C0000000 XGA 4:3
0155 1152x864x16 C0000000 XGA 4:3
0156 1152x864x32 C0000000 XGA 4:3
0163 1280x960x8 C0000000 VGA 4:3
0165 1280x960x16 C0000000 VGA 4:3
0166 1280x960x32 C0000000 QVGA VGA 4:3
0121 640x480x32 C0000000 VGA 4:3
0122 800x600x32 C0000000 SVGA 4:3
0123 1024x768x32 C0000000 XGA 4:3
0124 1280x1024x32 C0000000 SXGA 5:4
0143 1400x1050x8 C0000000 SXGA+ 4:3
0145 1400x1050x16 C0000000 SXGA+ 4:3
0146 1400x1050x32 C0000000 SXGA+ 4:3
0173 1600x1200x8 C0000000 UXGA 4:3
0175 1600x1200x16 C0000000 UXGA 4:3
0176 1600x1200x32 C0000000 UXGA 4:3
0183 1792x1344x8 C0000000
0185 1792x1344x16 C0000000
0186 1792x1344x32 C0000000
01D3 1856x1392x8 C0000000
01D5 1856x1392x16 C0000000
01D6 1856x1392x32 C0000000
01E3 1920x1440x8 C0000000 4:3
01E5 1920x1440x16 C0000000 4:3
01E6 1920x1440x32 C0000000 4:3
01D1 1920x1200x8 C0000000 WUXGA 16:10
01D2 1920x1200x16 C0000000 WUXGA 16:10
01D4 1920x1200x32 C0000000 WUXGA 16:10

------------------------------------- 
VBE Modelist Colorfull Geforce GTX295
------------------------------------- 
mode
number xres yres bpp
0100 640x480x8 VGA 4:3
0101 640x480x8 VGA 4:3
0102 800x600x4 SVGA 4:3
0103 800x600x8 SVGA 4:3
0104 1024x768x4 XGA 4:3
0105 1024x768x8 XGA 4:3
0106 1280x1024x4 SXGA 5:4
0107 1280x1024x8 SXGA 5:4
010E 320x200x16 CGA 4:3
010F 320x200x32 CGA 4:3
0111 640x480x16 VGA 4:3
0112 640x480x32 VGA 4:3
0114 800x600x16 SVGA 4:3
0115 800x600x32 SVGA 4:3
0117 1024x768x16 XGA 4:3
0118 1024x768x32 XGA 4:3
011A 1280x1024x16 SXGA 5:4
011B 1280x1024x32 SXGA 5:4
0130 320x200x8 CGA 4:3
0131 320x400x8
0132 320x400x16
0133 320x400x32
0134 320x240x8 QVGA 4:3
0135 320x240x16 QVGA 4:3
0136 320x240x32 QVGA 4:3
013D 640x400x16
013E 640x400x32
0145 1600x1200x8 UXGA 4:3
0146 1600x1200x16 UXGA 4:3
014A 1600x1200x32 UXGA 4:3
0160 1280x800x8 WXGA 16:10
0161 1280x800x32 WXGA 16:10
0162 768x480x8
017B 1280x720x32 
017C 1920x1200x8 WUXGA 16:10
017D 1920x1200x32 WUXGA 16:10