Metropoli BBS
VIEWER: vesa.h MODE: TEXT (ASCII)
//*****************************************************************
//
//  VESA library include file
//
//*****************************************************************

// Data structure for VESA function 4F00h ( Get VBE Information )
//

struct vesa_infoblock { 
  byte   VbeSignature;       // VBE Signature
  word   VbeVersion;         // VBE Version
  dword  OemStringPtr;       // Pointer to OEM String
  dword  Capabilities;       // Capabilities of graphics cont.
  dword  VideoModePtr;       // Pointer to Video Mode List
  word   TotalMemory;        // Number of 64kb memory blocks
// Added for VBE 2.0
  word   OemSoftwareRev;     // VBE implementation Software revision
  dword  OemVendorNamePtr;   // Pointer to Vendor Name String
  dword  OemProductNamePtr;  // Pointer to Product Name String
  dword  OemProductRevPtr;   // Pointer to Product Revision String
  byte   _Reserved_[222];    // Reserved for VBE implementation
                                     // scratch area
  byte   OemData[256];      // Data Area for OEM Strings
};


// Data structure for VESA function 4F01h ( Get mode Information )
//
struct vesa_modeinfoblock {
  // Mandatory information for all VBE revisions
  word   ModeAttributes;     // mode attributes
  byte   WinAAttributes;     // window A attributes
  byte   WinBAttributes;     // window B attributes
  word   WinGranularity;     // window granularity
  word   WinSize;            // window size
  word   WinASegment;        // window A start segment
  word   WinBSegment;        // window B start segment
  dword  WinFuncPtr;         // pointer to window function
  word   BytesPerScanLine;   // bytes per scan line

  // Mandatory information for VBE 1.2 and above
  word   XResolution;        // horizontal resolution in pixels or chars
  word   YResolution;        // vertical resolution in pixels or chars
  byte   XCharSize;          // character cell width in pixels
  byte   YCharSize;          // character cell height in pixels
  byte   NumberOfPlanes;     // number of memory planes
  byte   BitsPerPixel;       // bits per pixel
  byte   NumberOfBanks;      // number of banks
  byte   MemoryModel;        // memory model type
  byte   BankSize;           // bank size in KB
  byte   NumberOfImagePages; // number of images
  byte   _Reserved;          // reserved for page function

  // Direct Color fields (required for direct/6 and YUV/7 memory models)
  byte   RedMaskSize;        // size of direct color red mask in bits
  byte   RedFieldPosition;   // bit position of lsb of red mask
  byte   GreenMaskSize;      // size of direct color green mask in bits
  byte   GreenFieldPosition; // bit position of lsb of green mask
  byte   BlueMaskSize;       // size of direct color blue mask in bits
  byte   BlueFieldPosition;  // bit position of lsb of blue mask
  byte   RsvdMaskSize;       // size of direct color reserved mask in bits
  byte   RsvdFieldPosition;  // bit position of lsb of reserved mask
  byte   DirectColorModeInfo;// direct color mode attributes

  // Mandatory information for VBE 2.0 and above
  dword  PhysBasePtr;        // physical address for flat frame buffer
  dword  OffScreenMemOffset; // pointer to start of off screen memory
  word   OffScreenMemSize;   // amount of off screen memory in 1k units
  byte   __Reserved[206];    // remainder of ModeInfoBlock
};


[ RETURN TO DIRECTORY ]