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