## Display Device Driver Reference for OS/2

[prev][next][parent][TOC]

### [ModeInfo]

ModeInfo, together with the MonitorModeInfo section, defines mode capabilities of the PMI adapter. The complete list of all ModeInfo and MonitorModeInfo headers is available through a system-mode query function. The ModeInfo header specifies attributes that are not dependent on the type of display attached. Some of the fields are optional and, if not provided, are internally set to 0. Most fields are static; that is, they will not be modified at run-time and changed from their .PMI file values. However, Aperture address is a dynamic PMI keyvariable and is set by the caller to reflect the current value. All of the mode PMI keyvariables are field members of the VIDEOMODEINFO structure, a substructure of the VIDEO_ADAPTER .

ModeAttributes = <constant>

-Static PMI keyvariable. Required.
-0x18 for color graphic modes, 0x08 for color text modes.
-See VESA SVPMI Standard for full description.

BytesPerScanLine = <constant>

-Static PMI keyvariable. Required.
-Length of logical scan line in bytes.
-See VESA SVPMI Standard for full description.

XResolution = <constant>

-Static PMI keyvariable. Required.
-Horizontal resolution in pixels or characters in graphics and text modes, respectively.

YResolution = <constant>

-Static PMI keyvariable. Required.
-Vertical resolution in pixels or characters in graphics and text modes, respectively.

XCharSize = <constant>

-Static PMI keyvariable. Required in text modes.
-Character cell width in pixels.

YCharSize = <constant>

-Static PMI keyvariable. Required in text modes.
-Character cell height in pixels.

TextRows = <constant>

-Static PMI keyvariable. Required in both graphics and text modes.
-Number of text rows.

BitsPerPixel = <constant>

-Static PMI keyvariable. Required.
-Color depth.

NumberOfPlanes = <constant>

-Static PMI keyvariable. Required.
-[4|1] planar vs. linear memory organization.

PageLength = <constant>

-Static PMI keyvariable. Required.
-Size of memory required to save a page of the on-screen VRAM.

SaveSize = <constant>

-Static PMI keyvariable. Required.
-Size of memory required to save all of the on-screen VRAM. It should be set to include at least the logical scanline width (BytesPerScanLine* Yresolution).

Int10ModeSet = <constant>

-Static PMI keyvariable. Required if the same mode can be set though BIOS.

ColorFormat = <string>

-Static PMI keyvariable. Optional.
-User defined.
-Zero-ended string. Required for hi-color and true-color modes.

Suggested definitions:

[ RGB | BGR | GBR | YUI ]

-Not used internally; available to drivers through a mode query.
-If not specified, zeros are returned.

ColorWeight = <constant> ':' <constant> ':' <constant>

-Static PMI keyvariable. Optional.
-User defined.
-Required for hi-color and true-color modes.
-Not used internally; available to drivers through a mode query.
-If not specified, zeros are returned.

BufferAddress = <constant>

-Dynamic PMI keyvariable. Required if direct VRAM access is possible.

-Represents the physical address of the video buffer. If direct buffer access is possible, VIDEOPMI interpreter will copy VRAM in chunks of ApertureSize or SaveSize, whichever is smaller. If 0, no direct buffer access is possible.

This PMI keyvariable is dynamic on all systems in which remapping of the aperture is possible. In such cases, it should be assigned the LinearWindowAddress value from the Hardware description. The SetMode section should ensure that it programs hardware to reflect the hardware's dynamic value.

ApertureSize = <constant>

-Static PMI keyvariable. Required if direct VRAM access is possible.
-Size of the aperture. If ApertureSize < SaveSize and BufferAddress is not 0, SetBank and GetBank sections are required.
-Aperture size will not be modified, even if hardware does allow for different sizes.

Colors.

-Number of colors for this mode.

Here is a sample file for a 9GXE S3 card:

    [comment]
         Graphics   Mode :   1280   x   1024   x   256   colors .

    [ ModeInfo ]
          ModeAttributes     =   0x18
          BytesPerScanLine   =   1280
          XResolution        =   1280
          YResolution        =   1024
          TextRows           =   64
          BitsPerPixel       =   8
          NumberOfPlanes     =   1
          PageLength         =   1310720
          SaveSize           =   1310720
          Int10ModeSet       =   0x107
          BufferAddress      =   0x000a0000
          ApertureSize       =   0x00010000