VESA BIOS Extensions
2019独角兽企业重金招聘Python工程师标准>>>
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)
转载于:https://my.oschina.net/dubenju/blog/807538
VESA BIOS Extensions相关推荐
- Framebuffer原理、使用、测试系列文章
FROM: http://bbs.chinaunix.net/viewthread.php?tid=1932291&extra=page%3D1%26amp%3Bfilter%3Dtype%2 ...
- Framebuffer的配置及应用——先转载留着,以后一定要弄懂
http://blog.csdn.net/tju355/article/details/6881389 借助于framebuffer,我们能够在console下面作很多事情.首先下载framebuff ...
- Linux开机启动过程(3):显示模式初始化和进入保护模式
内核启动过程,第三部分 本文是在原文基础上经过本人的修改. 显示模式初始化和进入保护模式 这一章是内核启动过程的第三部分,在前一章中,我们的内核启动过程之旅停在了对 set_video 函数的调用(这 ...
- 云主机装黑果实践(5):重得到镜像和继续强化前置启动过程
本文关键字:,hackintosh Cirrus Logic GD5446,OS X,GD5446 kext,黑苹果 vga兼容 花屏,黑苹果 虚拟机 显卡驱动 现在是4.4全国哀悼日,没有从天而降的 ...
- GRUB2命令和环境变量列表
摘取自GRUB2中文手册 环境变量 biosnum 当链式加载时,GRUB 需要知道根设备的 BIOS 驱动器号.如果 BISONUM 变量正确设置,GRUB 就 不需要猜测驱动器号了.它会改变 BI ...
- Framebuffer的配置及应用
* 一.FrameBuffer的原理* FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口. Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS ...
- x window配置
一.xorg.conf配置文件 生成xorg.conf文件 关闭x window:init 3 生成配置文件:X -configure 然后就可以生成xorg.conf. 1. 编译内核时选中内核驱动 ...
- 标准的VESA文档介绍
标准的VESA文档介绍 来源:中国自学编程网 发布日期:2007-05-12 概述: 该标准提供一系列应用程序能够使用的函数集. 1.获取某一指定超级VGA设备 ...
- VESA 编程介绍(四)
=========================================================================================== VESA 编程介 ...
最新文章
- R语言libPaths函数获取或者设置包安装的路径实战
- 路由与交换 基础 1:组播
- [SOJ1039]Phone Home(深搜,染色问题)
- DataGridView插入一行数据和用DataTable绑定数据2种方式
- 使用计算机比喻的心理学研究取向,心理学入门:6个方面的研究取向
- 招不到电子工程师,这锅谁来背?
- win7超极本盘符不见找回文件的方法
- byte与或运算 java_java中byte转换int时为何与0xff进行与运算
- 浅析GitLab Flow的十一个规则
- 用Visual C#调用Windows API函数
- Java Swing 如何让界面更加美观
- Springer Nature LaTex Template常见问题
- 360极速浏览器的兼容模式
- python中读取和查看图片的6种方法
- 用 .pth 文件附加 Python 模块搜索路径
- JAVA学习【IDEA转中文】
- Android手绘涂鸦PaintView
- 为什要使用BindService?为了调用服务中的方法
- Camera,音频录制与Vitamio框架
- 掌握PS制作,实时预览你的精彩作品