//\r
// Test to see if the Video Adapter is compliant with VBE 3.0\r
//\r
+ // INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION\r
+ //\r
+ // AX = 4F00h\r
+ // ES:DI -> buffer for SuperVGA information (see #00077)\r
+ // Return: AL = 4Fh if function supported\r
+ // AH = status\r
+ // 00h successful\r
+ // ES:DI buffer filled\r
+ // 01h failed\r
+ // ---VBE v2.0---\r
+ // 02h function not supported by current hardware configuration\r
+ // 03h function invalid in current video mode\r
+ // Desc: determine whether VESA BIOS extensions are present and the capabilities\r
+ // supported by the display adapter\r
+ //\r
gBS->SetMem (&Regs, sizeof (Regs), 0);\r
Regs.X.AX = VESA_BIOS_EXTENSIONS_RETURN_CONTROLLER_INFORMATION;\r
gBS->SetMem (BiosVideoPrivate->VbeInformationBlock, sizeof (VESA_BIOS_EXTENSIONS_INFORMATION_BLOCK), 0);\r
//\r
// Read EDID information\r
//\r
+ // INT 10 - VESA VBE/DC (Display Data Channel) - READ EDID\r
+ //\r
+ // AX = 4F15h\r
+ // BL = 01h\r
+ // CX = 0000h\r
+ // DX = 0000h\r
+ // ES:DI -> 128-byte buffer for EDID record (see #00127)\r
+ // Return: AL = 4Fh if function supported\r
+ // AH = status\r
+ // 00h successful\r
+ // ES:DI buffer filled\r
+ // 01h failed (e.g. non-DDC monitor)\r
+ //\r
gBS->SetMem (&Regs, sizeof (Regs), 0);\r
Regs.X.AX = VESA_BIOS_EXTENSIONS_EDID;\r
Regs.X.BX = 1;\r
//\r
// Get the information about the mode\r
//\r
+ // INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION\r
+ //\r
+ // AX = 4F01h\r
+ // CX = SuperVGA video mode (see #04082 for bitfields)\r
+ // ES:DI -> 256-byte buffer for mode information (see #00079)\r
+ // Return: AL = 4Fh if function supported\r
+ // AH = status\r
+ // 00h successful\r
+ // ES:DI buffer filled\r
+ // 01h failed\r
+ // Desc: determine the attributes of the specified video mode\r
+ //\r
gBS->SetMem (&Regs, sizeof (Regs), 0);\r
Regs.X.AX = VESA_BIOS_EXTENSIONS_RETURN_MODE_INFORMATION;\r
Regs.X.CX = *ModeNumberPtr;\r