Jump to content

VESA BIOS Extensions: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎Warning: Removed whole section. "my card"? "works for me"? who the hell writes in first person in an encylopedia?
Line 253: Line 253:
|}
|}
<small>1: [[32-bit]] is really (8:8:8:8), but the final 8-bit number is an "empty" alpha channel. It is otherwise equal to 24-bit color.</small>
<small>1: [[32-bit]] is really (8:8:8:8), but the final 8-bit number is an "empty" alpha channel. It is otherwise equal to 24-bit color.</small>

=== Warning ===
{{Original research|section}}
{{NPOV-section}}
The mode numbers for wide-screen are not part of the VBE standard and every card manufacturer seems to use the code they like. (to be confirmed). The 867 code above does not work on my nvidia card for my 1440x900 LCD screen. I suggest using '''vbetest''' command to find the correct mode number and add 512 to it. In my example, i picked up 357 + 512 which gives 869 and this one works for me.


=== Notes ===
=== Notes ===

Revision as of 14:19, 15 October 2008

VESA BIOS Extensions (VBE) comprise 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 adapter's BIOS, which installs interrupt vectors pointing at itself during system startup. Unfortunately, the older versions of VBE (those bundled with older video cards) supported only a real mode interface, which could not be used without a significant performance penalty from within protected mode operating systems, such as Windows 95 or Linux. This meant that the VBE standard was almost never used for writing video-drivers, and each video board vendor had to invent a proprietary protocol for communicating with their own boards. Despite this, many existing drivers for these video cards still thunk out to the real mode interrupt to initialize screen modes and gain direct access to a card's linear frame buffer, tasks which would otherwise require many hundreds of port writes which change from card to card. Most newer cards support the more capable VBE 3.0 standard.

Standards

VESA BIOS Extensions (VBE Core) 2.0 [Nov. 1994]

This standard provides the primary functionality of the VESA BIOS Extensions. It allows applications to determine the capabilities of the graphics card and provides the ability to set the display modes that are found. VBE 2.0 adds some new features above the prior VBE 1.2 standard including linear framebuffer access and protected mode banking. Some of the VBE Core 2.0 features include:

  • Linear Framebuffer Access. Enables direct framebuffer access in protected mode as one large area of memory instead of less efficient smaller chunks.
  • Protected Mode Banking. Allows access to the framebuffer from protected mode without “thunking” down to real mode.
  • Super VGA page flipping. Allows higher performance animation to provide for smooth animation for computer games and other high performance graphics programs.
  • Super VGA virtual screens. Allows software to set up virtual display resolutions, larger than the actual displayed resolution, and smoothly scroll or pan around the larger image.
  • High Color and TrueColor Modes. Industry standard 16-bit and 24-bit graphics modes for resolutions from 320x200 right up to 1600x1200.

VESA BIOS Extensions (VBE Core) 3.0 [Sep. 1998]

A superset of the VBE 2.0 standard. This standard adds refresh rate control, support for stereo glasses, improved multi-buffering support and other functions to the VBE 2.0 standard.

  • Triple Buffering. Allows high speed applications to perform multi-buffering with less screen flickering and without having to wait for the graphics controller.
  • Refresh Rate Control using GTF timings. This allows applications and operating system utilities to change the refresh rate in a standard way on all VBE 3.0 graphics controllers. Important for stereo applications, since when stereo is enabled, the user’s effective refresh rate is cut in half.
  • Stereo Page Flipping. When viewing an application using stereo hardware, software needs to page flip twice as often as normal, because it needs to generate separate images for each eye. This new feature allows stereo compatible software to display properly.
  • Hardware Stereo Sync. Allows stereo software to determine if there is a connector for stereo glasses on the user’s graphics card.

VBE/Accelerator Functions (VBE/AF) [Aug. 1996]

VBE/AF provides a low-level, standard interface to common acceleration functions available on most hardware. Some of the functions supported in the standard are access to hardware cursors, Bit Block Transfers (Bit Blt) , off screen sprites, hardware panning, drawing and other functions.

Supplemental specifications

Supplemental specifications provides device independent interface between application software and Super VGA hardware. Function numbers are assigned by VESA Software Standards Committee (SSC).

Power Management Extensions (PM)

see VESA Display Power Management Signaling

DPMS is a hardware standard that allows graphics cards to communicate with DPMS-compliant monitors via a special signaling system that can be used with existing graphics controllers and monitor cables. This signaling system allows the graphics card to tell the monitor to go into a number of different power management or power saving states, which effectively allow the monitor to turn itself off when it is not in use.

Flat Panel Interface Extensions (FP)

Allows access to special features in flat panel controllers.

Audio Interface Extensions (AI)

Provides standard to audio services.
Currently (version 1.00), the VBE/AI specification defines three device classes: WAVE, MIDI, and VOLUME. Devices not supported:

  • CDROM control, which is covered by the Microsoft CDROM Extensions.
  • Effects Processors. This class of device will be expanded in future version of the VBE/AI specification.

OEM Extensions

Provides standard entry to vendor specific extensions.

Display Data Channel (DDC)

The Display Data Channel or DDC is a digital connection between a computer display and a graphics adapter that allows the display to communicate its specifications to the adapter. The standard was created by VESA.

Serial Control Interface (SCI)

Provides hardware independent means for operating system and application to read and write data over I²C serial control interface.

