INT 10 - VESA(Video Electronics Standards Association)  An industry group which sets both hardware and software standards and recommendations. The term VESA is also used to denote compliance with the VESA SuperVGA BIOS Extensions, a standard set of video BIOS functions for accessing video modes of higher resolution than those defined by IBMInternational Busiuness Machines. OEM(Original Equipment Manufacturer) a company which purchases components that are resold as part of its own products under the company's own brand name, e.g. a Gateway 2000-branded monitor may actually be a Mag or NEC monitor. Extensions - API(Application Program[ming] Interface) The defined set of calls which a program may make to interact with or request services of the operating system or environment under which it is running.  Because the inputs and outputs of the calls are well-defined, a program using the API can continue using the identical calls even if the internal organization of the program providing the API changes.
	AX = 4F14h
	BL = function
	    00h installation check / get capabilities
	other registers vary by function
Return: varies by function
Note:	this function is provided for OEMs to implement system-specific
	  functionality in a VESA-compatible manner
                                                                                

INT 10 - VESA(Video Electronics Standards Association)  An industry group which sets both hardware and software standards and recommendations. The term VESA is also used to denote compliance with the VESA SuperVGA BIOS Extensions, a standard set of video BIOS functions for accessing video modes of higher resolution than those defined by IBMInternational Busiuness Machines. OEM(Original Equipment Manufacturer) a company which purchases components that are resold as part of its own products under the company's own brand name, e.g. a Gateway 2000-branded monitor may actually be a Mag or NEC monitor. Extensions - Matrox Millenium (BIOS(Basic Input/Output System) A set of standardized calls giving low-level access to the hardware.  The BIOS is the lowest software layer above the actual hardware and serves to insulate programs (and operating systems) which use it from the details of accessing the hardware directly. v2.1)
	AX = 4F14h
	BL = function
	    00h installation check / get capabilities
		ES:DI -> 256-byte buffer for Matrox-specific information
			(see #00125)
		Return: ES:DI buffer filled
	    01h read/write MGA indexed data register
		BH = direction (00h = write, else read)
		CL = register number (80h for most-recently used register)
		CH = new value, if writing
		Return: CH = current value, if reading
	    02h read/write register in MGA control space
		BH = direction and size
			bit 4: read register instead of writing
			bits 1-0: data size (00 = BYTE, 01 = WORD, 10 = DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.)
		SI = register address
		CL/CX/ECX = new value if writing
		Return: CL/CX/ECX = current value if reading
	    03h read PINS byte
		SI = offset of byte within PINS data (see #00126)
		Return: CL = value of specified PINS byte
	    04h ??? (related to PLL programming)
		DX = ???
		Return: CL,EDX destroyed
	    05h read BIOS(Basic Input/Output System) A set of standardized calls giving low-level access to the hardware.  The BIOS is the lowest software layer above the actual hardware and serves to insulate programs (and operating systems) which use it from the details of accessing the hardware directly. byte
		SI = offset of byte relative to start of BIOS(Basic Input/Output System) A set of standardized calls giving low-level access to the hardware.  The BIOS is the lowest software layer above the actual hardware and serves to insulate programs (and operating systems) which use it from the details of accessing the hardware directly. image
		Return: CL = specified byte
	    else
		Return: AX = FFFFh
Return: AL = 4Fh if function supported
	    AH = status
		00h successful
		01h failed
Note:	most of this info is from http:\\grafi.ii.pw.edu.pl\gbm\matrox
SeeAlso: MEM C000h:7FFCh"Matrox"


Format of Matrox-specific VESA(Video Electronics Standards Association)  An industry group which sets both hardware and software standards and recommendations. The term VESA is also used to denote compliance with the VESA SuperVGA BIOS Extensions, a standard set of video BIOS functions for accessing video modes of higher resolution than those defined by IBMInternational Busiuness Machines. extensions information:
Offset	Size	Description	(Table 00125)
 00h  7 BYTEs	signature "VBE(VESA BIOS Extensions) The common software interface for video cards providing support for high resolution and bit depth./MGA"
 07h 10 BYTEs	??? (01h 01h 00h 00h 00h 00h 00h 00h 00h 07h)
 11h	WORD	BIOS(Basic Input/Output System) A set of standardized calls giving low-level access to the hardware.  The BIOS is the lowest software layer above the actual hardware and serves to insulate programs (and operating systems) which use it from the details of accessing the hardware directly. version (high byte = major, low byte = one-digit minor)
 13h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	-> manufacturer name (ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. "Matrox")
 17h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	-> ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. card name
 1Bh	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	-> ??? ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. string (empty string on card examined)
 1Fh	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	-> ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. vendor name
 23h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	-> ASCIZA NUL-terminated ASCII string.	The ASCIZ string "ABC" consists of the four bytes 41h, 42h, 43h, and 00h.  Unless otherwise specified, maximum lengths given in the interrupt list do not include the terminating NUL. BIOS(Basic Input/Output System) A set of standardized calls giving low-level access to the hardware.  The BIOS is the lowest software layer above the actual hardware and serves to insulate programs (and operating systems) which use it from the details of accessing the hardware directly. file base name
 27h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	-> PINS
 2Bh	WORD	video memory size in 64K units
 2Dh	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	linear address of linear frame buffer
 31h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	linear address of MGA control aperture
 35h	WORD	PCI bus/device for card???
 37h 201 BYTEs	unused??? (cleared to 00h)


Format of Matrox PINS data (version 3.0):
Offset	Size	Description	(Table 00126)
 00h  2 BYTEs	signature ".A" (2Eh 41h)
 02h	BYTE	structure length (40h for v3.0)
 03h	BYTE	???
 04h	WORD	PINS version (high byte = major, low byte = minor)
 06h	WORD	date last programmed
 08h	WORD	number of times programmed
 0Ah	WORD	flags
 0Ch  8 BYTEs	ASCII serial number, three letters + five digits
 14h  8 BYTEs	???
 1Ch  4 BYTEs	ASCII card version
 20h	DWORDDoubleword; four bytes.	 Commonly used to hold a 32-bit segment:offset or selector:offset address.	PCB revision
 24h	BYTE	maximum RAMDAC frequency in MHz (less 100)
 25h	BYTE	maximum RAMDAC frequency???
 26h	BYTE	maximum RAMDAc frequency???
 27h	BYTE	???
 28h	BYTE	??? timing data?
 29h	BYTE	???
 2Ah	BYTE	???
 2Bh	BYTE	???
 2Ch	BYTE	???
 2Dh	BYTE	???
 2Eh	BYTE	???
 2Fh	BYTE	???
 30h  4 BYTEs	???
 34h	BYTE	???
 35h	BYTE	???
 36h	BYTE	???
 37h	BYTE	memory size in 64K units
 38h	BYTE	???
 39h	BYTE	???
 3Ah	BYTE	???
 3Bh	BYTE	???
 3Ch	BYTE	???
 3Dh	BYTE	???
 3Eh	BYTE	???
 3Fh	BYTE	checksum (to make sum of all bytes MOD 256 == 00h)