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