VBE mode numbers

Although mode number is a 16-bit value, the optional VBE mode numbers are 14 bits wide. Bit 7 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-12 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 require support of existing 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

Graphics modes 320x200 640x400 640x480 800x600 1024x768 1280x1024
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)
Text modes Columns
Rows 80 132
25 109h
43 10Ah
50 10Bh
60 108h 10Ch

Other commonly available modes

Starting from VBE 2.0 standard, there will be no new mode added. And old modes are no longer mandatory. The modes below other than the one in the previous table are commonly used, but may not work on all graphic card as no standard define them at all.

320x200 640x400 640x480 800x500 800x600 896x672 1024x640 1024x768 1152x720 1280x1024 1440x900 1600x1200
16 color palette [1] [1] 258 (0102h) 260 (0104h) 262 (0106h)
256 color palette [1] 256 (0100h) 257 (0101h) 367 (016Fh) 259 (0103h) 303 (012Fh) 362 (016Ah) 261 (0105h) 357 (0165h) 263 (0107h) 352 (0160h) 284 (011Ch)
15-bit (5:5:5) 269 (010Dh) 289 (0121h) 272 (0110h) 368 (0170h) 275 (0113h) 304 (0130h) 363 (016Bh) 278 (0116h) 358 (0166h) 281 (0119h) 353 (0161h) 285 (011Dh)
16-bit (5:6:5) 270 (010Eh) 290 (0122h) 273 (0111h) 369 (0171h) 276 (0114h) 305 (0131h) 364 (016Ch) 279 (0117h) 359 (0167h) 282 (011Ah) 354 (0162h) 286 (011Eh)
24-bit (8:8:8) 271 (010Fh) 291 (0123h) 274 (0112h) 370 (0172h) 277 (0115h) 306 (0142h) 365 (016Dh) 280 (0118h) 360 (0168h) 283 (011Bh) 355 (0163h) 287 (011Fh)
32-bit (8:8:8) 292 (0124h) 297 (0129h) 371 (0173h) 302 (012Eh) 307 (0133h) 366 (016Eh) 312 (0138h) 361 (0169h) 317 (013Dh) 356 (0164h) 322 (0142h)
  1. ^ a b c modes available via the traditional 10h BIOS call

352 (0160h) also appears to select 1280x800 (8-bit) for various laptops' displays. vga=834 (0342h) is 1400x1050

Modes 264-268 are text modes. 264 (0108h) is 80 columns x 60 rows (80x60), 265 (0109h) is 132x25, 266 (010Ah) is 132x43, 267 (010Bh) is 132x50 and 268 (010Ch) is 132x60.

Linux video mode numbers

The Linux kernel allows user configuration of VESA modes at boot time using the 'vga' kernel parameter. This parameter does not directly accept VESA video mode numbers; instead, a Linux video mode number must be calculated using the VESA number.

To calculate the Linux video mode number add 512. The resulting decimal value can be passed to the kernel in the form 'vga=XXX', where XXX is the value.

320×200 640×400 640×480 800×500 800×600 896×672 1024×640 1024×768 1152×720 1280×1024 1440×900 1600×1200
16 color palette 770 772 774
256 color palette 768 769 879 771 815 874 773 869 775 864 796
15-bit (5:5:5) 781 801 784 880 787 816 875 790 870 793 865 797
16-bit (5:6:5) 782 802 785 881 788 817 876 791 871 794 866 798
24-bit (8:8:8) 783 803 786 882 789 818 877 792 872 795 867 799
32-bit (8:8:8)1 804 809 883 814 819 878 824 873 829 868 834

1: 32-bit is really (8:8:8:8), but the final 8-bit number is an "empty" alpha channel. It is otherwise equal to 24-bit color.


Notes

352 (0160h) also appears to select 1280x800 (8-bit) for various laptops' displays. vga=834 (0342h) is 1400x1050

Modes 264-268 are text modes. 264 (0108h) is 80 columns x 60 rows (80x60), 265 (0109h) is 132x25, 266 (010Ah) is 132x43, 267 (010Bh) is 132x50 and 268 (010Ch) is 132x60.

Modes available in Parallels

The VESA BIOS emulation in the Parallels emulator has a different set of non-standard VESA modes. As of build 3214, vbetest reveals these modes:

640×400 640×480 720×480 800×500 800×600 896×672 1024×640 1024×768 1152×720 1280×1024 1440×900 1600×1200
256 color palette 256 (0100h) 257 (0101h) 367 (016Fh) 364 (016Ch) 259 (0103h) 297 (0129h) 358 (0166h) 261 (0105h) 355 (0163h) 263 (0107h) 352 (0160h) 284 (011Ch)
15-bit (5:5:5) 272 (0110h) 275 (0113h) 278 (0116h) 281 (0119h) 285 (011Dh)
16-bit (5:6:5) 289 (0121h) 273 (0111h) 368 (0170h) 365 (016Dh) 276 (0114h) 298 (012Ah) 359 (0167h) 279 (0117h) 356 (0164h) 282 (011Ah) 353 (0161h) 286 (011Eh)
24-bit (8:8:8) 290 (0122h) 274 (0112h) 369 (0171h) 366 (016Eh) 277 (0115h) 299 (012Bh) 360 (0168h) 280 (0118h) 357 (0165h) 283 (011Bh) 354 (0162h) 287 (011Fh)

References

External links