Table des matières

MSDOS - Interrupt List 10h

CPU-generated (80286+) - COPROCESSOR ERROR

generated by the CPU when the -ERROR pin is asserted by the coprocessor

AT's and clones usually wire the coprocessor to use IRQ13, but not all get it right

SeeAlso: INT 09“hardware”,INT 75

00xxh - VIDEO - SET VIDEO MODE

	AH = 00h
	AL = mode (see below)
Return: AL = video mode flag (Phoenix BIOS)
	    20h mode > 7
	    30h modes 0-5 and 7
	    3Fh mode 6
	AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)

IBM standard modes do not clear the screen if the high bit of AL is set (EGA or higher only)

the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA

the installation check for Ahead adapters is the signature “AHEAD” at C000h:0025h

the installation check for ATI adapters is the signature “761295520” at C000h:0031h; the byte at C000h:0043h indicates the chipset revision:

the two bytes at C000h:0040h indicate the adapter type

the byte at C000h:0042h contains feature flags

the byte at C000h:0044h contains additional feature flags if chipset byte > 30h

the installation check for Genoa video adapters is the signature 77h XXh 99h 66h at C000h:0037h, where XXh is

the installation check for Paradise adapters is the signature “VGA=” at C000h:007Dh

SeeAlso: AX=0070h,AX=007Eh,AX=10F0h,AX=6F05h,AH=FFh“GO32”,INT 5F/AH=00h

SeeAlso: INT 62/AX=0001h

Values for video mode:

text /
grph
text
resol
pixel
box
pixel
resol
colors display
pages
screen
addr
system
00h T 40×25 8×8 16gray 8 B800 CGA,PCjr
T 40×25 8×14 16gray 8 B800 EGA
T 40×25 8×16 16 8 B800 MCGA
T 40×25 9×16 16 8 B800 VGA
01h T 40×25 8×8 16 8 B800 CGA,PCjr
T 40×25 8×14 16 8 B800 EGA
T 40×25 8×16 16 8 B800 MCGA
T 40×25 9×16 16 8 B800 VGA
02h T 80×25 8×8 16gray 4 B800 CGA,PCjr
T 80×25 8×14 16gray 4 B800 EGA
T 80×25 8×16 16 4 B800 MCGA
T 80×25 9×16 16 4 B800 VGA
03h T 80×25 8×8 16 4 B800 CGA,PCjr
T 80×25 8×14 16 4 B800 EGA
T 80×25 8×16 16 4 B800 MCGA
T 80×25 9×16 16 4 B800 VGA
04h G 40×25 8×8 320×200 4 B800 CGA,PCjr,EGA,MCGA,VGA
05h G 40×25 8×8 320×200 4gray B800 CGA,PCjr,EGA
G 40×25 8×8 320×200 4 B800 MCGA,VGA
06h G 80×25 8×8 640×200 2 B800 CGA,PCjr,EGA,MCGA,VGA
07h T 80×25 9×14 mono var B000 MDA,Hercules,EGA
T 80×25 9×16 mono B000 VGA
08h G 20×25 8×8 160×200 16 PCjr, Tandy 1000
T 132×25 8×8 16 B800 ATI EGA/VGA Wonder [1]
T 132×25 8×8 mono B000 ATI EGA/VGA Wonder [1]
G 90×43 8×8 720×352 mono B000 Hercules + MSHERC.COM
09h G 40×25 8×8 320×200 16 PCjr
0Ah G 80×25 8×8 640×200 4 PCjr, Tandy 1000
0Bh reserved (used internally by EGA BIOS)
G 640×200 16 Tandy 1000 SL/TL
0Ch reserved (used internally by EGA BIOS)
0Dh G 40×25 8×8 320×200 16 8 A000 EGA,VGA
0Eh G 80×25 8×8 640×200 16 4 A000 EGA,VGA
0Fh G 80×25 8×14 640×350 mono 2 A000 EGA,VGA
10h G 80×25 8×14 640×350 4 2 A000 64k EGA
G 640×350 16 A000 256k EGA,VGA
11h G 80×30 8×16 640×480 mono A000 VGA,MCGA,ATI EGA,ATI VIP
12h G 80×30 8×16 640×480 16/256k A000 VGA,ATI VIP
G 80×30 8×16 640×480 16/64 A000 ATI EGA Wonder
G 640×480 16 UltraVision+256K EGA
13h G 40×25 8×8 320×200 256/256k A000 VGA,MCGA,ATI VIP
14h T 132×25 Nx16 16 XGA, IBM Enhanced VGA [2]
G 80×25 8×8 640×200 Lava Chrome II EGA
G 640×400 16 Tecmar VGA/AD
15h G 80×25 8×14 640×350 Lava Chrome II EGA
16h G 80×25 8×14 640×350 Lava Chrome II EGA
G 800×600 16 Tecmar VGA/AD
17h G 80×34 8×14 640×480 Lava Chrome II EGA
T 132×25 Tecmar VGA/AD
18h T 132×44 8×8 mono Tseng Labs EVA
T 132×44 8×8 16/256 2 B000 Tseng ET4000 chipset
G 80×34 8×14 640×480 Lava Chrome II EGA
G 1 024×768 16 Tecmar VGA/AD
19h T 132×25 8×14 mono Tseng Labs EVA
T 132×25 8×14 16/256 4 B000 Tseng ET4000 chipset
1Ah T 132×28 8×13 mono Tseng Labs EVA
T 132×28 8×13 16/256 4 B000 Tseng ET4000 chipset
G 640×350 256 Tecmar VGA/AD
1Bh G 640×400 256 Tecmar VGA/AD
1Ch G 640×480 256 Tecmar VGA/AD
1Dh G 800×600 256 Tecmar VGA/AD
20h G 240×128 B000 HP 95LX
21h T 132×60 16 2 B800 Tseng ET4000 chipset
G 80×43 8×8 720×348 mono B000 DESQview 2.x+Hercules [3]
22h T 132×44 8×8 Tseng Labs EVA
T 132×44 8×8 16/256 2 B800 Tseng ET4000 chipset
T 132×44 8×8 Ahead Systems EGA2001
T 132×44 8×8 16 2 B800 Ahead B
T 132×44 16 Orchid Prodesigner VGA
T 132×43 Allstar Peacock (VGA)
G 80×43 8×8 720×348 mono B800 DESQview 2.x+Hercules [3]
23h T 132×25 6×14 Tseng Labs EVA
T 132×25 8×14 16/256 4 B800 Tseng ET4000 chipset
T 132×25 8×14 Ahead Systems EGA2001
T 132×25 8×14 16 4 B800 Ahead B
T 132×25 8×8 16 B800 ATI EGA Wonder,ATI VIP
T 132×28 Allstar Peacock (VGA)
T 132×28 16 Orchid Prodesigner VGA
24h T 132×28 6×13 Tseng Labs EVA
T 132×28 8×13 16/256 4 B800 Tseng ET4000 chipset
T 132×28 8×12 16 1 B800 Ahead B
T 132×25 Allstar Peacock (VGA)
T 132×25 16 Orchid Prodesigner VGA
25h G 80×60 8×8 640×480 Tseng Labs EVA
G 80×60 8×8 640×480 16/256 1 A000 Tseng ET4000 chipset
G 640×480 16 VEGA VGA
G 80×60 8×8 640×480 16 A000 Orchid Prodesigner VGA
G 80×60 8×8 640×480 16 1 A000 Ahead B (same as 26h)
G 640×480 16 NEC GB-1
26h T 80×60 8×8 Tseng Labs EVA
T 80×60 8×8 16/256 2 B800 Tseng ET4000 chipset
T 80×60 Allstar Peacock (VGA)
T 80×60 16 Orchid ProDesigner VGA
G 80×60 8×8 640×480 Ahead Systems EGA2001
G 80×60 8×8 640×480 16 1 A000 Ahead B (same as 25h)
27h T 132×25 8×8 mono B000 ATI EGA Wonder,ATI VIP
G 720×512 16 VEGA VGA
G 720×512 16 Genoa
28h T ???x??? VEGA VGA
29h G 800×600 16 VEGA VGA
G 100×37 8×16 800×600 16 A000 Orchid
G 800×600 16 A000 STB,Genoa,Sigma
G 800×600 16 Allstar Peacock (VGA)
G 100×37 8×16 800×600 16/256 1 A000 Tseng ET3000/4000 chipset
G 800×600 ??? EIZO MDB10
2Ah T 100×40 Allstar Peacock (VGA)
T 100×40 8×16 16 Orchid Prodesigner VGA
T 100×40 8×15 16/256 4 B800 Tseng ET4000 chipset
2Dh G 640×350 256 VEGA VGA
G 640×350 256/256k A000 Orchid, Genoa, STB
G 80×25 8×14 640×350 256/256k 1 A000 Tseng ET3000/4000 chipset
2Eh G 640×480 256 VEGA VGA
G 80×30 8×16 640×480 256/256k A000 Orchid
G 640×480 256/256k A000 STB,Genoa,Sigma
G 80×30 8×16 640×480 256/256k 1 A000 Tseng ET3000/4000 chipset
2Fh T 160×50 8×8 1 280×400 16 4 B800 Ahead B (Wizard/3270)
G 720×512 256 VEGA VGA
G 720×512 256 Genoa
G 80×25 8×16 640×400 256/256k 1 A000 Tseng ET4000 chipset
30h G 800×600 256 VEGA VGA
G 100×37 8×16 800×600 256/256k A000 Orchid
G 800×600 256/256k A000 STB,Genoa,Sigma
G 720×350 2 3270 PC
G 800×600 256 Cardinal
G ???x??? B800 AT&T 6300
G 100×37 8×16 800×600 256/256k 1 A000 Tseng ET3000/4000 chipset
32h T 80×34 8×10 16 4 B800 Ahead B (Wizard/3270)
33h T 132×44 8×8 16 B800 ATI EGA Wonder,ATI VIP
T 80×34 8×8 16 4 B800 Ahead B (Wizard/3270)
34h T 80×66 8×8 16 4 B800 Ahead B (Wizard/3270)
36h G 960×720 16 VEGA VGA
G 960×720 16 STB
G 960×720 16 Tseng ET3000 only
37h G 1 024×768 16 VEGA VGA
G 128×48 8×16 1 024×768 16 A000 Orchid
G 1 024×768 16 A000 STB,Genoa,Sigma
G 1 024×768 16 Definicon
G 128×48 8×16 1 024×768 16 1 A000 Tseng ET3000/4000
T 132×44 8×8 mono B800 ATI EGA Wonder,ATI VIP
38h G 1 024×768 256 STB VGA/EM-16 Plus (1MB)
G 128×48 8×16 1 024×768 256/256k 1 A000 Tseng ET4000 chipset
G 1 024×768 256 Orchid ProDesigner II
3Dh G 1 280×1024 16 Definicon
G 128×64 8×16 1 280×1024 16 1 A000 Tseng ET4000 BIOS v3.00[6]
3Eh G 1 280×961 16 Definicon
40h G 80×25 8×16 640×400 2 1 B800 AT&T 6300, AT&T VDC600
G 80×25 8×16 640×400 2 1 B800 Compaq Portable
T 80×43 VEGA VGA, Tecmar VGA/AD
T 80×43 Video7 V-RAM VGA
T 80×43 Tatung VGA
T 100×30 16 MORSE VGA
41h G 640×200 16 1 AT&T 6300
T 132×25 VEGA VGA
T 132×25 Tatung VGA
T 132×25 Video7 V-RAM VGA
T 100×50 16 MORSE VGA
42h G 80×25 8×16 640×400 16 AT&T 6300, AT&T VDC600
T 132×43 VEGA VGA
T 132×43 Tatung VGA
T 132×43 Video7 V-RAM VGA
T 80×34 9×10 4 4 B800 Ahead B (Wizard/3270)
T 100×60 16 MORSE VGA
43h G 640×200 of 640×400 viewport AT&T 6300 (unsupported)
T 80×60 VEGA VGA
T 80×60 Tatung VGA
T 80×60 Video7 V-RAM VGA
T 80×45 9×8 4 4 B800 Ahead B (Wizard/3270)
T 100×75 16 MORSE VGA
44h disable VDC and DEB output AT&T 6300
T 100×60 VEGA VGA
T 100×60 Tatung VGA
T 100×60 Video7 V-RAM VGA
45h T 132×28 Tatung VGA
T 132×28 Video7 V-RAM VGA
46h G 100×40 8×15 800×600 2 AT&T VDC600
47h G 100×37 8×16 800×600 16 AT&T VDC600
48h G 80×50 8×8 640×400 2 B800 AT&T 6300, AT&T VDC600
49h G 80×30 8×16 640×480 Lava Chrome II EGA
4Dh T 120×25 VEGA VGA
4Eh T 120×43 VEGA VGA
4Fh T 132×25 VEGA VGA
T 132×60 some Oak Tech VGA
50h G 80×30 8×16 640×480 16 Paradise EGA-480
T 80×30 8×16 16/256k B800 Trident TVGA 8800/8900
T 80×34 Lava Chrome II EGA
T 80×43 mono VEGA VGA
G 640×480 mono??? Taxan 565 EGA
T 132×25 9×14 mono Ahead Systems EGA2001
T 132×25 9×14 4 4 B800 Ahead B
T 132×25 8×14 16 8 B800 OAK Technologies VGA-16
T 132×30 16 MORSE VGA
51h T 80×30 8×16 Paradise EGA-480
T 80×30 Lava Chrome II EGA
G 80×34 8×14 640×480 16 ATI EGA Wonder
T 80×43 8×11 16/256k B800 Trident TVGA 8800/8900
T 132×25 mono VEGA VGA
T 132×43 8×8 16 5 B800 OAK Technologies VGA-16
T 132×28 9×12 4 4 B800 Ahead B
T 132×50 16 MORSE VGA
52h T 80×60 Lava Chrome II EGA
T 80×60 8×8 16/256k B800 Trident TVGA 8800/8900
G 94×29 8×14 752×410 16 ATI EGA Wonder
G 100×75 8×8 800×600 16 1 A000 OAK Technologies VGA-16
T 132×43 mono VEGA VGA
T 132×44 9×8 mono Ahead Systems EGA2001
T 132×44 9×8 4 2 B800 Ahead B
T 132×60 16 MORSE VGA
53h G 100×40 8×14 800×560 16 ATI EGA Wonder,ATI VIP
G 640×480 256 Oak VGA
T 132×25 8×14 16/256k B800 Trident TVGA 8800/8900
T 132×43 Lava Chrome II EGA
T 80×60 16 MORSE VGA
G AX PC
54h G 100×42 8×14 800×600 16 A000 ATI EGA Wonder, VGA Wonder
G 800×600 256 Oak VGA
T 132×25 Lava Chrome II EGA
T 132×30 8×16 16/256k B800 Trident TVGA 8800/8900
T 132×43 8×8 Paradise EGA-480
T 132×43 7×9 16/256k B800 Paradise VGA
T 132×43 8×9 16/256k B800 Paradise VGA on multisync
T 132×43 Taxan 565 EGA
T 132×43 AST VGA Plus
T 132×43 Hewlett-Packard D1180A
T 132×43 7×9 16 AT&T VDC600
55h T 80×66 8×8 16/256k A000 ATI VIP
T 132×25 8×14 Paradise EGA-480
T 132×25 7×16 16/256k B800 Paradise VGA
T 132×25 8×16 16/256k B800 Paradise VGA on multisync
T 132×25 Taxan 565 EGA
T 132×25 AST VGA Plus
T 132×25 Hewlett-Packard D1180A
T 132×25 7×16 16 AT&T VDC600
T 132×43 8×11 16/256k B800 Trident TVGA 8800/8900
G 94×29 8×14 752×410 Lava Chrome II EGA
G 128×48 8×16 1 024×768 16/256k A000 ATI VGA Wonder v4+ [4]
G 1 024×768 16/256h ATI VGA Wonder Plus
56h T 132×43 8×8 3??? 2 B000 NSI Smart EGA+
T 132×43 7×9 4 B000 Paradise VGA
T 132×43 8×9 4 B000 Paradise VGA on multisync
T 132×43 mono Taxan 565 EGA
T 132×43 7×9 2 AT&T VDC600
T 132×60 8×8 16/256k B800 Trident TVGA 8800/8900
G 1 024×768 16 Oak VGA
57h T 132×25 8×14 3??? 4 B000 NSI Smart EGA+
T 132×25 7×16 4 B000 Paradise VGA
T 132×25 8×16 4 B000 Paradise VGA on multisync
T 132×25 mono Taxan 565 EGA
T 132×25 7×16 2 AT&T VDC600
T 132×25 9×14 16/256k B800 Trident TVGA 8800/8900
58h G 100×75 8×8 800×600 16/256k A000 Paradise VGA
G 100×75 8×8 800×600 16 AT&T VDC600
T 80×33 8×14 16 B800 ATI EGA Wonder,ATI VIP
G 800×600 16 AST VGA Plus, Compaq VGA
G 800×600 16 Dell VGA
G 800×600 16 Hewlett-Packard D1180A
G 800×600 ??? ELT VGA PLUS 16
T 132×30 9×16 16/256k B800 Trident TVGA 8800/8900
59h G 100×75 8×8 800×600 2 A000 Paradise VGA
G 100×75 8×8 800×600 2 AT&T VDC600
T 80×66 8×8 16/256k A000 ATI VIP
G 800×600 2 AST VGA Plus, Compaq VGA
G 800×600 2 Dell VGA
G 800×600 2 Hewlett-Packard D1180A
T 132×43 9×11 16/256k B800 Trident TVGA 8800/8900
5Ah T 132×60 9×8 16/256k B800 Trident TVGA 8800/8900
5Bh G 800×600 16 Maxxon, SEFCO TVGA, Imtec
G 640×350 256 Genoa 6400
T 80×30 8×16 B800 ATI VGA Wonder (undoc)
G 100×75 8×8 800×600 16/256k A000 Trident TVGA 8800, 8900
G 800×600 ??? Vobis MVGA
5Ch G 640×400 256 Logix, ATI Prism Elite
G 640×400 256 Maxxon, SEFCO TVGA, Imtec
G 80×25 8×16 640×400 256/256 k A000 Zymos Poach, Hi Res 512
G 80×25 8×16 640×400 256/256 k A000 Trident TVGA 8800/8900
G 640×480 256 Genoa 6400
5Dh G 640×480 256 Logix, ATI Prism Elite
G 640×480 256 Maxxon, SEFCO TVGA, Imtec
G 80×30 8×16 640×480 256/256 k A000 Zymos Poach, Hi Res 512
G 80×30 8×16 640×480 256/256 k A000 Trident TVGA 8800 (512K)
5Eh G 640×400 256 Paradise VGA,VEGA VGA
G 640×400 256 AST VGA Plus
G 640×400 256 Compaq VGA, Dell VGA
G 80×25 8×16 640×400 256 AT&T VDC600
G 800×600 16 Logix, ATI Prism Elite
G 800×600 256 Genoa 6400
G 100×75 8×8 800×600 256/256 k A000 Zymos Poach, Trident 8900
G 100×75 8×8 800×600 256/256 k A000 Hi Res 512
5Fh G 640×480 256 Paradise VGA
G 640×480 256 AST VGA Plus
G 640×480 256 Compaq VGA, Dell VGA
G 640×480 256 Hewlett-Packard D1180A
G 80×30 8×16 640×480 256 AT&T VDC600 (512K)
G 1 024×768 16 Logix, ATI Prism Elite
G 1 024×768 16 Maxxon, Genoa 6400, Imtec
G 128×48 8×16 1 024×768 16/256 k A000 Zymos Poach, Hi Res 512
G 128×48 8×16 1 024×768 16/256 k A000 Trident TVGA 88/8900 512K
60h G 80x??? ???x400 Corona/Cordata BIOS 4.10+
G 752×410 VEGA VGA
G 752×410 16 Tatung VGA
G 752×410 16 Video7 V-RAM VGA
G 80×25 8×16 640×400 256 1 A000 Ahead A, Ahead B
G 128×48 8×16 1 024×768 4/256 k A000 Trident TVGA 8900
T 132×25 8×14 16/64 8 B800 Quadram Ultra VGA
61h G ???x400 Corona/Cordata BIOS 4.10+
G 720×540 VEGA VGA
G 720×540 16 Tatung VGA
G 720×540 16 Video7 V-RAM VGA
G 80×25 8×16 640×400 256 A000 ATI VGA Wonder,VGA Wonder+
G 80×30 8×16 640×480 256 1 A000 Ahead A, Ahead B (512K)
G 96×64 8×16 768×1024 16/256 k A000 Trident TVGA 88/8900 512K
T 132×29 8×12 16/64 8 B800 Quadram Ultra VGA
62h G 800×600 VEGA VGA
G 800×600 16 Tatung VGA
G 800×600 16 Video7 V-RAM VGA
G 80×30 8×16 640×480 256 A000 ATI VGA Wonder,VGA Wonder+
G 100×75 8×8 800×600 256 1 A000 Ahead A, Ahead B (512K)
G 128×48 8×16 1 024×768 256/256 k A000 Trident TVGA 8900, Zymos
T 132×32 8×11 16/64 6 B800 Quadram Ultra VGA
63h G 1 024×768 2 Video7 V-RAM VGA
G 100×42 8×14 800×600 256 A000 ATI VGA Wonder,VGA Wonder+
G 128×48 7×16 1 024×768 256 1 A000 Ahead B (1MB)
T 132×44 8×8 16/64 5 B800 Quadram Ultra VGA
G 720×540 16 MORSE VGA
64h G 1 024×768 4 Video7 V-RAM VGA
G 128×48 8×16 1 024×768 256 A000 ATI VGA Wonder Plus
G 800×600 16 MORSE VGA
G 800×600 ??? SAMPO-Mira VGA
65h G 1 024×768 16 Video7 V-RAM VGA
G 128×48 8×16 1 024×768 16 A000 ATI VGA Wonder
66h G 640×400 256 Tatung VGA
G 640×400 256 Video7 V-RAM VGA
67h G 640×480 256 Video7 V-RAM VGA
G 128×48 8×16 1 024×768 4 A000 ATI VGA Wonder
69h G 720×540 256 Video7 V-RAM VGA
6Ah G 800×600 16 A000 VESA standard interface
G 800×600 16 Genoa 6400
G 800×600 16 A000 Ahead A
G 100×75 8×8 800×600 16 1 A000 Ahead B (VESA) (see 71h)
G 800×600 16 Zymos Poach, Hi Res 512
G 800×600 16 Epson LT-386SX in CRT Mode
G 800×600 16 Compuadd 316SL in CRT Mode
G 100×42 8×14 800×600 A000 ATI VGA Wonder (undoc)
70h G 800×600 16 C&T chipset, Cardinal
G 90×28 8×14 720×392 16 1 A000 Ahead B
T 40×25 8×8 16 8 B800 Quadram (CGA double scan)
extended mode set (see AX=0070h) Everex Micro Enhancer EGA
71h G 100×35 8×16 800×600 16of64 A000 NSI Smart EGA+
G 960×720 16 C&T chipset, Cardinal
G 100×75 8×8 800×600 16 1 A000 Ahead B (same as 6Ah)
T 80×25 8×8 16 8 B800 Quadram (CGA double scan)
72h G 1 024×768 16 C&T chipset, Cardinal
T 80×60 8×8 16 B800 Quadram Ultra VGA
G 640×480 32768 A000 ATI
73h G 80×60 8×8 640×480 16??? A000 Quadram Ultra VGA
74h G 640×400 2 B800 Toshiba 3100 AT&T mode
G 128×48 8×16 1 024×768 16 1 A000 Ahead A, Ahead B (512K)
T 80×66 8×8 16 B800 Quadram Ultra VGA
75h G 128×48 8×16 1 024×768 4 1 A000 Ahead B
G 80×66 640×528 16??? A000 Quadram Ultra VGA
G 640×528 16 Geno Super EGA Hirez+
76h G 128×48 8×16 1 024×768 2 1 A000 Ahead B
T 94×29 8×14 16 B800 Quadram Ultra VGA
77h G 94×29 752×410 16??? A000 Quadram Ultra VGA
G 752×410 16 Genoa Super EGA Hirez+
78h G 640×400 256 STB VGA/EM-16 Plus
G 640×400 256 Cardinal, C&T chipset
T 100×75 8×8 16 B800 Quadram Ultra VGA
79h G 640×480 256 Cardinal, C&T chipset
G 100×75 800×600 16??? A000 Quadram Ultra VGA
G 800×600 16 Genoa Super EGA Hirez+
7Ah G 720×540 256 C&T chipset, Cardinal
T 114×60 8×8 16 B800 Quadram Ultra VGA
7Bh G 800×600 256 C&T chipset, Cardinal
G 114×60 912×480 16??? A000 Quadram Ultra VGA
G 912×480 16 Genoa Super EGA Hirez+
7Ch G 512×512 16 Genoa
7Dh G 512×512 256 Genoa
7Eh special mode set (see AX=007Eh) Paradise VGA, AT&T VDC600
7Fh special function set (see AX=007Fh) Paradise VGA, AT&T VDC600
82h T 80×25 B&W AT&T VDC overlay mode [5]
83h T 80×25 AT&T VDC overlay mode [5]
86h G 640×200 B&W AT&T VDC overlay mode [5]
88h G 90×43 8×8 720×352 mono B000 Hercules + MSHERC.COM
C0h G 640×400 2/prog pallet AT&T VDC overlay mode [5]
C4h disable output AT&T VDC overlay mode [5]
D0h G 640×400 2 B800 DEC VAXmate AT&T mode

