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相关推荐

  1. Framebuffer原理、使用、测试系列文章

    FROM: http://bbs.chinaunix.net/viewthread.php?tid=1932291&extra=page%3D1%26amp%3Bfilter%3Dtype%2 ...

  2. Framebuffer的配置及应用——先转载留着,以后一定要弄懂

    http://blog.csdn.net/tju355/article/details/6881389 借助于framebuffer,我们能够在console下面作很多事情.首先下载framebuff ...

  3. Linux开机启动过程(3):显示模式初始化和进入保护模式

    内核启动过程,第三部分 本文是在原文基础上经过本人的修改. 显示模式初始化和进入保护模式 这一章是内核启动过程的第三部分,在前一章中,我们的内核启动过程之旅停在了对 set_video 函数的调用(这 ...

  4. 云主机装黑果实践(5):重得到镜像和继续强化前置启动过程

    本文关键字:,hackintosh Cirrus Logic GD5446,OS X,GD5446 kext,黑苹果 vga兼容 花屏,黑苹果 虚拟机 显卡驱动 现在是4.4全国哀悼日,没有从天而降的 ...

  5. GRUB2命令和环境变量列表

    摘取自GRUB2中文手册 环境变量 biosnum 当链式加载时,GRUB 需要知道根设备的 BIOS 驱动器号.如果 BISONUM 变量正确设置,GRUB 就 不需要猜测驱动器号了.它会改变 BI ...

  6. Framebuffer的配置及应用

    * 一.FrameBuffer的原理*  FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口.  Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS ...

  7. x window配置

    一.xorg.conf配置文件 生成xorg.conf文件 关闭x window:init 3 生成配置文件:X -configure 然后就可以生成xorg.conf. 1. 编译内核时选中内核驱动 ...

  8. 标准的VESA文档介绍

    标准的VESA文档介绍    来源:中国自学编程网   发布日期:2007-05-12      概述:      该标准提供一系列应用程序能够使用的函数集.      1.获取某一指定超级VGA设备 ...

  9. VESA 编程介绍(四)

    =========================================================================================== VESA 编程介 ...

最新文章

  1. R语言libPaths函数获取或者设置包安装的路径实战
  2. 路由与交换 基础 1:组播
  3. [SOJ1039]Phone Home(深搜,染色问题)
  4. DataGridView插入一行数据和用DataTable绑定数据2种方式
  5. 使用计算机比喻的心理学研究取向,心理学入门:6个方面的研究取向
  6. 招不到电子工程师,这锅谁来背?
  7. win7超极本盘符不见找回文件的方法
  8. byte与或运算 java_java中byte转换int时为何与0xff进行与运算
  9. 浅析GitLab Flow的十一个规则
  10. 用Visual C#调用Windows API函数
  11. Java Swing 如何让界面更加美观
  12. Springer Nature LaTex Template常见问题
  13. 360极速浏览器的兼容模式
  14. python中读取和查看图片的6种方法
  15. 用 .pth 文件附加 Python 模块搜索路径
  16. JAVA学习【IDEA转中文】
  17. Android手绘涂鸦PaintView
  18. 为什要使用BindService?为了调用服务中的方法
  19. Camera,音频录制与Vitamio框架
  20. 掌握PS制作,实时预览你的精彩作品

热门文章

  1. 自然语言处理(NLP)相关资料汇总
  2. 心动著境即是魔,随缘分别则无定
  3. 使用邮件发送自定义报表
  4. Java 中的Monitor是什么意思?
  5. 【MQL】简单语句记录
  6. chrome视频独立播放扩展Chrome China
  7. 在Java中 用 switch 表示 区间
  8. PyQt5入门(一)
  9. pycharm中import caffe/caffe2
  10. 永冻土层matlab图片,最新科学研究发现:降雨量增加正在加速解冻北极永久冻土...