![[Toc]](../../toc.gif)
![[Index]](/idx.gif)
[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 .PMI 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
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs