![[Toc]](../../toc.gif)
![[Index]](/idx.gif)
[MonitorModeInfo]
This section provides information on the capabilities of the adapter in
terms of the synchronization signal range. This section is optional if an
adapter does not require software intervention in order to detect the
monitor type and program the optimal HSYNC, VSYNC, HBLNK, and VBLNK
signals. Because the industry lacks a standard for monitor detection, most
adapters require user intervention in order to detect the monitor and
additional software to handle selection of the horizontal and vertical
frequencies for the configured monitor. In the OS/2 environment, the
configuration and recording of the user selection is done by the DSPCONF
utility. The information is then available to all video drivers.
Depending on the type of clock generator, the specified frequencies could
be definable only in distinct (discrete) sets of values, or they could be
generated within the maximum range of the clock chip. Therefore, one or
more MonitorModeInfo sections are used to provide a vehicle for user
configuration of the refresh setup and for the subsequent mode setting.
If clock generation is contiguous within a range, a single MonitorModeInfo
with the end of the range should be listed per each mode. Otherwise, a
list of MonitorModeInfo sections should list all of the discrete refresh
pairs. In this case, an exact match between the monitor refresh
specification and the adapter's refresh capability has to happen (this
includes the polarity information). If the vendor providing the .PMI file
does not wish to discriminate based on the polarity, the polarity can be
omitted or set to a predefined value of 2.
Note that all of the PMI keyvariables are marked as dynamic. This means
that their run-time values could differ from their values specified in the
flat file, depending on the user configuration. This also means that
sections programming the hardware should verify that the values passed are
in the valid range.
* VerticalRefresh = <constant>
- Dynamic PMI keyvariable. Required.
- Vertical refresh in Hz, rounded to the nearest integer.
- Should be set to 0 for flat panel and other non-CRT display
modes. Otherwise, set to either a discrete value or
end-of-range value.
* HorizontalRefresh = <constant>
- Dynamic PMI keyvariable. Required.
- Horizontal refresh in KHz, rounded to the nearest integer.
- Should be set to 0 for flat panel and other non-CRT display
modes. Otherwise, set to either a discrete value or
end-of-range value.
* VPolarityPositive = <'0' | '1' | '2'>
- Vertical polarity.
- Dynamic PMI keyvariable. Not required.
- 0 indicates negative; 1 indicates positive; 2 indicates that
either one can be set and should not be used when matching the
monitor specification. A value of 2 is logically the same as
omitting the keyvariable.
* HPolarityPositive = <'0' | '1' | '2'>
- Horizontal polarity.
- Dynamic PMI keyvariable. Not required.
- 0 indicates negative; 1 indicates positive; 2 indicates that
either one can be set and should not be used when matching the
monitor specification. A value of 2 is logically the same as
omitting the keyvariable.
* ScreenLeftEdge = <constant>
- Dynamic PMI keyvariable. Required if TuneDisplay section
exists.
- Defines the start of the active horizontal display in terms of
the pixel count. Internally, it represents the offset in terms
of the dot count along the horizontal sweep.
- If the TuneDisplay section is provided, the user has the option
of fine-tuning this value. Consequently, the SetMode call will
set the hardware according to the dynamic value of this PMI
keyvariable (see [TuneDisplay] and [SetMode] in this chapter).
* ScreenRightEdge = <constant>
- Dynamic PMI keyvariable. Required if TuneDisplay section
exists.
- Defines the end of the horizontal active display in terms of
the pixel count. Internally, it represents the offset in terms
of the dot count along the horizontal sweep for the current
mode.
- If the TuneDisplay section is provided, the user has the option
of fine-tuning this value. Consequently, the mode will set the
hardware according to the dynamic value of this PMI keyvariable
(see [TuneDisplay] and [SetMode] in this chapter).
* ScreenBottomEdge = <constant>
- Dynamic PMI keyvariable. Required if TuneDisplay section
exists.
- Defines the end of the active vertical display in terms of the
line count along the vertical sweep in the current mode.
- If the TuneDisplay section is provided, the user has the option
of fine-tuning this value. Consequently, the mode will set the
hardware according to the dynamic value of this PMI keyvariable
(see [TuneDisplay] and [SetMode] in this chapter).
* ScreenTopEdge = <constant>
- Dynamic PMI keyvariable. Required if TuneDisplay section
exists.
- Defines the start of the vertical sync in the current mode.
- If the TuneDisplay section is provided, the user has the option
of fine-tuning this value. Consequently, the mode will set the
hardware according to the dynamic value of this PMI keyvariable
(see [TuneDisplay] and [SetMode] in this chapter).
Here is a sample .PMI file for a Viper VLB card:
[MonitorModeInfo] //1024 x 768 resolution
VerticalRefresh = 80
HorizontalRefresh = 64
VPolarityPositive = 1
HPolarityPositive = 1
ScreenLeftEdge = 0x00000047
ScreenRightEdge = 0x00000147
ScreenTopEdge = 0x00000023
ScreenBottomEdge = 0x00000323
Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs