[Toc][Index]

[Hardware]

   
   *  BusType = { ISA | VLB | PCI | EISA | PCMCIA | MCA } 
      The hardware description is available through a system query 
      function. Any other definition is regarded as a user definition. 
   *  OEMString  = "CHIPNAME ADAPTERNAME, ADAPTER MANUFACTURER NAME" 
      OEMString has an internal length of 128 chars, 0 ended. This string 
      should be sufficient to uniquely describe the video adapter. The 
      string will be presented to the user at configuration and 
      installation and is the key element of the system's description of 
      the adapter. It is regarded as a user definition, meaning that no 
      translation of this information to any other format is performed. 
      Any trademark information should be provided as a comment in the PMI 
      file. 
      If the PMI file is not specifically written for an adapter, the 
      ADAPTERNAME GENERIC is suggested (such files may be shipped by the 
      chip manufacturers or software vendors). CHIPNAME is a required 
      token and is used as a key in the display driver installation 
      process to find a corresponding display driver for a given PMI file 
      (and vice versa). 
   *  DACString = "MANUFACTURER NAME [, DACNAME]" 
      DACNAME, such as Bt485 or AT&T 491 is optional. Regarded as a user 
      definition. Any trademark information should be provided as a 
      comment. 
   *  Version = <string> 
      User-defined. Should represent the version of the manufacturer's 
      .PMI file, rather than the revision level of the hardware. If 
      multiple versions of the .PMI file exist for the same OEMString 
      description, and all respective IdentifyAdapter function calls were 
      successful, the file with the greater Version string is assumed to 
      be the more appropriate one and is offered at the top of the PMI 
      list during the video configuration. 
      The user, however, does have a choice of selecting a different PMI 
      file. Note that the PMIVersion section is used to describe the PMI 
      language revision level used, not the version of the PMI file. 
   *  TotalMemory = <constant> 
      This represents the total size of the currently installed VRAM 
      memory in bytes. 
   *  MemoryIOAddress  = <constant> ['{' <mmio list> '}']        <mmio 
      list> ::= <constant> | <constant> [',' <mmio list>] 
      Specifies the default base memory address for memory mapped I/O and 
      a list of possible base addresses. The default value should match 
      the value set by the configuration performed at the time of the 
      adapter's installation. It is possible to reconfigure the adapter's 
      address at a later time without modifying the .PMI file. 
      If this address is specified and is not zero, the BufferAddress 
      fields in the [ModeInfo] sections of all graphics modes with more 
      than 256 colors will be replaced by this address and the usFlag in 
      the VIDEOMODEINFO structure will have MODE_FALG_LINEAR_BUFFER flag 
      set to on, indicating that this mode can be set to linear aperture 
      mode. [SetMemoryIOAddress] should also be provided to handle the 
      address setting. 
   *  PortIOAddress    = <constant> ['{' <pio list> '}']      <pio list> 
      ::= <constant> | <constant> [',' <pio list>] 
      Specifies default base port address for port I/O and a list of 
      possible I/O addresses. For example, this variable for an MCA XGA 
      adapter would reflect its instance that needs to be added to all of 
      the register addresses. See the preceding discussion on 
      MemoryIOAddress. 
   *  Endian = {BIG | LITTLE} 
      This represents the endian control capability of the device. The PMI 
      constants are always represented with the most significant byte at 
      the leftmost position. There are three possible cases of endian 
      control: 
        -  The device can conform to the endian type of the platform, such 
           as WEITEK or XGA. 
        -  The device cannot conform to the endian type but is of the same 
           endian type as the platform. 
        -  The device is of a different endian type than the platform on 
           which it is installed. 
      The first two cases require no endian conversion on the part of the 
      VIDEOPMI interpreter. In the third case, the VIDEOPMI interpreter 
      native to a platform will perform the byte swapping to the 
      platform's endian type. The programming of the endian control on 
      devices that are capable of address swapping, such as XGA or WEITEK, 
      is the responsibility of the .PMI file. In the case of WEITEK, this 
      is done indirectly by generating correct addresses. It is preferable 
      to configure the adapter in the endian control of the platform for 
      which it is intended, if such capability is present. 
 
 Here is a sample .PMI file for a Viper VLB card: 
 

 
 BusType = VLB
 OEMString = "P9000 VIPER, Diamond Computer Systems Inc."
 DACString = "Brooktree Corporation"
 Version = "3.2"
 TotalMemory = 2097152
 MemoryIOAddress = 0x80000000
 PortIOAddress = 0x00000000
 Endian = LITTLE
 
 
  
 

Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs