throbber
VESA®Video Electronics Standards Association920 Hillview CourtPhone: (408) 957-9270Milpitas, CA 95035FAX: (408) 957-9277VESA BIOS EXTENSION (VBE)Core FunctionsStandardVersion: 3.0Date: September 16, 1998PurposeTo standardize a modular, software interface to display and audio devices. The VBE interface isintended to simplify and encourage the development of applications that wish to use graphics,video, and audio devices without specific knowledge of the internal operation of the evolvingtarget hardware.SummaryThe VBE standard defines a set of extensions to the VGA ROM BIOS services. These functionscan be accessed under DOS through interrupt 10h, or be called directly by high performance 32-bit applications and operating systems other than DOS.These extensions also provide a hardware-independent mechanism to obtain vendor information,and serve as an extensible foundation for OEMs and VESA to facilitate rapid software support ofemerging hardware technology without sacrificing backwards compatibility.
`
`1
`
`

`

`Page ii
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`2
`
`This page is intentionally blank.
`

`

`Intellectual PropertyCopyright © 1993-1998 - Video Electronics Standards Association. All rights reserved.While every precaution has been taken in the preparation of this standard, the Video ElectronicsStandards Association and its contributors assume no responsibility for errors or omissions, andmake no warranties, expressed or implied, of functionality or suitability for any purpose.The sample code contained within this standard may be used without restriction.
`
`Trademarks
`
`VESA, VBE, VESA DDC, VBE/AI, VBE/PM, and VBE/DDC are trademarks of VideoElectronics Standards Association.
`
`•
`
`•
`•
`•
`•
`
`Patents
`
`VESA proposal and standards documents are adopted by the Video Electronics StandardsAssociation without regard to whether their adoption may involve patents on articles, materials,or processes. Such adoption does not assume any liability to any patent owner, nor does itassume any obligation whatever to parties adopting the proposal or standards document.Support for this SpecificationClarifications and application notes to support this standard will be published as the need arises.To obtain the latest standard and support documentation, contact VESA.If you have a product which incorporates VBE, you should ask the company that manufacturedyour product for assistance. If you are a display or controller manufacturer, VESA can assist youwith any clarification you may require. All comments or reported errors should be submitted inwriting to VESA, to the attention of Technical Support, using one of the following mechanisms:World Wide Web:www.vesa.orgMail to:E-mail:support@vesa.orgVideo Electronics Standards AssociationFax: 408-957-9277920 Hillview Court, Suite 140Voice: 408-957-9270Milpitas, CA 95035
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`Page iii
`
`3
`
`All trademarks used in this document are property of their respective owners.
`MS-DOS and Windows are trademarks of Microsoft , Inc.
`IBM, VGA, EGA, CGA, and MDA are trademarks of International Business Machines
`RAMDAC is a trademark of Brooktree Corp.
`Hercules is a trademark of Hercules Computer Technology, Inc.
`

`

`SSC VBE/Core Workgroup MembersAny industry standard requires input from many sources. The people listed below were membersof the VBE/Core Workgroup of the Software Standards Committee (SSC) which was responsiblefor combining all of the industry input into this standard:CHAIRMANCharimain, David Penley, Cirrus Logic, Inc.past chairnam, Kevin Gillett, S-MOS Systems, Inc.,past chairman, Rod Dewell , Excalibur SolutionsMEMBERSJatinder Pancar, Alliance SeminconductorArmond Bruno, BrookTree CorporationRebecca Nolan, Chips and Technologies, Inc.Andy Sobczyk, Cirrus Logic, Inc.Brad Haakenson, Cirrus Logic, Inc.Adrian Luff, Forte Technologies, Inc.Steven McGowen, Intel CorporationJake Richter, Jon Peddie and AssociatesMatt Russo, Matrox Graphics, Inc.Todd Laney, Microsoft CorporationThomas Block, Number Nine Visual Technology CorporationMark Krueger, NVidia CorporationDwight Diericks, NVidia CorporationRex Wolfe, Phillips SemiconductorRaluca Iovan, Phoenix Technologies Ltd.Tim Crawford, Rendition, Inc.Kendall Bennett, SciTech Software, IncTom Ryan, SciTech Software, IncDon Pannell, Sierra SemiconductorGeorge Bystricky, S-MOS Systems, Inc.David Milici, StereoGraphics CorporationTony Lin, Trident Microsystems, Inc.Mitch Paris, Tseng Labs, Inc.Joe Israel, Tseng Labs, Inc.Chris Tsang, ULSI SystemsDanny Halamish, VideoLogic, Inc..Gregory Hamlin, VRex, Inc.Thomas Roell, X Inside Inc.
`
`Page iv
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`4
`
`

`

`Table of ContentsINTRODUCTION................................................................................................................................................1SCOPE OF THE VBE STANDARD...........................................................................................................................1BACKGROUNDER................................................................................................................................................3VBE OVERVIEW................................................................................................................................................5VBE FEATURES.................................................................................................................................................5VBE AFFECTED DEVICES...................................................................................................................................5PROVIDING VENDOR INFORMATION.....................................................................................................................5PROGRAMMING WITH VBE/CORE..............................................................................................................6ACCESSING LINEAR FRAMEBUFFER MEMORY.......................................................................................................6USING REFRESH RATE CONTROL.........................................................................................................................6Using VBE/DDC to obtain monitor operational limits..................................................................................7Using VM/GTF to compute CRTC values......................................................................................................8Computing the normalized pixel clock..........................................................................................................8Setting double scan modes............................................................................................................................8Setting Interlaced Modes..............................................................................................................................8USING HARDWARE TRIPLE BUFFERING................................................................................................................9USING STEREOSCOPIC LIQUID CRYSTAL SHUTTER GLASSES..................................................................................9Automatic hardware display start address swapping (Method 1).................................................................10Automatic hardware display start address swapping (Method 2).................................................................11Software driven display start address swapping..........................................................................................12Refresh rates and stereoscopic imaging......................................................................................................12Left/right image synchronization................................................................................................................13DEVELOPING FOR MAXIMUM COMPATIBILITY....................................................................................................13Be prepared for different Window Granularity’s.........................................................................................13Be prepared for both single and dual read/write Windows..........................................................................14Be prepared to support both 15 and 16 bits per pixel high color modes......................................................14Be prepared to support both 24 and 32 bits per pixel true color modes.......................................................14Some controllers can’t do double scanned modes.......................................................................................14Check if VGA Compatible Before Touching Any VGA Registers.................................................................15Check if VGA Compatible Before Directly Programming the DAC.............................................................15VBE FUNCTION REFERENCE.......................................................................................................................17VBE RETURN STATUS......................................................................................................................................17VBE MODE NUMBERS......................................................................................................................................18VBE FAR POINTERS.........................................................................................................................................20OBTAINING THE PROTECTED MODE ENTRY POINT.............................................................................................21CALLING THE PROTECTED MODE ENTRY POINT.................................................................................................23PROTECTED MODE ENTRY POINT FUNCTIONAL RESTRICTIONS...........................................................................24FUNCTION 00H - RETURN VBE CONTROLLER INFORMATION..............................................................................25FUNCTION 01H - RETURN VBE MODE INFORMATION.........................................................................................30FUNCTION 02H - SET VBE MODE.....................................................................................................................40FUNCTION 03H - RETURN CURRENT VBE MODE................................................................................................44FUNCTION 04H - SAVE/RESTORE STATE............................................................................................................45FUNCTION 05H - DISPLAY WINDOW CONTROL...................................................................................................46FUNCTION 06H - SET/GET LOGICAL SCAN LINE LENGTH....................................................................................48
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`Page v
`
`5
`
`

`