[1] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.

SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h, otherwise to mode 23h, thus selecting the appropriate (monochrome or color) 132×25 character mode.

for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded resident

[2] early XGA boards support 132-column text but do not have this BIOS mode

[3] DESQview intercepts calls to change into these two modes (21h is page 0, 22h is page 1) even if there is no Hercules graphics board installed

[4] ATI BIOS v4-1.00 has a text-scrolling bug in this mode

[5] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h, 40h, or 44h

[6] BIOS text support is broken in this undocumented mode; scrolling moves only about 1/3 of the screen (and does even that portion incorrectly), while screen clears only clear about 3/4.

0070h - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET

	AX = 0070h
	BL = mode (see below)

SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh“GO32”

Values for video mode:

text
graph
text
resol
pixel
box
pixel
resol
colors disp
page
screen
addr
monitor adapter
00h G 640×480 16 multsync EGA,VGA
01h G 752×410 16 multsync EGA,VGA
02h G 800×600 16 multsync EGA,VGA
03h T 80×34 multsync EGA,VGA
04h T 80×60 multsync EGA,VGA
05h T 94×29 multsync EGA only
06h T 94×51 multsync EGA only
07h T 100×43 8×14 16 VGA only
08h T 100×75 8×8 16 VGA only
09h T 80×44 EGA EGA only
0Ah T 132×25 EGA EGA,VGA
0Bh T 132×44 EGA EGA,VGA
0Ch T 132×25 CGA EGA only
0Dh T 80×44 mono EGA only
0Eh T 132×25 mono
0Fh T 132×44 mono
10h reserved
11h G 1280×350 4 EGA only
12h G 1280×600 4 EGA only
13h G 640×350 256 EGA,EV673
14h G 640×400 256
15h G 512×480 256
16h T 80×30 8×16 256 VGA only
18h T 100×27 8×16 16 VGA only
20h G 1024×768 16 Everex 629,678
Everex EV-673
21h T 160×64 8×16 1280×1024 16 1MB VGA only
30h G 640×480 256 Everex 629,678
Everex EV-673
31h G 800×600 256 Everex 629,678
Everex EV-673
32h G 128×48 8×16 1024×768 256 1MB VGA only
40h T 132×30 8×16 16 VGA only
50h T 132×32 8×16 mono VGA only
62h G 40×25 8×8 320×200 32K Vwpt TC (EV629)
70h G 64×30 8×16 512×480 32K Viewpoint TC
71h G 80×30 8×16 640×480 32K Viewpoint TC
76h G 64×30 8×16 512×480 16M Viewpoint TC
77h G 80×30 8×16 640×480 16M Viewpoint TC

