Format of VBE/AF v1.0P Device Context buffer:
Offset	Size	Description	)
 00h	WORD	maximum X coordinate in frame buffer (0 = left edge)
		Note:	application must never pass X coordinate greater than
			  this value to the SetClipRect function (values are
			  NOT range-checked!)
 02h	WORD	maximum Y coordinate in frame buffer (0 = top edge)
		Note:	application must never pass Y coordinate greater than
			  this value to the SetClipRect function
 04h	DWORD	-> "SetForeColor" to set foreground color/mix (see #00091)
 08h	DWORD	-> "SetBackColor" to set background color/mix (see #00092)
 0Ch	DWORD	-> "SetClipRect" set hardware clipping rectangle (see #00093)
 10h	DWORD	-> function "DrawScan" to draw a single scan line
 14h	DWORD	-> function "DrawScanList" to draw a list of scan lines
 18h	DWORD	-> function "DrawRect" to draw a solid rectangle
 1Ch	DWORD	-> function "DrawLine" to draw a solid line
 20h	DWORD	-> function "DrawPattScan" to draw a patterned scan line
 24h	DWORD	-> function "BitBlt" to perform screen-to-screen BitBLT
 28h	DWORD	-> "TransBitBlt" to perform transparent screen-to-screen BitBLT
 2Ch	DWORD	-> "MonoBitBlt" to monochrome expansion screen-to-screen BitBLT
 30h	DWORD	-> function "SetCursor" to download hardware cursor image
 34h	DWORD	-> function "SetCursorPos" to set hardware cursor position
 38h	DWORD	-> function "SetCursorColor" to set hardware cursor color
 3Ch	DWORD	-> function "ShowCursor" to show/hide hardware cursor
 40h	DWORD	-> function "WaitTillIdle" to wait until graphics engine idle
 44h	DWORD	-> "EnableDirectAccess" to enable direct framebuffer access
 48h	DWORD	-> "DisableDirectAccess" to disable direct framebuffer access
 4Ch	DWORD	-> "BankSwitchCB" bank-switching callback function
		(set by application, may simply point at 32-bit VBE 2.0 bank
		  switching entry point)
 50h	WORD	"VidMemSel" selector for video memory (must be set by app)
 52h	WORD	"IOPortsOff" offset of I/O ports table in context buffer
 54h	WORD	"IOMemoryOff" offset of I/O memory table in context buffer
 56h	WORD	"IOMemSel1" selector for first I/O memory area specified by
		  I/O memory table (must be set by application)
 58h	WORD	"IOMemSel2" selector for second I/O memory area
 5Ah	WORD	"IOMemSel3" selector for third I/O memory area
 5Ch	WORD	"IOMemSel4" selector for fourth I/O memory area
 5Eh  N BYTEs	device-specific state buffer
      N WORDs	I/O port access table (list of ports, last entry is FFFFh)
      N DWORDs	I/O memory access table (list of physical-address/length pairs,
		  last entry is FFFFFFFFh)
      N BYTEs	32-bit code for VBE/AF v1.0P function
Notes:	all function pointers are offsets into the 32-bit code within the
	  context buffer, and should be updated to point at the actual
	  functions after the application has copied the buffer from the
	  real-mode memory used for the interrupt call into its own flat-model
	  memory space
	any functions which are not supported by the hardware have function
	  pointers which are set to 00000000h initially