`FUNCTION 07H - SET/GET DISPLAY START........................................................................................................50FUNCTION 08H - SET/GET DAC PALETTE FORMAT............................................................................................53FUNCTION 09H - SET/GET PALETTE DATA.........................................................................................................54FUNCTION 0AH - RETURN VBE PROTECTED MODE INTERFACE..........................................................................56FUNCTION 0BH - GET/SET PIXEL CLOCK............................................................................................................59VBE SUPPLEMENTAL SPECIFICATIONS...................................................................................................60PURPOSE OF SUPPLEMENTAL SPECIFICATIONS....................................................................................................60OBTAINING SUPPLEMENTAL VBE FUNCTION NUMBERS.....................................................................................60REQUIRED VBE SUPPLEMENTAL SPECIFICATION COMPONENTS..........................................................................61VBE Supplemental Specification Functions................................................................................................61Return Status..............................................................................................................................................61Subfunction 00h - Return VBE Supplemental Specification Information......................................................61LOADING SUPPLEMENTAL DRIVERS...................................................................................................................63IMPLEMENTATION QUESTIONS..........................................................................................................................63KNOWN SUPPLEMENTAL SPECIFICATIONS..........................................................................................................63Function 10h - Power Management Extensions (PM)..................................................................................63Function 11h - Flat Panel Interface Extensions (FP)..................................................................................64Function 13h - Audio Interface Extensions (AI)..........................................................................................64Function 14h - OEM Extensions.................................................................................................................64Function 15h - Display Data Channel (DDC).............................................................................................64APPENDIX 1 - VBE IMPLEMENTATION CONSIDERATIONS..................................................................65MINIMUM FUNCTIONALITY REQUIREMENTS.......................................................................................................65Required VBE Services...............................................................................................................................65Minimum ROM Implementation..................................................................................................................65TSR Implementations..................................................................................................................................65VGA BIOS IMPLICATIONS...............................................................................................................................66REAL MODE ROM SPACE LIMITATIONS.............................................................................................................67Data Storage..............................................................................................................................................67Removal of Unused VGA Fonts...................................................................................................................67Deleting VGA Parameter Tables.................................................................................................................68Increasing ROM Space...............................................................................................................................68Support of VGA TTY Functions...................................................................................................................68DEVELOPING DUAL-MODE BIOS CODE.............................................................................................................69Determining when in Protected Mode.........................................................................................................69Things to avoid in Protected Mode.............................................................................................................69Returning pointers in info blocks................................................................................................................70SUPPORTING MULTIPLE CONTROLLERS..............................................................................................................70Dual-Controller Designs............................................................................................................................70Provision for Multiple Independent Controllers..........................................................................................70OEM EXTENSIONS TO VBE..............................................................................................................................70APPENDIX 2 - SAMPLE SOURCE CODE......................................................................................................72C Language Module...................................................................................................................................72Assembly Language Module.......................................................................................................................80APPENDIX 3 - DIFFERENCES BETWEEN VBE REVISIONS.....................................................................82VBE 1.0......................................................................................................................................................82VBE 1.1......................................................................................................................................................82VBE 1.2......................................................................................................................................................82VBE 2.0......................................................................................................................................................82VBE 2.0, Rev. 1.1.......................................................................................................................................83VBE 3.0......................................................................................................................................................85
`
`Page vi
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`6
`
`

`

`VBE CORE FUNCTIONS VERSION 3.0
`
`Page vii
`
`7
`
`APPENDIX 4 - RELATED DOCUMENTS......................................................................................................87
`

`

`8
`
`

`

`Introduction
`
`IntroductionThis document contains the VESA BIOS Extension (VBE) specification for standard softwareaccess to graphics display controllers which support resolutions, color depths, and frame bufferorganizations beyond the VGA hardware standard. It is intended for use by both applicationsprogrammers and system software developers. It is also intended to provide an extended interfaceto support enhanced refresh rate control for operating system utilities and drivers.System software developers may use this document to supplement the System and INT 10h ROMBIOS functions to provide the VBE services. Application developers can use this document as aguide to programming all VBE compatible devices.To understand the VBE specification, some knowledge of 80x86 assembly language and the VGAhardware registers may be required. However, the services described in this specification may becalled from any high-level programming language that provides a mechanism for generatingsoftware interrupts with the 80x86 registers set to user-specified values.In this specification, 'VBE' and 'VBE 3.0' are synonymous with 'VBE Core Functions version 3.0'.Scope of the VBE StandardThe primary purpose of the VESA VBE is to provide standard software support for the manyunique implementations of Super VGA (SVGA) graphics controllers on the PC platform thatprovide features beyond the original VGA hardware standard. This is to provide a feasiblemechanism by which application developers can take advantage of this nonstandard hardware ingraphics applications.The VBE specification offers an extensible software foundation which allows it to evolve asdisplay and audio devices evolve over time, without sacrificing backward software compatibilitywith older implementations. New application software should be able to work with olderhardware, and application software that has already shipped should work correctly on newhardware devices.VBE services provide standard access to all resolutions and color depths provided on the displaycontroller, and report the availability and details of all supported configurations to the applicationas necessary.VBE implementations facilitate the field support of audio and display hardware by providing theapplication software with the manufacturer's name and the product identification of the displayhardware.Since graphics controller services on the PC are typically implemented in ROM, the VBE servicesare defined so that they should be implemented within the standard VGA ROM. When ROM
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`Page 1
`
`9
`
`

