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
- -

VGA Dynamic State Table