Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
VESA BIOS Extensions
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== 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: {| class="wikitable" |- ! 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 [[Hexadecimal|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.{{Citation needed|date=February 2011}} {| class="wikitable" style="text-align: center;" |- ! 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. {| class="wikitable" style="text-align: center;" |- ! Text modes ! colspan="2" | Columns |- ! Rows ! 80 !! 132 |- ! 25 | || 265 (0109h) |- ! 43 | || 266 (010Ah) |- ! 50 | || 267 (010Bh) |- ! 60 | 264 (0108h) || 268 (010Ch) |} ===Other commonly available graphics modes=== The table below combines the modes defined by VESA (the values denoted in black) along with modes commonly used, but which may not work on all graphics cards as they are not defined by any standard ({{color|red|denoted in red}}). {| class="wikitable" style="text-align: center;" |- ! Graphics modes ! 320Γ200 !! 640Γ400 !! 640Γ480 !! {{color|red|800Γ500}} !! 800Γ600 !! {{color|red|896Γ672}} !! {{color|red|1024Γ640}} !! 1024Γ768 !! {{color|red|{{val|1152}}Γ720}} !! {{val|1280}}Γ{{val|1024}} !! {{color|red|{{val|1360}}Γ768}} !! {{color|red|{{val|1440}}Γ900}} !! {{color|red|{{val|1600}}Γ{{val|1200}}}} |- ! 16-color palette | <ref name="tradvga">Modes available via the traditional 10h BIOS call</ref> | || <ref name="tradvga" /> | || 258 (0102h),<br> 106 (6Ah)|| || || 260 (0104h) || || 262 (0106h) || || |- ! 256-color palette | <ref name="tradvga" /> | 256 (0100h) || 257 (0101h) || {{color|red|367 (016Fh)}} || 259 (0103h) || {{color|red|303 (012Fh)}} || {{color|red|362 (016Ah)}} || 261 (0105h) || {{color|red|357 (0165h)}} || 263 (0107h) || || {{color|red|352 (0160h)}} <ref name="1280x800laptops">{{color|red|352 (0160h)}} also appears to select {{val|1280}}Γ800 (8-bit) for various laptops' displays</ref> || {{color|red|284 (011Ch)}} |- ! 15-bit (5:5:5) | 269 (010Dh) || {{color|red|289 (0121h)}} || 272 (0110h) || {{color|red|368 (0170h)}} || 275 (0113h) ||{{color|red| 304 (0130h)}} || {{color|red|363 (016Bh)}} || 278 (0116h) || {{color|red|358 (0166h)}} || 281 (0119h) || ||{{color|red| 353 (0161h)}} || {{color|red|285 (011Dh)}} |- ! 16-bit (5:6:5) | 270 (010Eh) || {{color|red|290 (0122h)}} || 273 (0111h) || {{color|red|369 (0171h)}} || 276 (0114h) || {{color|red|305 (0131h)}} || {{color|red|364 (016Ch)}} || 279 (0117h) || {{color|red|359 (0167h)}} || 282 (011Ah) || {{color|red| 978 (03d2h)}} || {{color|red|354 (0162h)}} || {{color|red|286 (011Eh)}} |- ! 24-bit (8:8:8) | 271 (010Fh) || {{color|red|291 (0123h)}} || 274 (0112h) || {{color|red|370 (0172h)}} || 277 (0115h) || {{color|red| 306 (0132h)}} || {{color|red|365 (016Dh)}} || 280 (0118h) || {{color|red|360 (0168h)}} || 283 (011Bh) |||| {{color|red|355 (0163h)}} || {{color|red|287 (011Fh)}} |- ! {{color|red|32-bit (8:8:8)}} <ref name="32bit">[[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. Many GPUs use 32-bit color mode instead of 24-bit mode merely for faster video memory access through 32-bit [[memory alignment]].</ref> | || {{color|red|292 (0124h)}} || {{color|red|297 (0129h)}} || {{color|red|371 (0173h)}} || {{color|red|302 (012Eh)}} || {{color|red|307 (0133h)}} || {{color|red|366 (016Eh)}} || {{color|red|312 (0138h)}} || {{color|red|361 (0169h)}} || {{color|red|317 (013Dh)}} || {{color|red| 980 (03d4h)}} || {{color|red|356 (0164h)}} ||{{color|red|322 (0142h)}} <ref name="1400x1050">{{color|red|322 (0142h)}} is 1,400Γ1,050</ref> |} === Mode detection === A few tools have been written to detect VBE modes available on a system. They generally work by invoking ''Function 01h'', which is more reliable than assuming a table of extended modes as it's part of the device's self-documentation. * hwinfo is the hardware detection tool used in SuSE Linux and in some other [[Linux distribution]]s.<ref>[https://github.com/openSUSE/hwinfo hwinfo source code on GitHub]</ref> Running <code>hwinfo --framebuffer</code> reports graphics information, including VESA modes on a "Mode" line. * mdt is a Linux or [[DOS]] tool that uses VESA BIOS functions to read monitor data.<ref>{{cite web |title=mdt |url=https://github.com/wfeldt/mdt |website=GitHub}}</ref> * The Linux Real Mode Interface (LRMI) has a {{code|vbetest}} program that prints out VESA info. * [[SciTech Software]] had a unrelated {{code|vbetest}} for DOS that dates back to 1994. * The x86 "PC" version [[GNU GRUB]] 2 has a {{code|vbeinfo}} command for printing out available video modes and {{code|vbetest}} for trying a specific mode. They use a built-in table instead of ''Function 01h''. For other platforms, including x86 EFI, they are replaced by the more generic {{code|videoinfo}} and {{code|videotest}}. === Linux video mode numbers === The [[Linux|Linux kernel]] allows the user to select the VESA mode at boot time by passing a code in memory to the kernel. The LILO boot loader passes this code based on a "vga" parameter in its configuration file. It takes the form 'vga=XXX', where XXX is the decimal value, or 'vga=0xHHH', where HHH is the hexadecimal value. However, the 'vga=' boot loader parameter does not directly accept VESA video mode numbers; rather, the Linux video mode number is the VESA number plus 512 (in the case of the decimal representation) or plus 0x200 (in the case of the hexadecimal representation). For example, the defined VESA value of 257 (0x101), representing 640x480 and 256 colours, has an equivalent Linux video mode value of 769 (0x301).<ref>See the kernel documentation in [https://www.kernel.org/doc/Documentation/svga.txt Documentation/svga.txt] and [https://www.kernel.org/doc/Documentation/fb/vesafb.txt Documentation/fb/vesafb.txt].</ref> As indicated earlier, the VESA standard defines a limited set of modes; in particular, none above {{val|1280}}Γ{{val|1024}} are covered and, instead, their implementation is completely optional for graphics adapter manufacturers. As vendors are free to utilize whatever additional values they please, this means that, in the table below, the modes {{color|red|denoted in red}} (and expressed in decimal form) '''may not apply to every graphics adapter'''! {| class="wikitable" style="text-align: center;" ! ! 320Γ200 ! 640Γ400 ! 640Γ480 ! 800Γ500 ! 800Γ600 ! 896Γ672 ! {{val|1024}}Γ640 ! {{val|1024}}Γ768 ! {{val|1152}}Γ720 ! {{val|1280}}Γ1,024 ! {{val|1400}}Γ1,050 ! {{val|1440}}Γ900 ! {{val|1600}}Γ1,200 ! {{val|1920}}Γ{{val|1080}} ! {{val|1920}}Γ{{val|1200}} |- !16 colors | | | | | 770 0302h | | | 772 0304h | | 774 0306h | | | | | |- ! 256 colors | | 768 0300h | 769 0301h | 879 036Fh | 771 0303h | 815 032Fh | 874 036Ah | 773 0305h | {{color|red|869}} | 775 0307h | {{color|red|835}} | {{color|red|864}} | {{color|red|796}} | | {{color|red|893}} |- ! 15-bit (5:5:5) | 781 030Dh | 801 0321h | 784 0310h | 880 0370h | 787 0313h | 816 0330h | 875 036Bh | 790 0316h | {{color|red|870}} | 793 0319h | | {{color|red|865}} | {{color|red|797}} | | |- ! 16-bit (5:6:5) | 782 030Eh | 802 0322h | 785 0311h | 881 0371h | 788 0314h | 817 0331h | 876 036Ch | 791 0317h | {{color|red|871}} | 794 031Ah | {{color|red|837}} | {{color|red|866}} | {{color|red|798}} | | |- ! 24-bit (8:8:8) | 783 030Fh | 803 0323h | 786 0312h | 882 0372h | 789 0315h | 818 0332h | 877 036Dh | 792 0318h | {{color|red|872}} | 795 031Bh | {{color|red|838}} | {{color|red|867}} | {{color|red|799}} | | |- ! 32-bit (8:8:8)<sup>1</sup> | | {{color|red|804}} | {{color|red|809}} | {{color|red|883}} | {{color|red|814}} | {{color|red|819}} | {{color|red|878}} | {{color|red|824}} | {{color|red|873}} | {{color|red|829}} | | {{color|red|868}} | {{color|red|834}} | {{color|red|980<br>03D4h}} |} <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 colour. Many GPUs use 32-bit colour mode instead of 24-bit mode merely for faster video memory access through 32-bit memory alignment.</small> VGA={{color|red|864 [ 352 (0160h)]}} also appears to select {{val|1280}}Γ800 (8-bit) for various laptops' displays. <br> VGA={{color|red|834 [ 322 (0142h)]}} is {{val|1400}}Γ{{val|1050}} ===Modes available in Parallels=== The VESA BIOS emulation in the [[Parallels Desktop for Mac|Parallels]] virtual machine has a different set of non-standard VESA modes. As of build 3214, LRMI vbetest reveals these modes: {| class="wikitable" style="text-align: center;" ! ! 640Γ400 ! 640Γ480 ! 720Γ480 ! 800Γ500 ! 800Γ600 ! 896Γ672 ! {{val|1024}}Γ640 ! {{val|1024}}Γ768 ! {{val|1152}}Γ720 ! {{val|1280}}Γ1,024 ! {{val|1440}}Γ900 ! {{val|1600}}Γ1,200 |- ! 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) |} === Modes available in VirtualBox === The VESA BIOS emulation in the [https://www.virtualbox.org/ VirtualBox] virtual machine has a different set of non-standard VESA modes. As of 6.1.38_Ubuntu build r153438, the VESA BIOS function '''AX=0x4F01''' reveals these modes (See also [https://www.virtualbox.org/browser/vbox/trunk/src/VBox/Devices/Graphics/BIOS/vbetables-gen.c VBETables-gen.c]): {| class="wikitable" style="text-align: center;" ! !320x200 ! 640Γ400 ! 640Γ480 ! 800Γ600 ! {{val|1024}}Γ768 ! {{val|1152}}Γ864 ! {{val|1280}}Γ1024 ! {{val|1600}}Γ1200 |- !4-bit palette | | | | |260 (0104h) | |262 (0106h) | |- ! 256 color palette |326 (0146h) | 256 (0100h) | 257 (0101h) | 259 (0103h) | 261 (0105h) | 328 (0148h) | 263 (0107h) | |- ! 15-bit (5:5:5) |269 (010dh) | | 272 (0110h) | 275 (0113h) | 278 (0116h) |329 (0149h) | 281 (0119h) | |- ! 16-bit (5:6:5) |270 (010eh) | | 273 (0111h) | 276 (0114h) | 279 (0117h) | 330 (014ah) | 282 (011Ah) | |- ! 24-bit (8:8:8) |271 (010fh) | | 274 (0112h) | 277 (0115h) | 280 (0118h) | 331 (014bh) | 283 (011Bh) | |- !32-bit (x:8:8:8) |320 (0140h) |321 (0141h) |322 (0142h) |323 (0143h) |324 (0144h) |332 (014ch) |325 (0145h) |327 (0147h) |}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)