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