007Eh - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE

	AX = 007Eh
	BX = horizontal dimension of the mode desired
	CX = vertical dimension of the mode desired
	     (both BX/CX in pixels for graphics modes, rows for alpha modes)
	DX = number of colors of the mode desired (0000h for monochrome modes)
Return: BH = 7Eh if successful (Paradise VGA)
	AL = 7Eh if successful (AT&T VDC600)

SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh“GO32”

007Fh - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS

	AX = 007Fh
	BH = function
	    00h	 set VGA operation
	    01h	 set non-VGA operation
		color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation
		monochrome mode 7 will set non-VGA MDA/Hercules operation
	    02h	 query mode status
		Return: BL = 00h if operating in VGA mode, 01h if non-VGA mode
			CH = total video RAM size in 64k byte units
			CL = video RAM used by the current mode
	    03h	 lock current mode
		allows current mode (VGA or non-VGA) to survive re-boot
	    04h	 enter CGA mode (AT&T VDC600 only)
	    05h	 enter MDA mode (AT&T VDC600 only)
	    0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
		(port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
		BL = value to set in the paradise register
	    1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
		(port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
		Return: BL = value of the paradise register
			BH = 7Fh if successful
Return: AL = 7Fh if successful (AT&T VDC600)

SeeAlso: AX=007Eh

01h - VIDEO - SET TEXT-MODE CURSOR SHAPE

	AH = 01h
	CH = bit 7    should be zero
	     bits 6,5 cursor blink
		     (00=normal, 01=invisible, 10=erratic, 11=slow)
		     (00=normal, other=invisible on EGA/VGA)
	     bits 4-0 top scan line containing cursor
	CL = bottom scan line containing cursor (bits 0-4)

buggy on EGA systems–BIOS remaps cursor shape in 43 line modes, but returns unmapped cursor shape

UltraVision scales size to the current font height by assuming 14-line monochrome and 8-line color fonts; this call is not valid if cursor emulation has been disabled

applications which wish to change the cursor by programming the hardware directly on EGA or abovve should call INT 10/AX=1130h or read 0040h:0085h first to determine the current font height

BUG: AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL is not equal to the current video mode

SeeAlso: AH=03h,AX=CD05h

02h - VIDEO - SET CURSOR POSITION

	AH = 02h
	BH = page number
	    0-3 in modes 2&3
	    0-7 in modes 0&1
	    0 in graphics modes
	DH = row (00h is top)
	DL = column (00h is left)

SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh

03h - VIDEO - GET CURSOR POSITION AND SIZE

	AH = 03h
	BH = page number
	    0-3 in modes 2&3
	    0-7 in modes 0&1
	    0 in graphics modes
Return: AX = 0000h (Phoenix BIOS)
	CH = start scan line
	CL = end scan line
	DH = row (00h is top)
	DL = column (00h is left)

a separate cursor is maintained for each of up to 8 display pages many ROM BIOSes incorrectly return the default size for a color display (start 06h, end 07h) when a monochrome display is attached

SeeAlso: AH=01h,AH=02h

04h - VIDEO - READ LIGHT PEN POSITION (except VGA)

	AH = 04h
Return: AH = light pen trigger flag
	    00h not down/triggered
	    01h down/triggered
		DH,DL = row,column of character light pen is on
		CH = pixel row (graphics modes 04h-06h)
		CX = pixel row (graphics modes with >200 rows)
		BX = pixel column

on a CGA, returned column numbers are always multiples of 2 (320-column modes) or 4 (640-column modes)

returned row numbers are only accurate to two lines

05h - VIDEO - SELECT ACTIVE DISPLAY PAGE

050xh - VIDEO - SELECT ACTIVE DISPLAY PAGE

	AH = 05h
	AL = new page number (00h to number of pages - 1) (see AH=00h)

to determine whether the requested page actually exists, use AH=0Fh to query the current page after making this call

SeeAlso: AH=0Fh

058xh - VIDEO - MANIPULATE CRT/CPU PAGE REGISTERS (PCjr)

	AH = 05h
	AL = subfunction
	    80h read CRT and CPU page registers
		Return: BH = CRT page register
			BL = CPU page register
	    81h set CPU page register
		BL = CPU page
	    82h set CRT page register
		BH = CRT page
	    83h set both CPU and CRT page registers
		BL = CPU page
		BH = CRT page

the CPU page determines which 16K block of the first 128K of physical memory will be mapped at B800h by the hardware

the CRT page determines the start address of the memory used by the video controller

050xh - VIDEO - GRAPHICS BITMAP BUFFER (Corona/Cordata BIOS v4.10+)

	AH = 05h
	AL =
	    00h set address of graphics bitmap buffer (video modes 60h,61h)
		BX = segment of buffer
	    0Fh get address of graphics bitmap buffer (video modes 60h,61h)
		Return: DX = segment of graphics bitmap buffer

06h - VIDEO - SCROLL UP WINDOW

	AH = 06h
	AL = number of lines by which to scroll up (00h = clear entire window)
	BH = attribute used to write blank lines at bottom of window
	CH,CL = row,column of window's upper left corner
	DH,DL = row,column of window's lower right corner

affects only the currently active page (see AH=05h)

some implementations have a bug which destroys BP

SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h

07h - VIDEO - SCROLL DOWN WINDOW

	AH = 07h
	AL = number of lines by which to scroll down (00h=clear entire window)
	BH = attribute used to write blank lines at top of window
	CH,CL = row,column of window's upper left corner
	DH,DL = row,column of window's lower right corner

affects only the currently active page (see AH=05h)

some implementations have a bug which destroys BP

SeeAlso: AH=06h,AH=72h,AH=73h

08h - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION

	AH = 08h
	BH = page number (00h to number of pages - 1) (see AH=00h)
Return: AH = attribute
		bit 7: blink
		bits 6-4: background color
			000 black
			001 blue
			010 green
			011 cyan
			100 red
			101 magenta
			110 brown
			111 white
		bits 3-0: foreground color
			0000 black	 1000 dark gray
			0001 blue	 1001 light blue
			0010 green	 1010 light green
			0011 cyan	 1011 light cyan
			0100 red	 1100 light red
			0101 magenta	 1101 light magenta
			0110 brown	 1110 yellow
			0111 light gray	 1111 white
	AL = character

for monochrome displays, a foreground of 1 with background 0 is underlined

the blink bit may be reprogrammed to enable intense background colors using AX=1003h or by programming the CRT controller

SeeAlso: AH=09h,AX=1003h,AX=5001h

09h - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION

	AH = 09h
	AL = character to display
	BH = page number (00h to number of pages - 1) (see AH=00h)
	BL = attribute (text mode) or color (graphics mode)
	     if bit 7 set in graphics mode, character is xor'ed onto screen
	CX = number of times to write character

all characters are displayed, including CR, LF, and BS

replication count in CX may produce an unpredictable result in graphics modes if it is greater than the number of positions remaining in the current row

SeeAlso: AH=08h,AH=0Ah,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44

0Ah - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION

	AH = 0Ah
	AL = character to display
	BH = page number (00h to number of pages - 1) (see AH=00h)
	BL = attribute (PCjr only) or color (graphics mode)
	     if bit 7 set in graphics mode, character is xor'ed onto screen
	CX = number of times to write character

all characters are displayed, including CR, LF, and BS

replication count in CX may produce an unpredictable result in graphics modes if it is greater than the number of positions remaining in the current row

SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44

0Bh - VIDEO - SET BACKGROUND/BORDER COLOR

	AH = 0Bh
	BH = 00h
	BL = background/border color (border only in text modes)

SeeAlso: AH=0Bh/BH=01h

0Bh - VIDEO - SET PALETTE

	AH = 0BH
	BH = 01h
	BL = palette ID
	    00h background, green, red, and brown/yellow
	    01h background, cyan, magenta, and white

SeeAlso: AH=0Bh/BH=00h

0Ch - VIDEO - WRITE GRAPHICS PIXEL

	AH = 0Ch
	BH = page number
	AL = pixel color (if bit 7 set, value is xor'ed onto screen)
	CX = column
	DX = row

valid only in graphics modes

BH is ignored if the current video mode supports only one page

SeeAlso: AH=0Dh,AH=46h

0Dh - VIDEO - READ GRAPHICS PIXEL

	AH = 0Dh
	BH = page number
	CX = column
	DX = row
Return: AL = pixel color

valid only in graphics modes

BH is ignored if the current video mode supports only one page

SeeAlso: AH=0Ch,AH=47h

0Eh - VIDEO - TELETYPE OUTPUT

AH = 0Eh
AL = character to write
BH = page number
BL = foreground color (graphics modes only)

Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted

  and do the expected things
IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  the current active page

SeeAlso: AH=02h,AH=0Ah

0Fh - VIDEO - GET CURRENT VIDEO MODE

	AH = 0Fh
Return: AH = number of character columns
	AL = display mode (see AH=00h)
	BH = active page (see AH=05h)

if mode was set with bit 7 set (“no blanking”), the returned mode will also have bit 7 set

EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h (monochrome) in all extended-row text modes

SeeAlso: AH=00h,AH=05h,AX=1130h,AX=CD04h

0F56h - VUIMAGE DISPLAY DRIVER (v2.20 and below)

	AX = 0F56h
	BX = 4756h
	CX = 4944h
	DL = function
	    01h installation check
		Return: AX = 5649h
			BX = 4443h
			CX = 5647h
			DH = 01h
	    02h get first video mode's parameters
		Return: AX = BIOS mode number
			BX = width in pixels
			CX = height in pixels
			DX = number of colors
	    03h get next video mode's parameters
		Return: as for DL=02h
	    04h display line???
		ES:DI -> record (see below)
		???
		Return: ???

VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises

the use of TSR display drivers was discontinued after v2.20

Format of record for DL=04h:

Offset Size Description
00h WORD row number
02h WORD starting column???
04h WORD
???
ending column???

0Fh - FRIEZE v7.41+ - INSTALLATION CHECK

	AH = 0Fh
	SI = F123h
	DI = 321Fh
Return: AH = number of character columns
	AL = display mode (see AH=00h)
	BH = active page (see AH=05h)
	SI = DI = F345h if installed

if mode was set with bit 7 set (“no blanking”), the returned mode will also have bit 7 set

EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h (monochrome) in all extended-row text modes

SeeAlso: AH=0Fh“VIDEO”,AH=4Bh“FRIEZE”

10h

10h - BIOS Window Extension v1.1 - SET WINDOW COORDINATES

	AH = 10h
	CH,CL = row,column of upper left corner of window
	DH,DL = row,column of lower right corner of window
Return: AL = status
	    00h successful
	    01h failed
	AH destroyed

BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal

when a window has been set, all output via AH=0Eh is restricted to the specified window

SeeAlso: AH=11h“Window”,AH=12h“Window”

10h - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED

	AH = 10h
	AL = speed
	    00h fast
	    01h slow (only moves characters during vertical retrace)

Return: AH = previous speed

1000h - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,EGA,MCGA,VGA)

	AX = 1000h
	BL = palette register number (00h-0Fh)
	   = attribute register number (undocumented)
	     10h attribute mode control register (should let BIOS control this)
	     11h overscan color register (see also AX=1001h)
	     12h color plane enable register (bits 3-0 enable corresponding
		text attribute bit)
	     13h horizontal PEL panning register
	     14h color select register
	BH = color or attribute register value

on MCGA, only BX = 0712h is supported

under UltraVision, the palette locking status (see AX=CD01h) determines the outcome

SeeAlso: AX=1002h,AX=1007h,AX=CD01h

1001h - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,EGA,VGA)

	AX = 1001h
	BH = border color (00h-3Fh)

the original IBM VGA BIOS incorrectly updates the parameter save area and places the border color at offset 11h of the palette table rather than offset 10h

under UltraVision, the palette locking status (see AX=CD01h) determines the outcome

SeeAlso: AX=1002h,AX=1008h,AX=CD01h

1002h - VIDEO - SET ALL PALETTE REGISTERS (PCjr,EGA,VGA)

	AX = 1002h
	ES:DX -> palette register list

under UltraVision, the palette locking status (see AX=CD01h) determines the outcome

SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h

Format of palette register list:

Offset Size Description
00h 16 BYTEs colors for palette registers 00h through 0Fh
10h BYTE border color

1003h - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)

	AX = 1003h
	BL = new state
	    00h background intensity enabled
	    01h blink enabled
	BH = 00h to avoid problems on some adapters

although there is no function to get the current status, bit 5 of 0040h:0065h indicates the state

when configured for a monochrome display, the Boca Research Multi-EGA with ROM v M1.1 Type D has its screen disrupted if BH is not clear

SeeAlso: AH=08h

1007h - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)

	AX = 1007h
	BL = palette or attribute (undoc) register number (see AX=1000h)
Return: BH = palette or attribute register value

UltraVision v2+ supports this function even on color EGA systems in video modes 00h-03h, 10h, and 12h; direct programming of the palette registers will cause incorrect results because the EGA registers are write-only. To guard against older versions or unsupported video modes, programs which expect to use this function on EGA systems should set BH to FFh on entry.

SeeAlso: AX=1000h,AX=1009h

1008h - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)

	AX = 1008h
Return: BH = border color (00h-3Fh)

Notes: UltraVision v2+ supports this function even on color EGA systems in video modes 00h-03h, 10h, and 12h; direct programming of the palette registers will cause incorrect results because the EGA registers are write-only. To guard against older versions or unsupported video modes, programs which expect to use this function on EGA systems should set BH to FFh on entry.

SeeAlso: AX=1001h

1009h - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)

	AX = 1009h
	ES:DX -> 17-byte buffer (see AX=1002h)

Notes: UltraVision v2+ supports this function even on color EGA systems in video modes 00h-03h, 10h, and 12h; direct programming of the palette registers will cause incorrect results because the EGA registers are write-only. To guard against older versions or unsupported video modes, programs which expect to use this function on EGA systems should set the ES:DX buffer to FFh before calling.

