INT 10,1B - Video BIOS Functionality and
State Information (MCGA/VGA)
AH = 1B
BX = implementation type (must be zero)
ES:DI = pointer to 64 byte buffer
on return:
AL = 1B
ES:DI = pointer to updated buffer (see below)
- returns static and dynamic information about the current
state and capabilities of the current video system
- bytes 0-3 of the dynamic data table at ES:DI contain a far
pointer to the video static information table
Video BIOS Dynamic Functionality State Table (MCGA/VGA)
Dynamic Video State Table
00 dword address of static functionality table
04 byte video mode
05 word number of columns
07 word length of displayed video buffer (# bytes)
09 word start address of upper left corner of video buffer
0B 16bytes cursor position table for 8 pages (col,row)
1B byte cursor end line
1C byte cursor start line
1D byte active video page
1E word I/O port for CRTC address register
20 byte current value of CRTC 3x8 register
21 byte current value of CRTC 3x9 register
22 byte number of displayed character rows
23 word height of character matrix (points)
25 byte active display combination code
26 byte inactive display combination code
27 word number of displayed colors (mono = 0)
29 byte number of supported video pages
2A byte raster scan lines 0=200, 1=350, 2=400, 3=480
2B byte text character table used
2C byte text character table used
2D byte other state information:
│7│6│5│4│3│2│1│0│ State Information byte at offset 2D
│ │ │ │ │ │ │ └─── 1 = all modes active (MCGA always 0)
│ │ │ │ │ │ └──── 1 = gray scale summing enabled
│ │ │ │ │ └───── 1 = monochrome display attached
│ │ │ │ └────── 1 = default palette loading disabled
│ │ │ └─────── 1 = cursor emulation enabled
│ │ └──────── 1 = blinking attribute enabled
└─┴───────── 1 = reserved
2E 3bytes reserved
31 byte video RAM available 0=64K, 1=128K, 2=192K, 3=256K
32 byte save area status
│7│6│5│4│3│2│1│0│ Save Area Status
│ │ │ │ │ │ │ └─── 1 = two text char sets are active
│ │ │ │ │ │ └──── 1 = dynamic save area is active
│ │ │ │ │ └───── 1 = text char set override is active
│ │ │ │ └────── 1 = graphics char set is override active
│ │ │ └─────── 1 = palette override is active
│ │ └──────── 1 = display combination code ext. active
└─┴───────── 1 = reserved
33 dword reserved
Video BIOS Static Functionality Table (EGA/VGA)
│7│6│5│4│3│2│1│0│ Video modes supported, byte at offset 00
│ │ │ │ │ │ │ └─── 1 = mode 0
│ │ │ │ │ │ └──── 1 = mode 1
│ │ │ │ │ └───── 1 = mode 2
│ │ │ │ └────── 1 = mode 3
│ │ │ └─────── 1 = mode 4
│ │ └──────── 1 = mode 5
│ └───────── 1 = mode 6
└────────── 1 = mode 7
│7│6│5│4│3│2│1│0│ Video modes supported, byte at offset 01
│ │ │ │ │ │ │ └─── 1 = mode 8
│ │ │ │ │ │ └──── 1 = mode 9
│ │ │ │ │ └───── 1 = mode A
│ │ │ │ └────── 1 = mode B
│ │ │ └─────── 1 = mode C
│ │ └──────── 1 = mode D
│ └───────── 1 = mode E
└────────── 1 = mode F
│7│6│5│4│3│2│1│0│ Video modes supported, byte at offset 02
│ │ │ │ │ │ │ └─── 1 = mode 10
│ │ │ │ │ │ └──── 1 = mode 11
│ │ │ │ │ └───── 1 = mode 12
│ │ │ │ └────── 1 = mode 13
└─┴─┴─┴─────── reserved
03 dword reserved
07 byte scan lines supported in text modes
│7│6│5│4│3│2│1│0│ Scan lines supported, byte at offset 07
│ │ │ │ │ │ │ └─── 1 = 200 lines
│ │ │ │ │ │ └──── 1 = 350 lines
└─┴─┴─┴─┴─┴───── 1 = 400 lines
08 byte max number of displayable text character sets
09 byte # of text definition tables in char generator RAM
0A byte other capability flags
│7│6│5│4│3│2│1│0│ Other flags, byte at offset 0A
│ │ │ │ │ │ │ └─── 1 = all modes (0 on MCGA)
│ │ │ │ │ │ └──── 1 = gray scale summing
│ │ │ │ │ └───── 1 = character set loading
│ │ │ │ └────── 1 = default palette loading
│ │ │ └─────── 1 = cursor emulation
│ │ └──────── 1 = 64 color palette
│ └───────── 1 = video DAC loading
└────────── 1 = DAC controlled by ACCS
0B byte other capability flags
│7│6│5│4│3│2│1│0│ Other flags, byte at offset 0B
│ │ │ │ │ │ │ └─── 1 = light pen support
│ │ │ │ │ │ └──── 1 = save/restore video state
│ │ │ │ │ └───── 1 = blinking/background intensity
│ │ │ │ └────── 1 = display combination code
└─┴─┴─┴─────── reserved
0C word reserved
0E byte save area capabilities
│7│6│5│4│3│2│1│0│ save area capabilities at offset 0E
│ │ │ │ │ │ │ └──── 1 = multiple text character sets
│ │ │ │ │ │ └───── 1 = dynamic save area
│ │ │ │ │ └────── 1 = text character set override
│ │ │ │ └─────── 1 = graphics character set override
│ │ │ └──────── 1 = palette override
│ │ └───────── 1 = display combination code extension
└─┴────────── reserved
0F byte reserved