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│bcpmg│ │
              └─┴─┴╥┴╥┴╥┴╥┴╥┴╥┘ 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│dpgtsc│
              └─┴─┴╥┴╥┴╥┴╥┴╥┴╥┘ 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
                                    -♦-