`

`Introduction
`
`implementations of VBE are not possible, or when field software upgrades to the onboard ROMare necessary, the VBE implementation may be also offered as a device driver or DOS Terminateand Stay Resident (TSR) program.The standard VBE functions may be supplemented by OEM's as necessary to support custom orproprietary functions unique to the manufacturer. This mechanism enables the OEM to establishfunctions that may be standard to the product line, or provide access to special hardwareenhancements.Although previous VBE standards assumed that the underlying graphics architecture was a VGAdevice, the display services described by VBE 3.0 can be implemented on any frame bufferoriented graphics device.The majority of VBE services facilitate the setup and configuration of the hardware, allowingapplications high performance, direct access to the configured device at runtime. To furtherimprove the performance of flat frame buffer display devices in extended resolutions, VBE 3.0provides new memory models that do not require the traditional frame buffer "banking"mechanisms.VBE is expected to work on all 80x86 platforms, in real and protected modes. Starting with VBE3.0, all the VBE/Core BIOS functions can be ‘dual-mode’, allowing them to optionally be calledas 16-bit protected mode code via a direct call to a new protected mode interface entry point.‘Dual-mode’ code means that the BIOS code adheres to certain restrictions when called via theprotected mode entry point, to ensure full compatibility with fully protected mode operatingsystems such as Windows NT, OS/2 and the many versions of UNIX. Note that although the‘dual-mode’ code must be called as 16-bit protected mode code, this does not preclude it frombeing called by 32-bit pure operating systems such as Windows NT and OS/2. Since somemodern display devices are designed without any VGA support, two or more display controllersmay be present in the system. One display controller could be used for VGA compatibility, andthe other used for graphic extensions to the basic VGA modes, resolutions, and frame buffermodels. Since it is not possible to support multiple controllers easily via the INT 10h softwareinterface, only the primary controller will be supported via this interface and its BIOS will belocated at C0000h. If multiple controllers are present in the system, the second controller can onlybe controlled via the VBE/AF Accelerator Functions specification (contact VESA for moreinformation).Note that the VBE/Core specification does not include any support for hardware accelerationfunctions such as 2D and 3D graphics primitives or video acceleration. If you wish to use suchfeatures please refer to the VBE/AF Accelerator Functions specification (contact VESA for moreinformation).
`
`Page 2
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`10
`
`

`

`Introduction
`
`BackgrounderThe IBM VGA1 has become a de facto standard in the PC graphics world. A multitude ofdifferent VGA offerings exist in the marketplace, each one providing BIOS or registercompatibility with the IBM VGA. More and more of these VGA compatible products implementvarious supersets of the VGA standard. These extensions range from higher resolutions and morecolors to improved performance and even some graphics processing capabilities. Intensecompetition has dramatically improved the price/performance ratio, to the benefit of the end user.However, several serious problems face a software developer who intends to take advantage ofthese "Super VGA"2 environments. Because there is no standard hardware implementation, thedeveloper is faced with widely different Super VGA hardware architecture. Lacking a commonsoftware interface, designing applications for these environments is costly and technically difficult.Except for applications supported by OEM-specific display drivers, very few software packagescan take advantage of the power and capabilities of Super VGA products.The VBE standard was originally conceived to enable the development of applications that wishedto take advantage of display resolutions and color depths beyond the VGA definition. The needfor an application or software standard was recognized by the developers of graphic hardware toencourage the use and acceptance of their rapidly advancing product families. It became obviousthat the majority of software application developers did not have the resources to develop andsupport custom device level software for the hundreds of display boards on the market.Therefore the rich new features of these display devices were not being used outside of therelatively small CAD market, and only then after considerable effort.Indeed, the need for a standard for SVGA display adapters became so important that the VESAorganization was formed to seek out a solution. The original VBE standard was devised andagreed upon by each of the active display controller manufacturers, and has since been adopted byDOS application developers to enable use of non-VGA extended display modes.As time went along VBE 1.1 was created to add more video modes and increased logical linelength/double buffering support. VBE 1.2 was created to add modes and also added high colorRAMDAC support.In the three years since VBE 1.2 was approved we have seen the standard become widelyaccepted and many successful programs have embraced VBE. However, it has become obviousthat the need for a more robust and extensible standard exists. Early extensions to the VGAstandard continued using all of the original VGA I/O ports and frame buffer address to 1 IBM and VGA are trademarks of International Business Machines Corporation.2 The term "Super VGA" is used in this document for a graphics display controller implementing any superset ofthe standard IBM VGA display adapter.
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`Page 3
`
`11
`
`

`

`Introduction
`
`communicate with the controller hardware. As we've seen, the supported resolutions and colordepths have grown, intelligent controllers with BITBLT and LineDraw Functions have becomecommon, and new flat frame buffer memory models have appeared along with display controllersthat are not based on VGA in any way. VBE 2.0 and future extensions will support non-VGAbased controllers with new functions for reading and writing the palette and for access to the flatframe buffer models.VBE 3.0, as designed, offers the extensibility and the robustness that was lacking in the previousspecifications, while at the same time offering backwards compatibility.
`
`Page 4
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`12
`
`

`

