您当前的位置:首页 > 计算机 > 精彩资源

VESA BIOS Extensions

时间:07-21来源:作者:点击数:

VESA BIOS Extensions (VBE) is a VESA standard, currently at version 3, that defines the interface that can be used by software to access compliant video boards at high resolutions and bit depths.

This is opposed to the "traditional" int 10h BIOS calls, which are limited to resolutions of 640×480 pixels with 16 color (4-bit) depth or less.

VBE is made available through the video card's BIOS, which installs during boot up some interrupt vectors that point to itself.

Most newer cards implement the more capable VBE 3.0 standard. Older versions of VBE provide only a real mode interface, which cannot be used without a significant performance penalty from within protected mode operating systems.

Consequently, the VBE standard has almost never been used for writing a video card's drivers; each vendor has thus had to invent a proprietary protocol for communicating with its own video card.

Despite this, it is common that a driver thunk out to the real mode interrupt in order to initialize screen modes and gain direct access to a card's linear frame buffer, because these tasks would otherwise require handling many hundreds of proprietary variations that exist from card to card.

VBE mode numbers

Although mode number is a 16-bit value, the optional VBE mode numbers are 14 bits wide. Bit 15 is used by VGA BIOS as a flag to clear or preserve display memory. VBE defined mode numbers as follows:

Bit Meaning
0–8 Mode numbers. If bit 8 is 1, it is a VESA defined VBE mode.
9-10 Reserved for expansion. Must be set to 0.
11 Refresh rate control Select. If set to 1, use user specified CRTC values for refresh rate, otherwise use BIOS default refresh rate.
12–13 Reserved for VBE/AF. Must be set to 0.
14 Linear/Flat Frame Buffer Select. If set to 1, use linear frame buffer, otherwise use banked frame buffer.
15 Preserve Display Memory Select. If set to 1, preserve display memory, otherwise clear display memory.

Starting in VBE/Core 2.0, VESA no longer defines new VESA mode numbers and no longer requires a device to implement the old numbers. To properly detect information of a screen mode, use Function 01h - Return VBE Mode Information.

Mode 81FFh is a special video mode designed to preserve current memory contents and give access to the entire video memory.

Modes defined by VESA

Beginning with the VBE 2.0 standard, no new modes will be defined by VESA, and old modes are no longer mandatory. The use of defined modes should be considered deprecated: modern video cards may or may not use these mode numbers (even though most do for backward compatibility), and modern software should not use them. The correct way for software to discover available display modes is to obtain a list of modes (using "Function 00h - Return VBE Controller Information") and then to check each mode (using "Function 01h: Return VBE Mode Information") until it finds the mode/s it requires.

Graphics modes 320×200 640×400 640×480 800×600 1024×768 1280×1024
16-color palette       258 (0102h), 106 (6Ah) 260 (0104h) 262 (0106h)
256-color palette   256 (0100h) 257 (0101h) 259 (0103h) 261 (0105h) 263 (0107h)
15-bit (5:5:5) 269 (010Dh)   272 (0110h) 275 (0113h) 278 (0116h) 281 (0119h)
16-bit (5:6:5) 270 (010Eh)   273 (0111h) 276 (0114h) 279 (0117h) 282 (011Ah)
24-bit (8:8:8) 271 (010Fh)   274 (0112h) 277 (0115h) 280 (0118h) 283 (011Bh)

Modes 264–268 are text modes. 264 (0108h) is 80 columns × 60 rows (80×60), 265 (0109h) is 132×25, 266 (010Ah) is 132×43, 267 (010Bh) is 132×50 and 268 (010Ch) is 132×60.

Text modes Columns
Rows 80 132
25   265 (0109h)
43   266 (010Ah)
50   267 (010Bh)
60 264 (0108h) 268 (010Ch)

ORG 0x7F00

JMP VBE_START

NOP

vbei_signature DD 00H

vbei_version DW 00H

vbei_oem DD 00H

vbei_capabilities DD 00H

vbei_video_modes DD 00H

vbei_video_memory DW 00H

vbei_software_rev DW 00H

vbei_vendor DD 00H

vbei_product_name DD 00H

vbei_product_rev DD 00H

vbei_reserved TIMES 222 DB 00H

vbei_oem_data TIMES 256 DB 00H

VBE_START:

XOR AX, AX

MOV ES, AX

MOV DI, 7F04H

MOV AX, 4F00H ; Get VESA mode information

INT 10H

CMP AX, 004FH

MOV AX, 4F01H ; Get VESA mode information

MOV CX, 0111H

MOV DI, 0500H

INT 10H

CMP AX, 004FH

MOV AX, 4F03H ; Get current VBE mode

INT 10H

CMP AX, 004FH

MOV AX, 4F02H ; Set VBE mode

MOV BX, 0111H + 4000H

INT 10H

CMP AX, 004FH

(End)

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门