SeeAlso: AX=1002h,AX=1007h,AX=CD02h

1010h - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)

	AX = 1010h
	BX = register number
	CH = new value for green (0-63)
	CL = new value for blue (0-63)
	DH = new value for red (0-63)

SeeAlso: AX=1012h,AX=1015h

1012h - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)

AX = 1012h
BX = starting color register
CX = number of registers to set
ES:DX -> table of 3*CX bytes where each 3 byte group represents one
	 byte each of red, green and blue (0-63)

SeeAlso: AX=1010h,AX=1017h

1013h - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)

	AX = 1013h
	BL = subfunction
	    00h select paging mode
		BH = 00h select 4 blocks of 64
		BH = 01h select 16 blocks of 16
	    01h select page
		BH = page number (00h to 03h) or (00h to 0Fh)

not valid in mode 13h

SeeAlso: AX=101Ah

1015h - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)

	AX = 1015h
	BL = palette register number
Return: DH = red value
	CH = green value
	CL = blue value

SeeAlso: AX=1010h,AX=1017h

1017h - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)

	AX = 1017h
	BX = starting palette register
	CX = number of palette registers to read
	ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
Return: buffer filled with CX red, green and blue triples

SeeAlso: AX=1012h,AX=1015h

1018h - U - VIDEO - SET PEL MASK (VGA/MCGA)

	AX = 1018h
	BL = new PEL value

SeeAlso: AX=1019h

1019h - U - VIDEO - READ PEL MASK (VGA/MCGA)

AX = 1019h

Return: BL = value read SeeAlso: AX=1018h

101Ah - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)

	AX = 101Ah
Return: BL = paging mode
	    00h four pages of 64
	    01h sixteen pages of 16
	BH = current page

SeeAlso: AX=1013h

101Bh - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)

AX = 101Bh
BX = starting palette register
CX = number of registers to convert

SeeAlso: AH=12h/BL=33h

10F0h - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE

	AX = 10F0h
	BL = video mode (see also AH=00h)
	    32768-color modes:
		13h = 320x200
		2Dh = 640x350
		2Eh = 640x480
		2Fh = 640x400
		30h = 800x600
Return:	AL = 10h if supported
	AH = status
	    00h if successful
	    other on error

the Tseng HiColor BIOS extensions are supported by:

Diamond Computer Systems SpeedStar HiColor VGA
Everex Systems HC VGA
Focus Information Systems 2theMax 4000
Cardinal Technologies VGA732
Orchid ProDesigner IIs

SeeAlso: AX=10F1h,AX=10F2h

10F1h - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE

	AX = 10F1h
Return: AL = 10h if supported
	BL = type of digital/analog converter
	    00h normal VGA DAC
	    01h Sierra SC1148x HiColor DAC
	    02h new Sierra DAC
	   else other HiColor DAC

SeeAlso: AX=10F0h,AX=10F2h

10F2h - VIDEO - Tseng ET-4000 BIOS v3.00 - ???

	AX = 10F2h
	BL = ???
Return: AL = 10h if supported
	AH = status???
	    00h ???
	    01h ???
	BL = ???

SeeAlso: AX=10F0h,AX=10F1h

11h

11h - BIOS Window Extension v1.1 - GET WINDOW COORDINATES

	AH = 11h
Return: CH,CL = row,column of upper left corner
	DH,DL = row,column of lower right corner

BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal

SeeAlso: AH=10h“Window”,AH=12h“Window”

11h - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)

	AH = 11h
	The following functions will cause a mode set, completely resetting the video environment, but without clearing the video buffer
	AL = 00h, 10h: load user-specified patterns
	    ES:BP -> user table
	    CX	  = count of patterns to store
	    DX	  = character offset into map 2 block
	    BL	  = block to load in map 2
	    BH	  = number of bytes per character pattern
	AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
	    BL	  = block to load
	AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
	    BL	  = block to load
	AL = 03h: set block specifier
	    BL	  = block specifier
		   (EGA/MCGA) bits 0,1 = block selected by chars with attribute
					 bit 3 = 0
			      bits 2,3 = block selected by chars with attribute
					 bit 3 = 1
		   (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0
			 bits 2,3,5 = block selected by attribute bit 3 = 1
	AL = 04h, 14h: load ROM 8x16 character set (VGA)
	    BL	= block to load
	The routines called with AL=1xh are designed to be called only immediately after a mode set and are similar to the routines called
	with AL=0xh, except that:
	      Page 0 must be active.
	      Bytes/character is recalculated.
	      Max character rows is recalculated.
	      CRT buffer length is recalculated.
	      CRTC registers are reprogrammed as follows:
		     R09 = bytes/char-1 ; max scan line (mode 7 only)
		     R0A = bytes/char-2 ; cursor start
		     R0B = 0		; cursor end
		     R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
		     R14 = bytes/char	; underline loc
			   (*** BUG: should be 1 less ***)

SeeAlso: AX=CD10h

11h - VIDEO - GRAPHICS-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)

	AH = 11h
	AL = 20h: set user 8 by 8 graphics characters (INT 1F)
	    ES:BP -> user table
	AL = 21h: set user graphics characters
	    ES:BP -> user table
	    CX	  = bytes per character
	    BL	  = row specifier
		   00h user set
		      DL = number of rows
		   01h 14 rows
		   02h 25 rows
		   03h 43 rows
	AL = 22h: ROM 8 by 14 set
	    BL = row specifier (see above)
	AL = 23h: ROM 8 by 8 double dot
	    BL = row specifier (see above)
	AL = 24h: load 8x16 graphics characters (VGA/MCGA)
	    BL = row specifier (see above)
	AL = 29h: load 8x16 graphics characters (Compaq Systempro)
	    BL = row specifier (see above)

these functions are meant to be called only after a mode set

UltraVision v2+ sets INT 43 to the appropriate font for AL=22h,23h,24h, and 29h

SeeAlso: INT 1F, INT 43

1130h - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)

	AX = 1130h
	BH = pointer specifier
	    00h INT 1Fh pointer
	    01h INT 43h pointer
	    02h ROM 8x14 character font pointer
	    03h ROM 8x8 double dot font pointer
	    04h ROM 8x8 double dot font (high 128 characters)
	    05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
	    06h ROM 8x16 font (MCGA, VGA)
	    07h ROM alternate 9x16 font (VGA only)
	    11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
	    12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
Return: ES:BP = specified pointer
	CX    = bytes/character of on-screen font (not the requested font!)
	DL    = character rows on screen - 1 (VGA)
	      = character rows on screen (EGA)

for UltraVision v2+, the 9xN alternate fonts follow the corresponding 8xN font at ES:BP+256N

SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43

12h - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE

	AH = 12h
Return: BH = attribute to use on blanked lines when scrolling

BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal

SeeAlso: AH=11h“Window”,AH=12h“Window”

12h - 10h - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO

	AH = 12h
	BL = 10h
Return: BH = 00h color mode in effect (I/O port 3Dxh)
	     01h mono mode in effect (I/O port 3Bxh)
	BL = 00h  64k bytes memory installed
	     01h 128k bytes memory installed
	     02h 192k bytes memory installed
	     03h 256k bytes memory installed
	CH = feature bits
	CL = switch settings

one possible check for the presence of an EGA or later display card is to call this function with BH=FFh; if not present, BH will be unchanged on return

12h - 20h - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC

	AH = 12h
	BL = 20h  select alternate print screen routine

installs a PrtSc routine from the video card's BIOS to replace the default PrtSc handler from the ROM BIOS, which usually does not understand screen heights other than 25 lines

some adapters disable print-screen instead of enhancing it

SeeAlso: INT 05

12h - 2Eh - Tseng ET-4000 BIOS v3.00 - BUG

	AH = 12h
	BL = 2Eh

due to an omitted end-of-list marker, this version of the BIOS will crash the system on this function

12h - 30h - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION

AH = 12h
BL = 30h
AL = vertical resolution
     00h 200 scan lines
     01h 350 scan lines
     02h 400 scan lines

Return: AL = 12h if function supported

12h - 31h - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING

AH = 12h
BL = 31h
AL = 00h enable default palette loading
     01h disable default palette loading

Return: AL = 12h if function supported

12h - 32h - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING

AH = 12h
BL = 32h
AL = 00h enable video addressing
     01h disable video addressing

Return: AL = 12h if function supported

12h - 33h - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING

AH = 12h
BL = 33h
AL = 00h enable gray scale summing
     01h disable gray scale summing

Return: AL = 12h if function supported SeeAlso: AX=101Bh,AX=BF06h

12h - 34h - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION

AH = 12h
BL = 34h
AL = 00h enable alphanumeric cursor emulation
     01h disable alphanumeric cursor emulation

Return: AL = 12h if function supported

12h - 35h - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE

AH = 12h
BL = 35h
AL = 00h initial adapter video off
     01h initial planar video on
     02h switch active video off
     03h switch inactive video on
     80h *UNDOCUMENTED* set system board video active flag
ES:DX -> buffer (128 byte save area if AL = 0, 2 or 3)

Return: AL = 12h if function supported

12h - 36h - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL

AH = 12h
BL = 36h
AL = 00h enable refresh
     01h disable refresh

Return: AL = 12h if function supported

12h - 55h - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES

AH = 12h
BH = 55h
BL = subfunction
    00h disabled enhanced features
    01h enable enhanced features
    02h get status
	Return: AL = status flags
		    bit 3: set if enhanced features enabled
		    bits 7-5 monitor type
			000 PS/2 mono
			001 PS/2 color
			010 multi-sync
			011 Taxan 650 25kHz
			100 RGB
			101 mono
			110 EGA
			111 Compaq internal
    03h disable register trapping (CGA emulation)
    04h enable register trapping
    05h program mode described by table at ES:BP
    06h get mode table
	AL = video mode
	Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
		BP = FFFFh on error

Format of ATI VGA Wonder video mode table: Offset Size Description 00h BYTE number of columns 01h BYTE maximum row (number of rows - 1) 02h BYTE scan lines per row 03h WORD video buffer size in bytes 05h 4 BYTEs values for Sequencer registers 1-4 09h BYTE value for Miscellaneous Output register 0Ah 25 BYTEs values for CRTC registers 00h-18h

	00h horizontal total size (chars)
	01h horizontal displayed (chars)
	02h horizontal sync position (chars)
	03h horizontal sync width (chars)
	04h vertical total size (char rows)
	05h vertical total adjust (scan lines)
	06h vertical displayed (char rows)
	07h vertical sync position (char rows)
	08h interlace mode
	09h max scan line in row
	0Ah cursor start scan line
	0Bh cursor end scan line
	0Ch screen memory start (high)
	0Dh screen memory start (low)
	0Eh cursor address (high)
	0Fh cursor address (low)
	10h light pen (high)
	11h light pen (low)

23h 20 BYTEs default palette (values for Attribute Controller regs 00h-13h) 37h 9 BYTEs values for Graphics Controller registers 00h-08h

12h - 74h - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = 74h

Note: due to an omitted end-of-list marker, this version of the BIOS will

  crash the system on this function

12h - 80h - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = 80h

Note: due to an omitted end-of-list marker, this version of the BIOS will

  crash the system on this function

12h - BEh - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = BEh

Note: due to an omitted end-of-list marker, this version of the BIOS will

  crash the system on this function

12h - C6h - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = C6h

Note: due to an omitted end-of-list marker, this version of the BIOS will

  crash the system on this function

12h - F0h - Tseng ET-4000 BIOS v3.00 - BUG

AH = 12h
BL = F0h

Note: due to an omitted end-of-list marker, this version of the BIOS will

  crash the system on this function

13h - VIDEO - WRITE STRING (AT and later,EGA)

	AH = 13h
	AL = write mode
	   bit 0: update cursor after writing
	       1: string contains alternating characters and attributes
	BH = page number
	BL = attribute if string contains only characters
	CX = number of characters in string
	DH,DL = row,column at which to start writing
	ES:BP -> string to write

recognizes CR, LF, BS, and bell

also available PC or XT with EGA or higher

HP 95LX only supports write mode 00h

BUG: on the IBM VGA Adapter, any scrolling which may occur is performed on the active page rather than the requested page

SeeAlso: AH=09h,AH=0Ah

14 - VIDEO

1400h - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)

AX = 1400h
ES:DI -> character font
BH = number of bytes per character
    08h or 10h (Compaq)
BL = 00h load main font (block 0)
     01h load alternate font (block 1)
CX = number of characters to store
DX = character offset into RAM font area

SeeAlso: AH=11h,AX=1401h

1401h - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)

AX = 1401h
BL = font to load
    00h main font (block 0)
    01h alternate font (block 1)

SeeAlso: AH=11h,AX=1400h

1402h - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)

AX = 1402h
BL = function
    00h ignore high intensity attribute
    01h map high intensity to underscore
    02h map high intensity to reverse video
    03h map high intensity to selected alternate font
    B0h half intensity (Compaq)
    B1h toggle active intensity bit interpretation (CP386)

15h - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)

AH = 15h

Return: AX = alternate display adapter type

    0000h none
    5140h LCD
    5153h CGA
    5151h mono
ES:DI -> parameter table (see below)

SeeAlso: AH=1Bh

Format of display parameter table: Offset Size Description 00h WORD monitor model number 02h WORD vertical pixels per meter 04h WORD horizontal pixels per meter 06h WORD total vertical pixels 08h WORD total horizontal pixels 0Ah WORD horizontal pixel separation in micrometers 0Ch WORD vertical pixel separation in micrometers

15xxh - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)

AH = 15h
AL = superimpose mode
    00h show graphics screen
    01h show text screen
    02h show text screen superimposed on graphics screen

1Ah - VIDEO - DISPLAY COMBINATION (PS,VGA/MCGA)

	AH = 1Ah
	AL = 00h read display combination code
		Return: BL = active display code (see below)
			BH = alternate display code
	     01h set display combination code
		BL = active display code (see below)
		BH = alternate display code
Return: AL = 1Ah if function was supported

Values for display combination code:

00h
01h monochrome adapter w/ monochrome display
02h CGA w/ color display
03h reserved
04h EGA w/ color display
05h EGA w/ monochrome display
06h PGA w/ color display
07h VGA w/ monochrome analog display
08h VGA w/ color analog display
09h reserved
0Ah MCGA w/ digital color display
0Bh MCGA w/ monochrome analog display
0Ch MCGA w/ color analog display
FFh unknown display type

1Bh - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)

	AH = 1Bh
	BX = implementation type
	    0000h return funtionality/state information
	ES:DI -> 64 byte buffer for state information (see below)
Return: AL = 1Bh if function supported
	    ES:DI buffer filled with state information

SeeAlso: AH=15h

Format of state information:
Offset Size Description
00hDWORDaddress of static funtionality table (see below)
04hBYTEvideo mode in effect
05hWORDnumber of columns
07hWORDlength of regen buffer in bytes
09hWORDstarting address of regen buffer
0BhWORDcursor position for page 0
0DhWORDcursor position for page 1
0FhWORDcursor position for page 2
11hWORDcursor position for page 3
13hWORDcursor position for page 4
15hWORDcursor position for page 5
17hWORDcursor position for page 6
19hWORDcursor position for page 7
1BhWORDcursor type
1DhBYTEactive display page
1EhWORDCRTC port address
20hBYTEcurrent setting of register (3?8)
21hBYTEcurrent setting of register (3?9)
22hBYTEnumber of rows
23hWORDbytes/character
25hBYTEdisplay combination code of active display
26hBYTEDCC of alternate display
27hWORDnumber of colors supported in current mode
29hBYTEnumber of pages supported in current mode
2AhBYTEnumber of scan lines active
(0,1,2,3) = (200,350,400,480)
2BhBYTEprimary character block
2ChBYTEsecondary character block
2DhBYTEmiscellaneous flags
bit 0 all modes on all displays on
bit 1 gray summing on
bit 2 monochrome display attached
bit 3 default palette loading disabled
bit 4 cursor emulation enabled
bit 5 0 = intensity; 1 = blinking
bit 6 PS/2 P70 plasma display (without 9-dot wide font) active
bit 7 reserved
2Eh3 BYTEsreserved (00h)
31hBYTEvideo memory available
00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
32hBYTEsave pointer state flags
bit 0 512 character set active
bit 1 dynamic save area present
bit 2 alpha font override active
bit 3 graphics font override active
bit 4 palette override active
bit 5 DCC override active
bit 6 reserved
bit 7 reserved
33h13 BYTEsreserved (00h)
Format of Static Functionality Table:
OffsetSizeDescription
00hBYTEmodes supported #1\\bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 supported
01hBYTEmodes supported #2\\bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
02hBYTEmodes supported #3\\bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported\\bit 4 to bit 7 reserved
03h4 BYTEsreserved
07hBYTEscan lines supported
bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
08hBYTEtotal number of character blocks available in text modes
09hBYTEmaximum number of active character blocks in text modes
0AhBYTEmiscellaneous function flags #1
bit 0 all modes on all displays function supported
bit 1 gray summing function supported
bit 2 character font loading function supported
bit 3 default palette loading enable/disable supported
bit 4 cursor emulation function supported
bit 5 EGA palette present
bit 6 color palette present
bit 7 color paging function supported
0BhBYTEmiscellaneous function flags #2
bit 0 light pen supported
bit 1 save/restore state function 1Ch supported
bit 2 intensity blinking function supported
bit 3 Display Combination Code supported
bit 4-7 reserved
0ChWORDreserved
0EhBYTEsave pointer function flags
bit 0 512 character set supported
bit 1 dynamic save area supported
bit 2 alpha font override supported
bit 3 graphics font override supported
bit 4 palette override supported
bit 5 DCC extension supported
bit 6 reserved
bit 7 reserved
0FhBYTEreserved

1Ch - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)

	AH = 1Ch
	AL = 00h return state buffer size
		Return: BX = number of 64-byte blocks needed
	     01h save video state
		ES:BX -> buffer
	     02h restore video state
		ES:BX -> buffer containing previously saved state
	CX = requested states
	     bit 0 video hardware
		 1 BIOS data areas
		 2 color registers and DAC state
	      3-15 reserved
Return: AL = 1Ch if function supported

1Dh - Tseng ET-4000 BIOS v3.00 - BUG

	AH = 1Dh

Note: this version of the BIOS jumps to a random location on this function due to a fencepost error

3000h - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)

	AX = 3000h
	CX = 0000h
	DX = 0000h
	
Return: CX:DX -> 3270PC configuration table (see below for format)
	CX:DX = 0000h:0000h if 3270PC Control Program not active

== Format of 3270 PC configuration table: == 
Offset	Size	Description
 00h	BYTE	aspect ratio X
 01h	BYTE	aspect ratio Y
 02h	BYTE	monitor type
		00h = 5151 (mono) or 5272 (color)
		01h = 3295
		02h = 5151 or 5272 with XGA (???) graphics adapter
		03h = 5279 with 3270PC G adapter
		04h = 5379 model C01 with 3270PC GX adapter
		05h = 5379 model M01 with 3270PC GX adapter
		07h = non-3270PC with 3270 Workstation Program
		FFh = 3270PC Control Program not loaded
 03h	BYTE	reserved
 04h	BYTE	adapter ID
		00h = 5151/5272 adapter
		04h = 5151/5272 with XGA adapter
		30h = 3295 or 3270PC G/GX adapter
 05h	BYTE	reserved
 06h	BYTE	function flags 1
		bit 7: mono text, 1 page
		    6: color text, 1 page
		    5: color text, 4 pages
		    4: CGA color graphics
		    3: 720x350 two-color graphics
		    2: 360x350 four-color graphics
		    1: 720x350 eight-color graphics
 07h	BYTE	function flags 2
		bit 6: GPI graphics supported
 08h	WORD	segment address of Control Program Level table (see below)
 0Ah 10 BYTEs	reserved

Format of Control Program Level table:
Offset	Size	Description
 00h	WORD	program version
		02xxh = 3270PC Control Program v2.xx
		03xxh = 3270PC Control Program v3.xx
		04xxh = 3270 Workstation Program v1.xx
 02h	BYTE	Control Program ID (00h)
 03h 27 BYTEs	Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")

===== 38h - Tinytalk Personal v1.09f - GET CONFIGURATION INFO =====

<code>
	AH = 38h
Return: ES:DI -> configuration info (see below)

Notes: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman

this call is also used as the installation check by verifying that the returned ES:DI points at valid configuration info

SeeAlso: INT 14/AX=F0F1h,INT 2F/FB00h“AutoBraille”

Format of configuration info:
OffsetSizeDescription
00h8 BYTEssignature “TTCONFIG”
08hWORD
0AhBYTE???
0Bh???configuration data

40h - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)

AH = 40h

SeeAlso: AH=41h

41h - VIDEO - SET TEXT MODE (Hercules GRAFIX)

AH = 41h

SeeAlso: AH=40h

42h - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)

AH = 42h

SeeAlso: AH=45h

43h - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)

AH = 43h
AL = page number (0,1)

SeeAlso: AH=44h,AH=45h

44h - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)

AH = 44h
AL = drawing function
    00h clear pixels
    01h set pixels
    02h invert pixels

SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh

45h - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)

AH = 45h
AL = page number (0,1)

SeeAlso: AH=42h,AH=43h

46h - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)

AH = 46h
DI = x (0-720)
BP = y (0-347)

Note: function 44h determines operation and function 43h which page to use SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh

47h - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)

AH = 47h
DI = x (0-720)
BP = y (0-347)

Return: AL = 00h pixel clear

AL = 01h pixel set

Note: function 43h specifies which page is used SeeAlso: AH=0Dh,AH=46h ———-1048——————————- INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)

AH = 48h
DI = x (0-720)
BP = y (0-347)

SeeAlso: AH=49h ———-1049——————————- INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)

AH = 49h
DI = x (0-720)
BP = y (0-347)

Note: function 48h or 49h specify first point, 44h operation and 43h page to

  use

SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh ———-104A——————————- INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)

AH = 4Ah
DI = x coordinate of lower left corner
BP = y coordinate of lower left corner
BX = height in pixels
CX = width in pixels

Note: draws a solid rectangle SeeAlso: AH=4Eh ———-104B——————————- INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)

AH = 4Bh
AL = character to display
DI = x (0-720)
BP = y (0-347)

Note: unlike the other BIOS character functions character position is

  specified in pixels rather than rows and columns

SeeAlso: AH=09h,AH=0Ah ———-104B——————————- INT 10 - FRIEZE v7.0+ - API

AH = 4Bh
CL = function
    00h reserved
    01h load window
	ES:BX -> ASCIZ filename from which to read
    02h save window
	ES:BX -> ASCIZ filename to which to write
    03h (v7.41) set ???
    	AL = ???
    04h (v7.41) set ???
    	AL = ???
    06h (v7.41) ???
    	AL = ???
    07h set window size
	ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
    09h set patterns
	ES:BX -> 16-BYTE vector of screen->printer color correspondnces
    0Ah get patterns
	ES:BX -> 16-BYTE buffer for color correspondences
    0Bh set mode
	AL = mode
    0Ch (v7.41) ???
    	AL = ???
	    00h ??? (calls original INT 05)
	    else ???
    0Dh (v7.41) ???
    	AL = ???
	    00h ??? (calls original INT 05)
	    else ???
    0Eh (v7.41) ???
    	???
    0Fh get window
	ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
    10h set print options
	ES:BX -> printer options in same format as FRIEZE cmdline
    11h (v7.41) ???
    	???
    12h (v7.41) ???
    	???
    13h (v7.41) ???
    	???
    14h get version
	Return: AH = major version (00h if FRIEZE version before 7)
		AL = minor version
    15h set parameters
	ES:BX -> parameter table (see below)
    16h get parameters
	ES:BX -> buffer for parameter table (see below)
    17h get printer resolution
	ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
    18h reserved (v8.0 only)
    50h (v7.41) get ???
    	Return: AX = ???
    51h (v7.41) get ???
    	Return: ES = ??? (seen 2348h)
		AX = ??? (seen 8432h)

Return: AX = status

    00h successful
    01h user aborted printout with ESC
    02h reserved
    03h file read error
    04h file write error
    05h file not found
    06h invalid header (not an image or wrong screen mode)
    07h file close error
    08h disk error
    09h printer error
    0Ah invalid function
    0Bh can't create file
    0Ch wrong video mode

SeeAlso: AH=0Fh/SI=F123h

Format of parameter table: Offset Size Description 00h WORD top margin (1/100 inch) 02h WORD left margin (1/100 inch) 04h WORD horizontal size (1/100 inch) 06h WORD vertical size (1/100 inch) 08h WORD quality/draft mode

	00h draft mode
	01h quality mode
	02h use horizontal/vertical resolution for output resolution

0Ah WORD printer horizontal resolution (dots per inch) 0Ch WORD printer vertical resolution (dots per inch) 0Eh WORD reserved (FFFFh) Note: any field which should remain unchanged may be filled with FFFFh ———-104C——————————- INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)

AH = 4Ch
AL = quadrant (1 = upper right, 2 = upper left, etc)
DI = x coordinate of center
BP = y coordinate of center
BX = radius

SeeAlso: AH=49h,AH=4Dh ———-104D——————————- INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)

AH = 4Dh
DI = x of center
BP = y of center
BX = radius

SeeAlso: AH=49h,AH=4Ch ———-104E——————————- INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)

AH = 4Eh
DI = x coordinate of an interior point
BP = y coordinate of an interior point

Notes: fills convex polygonal areas

the first fill makes the figure solid, the second erases it

SeeAlso: AH=4Ah ———-104F00—————————– INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION

AX = 4F00h
ES:DI -> 256-byte buffer for SuperVGA information (see below)

Return: AL = 4Fh function supported

AH = status
    00h successful
    01h failed

SeeAlso: AX=4F01h,AX=7F00h

Format of SuperVGA information: Offset Size Description 00h 4 BYTEs signature ('VESA') 04h WORD VESA version number 06h DWORD pointer to OEM name

	"761295520" for ATI

0Ah 4 BYTEs capabilities 0Eh DWORD pointer to list of supported VESA and OEM video modes

	(list of words terminated with FFFFh)

12h 238 BYTEs reserved ———-104F01—————————– INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION

AX = 4F01h
CX = SuperVGA video mode
ES:DI -> 256-byte buffer mode information (see below)

Return: AL = 4Fh function supported

AH = status
    00h successful
    01h failed

SeeAlso: AX=4F00h,AX=4F02h

Format of mode information: Offset Size Description 00h WORD mode attributes

	bit 0: mode supported
	bit 1: optional information available
	bit 2: BIOS output supported
	bit 3: set if color, clear if monochrome
	bit 4: set if graphics mode, clear if text mode

02h BYTE window A attributes

	bit 0: exists
	bit 1: readable
	bit 2: writable
	bits 3-7 reserved

03h BYTE window B attributes (as for window A) 04h WORD window granularity in K 06h WORD window size in K 08h WORD start segment of window A 0Ah WORD start segment of window B 0Ch DWORD → FAR window positioning function (equivalent to AX=4F05h) 10h WORD bytes per scan line —remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes— 12h WORD width in pixels 14h WORD height in pixels 16h BYTE width of character cell in pixels 17h BYTE height of character cell in pixels 18h BYTE number of memory planes 19h BYTE number of bits per pixel 1Ah BYTE number of banks 1Bh BYTE memory model type 00h text

	01h CGA graphics
	02h HGC graphics
	03h 16-color (EGA) graphics
	04h packed pixel graphics
	05h "sequ 256" (non-chain 4) graphics
	06h direct color (HiColor, 24-bit color)
	07h YUV
	08h-0Fh reserved for VESA
	10h-FFh OEM memory models

1Ch BYTE size of bank in K 1Dh BYTE number of image pages 1Eh BYTE reserved (0) —VBE v1.2+— 1Fh BYTE red mask size 20h BYTE red field position 21h BYTE green mask size 22h BYTE green field size 23h BYTE blue mask size 24h BYTE blue field size 25h BYTE reserved mask size 26h BYTE reserved mask position 27h BYTE direct color mode info 28h BYTE reserved (0) ———-104F02—————————– INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE

