Format of VBE/AF v1.0P Device Context buffer |
Offset | Size | Description | ||
---|---|---|---|---|
00h |
WORD |
maximum X coordinate in frame buffer (0 = left edge)
|
||
02h |
WORD |
maximum Y coordinate in frame buffer (0 = top edge)
|
||
04h |
DWORD |
![]() |
||
08h |
DWORD |
![]() |
||
0Ch |
DWORD |
![]() |
||
10h |
DWORD |
![]() |
||
14h |
DWORD |
![]() |
||
18h |
DWORD |
![]() |
||
1Ch |
DWORD |
![]() |
||
20h |
DWORD |
![]() |
||
24h |
DWORD |
![]() |
||
28h |
DWORD |
![]() |
||
2Ch |
DWORD |
![]() |
||
30h |
DWORD |
![]() |
||
34h |
DWORD |
![]() |
||
38h |
DWORD |
![]() |
||
3Ch |
DWORD |
![]() |
||
40h |
DWORD |
![]() |
||
44h |
DWORD |
![]() |
||
48h |
DWORD |
![]() |
||
4Ch |
DWORD |
![]() |
||
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 BYTEs | I/O port access table (list of ports, last entry is FFFFh) | |||
N BYTEs | 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 |
Note: |
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. |