`VBE Overview
`
`VBE OverviewThis chapter outlines the various features and limitations of the VBE 3.0 standard.VBE Features
`
`•
`•
`•
`•
`•
`•
`•
`
`Extensible interface through supplemental specifications.VBE Affected DevicesAll frame buffer-based devices in the PC platform (with the exception of Hercules, Monochrome(MDA), CGA and EGA devices) are suitable for use within the VBE standard to enable access tothe device by VBE-compliant applications.Providing Vendor InformationThe VGA specification does not provide a standard mechanism to determine what graphic deviceit is running on. Only by knowing OEM-specific features can an application determine thepresence of a particular graphics controller or display board. This often involves reading andtesting registers located at I/O addresses unique to each OEM. By not knowing what hardware anapplication is running on, few, if any, of the extended features of this hardware can be used.The VESA BIOS Extension provides several functions to return information about the graphicsenvironment. These functions return system level information as well as graphics mode specificdetails. Function 00h returns general system level information, including an OEM identificationstring. The function also returns a pointer to the supported VBE and OEM modes. Function 01hmay be used by an application to obtain additional information about each supported mode.Function 03h returns the current VBE mode.
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`Page 5
`
`13
`
`Standard application interface to Graphics Controllers (SVGA Devices).
`Optional protected mode interface for OS’s such as Windows NT, OS/2 and UNIX.
`Standard method of overriding the refresh rate for supported modes.
`Stereoscopic display support for liquid crystal (LC) shutter glasses.
`Standard method of identifying products and manufacturers.
`Provision for OEM extensions through Subfunction 14h.
`

`

`VBE Overview
`
`Programming with VBE/CoreThis section contains application and systems programming information for some of the moreadvanced functions that VBE 3.0 provides.Accessing Linear Framebuffer MemoryOnce you have initialized the graphics hardware into a mode that supports a hardware linearframebuffer, you need to create a pointer that your application can use to write to the linearframebuffer memory. The first thing you should realize is that the linear framebuffer locationreported in the ModeInfoBlock for the mode you are using is a physical memory address, andcannot be used directly from protected mode applications. Before you can use the memory youmust use the services your operating system provides to map the physical memory to a linearmemory address, and then map this linear address into your applications memory space. UnderDPMI mapping the linear memory is done with DPMI function 0x800, and equivalent functionsexist under other operating systems.The steps involved in mapping in a linear framebuffer region are as follows (32-bit protectedmode only):1.
`Subtract the base address from the linear address computed in step 1 to give you anear pointer (relative to DS) that you can use from within your code.Using Refresh Rate ControlVBE 3.0 provides support for refresh rate control by allowing the calling application to pass a setof custom CRTC timing values to the BIOS when a mode set is being performed. This providesfor maximum versatility and allows the application to program specific CRTC timing values if thisis necessary (for instance specialized display hardware such as head mounted displays or fixedfrequency monitors).When the calling application wishes to control the refresh rate for the mode being initialized, itmust compute a set of CRTC values and a normalized pixel clock that can be passed to function4F02h when the mode is initialized. The VBE 3.0 interface does not provide any means tocompute these values, and the values can either be taken from discrete VESA DMT timings, or byusing the new VM/GTF Generalized Timing Formula to compute the CRTC values to be used.Once you have these values, you must search for an available pixel clock that is the closest to
`
`Map the physical memory address to a linear memory address (using DPMI function0x800 for example).2.
`Find the base address of the default DS selector for your operating environment.3.
`
`Page 6
`
`VBE CORE FUNCTIONS VERSION 3.0
`
`14
`
`

`

`what you want by calling VBE function 4F0Bh (if you are using GTF to compute the CRTCvalues, you should re-run the GTF calculations routines based on the pixel clock returned by4F0Bh to get the final CRTC values).The steps involved in initializing a mode with a specific refresh rate are as follows:1.
`Use VBE/DDC to obtain the operational limits of the monitor if VBE/DDC isavailable and the monitor is DDC compliant. Use these values to restrict the calculatedvalues or modes that you can make available.2.
`Use either the DMT timings or GTF formulas to compute a set of CRTC timings andnormalized pixel clock for the mode and refresh rate that you want to initialize. If themode is a double scanned mode (200, 240 or 300 lines) double the vertical resolutionused to drive the GTF CRTC calculations (i.e.: use 400 lines for the vertical number oflines).3.
`Call VBE function 4F0Bh to find the actual pixel clock that will be programmed forthe normalized pixel clock that you have requested.4.
`If you are using GTF, re-run th

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket