INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION Classification: video AX = 4F00h ES:DI -> 256-byte buffer for SuperVGA information (see #0063) Returns: AL = 4Fh if function supported AH = status 00h successful ES:DI buffer filled 01h failed Description: determine whether VESA BIOS extensions are present and the capabilities supported by the display adapter See also: AX=4E00h AX=4F01h AX=7F00h AX=A00Ch Format of SuperVGA information: Offset Size Description (Table 0063) 00h 4 BYTEs signature ("VESA") 04h WORD VESA version number 06h DWORD pointer to OEM name "761295520" for ATI 0Ah 4 BYTEs capabilities 0Eh DWORD pointer to list of supported VESA and OEM video modes (list of words terminated with FFFFh) 12h WORD total amount of video memory in 64K blocks 14h 236 BYTEs reserved Note: the list of supported video modes is stored in the reserved portion of the SuperVGA information record by some implementations, and it may thus be necessary to either copy the mode list or use a different buffer for all subsequent VESA calls The 1.1 VESA document specifies 242 reserved bytes at the end, so the buffer should be 262 bytes to ensure that it is not overrun --------- INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION Classification: video AX = 4F01h CX = SuperVGA video mode ES:DI -> 256-byte buffer for mode information (see #0064) Returns: AL = 4Fh function supported AH = status 00h successful ES:DI buffer filled 01h failed Description: determine the attributes of the specified video mode See also: AX=4F00h AX=4F02h Format of VESA SuperVGA mode information: Offset Size Description (Table 0064) 00h WORD mode attributes (see #0065) 02h BYTE window attributes, window A (see #0066) 03h BYTE window attributes, window B (see #0066) 04h WORD window granularity in KB 06h WORD window size in KB 08h WORD start segment of window A 0Ah WORD start segment of window B 0Ch DWORD -> FAR window positioning function (equivalent to AX=4F05h) 10h WORD bytes per scan line ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes--- 12h WORD width in pixels (graphics) or characters (text) 14h WORD height in pixels (graphics) or characters (text) 16h BYTE width of character cell in pixels 17h BYTE height of character cell in pixels 18h BYTE number of memory planes 19h BYTE number of bits per pixel 1Ah BYTE number of banks 1Bh BYTE memory model type (see #0067) 1Ch BYTE size of bank in KB 1Dh BYTE number of image pages 1Eh BYTE reserved (0) ---VBE v1.2+--- 1Fh BYTE red mask size 20h BYTE red field position 21h BYTE green mask size 22h BYTE green field size 23h BYTE blue mask size 24h BYTE blue field size 25h BYTE reserved mask size 26h BYTE reserved mask position 27h BYTE direct color mode info 28h 216 BYTEs reserved (0) Bitfields for VESA SuperVGA mode attributes: Bit(s) Description (Table 0065) 0 mode supported 1 optional information available 2 BIOS output supported 3 set if color, clear if monochrome 4 set if graphics mode, clear if text mode Bitfields for VESA SuperVGA window attributes: Bit(s) Description (Table 0066) 0 exists 1 readable 2 writable 3-7 reserved (Table 0067) Values for VESA SuperVGA memory model type: 00h text 01h CGA graphics 02h HGC graphics 03h 16-color (EGA) graphics 04h packed pixel graphics 05h "sequ 256" (non-chain 4) graphics 06h direct color (HiColor, 24-bit color) 07h YUV (luminance-chrominance, also called YIQ) 08h-0Fh reserved for VESA 10h-FFh OEM memory models --------- INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE Classification: video AX = 4F02h BX = mode bit 15 set means don't clear video memory Returns: AL = 4Fh function supported AH = status 00h successful 01h failed See also: AX=4E03h AX=4F01h AX=4F03h (Table 0068) Values for VESA video mode: 00h-FFh OEM video modes (see #0009 at AH=00h) 100h 640x400x256 101h 640x480x256 102h 800x600x16 103h 800x600x256 104h 1024x768x16 105h 1024x768x256 106h 1280x1024x16 107h 1280x1024x256 108h 80x60 text 109h 132x25 text 10Ah 132x43 text 10Bh 132x50 text 10Ch 132x60 text ---VBE v1.2--- 10Dh 320x200x32K 10Eh 320x200x64K 10Fh 320x200x16M 110h 640x480x32K 111h 640x480x64K 112h 640x480x16M 113h 800x600x32K 114h 800x600x64K 115h 800x600x16M 116h 1024x768x32K 117h 1024x768x64K 118h 1024x768x16M 119h 1280x1024x32K 11Ah 1280x1024x64K 11Bh 1280x1024x16M (Table 0069) Values for S3 OEM video mode: 201h 640x480x256 202h 800x600x16 203h 800x600x256 204h 1024x768x16 205h 1024x768x256 206h 1280x960x16 207h 1152x864x256 (Diamond Stealth 64) 208h 1280x1024x16 20Ah 1152x864x64K (Diamond Stealth 64) 211h 640x480x64K (Diamond Stealth 24) 212h 640x480x16M (Diamond Stealth 24) 301h 640x480x32K Note: these modes are only available on video cards using S3's VESA driver ---------- INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE Classification: video AX = 4F03h Returns: AL = 4Fh function supported AH = status 00h successful BX = video mode (see #0068,#0069) 01h failed See also: AH=0Fh AX=4E04h AX=4F02h ------------ INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE Classification: video AX = 4F04h DL = subfunction 00h get state buffer size Return: BX = number of 64-byte blocks needed 01h save video states ES:BX -> buffer 02h restore video states ES:BX -> buffer CX = states to save/restore (see #0070) Returns: AL = 4Fh function supported AH = status 00h successful 01h failed Bitfields for VESA SuperVGA states to save/restore: Bit(s) Description (Table 0070) 0 video hardware state 1 video BIOS data state 2 video DAC state 3 SuperVGA state -------- INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL Classification: video AX = 4F05h BH = subfunction 00h select video memory window DX = window address in video memory (in granularity units) 01h get video memory window Return: DX = window address in video memory (in gran. units) BL = window number 00h window A 01h window B Returns: AL = 4Fh function supported AH = status 00h successful 01h failed See also: AX=4F01h AX=4F06h AX=4F07h AX=7000h/BX=0004h -------- INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA) Classification: video AX = 1012h BX = starting color register CX = number of registers to set ES:DX -> table of 3*CX bytes where each 3 byte group represents one byte each of red, green and blue (0-63) See also: AX=1010h AX=1017h INT 62/AX=00A5h