[Toc][Index]

[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