AX = 4F02h
BX = mode
	bit 15 set means don't clear video memory

Return: AL = 4Fh function supported

AH = status
    00h successful
    01h failed

SeeAlso: AX=4F01h,AX=4F03h

Values for VESA video mode: 00h-FFh OEM video modes (see AH=00h) 100h 640x400x256 101h 640x480x256 102h 800x600x16 103h 800x600x256 104h 1024x768x16 105h 1024x768x256 106h 1280x1024x16 107h 1280x1024x256 108h 80×60 text 109h 132×25 text 10Ah 132×43 text 10Bh 132×50 text 10Ch 132×60 text —VBE v1.2— 10Dh 320x200x32K 10Eh 320x200x64K 10Fh 320x200x16M 110h 640x480x32K 111h 640x480x64K 112h 640x480x16M 113h 800x600x32K 114h 800x600x64K 115h 800x600x16M 116h 1024x768x32K 117h 1024x768x64K 118h 1024x768x16M 119h 1280x1024x32K 11Ah 1280x1024x64K 11Bh 1280x1024x16M ———-104F03—————————– INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE

AX = 4F03h

Return: AL = 4Fh function supported

AH = status
    00h successful
    01h failed
BX = video mode (see AX=4F02h)

SeeAlso: AX=4F02h ———-104F04—————————– INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE

AX = 4F04h
DL = subfunction
    00h get state buffer size
	Return: BX = number of 64-byte blocks needed
    01h save video states
	ES:BX -> buffer
    02h restore video states
	ES:BX -> buffer
CX = flags for states to save/restore
    bit 0: video hardware state
    bit 1: video BIOS data state
    bit 2: video DAC state
    bit 3: SuperVGA state

Return: AL = 4Fh function supported

AH = status
    00h successful
    01h failed

———-104F05—————————– INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL

AX = 4F05h
BH = subfunction
    00h select video memory window
	DX = window address in video memory (in granularity units)
    01h get video memory window
	Return: DX = window address in video memory (in gran. units)
BL = window number
    00h window A
    01h window B

Return: AL = 4Fh function supported

AH = status
    00h successful
    01h failed

SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h ———-104F06—————————– INT 10 - VESA SuperVGA BIOS v1.1 - GET/SET LOGICAL SCAN LINE LENGTH

AX = 4F06h
BL = function
    00h set scan line length
	CX = desired width in pixels
    01h get scan line length

Return: AL = 4Fh if function supported

AH = status
    00h successful
    01h failed
BX = bytes per scan line
CX = number of pixels per scan line
DX = maximum number of scan lines

Notes: if the desired width is not achievable, the next larger width will be

  set
the scan line may be wider than the visible area of the screen
this function is valid in text modes, provided that values are
  multiplied by the character cell width/height

SeeAlso: AX=4F01h,AX=4F05h,AX=4F07h ———-104F07BH00————————- INT 10 - VESA SuperVGA BIOS v1.1 - GET/SET DISPLAY START

AX = 4F07h
BH = 00h (reserved)
BL = 00h set display start
	CX = leftmost displayed pixel in scan line
	DX = first displayed scan line
   = 01h get display start
	Return: BH = 00h
		CX = leftmost displayed pixel in scan line
		DX = first displayed scan line

Return: AL = 4Fh if function supported

AH = status
    00h successful
    01h failed

Note: this function is valid in text modes, provided that values are

  multiplied by the character cell width/height

SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h ———-104F08—————————– INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL

AX = 4F08h
BL = function
    00h set DAC palette width
    	BH = desired number of bits per primary color
    01h get DAC palette width

Return: AL = 4Fh if function supported

AH = status
BH = current number of bits per primary (06h = standard VGA)

———-104FFF—————————– INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF

AX = 4FFFh
DL = new state (00h off, 01h on)

Return: AX = 0000h if successful ———-1050——————————- INT 10 - SCROLOCK.COM - INSTALLATION CHECK

AH = 50h

Return: BX = 1954h if installed

    AL = 00 if inactive, nonzero if active

Note: SCROLOCK is a utility supplied with System Enhancement Associates' ARC SeeAlso: AH=51h ———-105000—————————– INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE

AX = 5000h
BX = country code
	0001h USA (English), 0051h Japan

Return: AL = status

    00h successful
    01h bad country code
    02h other error

SeeAlso: AX=5001h,INT 16/AX=5000h ———-105001—————————– INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE

AX = 5001h

Return: AL = status

    00h successful
	BX = country code
    02h error

SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h ———-1051——————————- INT 10 - SCROLOCK.COM - ENABLE/DISABLE

AH = 51h
AL = state
    00h disable
    nonzero enable

Note: SCROLOCK is a utility supplied with System Enhancement Associates' ARC SeeAlso: AH=50h“SCROLOCK” ———-105100—————————– INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER

AX = 5100h
BH = character width in bits (10h)
BL = character height (10h)
DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
ES:BP -> character bitmap

Return: AL = status (00h successful, 01h failed) SeeAlso: AX=5101h,INT 1F ———-105101—————————– INT 10 - VIDEO - AX PC - READ CHARACTER

AX = 5101h
BH = character width in bits
BL = character height
DX = character code (DH = 00h if 8-bit character)
ES:BP -> buffer for character bitmap

Return: AL = status (00h successful, 01h failed) SeeAlso: AH=09h,AX=5100h ———-105200—————————– INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER

AX = 5200h
BX = segment of buffer

SeeAlso: AX=5201h ———-105201—————————– INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER

AX = 5201h

Return: BX = segment of buffer or 0000h if failed SeeAlso: AX=8300h,AH=FEh ———-1053——————————- INT 10 - Show Partner F/X v3.6 - START PRESENTATION

AH = 53h
DS:DX -> ASCIZ name of presentation file (no path, extension forced to
	.PR2)

Return: ??? SeeAlso: AH=55h ———-1055——————————- INT 10 - Show Partner F/X v3.6 - UNINSTALL

AH = 55h

Return: FXSHOW.EXE removed from memory SeeAlso: AH=53h ———-105555—————————– INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK

AX = 5555h

Return: AX = AAAAh if installed

BX:CX -> ??? routine in SMS.COM resident portion
      -> data area in VCONFIG

Note: Super Switch (SMS.COM) is a video mode switch program supplied with

  ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.

SeeAlso: INT 10/AH=00h,INT 2F/AX=6400h

Format of data area: Offset Size Description 00h DWORD original INT 09 vector 04h DWORD original INT 10 vector 08h DWORD original INT 1C vector 0Ch WORD screen saver state, 0=off, 1=on 0Eh WORD blanking interval in clock ticks ———-106A00BX0000———————– INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES

AX = 6A00h
BX = 0000h
CX = 0000h
DX = buffer length (may be 0)
ES:DI -> buffer

Return: BX = number of bytes stored in buffer

CX = bytes required for all descriptions (0 if no DGIS)

Note: buffer contains descriptions and addresses of DGIS-compatible

  display(s) and printer(s)

SeeAlso: AX=6A02h ———-106A01CX0000———————– INT 10 - DGIS - REDIRECT CHARACTER OUTPUT

AX = 6A01h
CX = 0000h
ES:DI = address of device to send INT 10 output to

Return: CX = 0000h output could not be redirected

     else INT 10h output now routed to requested display

SeeAlso: AX=6A02h ———-106A02—————————– INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE

AX = 6A02h
ES:DI = 0000h:0000h

Return: ES:DI = 0000h:0000h if current display is non-DGIS

	else address of the current DGIS INT 10 display

SeeAlso: AX=6A00h,AX=6A01h ———-106E00———————————— INT 10 - Paradise VGA internal - GET ???

AX = 6E00h

Return: AH = ??? (depends on serial number)

AL = ???
BX = ???
CL = ???
CH = ???
DX = ???

SeeAlso: AX=6E04,AX=6E05 ———-106E04————————————- INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???

AX = 6E04h

Return: BX = screen width (columns)

CX = screen height (lines)
AH = ??? (05h or FFh)
AL = ??? (04h or video mode)

SeeAlso: AX=6E00,AX=6E05 ———-106E05————————————- INT 10 - Paradise VGA internal - SET MODE

AX = 6E05h
BL = mode

Note: like AH=0, AL=BL. SeeAlso: AH=00,AX=6E00,AX=6E04,AX=6F05h ———-106F00—————————– INT 10 - VIDEO - INSTALLATION CHECK (Video7 VGA,VEGA VGA)

AX = 6F00h

Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present ———-106F01—————————– INT 10 - VIDEO - GET MONITOR INFO (Video7 VGA,VEGA VGA)

AX = 6F01h

Return: AL = monitor type code (VEGA VGA only)

AH = status register information
     bit  0 = display enable
		0 = display enabled
		1 = vertical or horizontal retrace in progress
     bit  1 = light pen flip flop set
     bit  2 = light pen switch activated
     bit  3 = vertical sync
     bit  4 = monitor resolution
		0 = high resolution (>200 lines)
		1 = low resolution (<=200 lines)
     bit  5 = display type
		0 = color
		1 = monochrome
     bits6,7= diagnostic bits

Note: bits 0-3 are the same as the EGA/VGA status register bits 0-3 ———-106F04—————————– INT 10 - VIDEO - GET MODE AND SCREEN RESOLUTION (Video7 VGA, VEGA VGA)

AX = 6F04h

Return: AL = current video mode (see AX=6F05h)

BX = horizontal columns (text) or pixels (graphics)
CX = vertical columns (text) or pixels (graphics)

SeeAlso: AX=6F05h ———-106F05—————————– INT 10 - VIDEO - SET VIDEO MODE (Video7 VGA, VEGA EXTENDED EGA/VGA)

AX = 6F05h
BL = mode (see below)

SeeAlso: AH=00h,AX=0070h

Values for video mode:

    text/ text pixel	 pixel	colors	disp	scrn  system
    grph resol  box	resoltn		page	addr

00h-13h = standard IBM modes (see AH=00h) 40h = T 80×43 8×8 Video7/VEGA VGA 41h = T 132×25 8×14 Video7/VEGA VGA 42h = T 132×43 8×8 Video7/VEGA VGA 43h = T 80×60 8×8 Video7/VEGA VGA 44h = T 100×60 8×8 Video7/VEGA VGA 45h = T 132×28 8×8 Video7/VEGA VGA 60h = G 752×410 16 Video7 VGA, VEGA VGA 61h = G 720×540 16 Video7 VGA, VEGA VGA

   = G		720x540	  16		     Northgate, Headland 1024i

62h = G 800×600 16 Video7 VGA, VEGA Ext EGA

   = G		800x600	  16		     Headland 1024i

63h = G 1024×768 2 Video7 VGA 64h = G 1024×768 4 Video7 VGA 65h = G 1024×768 16 Video7 VGA, VEGA Ext EGA

   = G	       1024x768	  16		     Headland 1024i

66h = G 640×400 256 Video7 VGA, VEGA Ext VGA

   = G		640x400	 256		     Northgate, Headland 1024i

67h = G 640×480 256 Video7 VGA, VEGA Ext VGA

   = G		640x480	 256		     Headland 1024i

68h = G 720×540 256 Video7 VGA, VEGA Ext VGA

   = G		720x540	 256		     Headland 1024i

69h = G 800×600 256 Video7 VGA, VEGA Ext VGA

   = G		800x600	 256		     Headland 1024i

70h = G 752×410 16gray Video7 VGA, VEGA VGA 71h = G 720×540 16gray Video7 VGA, VEGA VGA 72h = G 800×600 16gray Video7 VGA 73h = G 1024×768 2gray Video7 VGA 74h = G 1024×768 4gray Video7 VGA 75h = G 1024×768 16gray Video7 VGA 76h = G 640×400 256gray Video7 VGA 77h = G 640×480 256gray Video7 VGA 78h = G 720×540 256gray Video7 VGA 79h = G 800×600 256gray (future) SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h ———-106F06—————————– INT 10 - VIDEO - SELECT AUTOSWITCH MODE (V7VGA,VEGA VGA)

AX = 6F06h
BL = Autoswitch mode select
     00h select EGA/VGA-only modes
     01h select Autoswitched VGA/EGA/CGA/MGA modes
     02h select 'bootup' CGA/MGA modes
BH = enable/disable (00h enable, 01h = disable selection)

———-106F07—————————– INT 10 - VIDEO - GET VIDEO MEMORY CONFIGURATION (V7VGA,VEGA VGA)

AX = 6F07h

Return: AL = 6Fh

AH = bits 0-6 = number of 256K blocks of video memory
     bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
CX = 0000h

SeeAlso: AH=12h/BL=10h ———-1070——————————- INT 10 - VIDEO - GET ADDRESS OF VIDEO RAM (TANDY 2000 only)

AH = 70h

Return: AX:BX → WORD containing green plane's offset

AX:CX -> WORD containing green plane's segment
AX:DX -> WORD containing segment of red (offset 0) and blue (offset
		4000) planes

SeeAlso: AH=71h ———-107000BX0000———————– INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS

AX = 7000h
BX = 0000h

Return: AL = 70h if Trident-based Everex card

CL = monitor type
    00h mono
    01h CGA
    02h EGA
    03h digital multifrequency
    04h IBM PS/2
    05h IBM 8514
    06h SuperVGA
    07h analog multifrequency
    08h super multifrequency
CH = feature bits
    bits 7,6: 00 = 256K memory
	      01 = 512K memory
	      10 = 1024K
	      11 = 2048K memory
    bit 5:    special oscillator present
    bit 4:    VGA protect enabled
    bit 0:    6845 emulation
DX = video board info
    bits 4-15: board ID model
    bits 0-3:  board ID revision
DI = BCD BIOS version number

Note: board models for Trident-based Everex cards:

    236h Ultragraphics II
    620h Vision VGA
    673h EVGA
    678h Viewpoint

———-107000BX0004———————– INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE

