VGA Dynamic State Table
BIOS function INT 10H 1bH provides a mechanism for obtaining a bunch of
information about the capabilities of and the current state of the active
display. That information is generated dynamically when called and
returned in the 64-byte buffer addressed by ES:DI. It is formatted as
follows:
VgaDynamicStateRec
Offset Size Contents
▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
+0 4 pfrFnality address of a VgaStaticFnalityRec. This is a
static (unchanging) table in ROM that describes
your VGA system's capabilities.
+4 1 bCurMode current video mode
+5 2 bCrtClms screen columns (e.g., 80)
+7 2 wCrtBufLen size of displayed portion of video buffer
+9 2 pCrtPgStart starting address (offset) in regen buffer
+0bH 16 awCrsrPos cursor positions for pages 0-7 (row,column,
row,column,...)
+1bH 2 wCrsrType cursor shape (start/end) as CX in INT 10H 01H
+1dH 1 bCurPg current active video page
+1eH 2 wCrtcPort CGA/MDA CRT ctrlr port addr (3b?=mono; 3d?=color)
+20H 1 bModeSetReg current setting of 3?8 reg (CGA Mode Select reg)
+21H 1 bClrSetReg current setting of 3?9 reg (CGA Color Select reg)
+22H 1 bCrtRows character rows on screen
+23H 2 bCrtPoints height of character matrix (scan lines per
character cell; e.g., 14 or 8)
+25H 1 bCurDcc active Display Combination Code (see INT 10H 1aH)
+26H 1 bAltDcc alternate DCC (00 if only one video system)
+27H 2 wMaxClrs colors in current video mode (0000=monochrome)
+29H 1 bMaxPgs count of display pages in current video mode
+2aH 1 bScanLnsCode scan lines in current video mode:
0=200, 1=350, 2=400, 3=480
+2bH 1 bFont1 primary font block (based on INT 10H 1103H)
+2cH 1 bFont2 secondary font block
+2dH 1 rMiscFlags miscellaneous state information
┌7┬6┬5┬4┬3┬2┬1┬0┐
│0 0│b│c│p│m│g│ │
└─┴─┴╥┴╥┴╥┴╥┴╥┴╥┘ bit mask
║ ║ ║ ║ ║ ╚══► 0: 01H all modes on all displays active
║ ║ ║ ║ ╚════► 1: 02H gray-scale summing is active
║ ║ ║ ╚══════► 2: 04H monochrome display attached
║ ║ ╚════════► 3: 08H default palette loading disabled
║ ╚══════════► 4: 10H cursor emulation active
╚════════════► 5: 20H blinking enabled; 0=bold bkgnd
+2eH 3 res (reserved)
+31H 1 bVidMemCode video memory available:
0=64K, 1=128K, 2=192K, 3=256K
+32H 1 rSaveStatus status of EgaSavePtrRec information
┌7┬6┬5┬4┬3┬2┬1┬0┐
│0 0│d│p│g│t│s│c│
└─┴─┴╥┴╥┴╥┴╥┴╥┴╥┘ bit mask
║ ║ ║ ║ ║ ╚══► 0: 01H 512-character set active
║ ║ ║ ║ ╚════► 1: 02H dynamic save area active
║ ║ ║ ╚══════► 2: 04H text font override active
║ ║ ╚════════► 3: 08H graphics font override active
║ ╚══════════► 4: 10H palette override active
╚════════════► 5: 20H DCC extension active
+33H 0dH res (reserved)
64 size of a VgaDynamicStateRec
See Also: INT 10H 1aH
VgaStaticFnalityRec
VGA Data Areas
VGA I/O Ports
VGA
-♦-