AX = 7000h
BX = 0004h

Return: ES:DI → FAR paging function (call with DL = page to set) Note: the word preceding ES:DI is the length of the function in bytes, and

  the last byte of the function is a FAR return instruction.

SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h ———-107000BX0005———————– INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO

AX = 7000h
BX = 0005h
CL = maximum number of modes to get info for
CH = mode type to get info for (see below)
DL = monitor type to get info for
ES:DI -> buffer for mode info (see below)

Return: CL = total number of modes fitting criteria

CH = size of each info record

SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h

Values for mode type: 00h all modes 01h monochrome text modes 02h color text modes 03h four-color CGA graphics modes 04h two-color CGA graphics modes 05h 16-color graphics modes 06h 256-color graphics modes

Format of mode information record: Offset Size Description 00h BYTE mode number (bit 7 set if extended mode) 01h BYTE mode type (see above) 02h BYTE info bits

	bits 7,6 reserved
	     5	 monochrome mode
	     4	 interlaced display
	     3	 requires special oscillator
	     2,1 memory required
		 00 = 256K
		 01 = 512K
		 10 = 1024K
		 11 = 2048K
	     0	 reserved

03h BYTE font height 04h BYTE text columns on screen 05h BYTE text rows on screen 06h WORD number of scan lines 08h BYTE color information

	bits 7-4 reserved
	     3-0 bits per pixel

———-1071——————————- INT 10 - VIDEO - GET ADDRESS OF INCRAM (TANDY 2000 only)

AH = 71h

Return: AX:BX → WORD containing segment address of INCRAM

AX:CX -> WORD containing offset of INCRAM

SeeAlso: AH=70h ———-1072——————————- INT 10 - VIDEO - SCROLL RIGHT PART OR ALL OF SCREEN (TANDY 2000 only)

AH = 72h
AL = number of columns to shift scroll area, 00h to clear entire area
BH = new attributes for blanked columns at left
CH,CL = row, column of upper left corner of scroll area
DH,DL = row, column of lower right corner of scroll area

SeeAlso: AH=06h,AH=07h,AH=73h,INT 15/AH=12h/BH=05h ———-1073—————————— INT 10 - VIDEO - SCROLL LEFT PART OR ALL OF SCREEN (TANDY 2000 only)

AH = 73h
AL = number of columns to shift scroll area, 00h to clear entire area
BH = new attributes for blanked columns at right
CH,CL = row, column of upper left corner of scroll area
DH,DL = row, column of lower right corner of scroll area

SeeAlso: AH=06h,AH=07h,AH=72h,INT 15/AH=12h/BH=05h ———-107F00—————————– INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO

AX = 7F00h

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	    ES:DI -> info structure (see below)
	01h failed

SeeAlso: AX=4F00h

Format of info structure: Offset Size Description 00h DWORD pointer to VESA function dispatch table 04h DWORD pointer to SOLLEX function dispatch table 08h DWORD pointer to VESA SuperVGA info (see AX=4F00h) 0Ch DWORD pointer to mode info structure table, consisting of

	alternating ResInfo (see below) and VESA mode information
	(see AX=4F01h) blocks, terminated with an FFFFh word

10h DWORD pointer to font info structure table (see below) 14h WORD high resolution crystal frequency in Hz (0000h = not present) 16h DWORD pointer to ASCIZ ID string 1Ah DWORD pointer to timeout reset table

	array of bytes, each a multiple of the minimum time increment

1Eh WORD minimum time increment in timer ticks 20h BYTE inverse options supported

	bit 0: inverse supported
	bits 1-7: reserved

21h BYTE normal color value 22h BYTE inverse color value 23h WORD port to be accessed for normal/inverse settings 25h WORD type of interface chip (currently undefined) 27h WORD program operational mode

	bits 1-0: 00 no preference
		  01 terse (minimum detail in program messages)
		  10 verbose
		  11 use menus if supported, verbose mode otherwise
	bits 7-2: reserved

29h WORD SOLLEX specification version 2Bh WORD version of VESA/SOLLEX implementation 2Dh DWORD offset to relocatable portion of SOLLEX extensions (for CONFIG) 2Eh DWORD offset to unused section of the extensions ROM 31h 16 BYTEs reserved Note: all DWORD pointers initially require segment fixups; if the segment

  is 0000h, it should be changed to the returned ES, otherwise it
  may be assumed to be correct

Format of ResInfo: Offset Size Description 00h WORD 16-bit mode number 02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA) 04h WORD display info (see AX=7F01h/BL=01h) 06h DWORD pointer to video parameter table 0Ah BYTE replacement entry in master Video Parameter 0Bh BYTE mode requested for mode set by BIOS 0Ch DWORD pointer to LoadReg table 10h BYTE index into table of clock values (see below)

Format of font info table [array] entry: Offset Size Description 00h BYTE required font height 01h BYTE parameter to load text mode font 02h BYTE parameter to load graphics mode font

Values for clock value index: 00h 25 MHz 01h 28 MHz 02h PCLK 03h 31.5 MHz (VESA 640×480) 04h reserved 05h 16 MHz (EGA) 06h PCLK 07h 24 MHz (EGA) 08h 25 MHz 09h 28 MHz 0Ah 36 MHz 0Bh 45 MHz (for 1024×768) 0Ch 80 MHz 0Dh 40 MHz 0Eh 65 MHz 0Fh 1 MHz (for powerdown) ———-107F01BL00————————- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER

AX = 7F01h
BL = 00h
CX = adapter request
    bits 1-0: adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
    bit 2:    reserved
    bits 4-3: change displays (00 none, 01 analog 10 digital 11 panel)
    bits 6-5: desired monitor sense (01 color, 10 mono, 11=8514)
    bit 7:    lock override
    bit 8:    alternate adapter mode
    bits 15-9: reserved

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed

Note: initializes video hardware to a particular standard SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h ———-107F01BL01————————- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER

AX = 7F01h
BL = 01h

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed
    BX = adapter type (see AX=7F01h/BL=00h)
    DX = display type
	bits 1-0: monitor sense (00 none, 01 color, 10 mono, 11=8514)
	bit 2:	  multi-frequency analog monitor active
	bit 3:	  LCD panel active
	bit 4:	  plasma/electroluminescent panel active
	bit 5:	  PS/2-type monitor active
	bit 6:	  multi-frequency digital monitor active
	bit 7:	  Enhanced Color Display monitor active
	bit 8:	  alternate display active
	bits 15-9: reserved

SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h ———-107F01BL02————————- INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT

AX = 7F01h
BL = 02h
CX = adapter request (see AX=7F01h/BL=00h)

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h requested setting can successfully be made
	01h requested setting not available in this configuration

SeeAlso: AX=7F00h,AX=7F01h/BL=00h ———-107F02BL00————————- INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT

AX = 7F02h
BL = 00h
CX = display output setting
    bit 0: CRTC control in bits 2,1 valid
    bit 1: enable digital output
    bit 2: enable analog output
    bit 3: panel control in bits 5,4 valid
    bit 4: enable LCD output
    bit 5: enable plasma/EL output
    bit 6: inverse control in bit 7 valid
    bit 7: 0=normal, 1=inverse
    bits 15-8 reserved

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed

SeeAlso: AX=7F00h,AX=7F02h/BL=00h ———-107F02BL01————————- INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT

AX = 7F02h
BL = 01h

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	    BX = display output setting (see AX=7F02h/BL=00h)
	    CX = displays attached
		bit 0: PS/2 display on analog output
		bit 1: multi-frequency monitor on analog output
		bit 2: LCD panel attached
		bit 3: plasma/electroluminescent panel attached
		bit 4: multi-frequency monitor on digital output
		bit 5: Enhanced Color Display attached to digital outpt
		bit 6: alternate display
		bits 15-7: reserved
	01h failed

SeeAlso: AX=7F00h,AX=7F02h/BL=00h ———-107F03BL00————————- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO

AX = 7F03h
BL = 00h
CX = support type
	0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
	0005h-0012h reserved for SOLLEX, 0013h Hercules,
	0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	    CX = size of video support code
	    DX = segment of physical video support (0000h if no ROM)
	    ES = segment of active video support
	    ES:DI -> information block (DI = 0000h if none available)
	01h failed

SeeAlso: AX=7F03h/BL=01h ———-107F03BL01————————- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT

AX = 7F03h
BL = 01h
CX = support request
ES = segment of support code

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed

Note: initializes the indicated video support by calling ES:0003h; this

  function may be used to switch the active video support back to
  ROM after AX=7F03h/BL=02h

SeeAlso: AX=7F03h/BL=00h ———-107F03BL02————————- INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT

AX = 7F03h
BL = 02h
CX = support request
ES = destination segment

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed

SeeAlso: AX=7F00h,AX=7F03h/BL=01h ———-107F04BL00————————- INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE

AX = 7F04h
BL = 00h
CX = new power state

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed

Note: higher values progressively reduce the operations available on the

  video adapter while yielding increasing power savings

SeeAlso: AX=7F00h,AX=7F04h/BL=01h ———-107F04BL01————————- INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE

AX = 7F04h
BL = 01h

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	    CX = current power state
	    DX = maximum state
	01h failed

SeeAlso: AX=7F00h,AX=7F04h/BL=00h ———-107F04BL02————————- INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET

AX = 7F04h
BL = 02h
CX = timeout reset

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed

SeeAlso: AX=7F00h,AX=7F04h/BL=03h ———-107F04BL03————————- INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET

AX = 7F04h
BL = 03h

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	    BX = time increment
	    CX = current timeout reset
	    DX = maximum timeout reset
	    ES:DI -> timeout reset table (array of bytes)
	01h failed

Note: the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks SeeAlso: AX=7F00h,AX=7F04h/BL=02h ———-107F05—————————– INT 10 - SOLLEX SuperVGA - LOAD REGISTER

AX = 7F05h
ES:DI -> register value table (see below)

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed

SeeAlso: AH=F1h,AH=F3h,AH=F5h

Format of register value table: Offset Size Description 00h WORD base I/O register (FFFFh = end of list) 02h 2N BYTEs pairs of values to be written to the base I/O register as an

	index value and the following register as a data byte

2N+2 WORD FFFFh (end of data list)

... (repeats until FFFFh base address)

———-107F06—————————– INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL

AX = 7F06h
BL = subfunction
    00h set multiple font state
	CX = new state (00h off, 01h on)
    01h get multiple font state
	Return: BL = current state (00h off, 01h on)

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed

SeeAlso: AH=11h ———-107F07—————————– INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM

AX = 7F07h
BL = how much to fill
   00h regen size
   01h all video memory
CX = pattern to write (normally 0720h for text modes and 0000h for gr)

Return: AL != 7Fh if not supported

AL = 7Fh if supported
    AH = status
	00h successful
	01h failed

SeeAlso: AH=06h ———-1080–DX4456———————– INT 10 U - VIDEO (DESQview 2.0x only) - internal - SET ??? HANDLER

AH = 80h
DX = 4456h ('DV')
ES:DI -> FAR subroutine to be called on ???

Return: DS = segment of DESQview data structure for video buffer Note: this function is probably meant for internal use only, due to the magic

  value required in DX
the subroutine seems to be called when the DESQview menu is accessed;
  on entry, AL = 03h or 04h

———-1081–DX4456———————– INT 10 U - VIDEO (DESQview 2.0x only) - internal - GET ???

AH = 81h
DX = 4456h ('DV')

Return: ES = segment of DESQview data structure for video buffer

    BYTE ES:[0] = current window number in DV 2.0x

Note: this function is probably meant for internal use only, due to the magic

  value required in DX

SeeAlso: AH=82h ———-1082–DX4456———————– INT 10 U - VIDEO (DESQview 2.0x only) - internal - GET CURRENT WINDOW INFO

AH = 82h
DX = 4456h ('DV')

Return: DS = segment in DESQview for data structure

     in DV 2.00,
	  BYTE DS:[0] = window number
	  WORD DS:[1] = segment of other data structure
	  WORD DS:[3] = segment of window's object handle
ES = segment of DESQview data structure for video buffer
AL = current window number
AH = ???
BL = direct screen writes
    00h program does not do direct writes
    01h program does direct writes, so shadow buffer not usable
BH = ???
CL = current video mode
CH = ???

Note: this function is probably meant for internal use only, due to the magic

  value required in DX

SeeAlso: AH=81h ———-108200—————————– INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE

AX = 8200h
BL = new scroll mode or FFh to get current mode
    00h dynamic, 01h software

Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise) SeeAlso: AH=06h,AH=07h ———-108300—————————– INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS

AX = 8300h

Return: AX = offset of video RAM

ES:BX -> virtual text RAM buffer

SeeAlso: AX=5201h ———-108B——————————- INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE

AH = 8Bh

SeeAlso: AH=92h,AH=93h ———-1090——————————- INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE

AH = 90h

Return: AL = current video mode (see AH=00h) SeeAlso: AH=91h ———-1091——————————- INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE

AH = 91h

Return: AL = video adapter type

    00h monochrome
    01h Hercules monochrome graphics
    02h CGA
    03h EGA
    04h VGA
    80h monochrome text terminal
    81h Hercules graphics terminal
    82h color graphics terminal

Note: types less than 80h do not imply that the current user is on the host SeeAlso: AH=90h ———-1092——————————- INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES

AH = 92h

Note: the terminal will be updated even when screen updates are inhibited if

  TTY output is used

SeeAlso: AH=8Bh ———-1093——————————- INT 10 - Alloy MW386 - REDRAW SCREEN

AH = 93h

SeeAlso: AH=8Bh ———-10BF00—————————– INT 10 - VIDEO - Compaq Portable Extensions - SELECT EXTERNAL MONITOR

AX = BF00h

Note: all registers preserved and the internal monitor is blanked

the external monitor becomes the active monitor

SeeAlso: AX=BF01h ———-10BF01—————————– INT 10 - VIDEO - Compaq Portable Extensions - SELECT INTERNAL MONITOR

AX = BF01h

Note: all registers preserved and the external monitor is blanked

the internal monitor becomes the active monitor

SeeAlso: AX=BF00h ———-10BF02—————————– INT 10 - VIDEO - Compaq Portable Extensions - SET MASTER MODE OF CURRENT CTRLR

AX = BF02h
BH = master mode
    04h CGA
    05h EGA
    07h MDA

SeeAlso: AX=BF03h ———-10BF03BX0000———————– INT 10 - VIDEO - Compaq Portable/Systempro Extensions - GET ENVIRONMENT

AX = BF03h
BX = 0000h

Return: BH = active monitor

    00h = external
    01h = internal
BL = master mode
    00h = switchable VDU not present
    04h = CGA
    05h = EGA
    07h = MDA
    08h = switchable LCD controller present
CH = 00h (reserved)
CL = switchable VDU mode supported
    bit	 0   = CGA supported
    bits 1,2 = reserved (1)
    bit	 3   = MDA supported
    bits 4-7 = reserved (1)
DH = internal monitor type
    00h = none
    01h = Dual-mode monitor
    02h = 5153 RGB monitor
    03h = Compaq Color monitor
    04h = 640x400 flat panel
    07h = LCD VGA
DL = external monitor type
    00h = none
    01h = dual-mode monitor
    02h = 5153 RGB monitor
    03h = Compaq Color monitor
    04h = 640x400 flat panel
    05h = VGC monochrome
    06h = VGC color

SeeAlso: AH=1Ah,AX=BF00h,AX=BF01h,AX=BF02h ———-10BF04—————————– INT 10 - VIDEO - Compaq Portable Extensions - SET MODE SWITCH DELAY

AX = BF04h
BH = new state of delay
    00h enabled
    01h disabled

SeeAlso: AX=BF05h ———-10BF05—————————– INT 10 - VIDEO - Compaq Systempro Extensions - ENABLE/DISABLE DISPLAY

AX = BF05h
BH = new state of video
    00h off
    01h on

SeeAlso: AX=BF04h ———-10BF06—————————– INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE

AX = BF06h
CL = address to be read from gray scale table

Return: AL = bit 3-0 - Value read from gray scale table

CL = address to be read from gray scale table

SeeAlso: AH=12h/BL=33h,AX=BF07h ———-10BF07—————————– INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE

AX = BF07h
CH = value to write to gray scale table
CL = address to be written to gray scale table

SeeAlso: AX=BF06h ———-10BF08—————————– INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS

AX = BF08h
CH = bits 7-4 - Green weight
     bits 3-0 - Blue weight
CL = bits 7-4 - unused
     bits 3-0 - Red weight

———-10CC00SI0000———————– INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)

AX = CC00h
SI = 0000h (if checking version)

Return: CX = ABCDh

AL = Ultravision extensions
    00h enabled
    FFh disabled
AH = card designator
BX:00F0h -> palette values (for compatibility with NEWFONT)
DX = support for high resolution modes
    00h not active
    01h active
SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
   = unchanged for versions <1.2

SeeAlso: AX=CC01h,AX=CC02h ———-10CC01—————————– INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS

AX = CC01h

Notes: subsequent BIOS calls will be passed through to previous handler

should be followed immediately by mode set to restore normal EGA/VGA
  state

SeeAlso: AX=CC02h ———-10CC02—————————– INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS

AX = CC02h

Note: should be followed immediately by mode set to restore previous

  UltraVision state

SeeAlso: AX=CC01h ———-10CD00—————————– INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)

AX = CD00h
CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)

Notes: if palette locking is in effect for the current mode, the new colors

  will be displayed immediately; otherwise, the system reverts to the
  default palette
palette table 0 is reserved for the default palette and cannot be set
UltraVision always sets the border color to black

SeeAlso: AX=CD01h,AX=CD02h ———-10CD01—————————– INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)

AX = CD01h
CL = palette locking value
    00h none
    01h text modes only (02h,03h)
    FFh all modes (all standard color text and graphics modes)

Notes: intended for video modes with 16 or fewer colors SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h ———-10CD02—————————– INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)

AX = CD02h

Return: CL = palette table number

DS:DX -> 17-byte palette register list
DS:SI -> current font names table (see below)

Note: only the font names are valid on monochrome EGA systems SeeAlso: AX=1009h,AX=CD00h

Format of palette register list: Offset Size Description 00h 16 BYTEs colors for palette registers 00h through 0Fh 10h BYTE border color

Format of current font names table (v2+): Offset Size standard EGA HiRes EGA VGA 00h 8 BYTEs N/A F19 font F20 font 08h 8 BYTEs F14 font F14 font F14 font 10h 8 BYTEs N/A F11 font F10 font 18h 8 BYTEs F8 font F8 font F8 font

Format of current font names table (v1.x): Offset Size HiRes EGA 00h 8 BYTEs F19/F14 font 08h 8 BYTEs F11/F8 font ———-10CD03—————————– INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)

AX = CD03h

Return: CL = palette locking value

    00h none
    01h text modes only
    FFh all modes

SeeAlso: AX=CD01h ———-10CD04—————————– INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)

AX = CD04h

Return: AL = mode number

    11h 80x25
    12h 80x43, 80x50
    13h 80x34, 80x36
    14h 80x60, 80x63
    19h 94x25
    1Ah 94x43, 94x50
    1Bh 94x36
    1Ch 94x63
    21h 108x25
    22h 108x43, 108x50
    23h 107x34, 108x36
    24h 108x60, 108x63
    31h 120x25
    32h 120x43, 120x50
    33h 132x25
    34h 132x44, 132x50
    39h 120x36
    3Ah 120x63
    3Bh 132x36
    3Ch 132x60

SeeAlso: AH=0Fh,AX=CC00h,AH=CDh ———-10CD05—————————– INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)

AX = CD05h
CL = type
    00h line cursor
    FFh box cursor

Note: sets default cursor type for text-based programs SeeAlso: AH=01h,AX=CD06h ———-10CD06—————————– INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)

AX = CD06h

Return: CL = type

    00h line cursor
    FFh box cursor

SeeAlso: AH=03h,AX=CD05h ———-10CD07—————————– INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)

AX = CD07h
CL = hardware underline status
    00h off (color systems only)
    01h underline below characters
    02h strike through characters
BL = foreground color for normal text (FFh = current)
BH = foreground color for bright text (FFh = current)

Return: CL = hardware underline status

BL = current foreground color for normal text
BH = current foreground color for bright text

Notes: when underline or strikeout is enabled in color text modes, the

  specified colors will be assigned temporarily to colors 01h and 09h,
  allowing affected text to match non-underlined text.	The color
  remapping uses values from the current onscreen palette regardless
  of the palette locking status (see AX=CD01h)
specify the standard colors (BL=01h,BH=09h) to enable underline or
  strikeout without color remapping

SeeAlso: AX=CD08h ———-10CD08—————————– INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)

AX = CD08h

Return: CL = hardware underline status (see AX=CD07h)

BL = foreground color for normal text
BH = foreground color for bright text

Note: only CL is valid on monochrome EGA systems SeeAlso: AX=CD07h ———-10CD10—————————– INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)

AX = CD10h
BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
CX = ABCDh load 9xN alternate font (v2+)
   else number of characters to load
	DX = character offset into font table
	DS:SI -> 8-byte ASCII font name
ES:BP -> font definitions

Return: AX = FFFFh if invalid font parameters Notes: loads the designated characters into UltraVision's resident font area

should be followed by a video mode set to reload character generator

SeeAlso: AX=1100h ———-10CD——————————- INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)

AH = CDh
AL = text mode number (see AX=CD04h)

Return: AX = CDCDh if invalid mode SeeAlso: AX=CD04h ———-10EF——————————- INT 10 - VIDEO - MSHERC.COM - INSTALLATION CHECK???

AH = EFh

Return: DL = video adapter type

    00h original Hercules
    01h ???  \ one is probably Hercules Plus, the other
    02h ???  / Hercules InColor
    FFh non-Hercules 
DH = memory mode byte
    01h "half" mode
    03h "full" mode

Note: MSHERC.COM is a support program for the Microsoft Quick languages which

  makes their graphics libraries compatible with a Hercules card by
  adding video modes 08h and 88h, and supporting text in the new
  graphics modes.  While in mode 08h or 88h, INT 10 supports the
  Hercules card much like a CGA.

———-10F0——————————- INT 10 - EGA Register Interface Library - READ ONE REGISTER

AH = F0h
BL = register number
BH = 00h
DX = group index
    Pointer/data chips
       00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
       08h Sequencer (5 registers) 3C4h
       10h Graphics Controller (9 registers) 3CEh
       18h Attribute Controller (20 registers) 3C0h
    Single registers
       20h Miscellaneous Output register 3C2h
       28h Feature Control register (3BAh mono modes, 3DAh color modes)
       30h Graphics 1 Position register 3CCh
       38h Graphics 2 Position register 3CAh

Return: BL = data Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and

  others

SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h

F1h - EGA Register Interface Library - WRITE ONE REGISTER

AH = F1h
DX = group index (see AH=F0h)
    if single register:
	BL = value to write
    otherwise
	BL = register number
	BH = value to write

Return: BL = data Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and

  others

SeeAlso: AX=7F05h,AH=F0h,AH=F3h

F2h - EGA Register Interface Library - READ REGISTER RANGE

AH = F2h
CH = starting register number
CL = Number of registers (>1)
DX = group index
     00h CRTC (3B4h mono modes, 3D4h color modes)
     08h Sequencer 3C4h
     10h Graphics Controller 3CEh
     18h Attribute Controller 3C0h
ES:BX -> buffer, CL bytes

Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and

  others

SeeAlso: AH=F0h,AH=F3h

F3h - EGA Register Interface Library - WRITE REGISTER RANGE

AH = F3h
CH = starting register
CL = number of registers (>1)
DX = group index (see AH=F2h)
ES:BX -> buffer, CL bytes

Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and

  others

SeeAlso: AX=7F05h,AH=F1h,AH=F2h

F4h - EGA Register Interface Library - READ REGISTER SET

AH = F4h
CX = number of registers to read (>1)
ES:BX -> table of records (see below)

Return: register values in table filled in Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and

  others

SeeAlso: AH=F0h,AH=F2h,AH=F5h

Format of entries in table of register records:

Offset Size Description 00h WORD group index

	Pointer/data chips
	   00h CRTC (3B4h mono modes, 3D4h color modes)
	   08h Sequencer 3C4h
	   10h Graphics Controller 3CEh
	   18h Attribute Controller 3C0h
	Single registers
	   20h Miscellaneous Output register 3C2h
	   28h Feature Control register (3BAh mono modes, 3DAh color)
	   30h Graphics 1 Position register 3CCh
	   38h Graphics 2 Position register 3CAh

02h BYTE register number (0 for single registers) 03h BYTE register value

F5h - EGA Register Interface Library - WRITE REGISTER SET

AH = F5h
CX = number of registers to write (>1)
ES:BX -> table of records (see AH=F4h)

Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and

  others

SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h

F6h - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS

AH = F6h

Note: provided by the Microsoft Mouse driver, OS/2 compatibility box, and

  others

SeeAlso: AH=F7h

F7h - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE

	AH = F7h
	DX = port number
	   Pointer/data chips
	      00h CRTC (3B4h mono modes, 3D4h color modes)
	      08h Sequencer 3C4h
	      10h Graphics Controller 3CEh
	      18h Attribute Controller 3C0h
	   Single registers
	      20h Miscellaneous Output register 3C2h
	      28h Feature Control register (3BAh mono modes, 3DAh color modes)
	      30h Graphics 1 Position register 3CCh
	      38h Graphics 2 Position register 3CAh
	ES:BX -> table of one-byte entries, one byte to be written to each register

provided by the Microsoft Mouse driver, OS/2 compatibility box, and others

SeeAlso: AH=F6h

FAh

FAh - EGA Register Interface Library - INTERROGATE DRIVER

	AH = FAh
	BX = 0000h
Return: BX = 0000h if mouse driver not present
	ES:BX -> EGA Register Interface version number, if present:
	    byte 0 = major release number
	    byte 1 = minor release number

provided by the Microsoft Mouse driver, OS/2 compatibility box, and others

SeeAlso: AH=F6h,INT 2F/AX=BC00h

FAh - FASTBUFF.COM - INSTALLATION CHECK

	AH = FAh
Return: AX = 00FAh if installed
	    ES = segment of resident code

FASTBUFF.COM is a keyboard speedup/screen blanking utility by David Steiner

FEh - TopView - GET SHADOW BUFFER

	AH = FEh
	ES:DI -> assumed video buffer
		B800h:0000h color text/CGA graphics, B000h:0000h mono text, or A000h:0000h EGA/VGA graphics (RSIS environments only)
Return: ES:DI -> actual video buffer for calling process

if no multitasker or RSIS-compliant environment is installed, ES:DI is returned unchanged; RSIS is the Relocated Screen Interface Specification

for display pages other than 0, use AH=05h and AH=0Fh to determine whether a particular page exists

TopView requires a call to AH=FFh to notify it that the screen has changed; DESQview will check for changes itself until the first call to AH=FFh

SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh“DESQview”

FFh

FFh - TopView - UPDATE SCREEN FROM SHADOW BUFFER

	AH = FFh
	CX = number of consecutive changed characters
	ES:DI -> first changed character in shadow buffer

avoid CX=0000h

DESQview will discontinue the automatic screen updating initiated by AH=FEh after this call

SeeAlso: AH=FEh

FFh - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS

	AH = FFh
	AL = video mode
	    00h 80x25 text
	    01h default text
	    02h CXxDX text
	    03h biggest text
	    04h 320x200 graphics
	    05h default graphics
	    06h CXxDX graphics
	    07h	biggest non-interlaced graphics
	    08h biggest graphics

SeeAlso: AH=00h,INT 21/AH=FFh“GO32”

FF00h - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP

	AX = FF00h
Return: BL = 00h not connected
	   = 01h connected

FF01h - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE

	AX = FF01h

FF02h - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED

	AX = FF02h
Return: ES:DI -> ASCIZ phone number