Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/floppy/doc/INTERRUP.A
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2022-09-02 09:18:52 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2022-09-02 09:18:52 +0200
commit52be99d8c0862ff87db9a4f9ccec1ac4b5f7caed (patch)
tree1a1a1c98090afd8459cc8f045f9de2d4a7cba5ab /floppy/doc/INTERRUP.A
parent15adaba9eaa6a98c8b55bc5c5f73c3a9e0e55e7a (diff)
added a quite unsorted first version of a floppy boot loader
Diffstat (limited to 'floppy/doc/INTERRUP.A')
-rw-r--r--floppy/doc/INTERRUP.A9492
1 files changed, 9492 insertions, 0 deletions
diff --git a/floppy/doc/INTERRUP.A b/floppy/doc/INTERRUP.A
new file mode 100644
index 0000000..ea3a860
--- /dev/null
+++ b/floppy/doc/INTERRUP.A
@@ -0,0 +1,9492 @@
+Interrupt List Release 61 Last change 16jul00
+Copyright (c) 1989-1999,2000 Ralf Brown
+--------!---FILELIST-------------------------
+Please redistribute the following files unmodified as a group, in a quartet of
+archives named INTER61A through INTER61D (preferably the original authenticated
+PKZIP archives):
+ INTERRUP.1ST the read-me file, containing credits, availability info
+ INTERRUP.A INT 00 through INT 10/BE \
+ INTERRUP.B INT 10/BF through INT 15/0F\
+ INTERRUP.C INT 15/10 through INT 15/E7 \
+ INTERRUP.D INT 15/E8 through INT 1A/B0 \
+ INTERRUP.E INT 1A/B1 through INT 1F \ total 2520 pages at
+ INTERRUP.F INT 20 through INT 21/43 \ 60 lines per page,
+ INTERRUP.G INT 21/44 through INT 21/5E \ 2684 with INTPRINT -p
+ INTERRUP.H INT 21/5F through INT 21/E2 >(8754 entries)
+ INTERRUP.I INT 21/E3 through INT 21/F1 / (4135 tables)
+ INTERRUP.J INT 21/F2 through INT 25 /
+ INTERRUP.K INT 26 through INT 2F/15 /
+ INTERRUP.L INT 2F/16 through INT 2F/79 /
+ INTERRUP.M INT 2F/7A through INT 2F/D9 /
+ INTERRUP.N INT 2F/DA through INT 50 /
+ INTERRUP.O INT 51 through INT 61 /
+ INTERRUP.P INT 62 through INT 6A /
+ INTERRUP.Q INT 6B through INT 91 /
+ INTERRUP.R INT 92 through INT FF /
+ INTERRUP.PRI a brief introduction to interrupts
+ INTPRINT.COM a simple formatter that also generates a list summary
+ INTPRINT.DOC instructions for INTPRINT
+ OVERVIEW.LST brief listing of major uses of each interrupt
+ 86BUGS.LST a listing of CPU bugs and undocumented features
+ BIBLIO.LST bibliography of information sources for the list
+ CMOS.LST a description of the CMOS RAM data bytes
+ FARCALL.LST APIs available through FAR CALLs
+ GLOSSARY.LST a glossary of terms, abbreviations, and acronyms
+ MEMORY.LST format of the BIOS data area
+ OPCODES.LST a listing of recent and undocumented CPU instructions
+ PORTS.A a listing of I/O ports 0000h-013Fh
+ PORTS.B a listing of I/O ports 0140h-0AD5h
+ PORTS.C a listing of I/O ports 0AD6h-FFFFh
+ CATEGORY.KEY descriptions of divider-line category letters
+ COMBINE.COM combine the pieces of the list into a single file
+ COMBINE.DOC documentation for COMBINE
+The following files should be distributed in an archive called INTER61E:
+ 86BUGSnn.ZIP programs to test for CPU bugs
+ COMBINE.ASM source code for COMBINE.COM
+ INT.* invoke interrupts from commandline
+ INTHLP??.ZIP Interrupt Helper viewer for the interrupt list
+ INTLIST.E Epsilon extension for handling list
+ INTPRINT.C source code for INTPRINT
+ INTSUM??.ZIP interrupt list browser (Interrupt Summary)
+ IVIEW*.ZIP another interrupt list browser
+Finally, the following should be distributed in an archive called INTER61F:
+ INT2RTF.ZIP Slava Gostrenko's Windows Help converter
+ INT2WHLP.ZIP convert list into Windows Help database
+ INTERRUP.ICO icon for interrupt list
+ HINTSRCH.ZIP WinHelp DLL for full-text searches of interrupt list
+ IL2ME???.ZIP convert list into Multi-Edit help database
+ INT2GUID.* convert list into TurboPower GUIDE or POPHELP database
+ INT2HLP.ZIP convert list into QuickHelp database
+ INT2IPF.ZIP convert list into OS/2 .IPF database
+ INT2QH.* program to convert list into QuickHelp database
+ INT2TPH.ZIP convert to Turbo/Borland Pascal help file (.TPH)
+ INTHELP.* convert list into TurboPower GUIDE database
+ RB2NG???.ZIP convert list into Norton Guides database
+ WH_ED*.ZIP WinHelp-file editor
+--------!---CONTACT_INFO---------------------
+If you notice any mistakes or omissions, please let me know! It is only with
+YOUR help that the list can continue to grow at the current rate. Please send
+all changes to me rather than distributing a modified version of the list.
+
+Please read the file INTERRUP.1ST before asking me any questions. You may find
+that they have already been addressed.
+
+ Ralf Brown
+
+Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
+FIDO: Ralf Brown 1:129/26.1
+ or post a message to me in the DR_DEBUG echo (I probably won't see it
+ unless you address it to me)
+
+I reply to all e-mail submissions, but some of my replies bounce because of
+bad return paths. If you don't get a response from me within a reasonable
+period of time, send it again with a better return path (many mailers are
+improperly configured and do not produce a valid From: address).
+--------!---Note-----------------------------
+See INTERRUP.1ST for the key to system abbreviations and a list of the
+trademarks mentioned here.
+--------!---DISCLAIMER-----------------------
+DISCLAIMER: THIS MATERIAL IS PROVIDED "AS IS". I verify the information
+contained in this list to the best of my ability, but I cannot be held
+responsible for any problems caused by use or misuse of the information,
+especially for those functions not officially documented. If it is marked
+"internal" or undocumented, you should check it carefully to make sure it
+works the same way in your version of the software (and please let me know
+whether or not it works the same way). Information marked with "???" is
+known to be incomplete or guesswork.
+--------!---FLAGS----------------------------
+The use of -> instead of = signifies that the indicated register or register
+pair contains a pointer to the specified item, rather than the item itself.
+Register pairs (such as AX:BX) indicate that the item is split across the
+registers, with the high-order half in the first register.
+
+One or more letters may follow the interrupt number; they have the following
+meanings: U - undocumented function, u - partially documented function,
+P - available only in protected mode, R - available only in real or V86 mode,
+C - callout or callback (usually hooked rather than called),
+O - obsolete (no longer present in current versions)
+--------!---CATEGORIES-----------------------
+The ninth column of the divider line preceding an entry usually contains a
+classification code (the entry has not been classified if that character is
+a dash). The codes currently in use are:
+ A - applications, a - access software (screen readers, etc),
+ B - BIOS, b - vendor-specific BIOS extensions,
+ C - CPU-generated, c - caches/spoolers,
+ D - DOS kernel, d - disk I/O enhancements,
+ E - DOS extenders, e - electronic mail, F - FAX,
+ f - file manipulation, G - debuggers/debugging tools, g - games,
+ H - hardware, h - vendor-specific hardware,
+ I - IBM workstation/terminal emulators, i - system info/monitoring,
+ J - Japanese, j - joke programs,
+ K - keyboard enhancers, k - file/disk compression,
+ l - shells/command interpreters,
+ M - mouse/pointing device, m - memory management,
+ N - network, n - non-traditional input devices,
+ O - other operating systems,
+ P - printer enhancements, p - power management,
+ Q - DESQview/TopView and Quarterdeck programs,
+ R - remote control/file access, r - runtime support,
+ S - serial I/O, s - sound/speech,
+ T - DOS-based task switchers/multitaskers, t - TSR libraries
+ U - resident utilities, u - emulators,
+ V - video, v - virus/antivirus,
+ W - MS Windows,
+ X - expansion bus BIOSes, x - non-volatile config storage
+ y - security, * - reserved (and not otherwise classified)
+--------C-00---------------------------------
+INT 00 C - CPU-generated - DIVIDE ERROR
+Desc: generated if the divisor of a DIV or IDIV instruction is zero or the
+ quotient overflows the result register; DX and AX will be unchanged.
+Notes: on an 8086/8088, the return address points to the following instruction
+ on an 80286+, the return address points to the divide instruction
+ an 8086/8088 will generate this interrupt if the result of a division
+ is 80h (byte) or 8000h (word)
+SeeAlso: INT 04,OPCODE "AAD"
+--------G-00---------------------------------
+INT 00 - Zenith - ROM DEBUGGER
+Desc: invokes the ROM Debugger when at the BIOS level; equivalent to
+ pressing Ctrl-Alt-Ins on booting.
+Note: since DOS revectors INT 00, it is necessary to restore this vector to
+ its original ROM BIOS value in order to invoke the debugger once DOS
+ loads
+SeeAlso: INT 03"Columbia"
+--------C-01---------------------------------
+INT 01 C - CPU-generated - SINGLE STEP
+Desc: generated after each instruction if TF (trap flag) is set; TF is
+ cleared on invoking the single-step interrupt handler
+Notes: interrupts are prioritized such that external interrupts are invoked
+ after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
+ first instruction of the handler executes
+ used by debuggers for single-instruction execution tracing, such as
+ MS-DOS DEBUG's T command
+SeeAlso: INT 03"CPU"
+--------C-01---------------------------------
+INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
+Desc: generated by the CPU on various occurrences which may be of interest
+ to a debugger program
+Note: events which may trigger the interrupt:
+ Instruction address breakpoint fault - will return to execute inst
+ Data address breakpoint trap - will return to following instruction
+ General detect fault, debug registers in use
+ Task-switch breakpoint trap
+ undocumented 386/486 opcode F1h - will return to following instruc
+SeeAlso: INT 03"CPU"
+--------H-02---------------------------------
+INT 02 C - external hardware - NON-MASKABLE INTERRUPT
+Desc: generated by the CPU when the input to the NMI pin is asserted
+Notes: return address points to start of interrupted instruction on 80286+
+ on the 80286+, further NMIs are disabled until the next IRET
+ instruction, but one additional NMI is remembered by the hardware
+ and will be serviced after the IRET instruction reenables NMIs
+ maskable interrupts may interrupt the NMI handler if interrupts are
+ enabled
+ although the Intel documentation states that this interrupt is
+ typically used for power-failure procedures, it has many other uses
+ on IBM-compatible machines:
+ Memory parity error: all except Jr, CONV, and some machines
+ without memory parity
+ Breakout switch on hardware debuggers
+ Coprocessor interrupt: all except Jr and CONV
+ Keyboard interrupt: Jr, CONV
+ I/O channel check: CONV, PS50+
+ Disk-controller power-on request: CONV
+ System suspend: CONV
+ Real-time clock: CONV
+ System watch-dog timer, time-out interrupt: PS50+
+ DMA timer time-out interrupt: PS50+
+ Low battery: HP 95LX
+ Module pulled: HP 95LX
+--------m-02----SI0714-----------------------
+INT 02 U - STB RAPIDMAP.SYS - ???
+ SI = 0714h
+ ES:DI -> ???
+Return: ???
+SeeAlso: INT 67/AX=6100h"STB",PORT 00E1h"STB"
+--------C-03---------------------------------
+INT 03 C - CPU-generated - BREAKPOINT
+Desc: generated by the one-byte breakpoint instruction (opcode CCh)
+Notes: used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
+ command
+ also used by Turbo Pascal versions 1,2,3 when {$U+} specified
+ return address points to byte following the breakpoint instruction
+ called by Novell DOS 7 EMM386 after displaying an exception error
+ message (GPF, illegal opcodes, etc.) and before waiting for user
+ input
+ called by QEMM-386 if the user presses 'I' (undocumented) when prompted
+ after an exception error message
+SeeAlso: INT 01"CPU"
+--------G-03---------------------------------
+INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
+Desc: invokes the ROM Debugger if INT 03 has not been revectored; equivalent
+ to pressing Esc on booting.
+SeeAlso: INT 00"Zenith",INT 03"Realia"
+--------G-03---------------------------------
+INT 03 - Realia COBOL - DEBUGGER SUPPORT
+Note: Realia COBOL checks for a signature eight bytes prior to the interrupt
+ handler when it starts up
+BUG: if the offset of the INT 03 vector is less than 8, the compiler and
+ all executables generated by it will crash the system
+SeeAlso: INT 03"Columbia"
+--------G-03---------------------------------
+INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE
+ STACK: DWORD selector
+ DWORD offset of ASCIZ message to display
+Notes: the INT 03h instruction which invokes the debugger must be followed by
+ a JMP SHORT and the signature string "WVIDEO"
+ to check whether this interface is available, define a public byte
+ variable named ___WD_Present, which the debugger will set to 01h
+ before running the program
+SeeAlso: AX=0910h
+--------U-03---------------------------------
+INT 03 - DTown Utilities - POP UP
+Program: DTown Software Development's DTown Utilities contains various tools
+ which are useful to programmers, such as a memory viewer and
+ disassembler
+Note: DTU pops up on INT 03 (if not hooked by a debugger) to allow the
+ user to inspect memory or code when the machine crashes; various
+ memory managers will invoke INT 03 when displaying a CPU exception
+ error message (either automatically or when the user presses a
+ particular key)
+SeeAlso: INT 2D/AL=20h"DTown"
+--------G-030000-----------------------------
+INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET Soft-ICE VERSION
+ AX = 0000h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+Return: SI = BCD version (0280h = v2.80)
+SeeAlso: INT 03/AX=0910h
+--------G-0301-------------------------------
+INT 03 - Soft-ICE - BACK DOOR COMMANDS - ???
+ AH = 01h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+Return: ???
+SeeAlso: AX=0000h,AX=090Bh,INT 03/AH=10h
+--------G-030900-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 0900h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:BX -> ???
+ CX = ???
+ DX = ???
+Return: ???
+SeeAlso: AX=0000h,AH=01h,AX=0902h,AX=0914h
+--------G-030902-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - POPUP & START A DEBUG SESSION
+ AX = 0902h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:BX -> initial register values (see #00001)
+Return: registers as specified in initial register values table
+Note: This function is called by LDR.EXE in loading a program to
+ be debugged. After executing the function, Soft-ICE pops up its
+ debugging window and you may start debugging your program.
+Return: ???
+SeeAlso: AX=0000h,AX=090Ah,AX=0910h,AX=0914h
+
+Format of Soft-ICE initial register values:
+Offset Size Description (Table 00001)
+ 00h WORD initial value of SP
+ 02h WORD initial value of SS
+ 04h WORD initial value of IP
+ 06h WORD initial value of CS
+ 08h WORD initial value of DS and ES
+ 0Ah WORD ???
+ 0Ch WORD ???
+ 0Eh WORD ???
+ 10h WORD initial value of AX
+ 12h WORD ??? (defaults to 000AH ???)
+ 14h WORD ??? (defaults to 0001H ???)
+ 16h WORD ??? (defaults to 0100H ???)
+--------G-030903-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 0903h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:BX -> ???
+ CX = ???
+ DX = ???
+Return: ???
+SeeAlso: AX=0000h,AX=0902h,AX=0907h,AX=0914h
+--------G-030907-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 0907h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:BX -> ???
+ CX = ???
+ DX = ???
+Return: ???
+SeeAlso: AX=0000h,AX=0903h,AX=090Ah,AX=0914h
+--------G-03090A-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 090Ah
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:BX -> ???
+ CX = ???
+ DX = ???
+Return: ???
+SeeAlso: AX=0000h,AX=0907h,AX=090Bh,AX=0914h
+--------G-03090B-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 090Bh
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:BX -> ???
+ CX = ???
+ DX = ???
+Return: ???
+SeeAlso: AX=0000h,AX=090Ah,AX=0910h,AX=0914h
+--------G-030910-----------------------------
+INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
+ AX = 0910h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
+Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
+SeeAlso: INT 03"WVIDEO"
+--------G-030911-----------------------------
+INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
+ AX = 0911h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
+Return: nothing
+SeeAlso: AX=0912h,AX=0913h
+--------G-030912-----------------------------
+INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
+ AX = 0912h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+Return: BH = entry number of last breakpoint set
+ BL = type of last breakpoint set (see #00002)
+ DH = entry number of last breakpoint to be triggered
+ DL = type of last triggered breakpoint (see #00002)
+Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
+SeeAlso: AX=0911h,AX=0913h,AX=0914h
+
+(Table 00002)
+Values for Soft-ICE breakpoint type:
+ 00h BPM (breakpoint register types)
+ 01h I/O
+ 02h INTerrupt
+ 03h BPX (INT 03-style breakpoint)
+ 04h reserved
+ 05h range
+--------G-030913-----------------------------
+INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
+ AX = 0913h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:DX -> breakpoint structure (see #00003)
+Return: AX = status
+ 00h successful
+ BX = breakpoint number
+ 03h breakpoint table full
+ 06h memory limit error
+ 07h I/O limit error
+ 09h range limit error
+ 16h duplicate breakpoint
+SeeAlso: AX=0911h,AX=0912h,AX=0914h
+
+Format of Soft-ICE breakpoint structure:
+Offset Size Description (Table 00003)
+ 00h BYTE breakpoint type (see #00004)
+ 01h DWORD breakpoint address 1
+ (lower range limit for memory BPs,
+ interrupt number for interrupt BPs,
+ address of BP for execution BPs,
+ I/O address (only word) for I/O BPs)
+ 05h DWORD breakpoint address 2
+ (upper range limit for memory BPs,
+ optional value to check for for interrupt BPs,
+ overlay number (0 = root) for execution BPs)
+ 09h DWORD breakpoint address 3
+ 0Dh BYTE breakpoint mode 1 (see #00005)
+ (for interrupt BPs = register to check
+ 00h no value checking
+ 01h check AL
+ 02h check AH
+ 03h check AX)
+ 0Eh BYTE breakpoint mode 2 (see #00005)
+ 0Fh BYTE breakpoint size (00h byte, 01h word, 03h dword)
+ 10h BYTE breakpoint pass count before program stop
+ 11h BYTE breakpoint state
+Note: all unused fields should contain zeros
+
+(Table 00004)
+Values for Soft-ICE breakpoint type:
+ 00h memory location
+ 01h memory range
+ 03h I/O
+ 04h interrupt
+ 05h execution break
+
+(Table 00005)
+Values for Soft-ICE breakpoint mode:
+ 01h read
+ 02h write
+ 04h execution
+--------G-030914-----------------------------
+INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
+ AX = 0914h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ BX = breakpoint number (returned by AX=0913h)
+Return: BX = ???
+Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
+SeeAlso: AX=0912h,AX=0913h
+--------G-030918-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 0918h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ DS:BX -> ???
+ CX = ???
+ DX = ???
+Return: ???
+SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=0914h,INT 03/AH=10h
+--------G-0310-------------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AH = 10h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+Return: ???
+SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=01h,INT 03/AH=11h
+--------G-0311-------------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AH = 11h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+Return: none???
+SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=10h,INT 03/AX=130Ch
+--------G-03130C-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 130Ch
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ BX = ???
+ CX = ???
+ DX = ???
+Return: AX = ??? (1300h)
+SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=11h,INT 03/AX=130Eh
+--------G-03130E-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 130Eh
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ BX = ???
+ CX = ???
+ DX = ???
+Return: AX = ??? (1300h)
+SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=130Ch,INT 03/AX=1313h
+--------G-031313-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 1313h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+ BX = ???
+ CX = ???
+ DX = ???
+Return: AX = ??? (1300h)
+SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AX=130Eh
+--------G-030900-----------------------------
+INT 03 - Soft-ICE v2.80 - BACK DOOR COMMANDS - ???
+ AX = 0900h
+ SI = magic value 4647h ('FG')
+ DI = magic value 4A4Dh ('JM')
+Return: none???
+SeeAlso: INT 03/AX=0000h,INT 03/AX=0910h,INT 03/AH=10h,INT 03/AH=12h
+--------C-04---------------------------------
+INT 04 C - CPU-generated - INTO DETECTED OVERFLOW
+Desc: the INTO instruction will generate this interrupt if OF (Overflow Flag)
+ is set; otherwise, INTO is effectively a NOP
+Note: may be used for convenient overflow testing (to prevent errors from
+ propagating) instead of JO or a JNO/JMP combination
+SeeAlso: INT 00"CPU",OPCODE "AAD",OPCODE "AAM"
+--------B-05---------------------------------
+INT 05 - PRINT SCREEN
+Desc: dump the current text screen to the first printer
+Notes: normally invoked by the INT 09 handler when PrtSc key is pressed, but
+ may be invoked directly by applications
+ byte at 0050h:0000h contains status used by default handler
+ 00h not active
+ 01h PrtSc in progress
+ FFh last PrtSc encountered error
+ default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
+ since the BOUND instruction also calls INT 05h, but returns control
+ to the BOUND instruction, a failed BOUND check will cause an infinite
+ loop of PrtScreens unless the INT 05 handler is aware of the problem
+ and checks whether the interrupt was invoked by a BOUND instruction
+BUG: some old BIOSes/applications appear to destroy BP on return
+SeeAlso: INT 10/AH=12h/BL=20h,INT 4A"Tandy 2000",INT 5E"TI Professional"
+SeeAlso: INT 80"Phar Lap"
+--------C-05---------------------------------
+INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED
+Desc: generated by BOUND instruction when the value to be tested is less than
+ the indicated lower bound or greater than the indicated upper bound.
+Note: returning from this interrupt re-executes the failing BOUND instruction
+--------P-05454A-----------------------------
+INT 05 U - PSPS v2.01 - EJECT PAGE
+ AX = 454Ah ('EJ')
+Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
+ Technologies
+Note: sends a ^D to the current printer
+SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
+--------P-054E57-----------------------------
+INT 05 U - PSPS v2.01 - SET PARAMETERS
+ AX = 4E57h ('NW')
+ ES:SI -> 11-byte buffer containing new settings
+Return: buffer filled
+SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
+--------P-055053-----------------------------
+INT 05 U - PSPS v2.01 - GET PARAMETERS
+ AX = 5053h ('PS')
+ ES:SI -> 11-byte buffer for settings
+Return: buffer filled
+SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
+--------P-05554E-----------------------------
+INT 05 U - PSPS v2.01 - UNINSTALL
+ AX = 554Eh ('UN')
+Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
+ Technologies
+SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
+--------C-06---------------------------------
+INT 06 C - CPU-generated (80186+) - INVALID OPCODE
+Desc: this interrupt is generated when the CPU attempts to execute an
+ invalid opcode (most protected-mode instructions are considered
+ invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
+ which specifies a register rather than a memory address
+Notes: return address points to beginning of invalid instruction
+ with proper programming, this interrupt may be used to emulate
+ instructions which do not exist; many 386 BIOSes emulate the 80286
+ undocumented LOADALL instruction which was removed from the 80386+
+ generated by the 80386+ when the LOCK prefix is used with instructions
+ other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
+ NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
+ not accessing memory.
+SeeAlso: INT 0C"CPU",INT 0D"CPU"
+--------b-06---------------------------------
+INT 06 C - HP 95LX - SLEEP/WAKEUP
+Desc: this interrupt is called just before going into light or deep
+ (shutdown) sleep and just after returning from light or deep sleep
+SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
+--------V-06---------------------------------
+INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!)
+Desc: points at graphics data for characters 00h-7Fh of the current font
+SeeAlso: INT 43"EGA",INT 44"VIDEO"
+--------C-07---------------------------------
+INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
+Desc: this interrupt is automatically called if a coprocessor instruction is
+ encountered when no coprocessor is installed
+Note: can be used to emulate a numeric coprocessor in software
+SeeAlso: INT 09"CPU"
+--------H-08---------------------------------
+INT 08 C - IRQ0 - SYSTEM TIMER
+Desc: generated 18.2 times per second by channel 0 of the 8254 system timer,
+ this interrupt is used to keep the time-of-day clock updated
+Notes: programs which need to be invoked regularly should use INT 1C unless
+ they need to reprogram the timer while still keeping the time-of-day
+ clock running at the proper rate
+ default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
+ may be masked by setting bit 0 on I/O port 21h
+SeeAlso: INT 1C,INT 4A"SYSTEM",INT 50"DESQview",INT 58"DoubleDOS",INT 70"IRQ8"
+SeeAlso: INT 78"GO32",INT D8"Screen Thief",MEM 0040h:0040h,MEM 0040h:006Ch
+--------C-08---------------------------------
+INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
+Desc: called when multiple exceptions occur on one instruction, or an
+ exception occurs in an exception handler
+Notes: called in protected mode if an interrupt above the defined limit of
+ the interrupt vector table occurs
+ return address points at beginning of instruction with errors or the
+ beginning of the instruction which was about to execute when the
+ external interrupt caused the exception
+ if an exception occurs in the double fault handler, the CPU goes into
+ SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
+ this "triple fault" is a faster way of returning to real mode on
+ many 80286 machines than the standard keyboard controller reset
+--------H-09---------------------------------
+INT 09 C - IRQ1 - KEYBOARD DATA READY
+Desc: this interrupt is generated when data is received from the keyboard.
+ This is normally a scan code (from either a keypress *or* a key
+ release), but may also be an ACK or NAK of a command on AT-class
+ keyboards.
+Notes: this IRQ may be masked by setting bit 1 on I/O port 21h
+ if the BIOS supports an enhanced (101/102-key) keyboard, it calls
+ INT 15/AH=4Fh after reading the scan code (see #00006) from the
+ keyboard and before further processing; all further processing uses
+ the scan code returned from INT 15/AH=4Fh
+ the default interrupt handler is at F000h:E987h in 100%-compatible
+ BIOSes
+ the interrupt handler performs the following actions for certain
+ special keystrokes:
+ Ctrl-Break clear keyboard buffer, place word 0000h in buffer,
+ invoke INT 1B, and set flag at 0040h:0071h
+ SysReq invoke INT 15/AH=85h (SysReq is often labeled SysRq)
+ Ctrl-Numlock place system in a tight wait loop until next INT 09
+ Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
+ destination of the jump at that address)
+ Shift-PrtSc invoke INT 05
+ Ctrl-Alt-Plus (HP Vectra) enable keyclick
+ Ctrl-Alt-Plus (many clones) set clock speed to high
+ Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume
+ Ctrl-Alt-Minus (many clones) set clock speed to low
+ Ctrl-Alt-SysReq (HP Vectra) generate hard reset
+ Ctrl-Alt-S (many clones) run BIOS setup program
+ Ctrl-Alt-Esc (many clones) run BIOS setup program
+ Ctrl-Alt-Ins (many clones) run BIOS setup program
+ Ctrl-Alt-LeftShift-GrayMinus (some clones) turn off system cache
+ Ctrl-Alt-LeftShift-GrayPlus (some clones) turn on system cache
+ DR DOS hooks this interrupt to control the cursor shape (underscore/
+ half block) for overwrite/insert mode
+ DR Multiuser DOS hooks this interrupt for cursor shape control and to
+ control whether Ctrl-Alt-Del reboots the current session or the
+ entire system
+SeeAlso: INT 05"PRINT SCREEN",INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h
+SeeAlso: INT 16/AH=00h,INT 16/AH=10h,INT 1B,INT 2F/AX=A901h,INT 4A/AH=00h"TI"
+SeeAlso: INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
+
+(Table 00006)
+Values for keyboard make/break (scan) code:
+ 01h Esc 31h N
+ 02h 1 ! 32h M
+ 03h 2 @ 33h , < 63h F16
+ 04h 3 # 34h . > 64h F17
+ 05h 4 $ 35h / ? 65h F18
+ 06h 5 % 36h Right Shift 66h F19
+ 07h 6 ^ 37h Grey* 67h F20
+ 08h 7 & 38h Alt 68h F21 (Fn) [*]
+ 09h 8 * 39h SpaceBar 69h F22
+ 0Ah 9 ( 3Ah CapsLock 6Ah F23
+ 0Bh 0 ) 3Bh F1 6Bh F24
+ 0Ch - _ 3Ch F2 6Ch --
+ 0Dh = + 3Dh F3 6Dh EraseEOF
+ 0Eh Backspace 3Eh F4
+ 0Fh Tab 3Fh F5 6Fh Copy/Play
+ 10h Q 40h F6
+ 11h W 41h F7
+ 12h E 42h F8 72h CrSel
+ 13h R 43h F9 73h <delta> [*]
+ 14h T 44h F10 74h ExSel
+ 15h Y 45h NumLock 75h --
+ 16h U 46h ScrollLock 76h Clear
+ 17h I 47h Home 77h [Note2] Joyst But1
+ 18h O 48h UpArrow 78h [Note2] Joyst But2
+ 19h P 49h PgUp 79h [Note2] Joyst Right
+ 1Ah [ { 4Ah Grey- 7Ah [Note2] Joyst Left
+ 1Bh ] } 4Bh LeftArrow 7Bh [Note2] Joyst Up
+ 1Ch Enter 4Ch Keypad 5 7Ch [Note2] Joyst Down
+ 1Dh Ctrl 4Dh RightArrow 7Dh [Note2] right mouse
+ 1Eh A 4Eh Grey+ 7Eh [Note2] left mouse
+ 1Fh S 4Fh End
+ 20h D 50h DownArrow
+ 21h F 51h PgDn
+ 22h G 52h Ins
+ 23h H 53h Del
+ 24h J 54h SysReq ---non-key codes---
+ 25h K 55h [Note1] F11 00h kbd buffer full
+ 26h L 56h left \| (102-key)
+ 27h ; : 57h F11 AAh self-test complete
+ 28h ' " 58h F12 E0h prefix code
+ 29h ` ~ 59h [Note1] F15 E1h prefix code
+ 2Ah Left Shift 5Ah PA1 EEh ECHO
+ 2Bh \ | 5Bh F13 (LWin) F0h prefix code (key break)
+ 2Ch Z 5Ch F14 (RWin) FAh ACK
+ 2Dh X 5Dh F15 (Menu) FCh diag failure (MF-kbd)
+ 2Eh C FDh diag failure (AT-kbd)
+ 2Fh V FEh RESEND
+ 30h B FFh kbd error/buffer full
+Notes: scan codes 56h-E1h are only available on the extended (101/102-key)
+ keyboard and Host Connected (122-key) keyboard; scan codes 5Bh-5Dh
+ are only available on the 122-key keyboard and the Microsoft Natural
+ Keyboard; scan codes 5Eh-76h are only available on the 122-key
+ keyboard
+ in the default configuration, break codes are the make scan codes with
+ the high bit set; make codes 60h,61h,70h, etc. are not available
+ because the corresponding break codes conflict with prefix codes
+ (code 2Ah is available because the self-test result code AAh is only
+ sent on keyboard initialization). An alternate keyboard
+ configuration can be enabled on AT and later systems with enhanced
+ keyboards, in which break codes are the same as make codes, but
+ prefixed with an F0h scan code
+ prefix code E0h indicates that the following make/break code is for a
+ "gray" duplicate to a key which existed on the original PC keyboard;
+ prefix code E1h indicates that the following make code has no
+ corresponding break code (currently only the Pause key generates no
+ break code)
+ the Microsoft Natural Keyboard sends make codes 5Bh, 5Ch, and 5Dh
+ (all with an E0h prefix) for the Left Windows, Right Windows, and
+ Menu keys on the bottom row
+ the European "Cherry G81-3000 SAx/04" keyboard contains contacts for
+ four additional keys, which can be made available by a user
+ modification; the three new keys located directly below the cursor
+ pad's Delete, End, and PgDn keys send make codes 66h-68h (F19-F21);
+ the fourth new key, named <delta>, sends make code 73h
+ the SysReq key is often labeled SysRq
+ the "Accord" ergonomic keyboard with optional touchpad (no other
+ identification visible on keyboard or in owner's booklet) has an
+ additional key above the Grey- key marked with a left-pointing
+ triangle and labeled "Fn" in the owner's booklet which returns
+ scan codes E0h 68h on make and E0h E8h on break
+ the "Preh Commander AT" keyboard with additional F11-F22 keys treats
+ F11-F20 as Shift-F1..Shift-F10 and F21/F22 as Ctrl-F1/Ctrl-F2; the
+ Eagle PC-2 keyboard with F11-F24 keys treated those additional keys
+ in the same way
+ [Note1] the "Cherry G80-0777" keyboard has additional F11-F15 keys
+ which generate make codes 55h-59h; some other extended keyboards
+ generate codes 55h and 56h for F11 and F12, which cannot be managed
+ by standard DOS keyboard drivers
+ [Note2] the Schneider/Amstrad PC1512 PC keyboards contain extra keys,
+ a mouse, and a digital joystick, which are handled like extra keys.
+ The joystick's motion scancodes are converted into standard arrow
+ keys by the BIOS, and the joystick and mouse button scan codes are
+ converted to FFFFh codes in the BIOS keyboard buffer
+ (see CMOS 15h"AMSTRAD").
+ In addition to the keys listed in the table above, there are
+ Del-> (delete forward) 70h
+ Enter 74h
+SeeAlso: #00602 at INT 16/AX=6F07h,#03214 at INT 4A/AH=05h
+--------C-09---------------------------------
+INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
+Desc: called if the coprocessor attempts to access memory outside a segment
+ boundary; it may occur at an arbitrary time after the coprocessor
+ instruction was issued
+Notes: until the condition is cleared or the coprocessor is reset, the only
+ coprocessor instruction which may be used is FNINIT; WAIT or other
+ coprocessor instructions will cause a deadlock because the
+ coprocessor is still busy waiting for data
+ for the 486+, a coprocessor protection error generates an INT 0D
+SeeAlso: INT 07"CPU"
+--------*-09---------------------------------
+INT 09 P - internal hardware - RESERVED BY Intel (80486)
+Note: this exception has been moved to INT 0D
+SeeAlso: INT 09"CPU",INT 0D
+--------H-0A---------------------------------
+INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
+Notes: the TOPS and PCnet adapters use this interrupt request line by default
+ DOS 3.2 revectors IRQ2 to a stack-switching routine; DOS 3.3+ does so
+ unless STACKS=0 has been set in CONFIG.SYS. MS/PC-DOS 3.3+ use the
+ IBM Interrupt Sharing Protocol (see #02568) when hooking this IRQ
+ on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
+ connects to the slave 8259. The BIOS redirects the interrupt for
+ IRQ9 back here.
+ under DESQview, only the INT 15h vector and BASIC segment address (the
+ word at 0000h:0510h) may be assumed to be valid for the handler's
+ process
+ many VGA boards do not implement the vertical retrace interrupt,
+ including the IBM VGA Adapter where the traces are either cut or
+ removed
+SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
+--------H-0A---------------------------------
+INT 0A C - IRQ2 - Tandy 1000-series HARD DISK
+Notes: this interrupt may be masked by setting bit 2 on I/O port 21h
+ the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
+ 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
+ 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
+ for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
+ DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
+ RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
+ interrupt use IRQ5 for vertical retrace.
+SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
+--------H-0A---------------------------------
+INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
+Note: newer Roland cards and MIDI interfaces by other manufacturers use
+ a jumper-selectable IRQ, but software and hardware generally defaults
+ to IRQ2
+SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
+--------C-0A---------------------------------
+INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
+Desc: automatically called during a task switch if the new TSS specified by
+ the task gate is invalid for any of the following reasons:
+ TSS limit is less than 43 (80286) or 103 (80386/80486)
+ LDT selector invalid or segment not present
+ null SS selector, or SS selector outside LDT/GDT limit
+ stack segment is read-only
+ stack segment DPL differs from new CPL, or RPL <> CPL
+ CS selector is outside LDT/GDT limit or not code
+ non-conforming code segment's DPL differs from CPL
+ conforming code segment's DPL > CPL
+ DS/ES selectors outside LDT/GDT limit or not readable segments
+Note: the handler must use a task gate in order to have a valid TSS under
+ which to execute; it must also reset the busy bit in the new TSS
+SeeAlso: INT 0B"CPU"
+--------H-0B---------------------------------
+INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2)
+Desc: automatically asserted by the UART when COM2 needs attention, if the
+ UART has been programmed to generate interrupts
+Notes: the TOPS and PCnet adapters use this interrupt request line as an
+ alternate
+ on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
+ shares this interrupt
+ may be masked by setting bit 3 on I/O port 21h
+ DOS 3.3+ revectors IRQ3 to a stack-switching routine unless STACKS=0
+ has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing
+ Protocol (see #02568) when hooking this IRQ
+SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
+--------C-0B---------------------------------
+INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT
+Desc: generated when loading a segment register if the segment descriptor
+ indicates that the segment is not currently in memory, unless the
+ segment is an LDT (see INT 0A"CPU") or stack segment (see
+ INT 0C"CPU") needed by a task switch
+Note: may be used to implement virtual memory by loading in segments as they
+ are accessed, clearing the "not present" bit after loading
+SeeAlso: INT 0A"CPU",INT 0E"CPU"
+--------h-0B---------------------------------
+INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
+Desc: this is the lowest-level keyboard handler on an HP 95LX palmtop
+Note: debounces key, places the keycode in I/O register 60h, and calls INT 09
+SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
+--------H-0C---------------------------------
+INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
+Desc: automatically asserted by the UART when COM1 needs attention, if the
+ UART has been programmed to generate interrupts
+BUG: this vector is modified but not restored by Direct Access v4.0, and
+ may be left dangling by other programs written with the same version
+ of compiled BASIC
+Notes: on many PC's, COM3 shares this interrupt
+ may be masked by setting bit 4 on I/O port 21h
+ DOS 3.3+ revectors IRQ4 to a stack-switching routine unless STACKS=0
+ has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing
+ Protocol (see #02568) when hooking this IRQ
+SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
+--------C-0C---------------------------------
+INT 0C C - CPU-generated (80286+) - STACK FAULT
+Desc: this interrupt is generated in protected mode on a stack overflow or
+ underflow, or if an inter-level transition or task switch references
+ a stack segment marked "not present"; it is generated in real mode
+ on accessing a word operand at SS:FFFFh
+Note: the 80286 will shut down in real mode if SP=1 before a push. On the
+ PC AT and compatibles, external circuitry generates a reset on
+ shutdown.
+SeeAlso: INT 0B"CPU",INT 0D"CPU"
+--------I-0C---------------------------------
+INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
+Desc: the IBM System 36/38 emulator may be invoked through a private API,
+ whose entry point address (see #00007) is offset 100h in the segment
+ pointed at by this vector
+
+(Table 00007)
+Call the System 36/38 emulator API entry point with:
+ AH = function
+ 03h update screen
+ 05h select next session
+ AL = session number (00h-03h)
+ Return: AL = session type code
+ 00h not active
+ 01h display session
+ 02h printer session
+ FEh invalid session number
+ DS = requested session's data segment (0 if not active)
+ (see #00008)
+Return: ???
+
+Format of System 36/38 emulator's data area:
+Offset Size Description (Table 00008)
+13Eh BYTE bit flags for status line indicators turned on since this byte
+ last zerod
+13Fh BYTE bit flags for status line indicators turned off since this
+ byte last set to FFh
+140h WORD offset of EBCDIC to ASCII translation
+146h WORD offset of EBCDIC screen buffer
+148h WORD offset of EC (engineering change) level signature
+150h BYTE "KEYI"
+151h BYTE 5250 key scan code to be sent to remote
+15Bh BYTE "SYSAV"
+15Dh BYTE 5250 cursor column
+15Eh BYTE 5250 cursor row
+167h BYTE "DVCTAD"
+178h BYTE "FLAGS"
+184h BYTE "SESSNOAD"
+193h BYTE "STNAD"
+198h BYTE "NSDS"
+Note: offsets are from the interrupt handler's segment
+--------H-0D---------------------------------
+INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
+Notes: under DESQview, only the INT 15h vector and BASIC segment address (the
+ word at 0000h:0510h) may be assumed to be valid for the handler's
+ process
+ DOS 3.3+ revectors IRQ5 to a stack-switching routine unless STACKS=0
+ has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing
+ Protocol (see #02568) when hooking this IRQ
+ the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
+ 1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
+ 1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
+ for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
+ DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
+ RSX-HD use IRQ14. Tandy systems which use IRQ2 for the hard disk
+ interrupt use IRQ5 for vertical retrace.
+ may be masked by setting bit 5 on I/O port 21h
+SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
+SeeAlso: INT 7D"GO32"
+--------H-0D---------------------------------
+INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
+Desc: used to ensure that the dynamic RAM retains its contents in earlier
+ 1000-series models; later models use normal DMA for RAM refresh
+ (some early models have no DMA unless it is added via an expansion
+ card)
+SeeAlso: INT 55
+--------h-0D---------------------------------
+INT 0D - HP 95LX - INFRARED INTERRUPT
+Desc: this interrupt is used to perform communications over the infrared
+ data link
+SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
+--------C-0D---------------------------------
+INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
+Desc: the CPU generates this interrupt when it detects a protection violation
+ which does not fit under any other category having a separate
+ interrupt
+Notes: called in real mode when
+ an instruction accesses a memory operand extending beyond offset
+ FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
+ CS, DS, ES, FG, or GS
+ a PUSH MEM or POP MEM instruction contains an invalid bit encoding
+ in the second byte
+ an instruction exceeds the maximum length allowed (10 bytes for
+ 80286, 15 bytes for 80386/80486)
+ an instruction wraps from offset FFFFh to offset 0000h
+ called in protected mode on protection violations not covered by INT 06
+ through INT 0C, including
+ segment limit violations
+ write to read-only segments
+ accesses using null DS or ES selectors
+ accesses to segments with privilege greater than CPL
+ wrong descriptor type
+ called on 80486 protected-mode floating-point protection fault
+SeeAlso: INT 09"80486",INT 0C"STACK"
+--------H-0E---------------------------------
+INT 0E C - IRQ6 - DISKETTE CONTROLLER
+Desc: this interrupt is generated by the floppy disk controller on
+ completion of an operation
+Notes: default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
+ may be masked by setting bit 6 on I/O port 21h
+ DOS 3.3+ revectors IRQ6 to a stack-switching routine unless STACKS=0
+ has been set in CONFIG.SYS. MS/PC-DOS use the IBM Interrupt Sharing
+ Protocol (see #02568) when hooking this IRQ
+SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
+--------C-0E---------------------------------
+INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT
+Desc: this interrupt is generated in protected and virtual-86 modes on
+ attempting to access a 4K memory page whose page table entry has
+ the "present" bit cleared
+Notes: used to implement virtual memory--when the page fault occurs, the
+ operating system can load the appropriate page from disk
+ a protected-mode program written in the Flat memory model will often
+ generate this interrupt (typically reported as an Exception #14 or
+ Exception 0E with a register dump) when dereferencing an
+ uninitialized or corrupted pointer
+SeeAlso: INT 0B"CPU"
+--------h-0E---------------------------------
+INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT
+SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
+--------H-0F---------------------------------
+INT 0F C - IRQ7 - PARALLEL PRINTER
+Desc: this interrupt is generated by the LPT1 printer adapter when the
+ printer becomes ready
+Notes: most printer adapters do not reliably generate this interrupt
+ the 8259 interrupt controller generates an interrupt corresponding to
+ IRQ7 when an error condition occurs
+SeeAlso: INT 0D"IRQ5",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
+SeeAlso: MEM 0040h:006Bh
+--------h-0F---------------------------------
+INT 0F C - HP 95LX - REAL-TIME CLOCK
+SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70"IRQ8"
+--------C-10---------------------------------
+INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR
+Desc: this interrupt is generated by the CPU when the -ERROR pin is asserted
+ by the coprocessor
+Note: AT's and clones usually wire the coprocessor to use IRQ13, but not all
+ get it right
+SeeAlso: INT 09"hardware",INT 75
+--------V-10---------------------------------
+INT 10h - LIRVGA19 - CHAR HEIGHT HOOK
+Desc: LIRVGA19.COM fixes display problems on some notebooks by hooking
+ INT 10h and resetting the BIOS character height (MEM 0040h:0085h)
+ to 10h on return, if it happens to be greater than 10h.
+Program: LIRVGA19.COM is part of the Lithuanian LIR codepage support package
+ developed by LABAS u.a.b.
+SeeAlso: INT 10/AX=5555h/BX=BBBBh,MEM 0040h:0085h
+--------V-1000-------------------------------
+INT 10 - VIDEO - SET VIDEO MODE
+ AH = 00h
+ AL = desired video mode (see #00010)
+Return: AL = video mode flag (Phoenix, AMI BIOS)
+ 20h mode > 7
+ 30h modes 0-5 and 7
+ 3Fh mode 6
+ AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
+Desc: specify the display mode for the currently active display adapter
+InstallCheck: for Ahead adapters, the signature "AHEAD" at C000h:0025h
+ for Paradise adapters, the signature "VGA=" at C000h:007Dh
+ for Oak Tech OTI-037/057/067/077 chipsets, the signature "OAK VGA" at
+ C000h:0008h
+ for ATI adapters, the signature "761295520" at C000h:0031h; the byte
+ at C000h:0043h indicates the chipset revision:
+ 31h for 18800
+ 32h for 18800-1
+ 33h for 18800-2
+ 34h for 18800-4
+ 35h for 18800-5
+ 62h for 68800AX (Mach32) (see also #00732)
+ the two bytes at C000h:0040h indicate the adapter type
+ "22" EGA Wonder
+ "31" VGA Wonder
+ "32" EGA Wonder800+
+ the byte at C000h:0042h contains feature flags
+ bit 1: mouse port present
+ bit 4: programmable video clock
+ the byte at C000h:0044h contains additional feature flags if chipset
+ byte > 30h (see #00009)
+ for Genoa video adapters, the signature 77h XXh 99h 66h at C000h:NNNNh,
+ where NNNNh is stored at C000h:0037h and XXh is
+ 00h for Genoa 6200/6300
+ 11h for Genoa 6400/6600
+ 22h for Genoa 6100
+ 33h for Genoa 5100/5200
+ 55h for Genoa 5300/5400
+ for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
+ for Genoa SuperEGA BIOS v3.0+, C000h:0070h contains the signature
+ "EXTMODE", indicating support for extended modes
+Notes: 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,
+ Everex EV-673, etc.
+ intercepted by GRAFTABL from Novell DOS 7 and Caldera OpenDOS 7.01.
+SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
+SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h,MEM 0040h:0049h
+Index: installation check;Tseng ET4000|installation check;Ahead video cards
+Index: installation check;Oak Technologies|installation check;ATI video cards
+Index: installation check;Paradise video|installation check;Genoa video cards
+
+Bitfields for ATI additional feature flags:
+Bit(s) Description (Table 00009)
+ 0 70 Hz non-interlaced display
+ 1 Korean (double-byte) characters
+ 2 45 MHz memory clock rather than 40 MHz
+ 3 zero wait states
+ 4 paged ROMs
+ 6 no 8514/A monitor support
+ 7 HiColor DAC
+
+(Table 00010)
+Values for video mode:
+ text/ text pixel pixel colors disply scrn system
+ grph resol box resolution pages addr
+ 00h = T 40x25 8x8 320x200 16gray 8 B800 CGA,PCjr,Tandy
+ = T 40x25 8x14 320x350 16gray 8 B800 EGA
+ = T 40x25 8x16 320x400 16 8 B800 MCGA
+ = T 40x25 9x16 360x400 16 8 B800 VGA
+ 01h = T 40x25 8x8 320x200 16 8 B800 CGA,PCjr,Tandy
+ = T 40x25 8x14 320x350 16 8 B800 EGA
+ = T 40x25 8x16 320x400 16 8 B800 MCGA
+ = T 40x25 9x16 360x400 16 8 B800 VGA
+ 02h = T 80x25 8x8 640x200 16gray 4 B800 CGA,PCjr,Tandy
+ = T 80x25 8x14 640x350 16gray 8 B800 EGA
+ = T 80x25 8x16 640x400 16 8 B800 MCGA
+ = T 80x25 9x16 720x400 16 8 B800 VGA
+ 03h = T 80x25 8x8 640x200 16 4 B800 CGA,PCjr,Tandy
+ = T 80x25 8x14 640x350 16/64 8 B800 EGA
+ = T 80x25 8x16 640x400 16 8 B800 MCGA
+ = T 80x25 9x16 720x400 16 8 B800 VGA
+ = T 80x43 8x8 640x350 16 4 B800 EGA,VGA [17]
+ = T 80x50 8x8 640x400 16 4 B800 VGA [17]
+ 04h = G 40x25 8x8 320x200 4 . B800 CGA,PCjr,EGA,MCGA,VGA
+ 05h = G 40x25 8x8 320x200 4gray . B800 CGA,PCjr,EGA
+ = G 40x25 8x8 320x200 4 . B800 MCGA,VGA
+ 06h = G 80x25 8x8 640x200 2 . B800 CGA,PCjr,EGA,MCGA,VGA
+ = G 80x25 . . mono . B000 HERCULES.COM on HGC [14]
+ 07h = T 80x25 9x14 720x350 mono var B000 MDA,Hercules,EGA
+ = T 80x25 9x16 720x400 mono . B000 VGA
+ 08h = T 132x25 8x8 1056x200 16 . B800 ATI EGA/VGA Wonder [2]
+ = T 132x25 8x8 1056x200 mono . B000 ATI EGA/VGA Wonder [2]
+ = G 20x25 8x8 160x200 16 . . PCjr, Tandy 1000
+ = G 80x25 8x16 640x400 color . . Tandy 2000
+ = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
+ = G 90x45 8x8 720x360 mono . B000 Hercules + HERKULES [11]
+ = G 90x29 8x12 720x348 mono . . Hercules + HERCBIOS [15]
+ 09h = G 40x25 8x8 320x200 16 . . PCjr, Tandy 1000
+ = G 80x25 8x16 640x400 mono . . Tandy 2000
+ = G 90x43 8x8 720x348 mono . . Hercules + HERCBIOS [15]
+ 0Ah = G 80x25 8x8 640x200 4 . . PCjr, Tandy 1000
+ 0Bh = reserved (EGA BIOS internal use)
+ = G 80x25 8x8 640x200 16 . . Tandy 1000 SL/TL [13]
+ 0Ch = reserved (EGA BIOS internal use)
+ 0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
+ 0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
+ 0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
+ 10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
+ = G . . 640x350 16 . A000 256k EGA,VGA
+ 11h = G 80x30 8x16 640x480 mono . A000 VGA,MCGA,ATI EGA,ATI VIP
+ 12h = G 80x30 8x16 640x480 16/256K . A000 VGA,ATI VIP
+ = G 80x30 8x16 640x480 16/64 . A000 ATI EGA Wonder
+ = G . . 640x480 16 . . UltraVision+256K EGA
+ 13h = G 40x25 8x8 320x200 256/256K . A000 VGA,MCGA,ATI VIP
+ 14h = T 132x25 Nx16 . 16 . B800 XGA, IBM Enhanced VGA [3]
+ = T 132x25 8x16 1056x400 16/256K . . Cirrus CL-GD5420/5422/5426
+ = G 80x25 8x8 640x200 . . . Lava Chrome II EGA
+ = G . . 640x400 16 . . Tecmar VGA/AD
+ 15h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
+ 16h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
+ = G . . 800x600 16 . . Tecmar VGA/AD
+ 17h = T 132x25 . . . . . Tecmar VGA/AD
+ = T 80x43 8x8 640x348 16 4 B800 Tseng ET4000 BIOS [10]
+ = G 80x34 8x14 640x480 . . . Lava Chrome II EGA
+ 18h = T 80x30 9x16 720x480 16 1 A000 Realtek RTVGA [12]
+ = T 132x25 . . mono . B000 Cirrus 5320 chipset
+ = T 132x44 8x8 1056x352 mono . B000 Tseng Labs EVA
+ = T 132x44 9x8 1188x352 4gray 2 B000 Tseng ET3000 chipset
+ = T 132x44 8x8 1056x352 16/256 2 B000 Tseng ET4000 chipset
+ = G 80x34 8x14 640x480 . . . Lava Chrome II EGA
+ = G 1024x768 16 . . Tecmar VGA/AD
+ 19h = T 80x43 9x11 720x473 16 1 A000 Realtek RTVGA [12]
+ = T 132x25 8x14 1056x350 mono . B000 Tseng Labs EVA
+ = T 132x25 9x14 1188x350 4gray 4 B000 Tseng ET3000 chipset
+ = T 132x25 8x14 1056x350 16/256 4 B000 Tseng ET4000 chipset
+ = T 132x34 . . mono . B000 Cirrus 5320 chipset
+ 1Ah = T 80x60 9x8 720x480 16 1 A000 Realtek RTVGA [12]
+ = T 132x28 8x13 1056x364 mono . B000 Tseng Labs EVA
+ = T 132x28 9x13 1188x364 4gray 4 B000 Tseng ET3000 chipset
+ = T 132x28 8x13 1056x364 16/256 4 B000 Tseng ET4000 chipset
+ = T 132x44 . . mono . B000 Cirrus 5320 chipset
+ = G . . 640x350 256 . . Tecmar VGA/AD
+ 1Bh = T 132x25 9x14 1188x350 16 1 A000 Realtek RTVGA [12]
+ = G . . 640x400 256 . . Tecmar VGA/AD
+ 1Ch = T 132x25 . . . . . Cirrus 5320 chipset
+ = T 132x30 9x16 1188x480 16 1 A000 Realtek RTVGA [12]
+ = G . . 640x480 256 . . Tecmar VGA/AD
+ 1Dh = T 132x43 . . . . . Cirrus 5320 chipset
+ = T 132x43 9x11 1188x473 16 1 A000 Realtek RTVGA [12]
+ = G . . 800x600 256 . . Tecmar VGA/AD
+ 1Eh = T 132x44 . . . . . Cirrus 5320 chipset
+ = T 132x60 9x8 1188x480 16 1 A000 Realtek RTVGA [12]
+ 1Fh = G 100x75 8x8 800x600 16 1 A000 Realtek RTVGA
+ 20h = T 132x25 . . 16 . . Avance Logic AL2101
+ = G 40x16 . 240x128 mono . B000 HP 95LX/100LX/200LX
+ = G 80x30 8x16 640x480 16 . . C&T 64310/65530 BIOS
+ = G 120x45 8x16 960x720 16 1 A000 Realtek RTVGA
+ 21h = T 80x25 . . mono . B000 HP 200LX
+ = T 132x30 . . 16 . . Avance Logic AL2101
+ = T 132x44 9x9 1188x396 16/256K . B800 WD90C
+ = T 132x44 9x9 1188x396 16 . B800 Diamond Speedstar 24X
+ = T 132x60 . . 16 2 B800 Tseng ET4000 chipset [10]
+ = G 80x43 8x8 720x348 mono . B000 DESQview 2.x+Hercules [4]
+ = G 128x48 8x16 1024x768 16 1 A000 Realtek RTVGA [12]
+ 22h = T 132x43 . . . . . Allstar Peacock (VGA)
+ = T 132x43 . . 16 . . Avance Logic AL2101
+ = T 132x44 8x8 1056x352 . . B800 Tseng Labs EVA
+ = T 132x44 9x8 1188x352 16/256K 2 B800 Tseng ET3000 chipset
+ = T 132x44 8x8 1056x352 16/256K 2 B800 Tseng ET4000 chipset
+ = T 132x44 8x8 1056x352 . . . Ahead Systems EGA2001
+ = T 132x44 8x8 1056x352 16 2 B800 Ahead B
+ = T 132x44 8x9 1056x398 16 . . STB Lightspeed ET4000/W32P
+ = T 132x44 . . 16 . . Orchid Prodesigner VGA
+ = G 80x43 8x8 720x348 mono . B800 DESQview 2.x+Hercules [4]
+ = G 96x64 8x16 768x1024 16 1 A000 Realtek RTVGA
+ = G 100x37 8x16 800x600 16 . . C&T 64310/65530 BIOS
+ 23h = T 132x25 6x14 792x350 . . B800 Tseng Labs EVA
+ = T 132x25 9x14 1188x350 16/256K 4 B800 Tseng ET3000 chipset
+ = T 132x25 8x14 1056x350 16/256 4 B800 Tseng ET4000 chipset
+ = T 132x25 8x14 1056x350 . . . Ahead Systems EGA2001
+ = T 132x25 8x14 1056x350 16 4 B800 Ahead B
+ = T 132x25 8x8 1056x200 16 . B800 ATI EGA Wonder,ATI VIP
+ = T 132x25 . . . . . Cirrus 5320 chipset
+ = T 132x28 . . . . . Allstar Peacock (VGA)
+ = T 132x28 . . 16 . . Orchid Prodesigner VGA
+ = T 132x60 . . 16 . . Avance Logic AL2101
+ = G 128x48 8x16 1024x768 4 1 A000 Realtek RTVGA
+ 24h = T 80x30 . . 16 . . Avance Logic AL2101
+ = T 132x25 . . . . . Allstar Peacock (VGA)
+ = T 132x25 . . 16 . . Orchid Prodesigner VGA
+ = T 132x28 6x13 792x364 . . B800 Tseng Labs EVA
+ = T 132x28 9x13 1188x364 16/256K 4 B800 Tseng ET3000 chipset
+ = T 132x28 8x12 1056x336 16 1 B800 Ahead B
+ = T 132x28 8x13 1056x364 16/256K 4 B800 Tseng ET4000 chipset
+ = T 132x28 8x14 1056x392 16 . . STB Lightspeed ET4000/W32P
+ = T 132x28 . . . . . Cirrus 5320 chipset
+ = G 64x32 8x16 512x512 256 1 A000 Realtek RTVGA
+ = G 128x48 8x16 1024x768 16 . . C&T 64310/65530 BIOS
+ 25h = T 80x43 . . 16 . . Avance Logic AL2101
+ = G 80x60 8x8 640x480 . . A000 Tseng Labs EVA
+ = G 80x60 8x8 640x480 16/256K 1 A000 Tseng ET3000/4000 chipset
+ = G . . 640x480 16 . . VEGA VGA
+ = G 80x60 8x8 640x480 16 . A000 Orchid Prodesigner VGA
+ = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 26h)
+ = G . . 640x480 16 . . NEC GB-1
+ = G . . 640x480 16 . . Cirrus 5320 chipset
+ = G . . 640x400 256 . . Realtek RTVGA
+ 26h = T 80x60 8x8 640x480 . . . Tseng Labs EVA
+ = T 80x60 8x8 640x480 16/256K 3 B800 Tseng ET3000/4000 chipset
+ = T 80x60 . . . . . Allstar Peacock (VGA)
+ = T 80x60 . . 16 . . Orchid ProDesigner VGA
+ = T 80x60 . . 16 . . Avance Logic AL2101
+ = G 80x60 8x8 640x480 . . . Ahead Systems EGA2001
+ = G 80x60 8x8 640x480 16 1 A000 Ahead B (same as 25h)
+ = G . . 640x480 256 . . Realtek RTVGA
+ 27h = T 132x25 8x8 1056x200 mono . B000 ATI EGA Wonder,ATI VIP
+ = G . . 720x512 16 . . VEGA VGA
+ = G . . 720x512 16 . . Genoa
+ = G 100x75 8x8 800x600 256 1 A000 Realtek RTVGA [12]
+ = G . . 960x720 16 . . Avance Logic AL2101
+ 28h = T ???x??? . . . . . VEGA VGA
+ = G . . 512x512 256 . . Avance Logic AL2101
+ = G . . 1024x768 256 . . Realtek RTVGA (1meg)
+ = G 160x64 8x16 1280x1024 16 . . Chips&Technologies 64310 [1]
+ 29h = G . . 640x400 256 . . Avance Logic AL2101
+ = G . . 800x600 16 . . VEGA VGA
+ = G 100x37 8x16 800x600 16 . A000 Orchid
+ = G . . 800x600 16 . A000 STB,Genoa,Sigma
+ = G . . 800x600 16 . . Allstar Peacock (VGA)
+ = G 100x37 8x16 800x600 16/256K 1 A000 Tseng ET3000/4000 chipset
+ = G . . 800x600 ??? . . EIZO MDB10
+ = G . . 800x600 16 . . Cirrus 5320 chipset
+ = G NA . 800x600 16 . . Compaq QVision 1024/1280
+ = G . . 1024x1024 256 . . Realtek RTVGA BIOS v3.C10
+ 2Ah = T 100x40 . . . . . Allstar Peacock (VGA)
+ = T 100x40 8x16 800x640 16 . . Orchid Prodesigner VGA
+ = T 100x40 8x15 800x600 16/256K 4 B800 Tseng ET3000/4000 chipset
+ = T 100x40 8x15 800x600 16 . . STB Lightspeed ET4000/W32P
+ = G . . 640x480 256 . . Avance Logic AL2101
+ = G . . 1280x1024 16 . . Realtek RTVGA
+ 2Bh = G . . 800x600 16 . . Avance Logic AL2101
+ 2Ch = G . . 800x600 256 . . Avance Logic AL2101
+ 2Dh = G . . 640x350 256 . . VEGA VGA
+ = G . . 640x350 256/256K . A000 Orchid, Genoa, STB
+ = G 80x25 8x14 640x350 256/256K 1 A000 Tseng ET3000/4000 chipset
+ = G . . 640x350 256 . . Cirrus 5320 chipset
+ = G 80x25 8x14 640x350 256 . . STB Lightspeed ET4000/W32P
+ = G . . 768x1024 16 . . Avance Logic AL2101
+ 2Eh = G . . 640x480 256 . . VEGA VGA
+ = G 80x30 8x16 640x480 256/256K . A000 Orchid
+ = G . . 640x480 256/256K . A000 STB,Genoa,Sigma
+ = G 80x30 8x16 640x480 256/256K 1 A000 Tseng ET3000/4000 chipset
+ = G . . 640x480 256/256K . . Compaq QVision 1024/1280
+ = G . . 768x1024 256 . . Avance Logic AL2101
+ 2Fh = T 160x50 8x8 1280x400 16 4 B800 Ahead B (Wizard/3270)
+ = G . . 720x512 256 . . VEGA VGA
+ = G . . 720x512 256 . . Genoa
+ = G 80x25 8x16 640x400 256/256K 1 A000 Tseng ET4000 chipset
+ = G . . 1024x768 4 . . Avance Logic AL2101
+ 30h = G 80x30 8x16 640x480 256 . . C&T 64310/65530 BIOS
+ = G . . . . . B800 AT&T 6300
+ = G . . 720x350 2 . . 3270 PC
+ = G . . 800x600 256 . . VEGA VGA
+ = G 100x37 8x16 800x600 256/256K . A000 Orchid
+ = G . . 800x600 256/256K . A000 STB,Genoa,Sigma
+ = G . . 800x600 256 . . Cardinal
+ = G 100x37 8x16 800x600 256/256K 1 A000 Tseng ET3000/4000 chipset
+ = G . . 1024x768 16 . . Avance Logic AL2101
+ 31h = G . . 1024x768 256 . . Avance Logic AL2101
+ 32h = T 80x34 8x10 . 16 4 B800 Ahead B (Wizard/3270)
+ = G . . 640x480 256 . . Compaq QVision 1024/1280
+ = G 100x37 8x16 800x600 256 . . C&T 64310/65530 BIOS
+ 33h = T 132x44 8x8 . 16 . B800 ATI EGA Wonder,ATI VIP
+ = T 80x34 8x8 . 16 4 B800 Ahead B (Wizard/3270)
+ 34h = T 80x66 8x8 . 16 4 B800 Ahead B (Wizard/3270)
+ = G . . 800x600 256 . . Compaq QVision 1024/1280
+ = G 128x48 8x16 1024x768 256 . . Chips&Technologies 64310
+ 36h = G . . 960x720 16 . . VEGA VGA, STB
+ = G . . 960x720 16 . A000 Tseng ET3000 only
+ = G . . 1280x1024 16 . . Avance Logic AL2101
+ 37h = T 132x44 8x8 . mono . B800 ATI EGA Wonder,ATI VIP
+ = G . . 1024x768 16 . . VEGA VGA
+ = G 128x48 8x16 1024x768 16 . A000 Orchid
+ = G . . 1024x768 16 . A000 STB,Genoa,Sigma
+ = G . . 1024x768 16 . . Definicon
+ = G 128x48 8x16 1024x768 16 1 A000 Tseng ET3000/4000 chipset
+ = G . . 1024x768 16 . . Compaq QVision 1024/1280
+ = G . . 1280x1024 256 . . Avance Logic AL2101
+ 38h = G . . 1024x768 256 . . STB VGA/EM-16 Plus (1MB)
+ = G 128x48 8x16 1024x768 256/256K 1 A000 Tseng ET4000 chipset
+ = G . . 1024x768 256 . . Orchid ProDesigner II
+ = G . . 1024x768 256 . . Compaq QVision 1024/1280
+ = G 160x64 8x16 1280x1024 256 . . Chips&Technologies 64310 [1]
+ 39h = G . . 1280x1024 16 . . Compaq QVision 1280
+ 3Ah = G . . 1280x1024 256 . . Compaq QVision 1280
+ 3Bh = G . . 512x480 256 . . Compaq QVision 1024/1280
+ 3Ch = G . . 640x400 64K . . Compaq QVision 1024/1280
+ 3Dh = G . . 1280x1024 16 . . Definicon
+ = G 128x64 8x16 1280x1024 16 1 A000 Tseng ET4000 v3.00 [1,7]
+ 3Eh = G . . 1280x961 16 . . Definicon
+ = G . . 640x480 64K . . Compaq QVision 1024/1280
+ 3Fh = G . . 1280x1024 256 . . Hercules ??? (ET4000W32)
+ = G . . 800x600 64K . . Compaq QVision 1024/1280
+ 40h = T 80x43 . . . . . VEGA VGA, Tecmar VGA/AD
+ = T 80x43 . . . . . Video7 V-RAM VGA
+ = T 80x43 . . . . . Tatung VGA
+ = T 100x30 . . 16 . . MORSE VGA
+ = T 100x30 . . . . . Cirrus 510/520 chipset
+ = T 80x25 . 720x350 mono . . Genoa SuperEGA BIOS 3.0+
+ = G . . 320x200 64K . . Avance Logic AL2101
+ = G 80x25 8x16 640x400 2 1 B800 AT&T 6300, AT&T VDC600
+ = G 80x25 8x16 640x400 2 1 B800 Olivetti Quaderno
+ = G 80x25 8x16 640x400 2 1 B800 Compaq Portable
+ = G 80x30 8x16 640x480 32K . . Chips&Technologies 64310
+ = G . . 1024x768 64K . . Compaq QVision 1280
+ 41h = T 132x25 . . . . . VEGA VGA
+ = T 132x25 . . . . . Tatung VGA
+ = T 132x25 . . . . . Video7 V-RAM VGA
+ = T 100x50 . . 16 . . MORSE VGA
+ = T 100x50 . . . . . Cirrus 510/520 chipset
+ = T 80x34 9x14 720x476 16/256K . B800 WD90C
+ = T 80x34 9x14 . 16 . B800 Diamond Speedstar 24X
+ = G . . 512x512 64K . . Avance Logic AL2101
+ = G . . 640x200 16 1 . AT&T 6300
+ = G 80x30 8x16 640x480 64K . . Chips&Technologies 64310
+ = G 80x25 . 720x348 mono . B000 Genoa SuperEGA BIOS 3.0+
+ 42h = T 132x43 . . . . . VEGA VGA
+ = T 132x43 . . . . . Tatung VGA
+ = T 132x43 . . . . . Video7 V-RAM VGA
+ = T 80x34 9x10 . 4 4 B800 Ahead B (Wizard/3270)
+ = T 100x60 . . 16 . . MORSE VGA
+ = T 100x60 . . . . . Cirrus 510/520 chipset
+ = G 80x25 8x16 640x400 16 . . AT&T 6300, AT&T VDC600
+ = G . . 640x400 64K . . Avance Logic AL2101
+ = G 80x25 . 720x348 mono . B800 Genoa SuperEGA BIOS 3.0+
+ = G 100x37 8x16 800x600 32K . . Chips&Technologies 64310
+ 43h = T 80x60 . . . . . VEGA VGA
+ = T 80x60 . . . . . Tatung VGA
+ = T 80x60 . . . . . Video7 V-RAM VGA
+ = T 80x45 9x8 . 4 4 B800 Ahead B (Wizard/3270)
+ = T 100x75 . . 16 . . MORSE VGA
+ = T 80x29 . 720x348 mono . . Genoa SuperEGA BIOS 3.0+
+ = G . . 640x200 of 640x400 viewport AT&T 6300 (unsupported)
+ = G . . 640x480 64K . . Avance Logic AL2101
+ = G 100x37 8x16 800x600 64K . . Chips&Technologies 64310
+ 44h = disable VDC and DEB output . AT&T 6300
+ = T 100x60 . . . . . VEGA VGA
+ = T 100x60 . . . . . Tatung VGA
+ = T 100x60 . . . . . Video7 V-RAM VGA
+ = T 80x32 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
+ = G . . 800x600 64K . . Avance Logic AL2101
+ 45h = T 132x28 . . . . . Tatung VGA
+ = T 132x28 . . . . . Video7 V-RAM VGA
+ = T 80x44 . 720x352 mono . . Genoa SuperEGA BIOS 3.0+
+ 46h = T 132x25 8x14 . mono . . Genoa 6400
+ = T 132x25 9x14 . mono . . Genoa SuperEGA BIOS 3.0+
+ = G 100x40 8x15 800x600 2 . . AT&T VDC600
+ 47h = T 132x29 8x12 . mono . . Genoa 6400
+ = T 132x29 9x12 . mono . . Genoa SuperEGA BIOS 3.0+
+ = T 132x28 9x16 1188x448 16/256K . B800 WD90C
+ = T 132x28 9x16 . 16 . B800 Diamond Speedstar 24X
+ = G 100x37 8x16 800x600 16 . . AT&T VDC600
+ 48h = T 132x32 8x12 . mono . . Genoa 6400
+ = T 132x32 9x11 . mono . . Genoa SuperEGA BIOS 3.0+
+ = G 80x50 8x8 640x400 2 . B800 AT&T 6300, AT&T VDC600
+ = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno
+ 49h = T 132x44 8x8 . mono . . Genoa 6400
+ = T 132x44 9x8 . mono . . Genoa SuperEGA BIOS 3.0+
+ = G 80x30 8x16 640x480 . . . Lava Chrome II EGA
+ = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
+ 4Bh = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
+ 4Dh = T 120x25 . . . . . VEGA VGA
+ = G . . 512x480 16M . . Compaq QVision 1024/1280
+ = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
+ 4Eh = T 120x43 . . . . . VEGA VGA
+ = T 80x60 8x8 . 16/256K . B800 Oak OTI-067/OTI-077 [8]
+ = G . . 640x400 16M . . Compaq QVision 1024/1280
+ = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
+ 4Fh = T 132x25 . . . . . VEGA VGA
+ = T 132x60 . . . . . some Oak Tech VGA [8]
+ = G . . 640x480 16M . . Compaq QVision 1280
+ 50h = T 80x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
+ = T 80x34 . . . . . Lava Chrome II EGA
+ = T 80x43 . . mono . . VEGA VGA
+ = T 132x25 9x14 . mono . . Ahead Systems EGA2001
+ = T 132x25 9x14 . 4 4 B800 Ahead B
+ = T 132x25 8x14 . 16 8 B800 OAK Technologies VGA-16
+ = T 132x25 8x14 . 16/256K . B800 Oak OTI-037/067/077 [8]
+ = T 132x25 8x14 1056x350 16 8 B800 UM587 chipset
+ = T 132x30 . . 16 . . MORSE VGA
+ = T 132x30 . . . . . Cirrus 510/520 chipset
+ = G 80x30 8x16 640x480 16 . . Paradise EGA-480
+ = G 80x30 8x16 640x480 16 . . NEL Electronics BIOS
+ = G 80x30 8x16 640x480 16M . . Chips&Technologies 64310
+ = G . . 640x480 mono??? . . Taxan 565 EGA
+ = G 40x25 8x8 320x200 . . . Genoa SuperEGA BIOS 3.0+
+ 51h = T 80x30 8x16 . . . . Paradise EGA-480
+ = T 80x30 9x16 . . . . NEL Electronics BIOS
+ = T 80x30 . . . . . Lava Chrome II EGA
+ = T 80x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
+ = T 132x25 . . mono . . VEGA VGA
+ = T 132x28 9x12 . 4 4 B800 Ahead B
+ = T 132x43 8x8 . 16 5 B800 OAK Technologies VGA-16
+ = T 132x43 8x8 . 16/256K . B800 Oak OTI-037/067/077
+ = T 132x43 8x8 1056x344 16 5 B800 UM587 chipset
+ = T 132x50 . . 16 . . MORSE VGA
+ = T 132x50 . . . . . Cirrus 510/520 chipset
+ = G 80x34 8x14 640x480 16 . . ATI EGA Wonder
+ = G 80x25 8x8 640x200 . . . Genoa SuperEGA BIOS 3.0+
+ 52h = T 80x60 . . . . . Lava Chrome II EGA
+ = T 80x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
+ = T 132x43 . . mono . . VEGA VGA
+ = T 132x44 9x8 . mono . . Ahead Systems EGA2001
+ = T 132x44 9x8 . 4 2 B800 Ahead B
+ = T 132x60 . . 16 . . MORSE VGA
+ = T 132x60 . . . . . Cirrus 510/520 chipset
+ = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji&superimpose)
+ = G 94x29 8x14 752x410 16 . . ATI EGA Wonder
+ = G 100x75 8x8 800x600 16 1 A000 OAK Technologies VGA-16
+ = G 100x75 8x8 800x600 16 . A000 Oak OTI-037 chipset [8]
+ = G 100x37 8x16 800x600 16 . A000 Oak OTI-067/077 chips [8]
+ = G 100x75 8x8 800x600 16 . A000 UM587 chipset
+ = G 128x30 8x16 1024x480 16 . . NEL Electronics BIOS
+ 53h = T 80x25 8x16 . . . . NEL Electronics BIOS
+ = T 80x60 . . 16 . . MORSE VGA
+ = T 80x60 . . . . . Cirrus 510/520 chipset
+ = T 132x25 8x14 . 16/256K . B800 Trident TVGA 8800/8900
+ = T 132x43 . . . . . Lava Chrome II EGA
+ = G 80x25 8x19 640x480 16 1 A000 AX VGA (Kanji, no superimp.)
+ = G . . 640x480 256 . . Oak VGA
+ = G 80x30 8x16 640x480 256 . A000 Oak OTI-067/OTI-077 [8]
+ = G 100x40 8x14 800x560 16 . . ATI EGA Wonder,ATI VIP
+ = G . . . . . . AX PC
+ 54h = T 132x25 . . . . . Lava Chrome II EGA
+ = T 132x30 8x16 . 16/256K . B800 Trident TVGA 8800/8900
+ = T 132x43 8x8 . . . . Paradise EGA-480
+ = T 132x43 8x8 . . . . NEL Electronics BIOS
+ = T 132x43 7x9 . 16/256K . B800 Paradise VGA
+ = T 132x43 8x9 . 16/256K . B800 Paradise VGA on multisync
+ = T 132x43 . . . . . Taxan 565 EGA
+ = T 132x43 . . . . . AST VGA Plus
+ = T 132x43 . . . . . Hewlett-Packard D1180A
+ = T 132x43 7x9 . 16 . . AT&T VDC600
+ = T 132x43 9x9 1188x387 16/256K . B800 WD90C
+ = T 132x43 9x9 1188x387 16/256K . B800 Diamond Speedstar 24X
+ = T 132x43 9x9 1188x387 16/256K . B800 Diamond Stealth 24
+ = T 132x43 8x8 . . . B800 Diamond Stealth64 Video 2xx1
+ = T 132x43 8x8 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
+ = T 132x50 8x8 . 16 . A000 NCR 77C22 [9]
+ = G 100x42 8x14 800x600 16 . A000 ATI EGA Wonder, VGA Wonder
+ = G 100x42 8x14 800x600 16 . A000 ATI Ultra 8514A, ATI XL
+ = G . . 800x600 256 . A000 Oak VGA
+ = G 100x37 8x16 800x600 256 . A000 Oak OTI-067/077 chips [8]
+ 55h = T 80x66 8x8 . 16/256K . A000 ATI VIP
+ = T 132x25 8x14 . . . . Paradise EGA-480
+ = T 132x25 8x14 . . . . NEL Electronics BIOS
+ = T 132x25 7x16 . 16/256K . B800 Paradise VGA
+ = T 132x25 8x16 . 16/256K . B800 Paradise VGA on multisync
+ = T 132x25 . . . . . Taxan 565 EGA
+ = T 132x25 . . . . . AST VGA Plus
+ = T 132x25 . . . . . Hewlett-Packard D1180A
+ = T 132x25 7x16 . 16 . . AT&T VDC600
+ = T 132x25 8x16 . 16 . A000 NCR 77C22 [9]
+ = T 132x25 9x16 1188x400 16/256K . B800 WD90C
+ = T 132x25 9x16 1188x400 16/256K . B800 Diamond Speedstar 24X
+ = T 132x25 9x16 1188x400 16/256K . B800 Diamond Stealth 24
+ = T 132x25 8x16 . . . B800 Diamond Stealth64 Video 2xx1
+ = T 132x25 8x14 1056x350 16/256K . . Cirrus CL-GD5420/5422/5426
+ = T 132x43 8x11 . 16/256K . B800 Trident TVGA 8800/8900
+ = G 94x29 8x14 752x410 . . . Lava Chrome II EGA
+ = G 128x48 8x16 1024x768 16/256K . A000 ATI VGA Wonder v4+ [5]
+ = G . . 1024x768 16/256K . . ATI VGA Wonder Plus
+ = G . . 1024x768 16/256K . . ATI Ultra 8514A,ATI XL
+ = G 128x48 8x16 1024x768 4 . A000 Oak OTI-067/077 chips [8]
+ 56h = T 132x43 8x8 . 3??? 2 B000 NSI Smart EGA+
+ = T 132x43 7x9 . 4 . B000 Paradise VGA
+ = T 132x43 8x9 . 4 . B000 Paradise VGA on multisync
+ = T 132x43 . . mono . . Taxan 565 EGA
+ = T 132x43 7x9 . 2 . . AT&T VDC600
+ = T 132x43 9x8 . . . . NEL Electronics BIOS
+ = T 132x50 8x8 . 4 . A000 NCR 77C22 [9]
+ = T 132x60 8x8 . 16/256K . B800 Trident TVGA 8800/8900
+ = G . . 1024x768 16 . A000 Oak VGA
+ = G 128x48 8x16 1024x768 16 . A000 Oak OTI-067/077 chips [8]
+ 57h = T 132x25 8x14 . 3??? 4 B000 NSI Smart EGA+
+ = T 132x25 7x16 . 4 . B000 Paradise VGA
+ = T 132x25 8x16 . 4 . B000 Paradise VGA on multisync
+ = T 132x25 9x14 . . . . NEL Electronics BIOS
+ = T 132x25 . . mono . . Taxan 565 EGA
+ = T 132x25 7x16 . 2 . . AT&T VDC600
+ = T 132x25 9x14 . 16/256K . B800 Trident TVGA 8800/8900
+ = T 132x25 8x16 . 4 . A000 NCR 77C22 [9]
+ = G 96x48 8x16 768x1024 16 . A000 Oak OTI-067/077 chips [8]
+ 58h = T 80x33 8x14 . 16 . B800 ATI EGA Wonder,ATI VIP
+ = T 80x32 9x16 . 16 . . Genoa 6400
+ = T 80x43 8x8 . . . . NEL Electronics BIOS
+ = T 132x30 9x16 . 16/256K . B800 Trident TVGA 8800/8900
+ = G 100x75 8x8 800x600 16/256K . A000 Paradise VGA
+ = G 100x75 8x8 800x600 16 . . AT&T VDC600
+ = G 100x75 8x8 800x600 16 . A000 NCR 77C22 [9]
+ = G 100x75 8x8 800x600 16 . A000 Diamond Speedstar 24X
+ = G 100x75 8x8 800x600 16/256K . A000 Paradise VGA, WD90C
+ = G . . 800x600 16 . . AST VGA Plus, Compaq VGA
+ = G . . 800x600 16 . . Dell VGA
+ = G . . 800x600 16 . . Hewlett-Packard D1180A
+ = G . . 800x600 ??? . . ELT VGA PLUS 16
+ = G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
+ = G 160x64 8x16 1280x1024 16 . A000 Oak OTI-077 chipset [8]
+ 59h = T 80x43 9x8 . . . . NEL Electronics BIOS
+ = T 80x66 8x8 . 16/256K . A000 ATI VIP
+ = T 132x43 9x11 . 16/256K . B800 Trident TVGA 8800/8900
+ = G 100x75 8x8 800x600 2 . A000 Paradise VGA
+ = G 100x75 8x8 800x600 2 . . AT&T VDC600
+ = G . . 800x600 2 . . AST VGA Plus, Compaq VGA
+ = G . . 800x600 2 . . Dell VGA
+ = G . . 800x600 2 . . Hewlett-Packard D1180A
+ = G 100x75 8x8 800x600 2 . A000 NCR 77C22 [9]
+ = G 128x48 8x16 1024x768 256 . A000 Oak OTI-077 chipset [8]
+ 5Ah = T 80x60 8x8 . . . . NEL Electronics BIOS
+ = T 132x60 9x8 . 16/256K . B800 Trident TVGA 8800/8900
+ = G 128x48 8x16 1024x768 2 . A000 NCR 77C22 [9]
+ 5Bh = T 80x30 8x16 . . . B800 ATI VGA Wonder (undoc)
+ = G . . 640x350 256 . . Genoa 6400
+ = G 80x25 8x16 640x400 32K . A000 Oak OTI-067/077 chips [8]
+ = G . . 800x600 16 . . Maxxon, SEFCO TVGA, Imtec
+ = G 100x75 8x8 800x600 16/256K . A000 Trident TVGA 8800, 8900
+ = G . . 800x600 ??? . . Vobis MVGA
+ = G 100x37 8x16 800x600 . . . NEL Electronics BIOS
+ = G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [1,9]
+ 5Ch = T 100x37 8x16 . . . . NEL Electronics BIOS
+ = G . . 640x400 256 . . Logix, ATI Prism Elite
+ = G . . 640x400 256 . . Maxxon, SEFCO TVGA, Imtec
+ = G 80x25 8x16 640x400 256/256K . A000 Zymos Poach, Hi Res 512
+ = G 80x25 8x16 640x400 256/256K . A000 Trident TVGA 8800/8900
+ = G 80x30 8x16 640x480 256 . . Genoa 6400
+ = G 80x30 8x16 640x480 32K . A000 Oak OTI-077 chipset [8]
+ = G 100x75 8x8 800x600 256 . A000 NCR 77C22 [9]
+ = G 100x75 8x8 800x600 256/256K . A000 WD90C
+ = G 100x75 8x8 800x600 256/256K . A000 Diamond Speedstar 24X
+ = G 100x37 8x16 800x600 256/256K . A000 Cirrus CL-GD5420/5422/5426
+ 5Dh = T 100x75 8x8 . . . . NEL Electronics BIOS
+ = G 80x25 8x14 640x350 64K . . STB Lightspeed ET4000/W32P
+ = G . . 640x480 256 . . Logix, ATI Prism Elite
+ = G . . 640x480 256 . . Maxxon, SEFCO TVGA, Imtec
+ = G 80x30 8x16 640x480 256/256K . A000 Zymos Poach, Hi Res 512
+ = G 80x30 8x16 640x480 256/256K . A000 Trident TVGA 8800 (512K)
+ = G 128x48 8x16 1024x768 16 . A000 NCR 77C22 [9]
+ = G 128x48 8x16 1024x768 16/256K . A000 WD90C
+ = G 128x48 8x16 1024x768 16 . A000 Diamond Speedstar 24X
+ = G 128x48 8x16 1024x768 16/256K . A000 Cirrus CL-GD5420/5422/5426
+ 5Eh = G . . 640x400 256 . . Paradise VGA,VEGA VGA
+ = G . . 640x400 256 . . AST VGA Plus, NCR 77C22
+ = G . . 640x400 256 . . Compaq VGA, Dell VGA
+ = G 80x25 8x16 640x400 256 . . AT&T VDC600
+ = G 80x25 8x16 640x400 256 . A000 NCR 77C22 [9]
+ = G 80x25 8x16 640x400 256/256K . A000 WD90C
+ = G 80x25 8x16 640x400 256/256K . A000 Diamond Speedstar 24X
+ = G . . 800x600 16 . . Logix, ATI Prism Elite
+ = G 100x37 8x16 800x600 16 . . NEL Electronics BIOS
+ = G 100x75 8x8 800x600 256 . . Genoa 6400
+ = G 100x75 8x8 800x600 256/256K . A000 Zymos Poach, Trident 8900
+ = G 100x75 8x8 800x600 256/256K . A000 Hi Res 512
+ 5Fh = G 80x25 8x16 640x400 64K . . STB Lightspeed ET4000/W32P
+ = G . . 640x480 256 . . Paradise VGA
+ = G . . 640x480 256 . . AST VGA Plus, NCR 77C22
+ = G . . 640x480 256 . . Compaq VGA, Dell VGA
+ = G . . 640x480 256 . . Hewlett-Packard D1180A
+ = G 80x30 8x16 640x480 256 . . AT&T VDC600 (512K)
+ = G 80x30 8x16 640x480 256 . A000 NCR 77C22 [9]
+ = G 80x30 8x16 640x480 256/256K . A000 WD90C
+ = G 80x30 8x16 640x480 256/256K . A000 Diamond Speedstar 24X
+ = G 80x30 8x16 640x480 256/256K . A000 Cirrus CL-GD5420/5422/5426
+ = G . . 1024x768 16 . . Logix, ATI Prism Elite
+ = G . . 1024x768 16 . . Maxxon, Imtec
+ = G 128x48 8x16 1024x768 16 . . Genoa 6400
+ = G 128x48 8x16 1024x768 16/256K . A000 Zymos Poach, Hi Res 512
+ = G 128x48 8x16 1024x768 16/256K . A000 Trident TVGA 88/8900 512K
+ 60h = T 132x25 8x14 . 16/64 8 B800 Quadram Ultra VGA
+ = T 132x25 8x14 . 16 . . Genoa 6400
+ = T 132x25 8x14 . 16 . . Genoa SuperEGA BIOS 3.0+
+ = T 132x25 . . . . . Cirrus 5320 chipset
+ = T 132x25 8x16 1056x400 16 . B800 Chips&Technologies chipset
+ = G 80x??? . ???x400 . . . Corona/Cordata BIOS 4.10+
+ = G 80x25 8x16 640x400 256 1 A000 Ahead A, Ahead B
+ = G . . 752x410 . . . VEGA VGA
+ = G . . 752x410 16 . . Tatung VGA
+ = G . . 752x410 16 . . Video7 V-RAM VGA
+ = G 128x48 8x16 1024x768 4/256K . A000 Trident TVGA 8900
+ = G 128x48 8x16 1024x768 256/256K . A000 WD90C
+ = G 128x48 8x16 1024x768 256/256K . A000 Diamond Speedstar 24X
+ = G 128x48 8x16 1024x768 256/256K . A000 Cirrus CL-GD5420/5422/5426
+ = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
+ 61h = T 132x29 8x12 . 16/64 8 B800 Quadram Ultra VGA
+ = T 132x29 8x8 . 16 . . Genoa 6400
+ = T 132x29 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
+ = T 132x50 . . . . . Cirrus 5320 chipset
+ = T 132x50 8x8 1056x400 16 . B800 Chips&Technologies chipset
+ = T 132x50 8x16 1056x800 16 . B800 Chips&Technologies 64310
+ = G . . ???x400 . . . Corona/Cordata BIOS 4.10+
+ = G 80x25 8x16 640x400 256 . A000 ATI VGA Wonder,VGA Wonder+
+ = G 80x25 8x16 640x400 256 . A000 ATI Ultra 8514A,ATI XL
+ = G 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1
+ = G 80x30 8x16 640x480 256 1 A000 Ahead A, Ahead B (512K)
+ = G . . 720x540 . . . VEGA VGA
+ = G . . 720x540 16 . . Tatung VGA
+ = G . . 720x540 16 . . Video7 V-RAM VGA
+ = G 96x64 8x16 768x1024 16/256K . A000 Trident TVGA 88/8900 512K
+ = G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [1,9]
+ = G 144x54 8x16 1152x864 . . A000 Diamond Stealth64 Video 2xx1
+ 62h = T 132x32 8x11 . 16/64 6 B800 Quadram Ultra VGA
+ = T 132x32 8x12 . 16 . . Genoa 6400
+ = T 132x32 8x11 . 16 . . Genoa SuperEGA BIOS 3.0+
+ = T 132x43 8x8 1056x344 16 . B800 C&T 82C450 BIOS
+ = G . . 640x450 16 . . Cirrus 510/520 chipset
+ = G 80x30 8x16 640x480 256 . A000 ATI VGA Wonder,VGA Wonder+
+ = G 80x30 8x16 640x480 256 . A000 ATI Ultra 8514A,ATI XL
+ = G 80x30 8x16 640x480 32K . A000 WD90C
+ = G 80x30 8x16 640x480 32K . A000 Diamond Speedstar 24X
+ = G . . 800x600 . . . VEGA VGA
+ = G . . 800x600 16 . . Tatung VGA
+ = G . . 800x600 16 . . Video7 V-RAM VGA
+ = G 100x75 8x8 800x600 256 1 A000 Ahead A, Ahead B (512K)
+ = G 128x48 8x16 1024x768 256/256K . A000 Trident TVGA 8900, Zymos
+ = G 128x48 8x16 1024x768 256 . A000 NCR 77C22 [9]
+ 63h = T 132x44 8x8 . 16/64 5 B800 Quadram Ultra VGA
+ = T 132x44 8x8 . 16 . . Genoa 6400
+ = T 132x44 8x8 . 16 . . Genoa SuperEGA BIOS 3.0+
+ = G . . 720x540 16 . . MORSE VGA
+ = G . . 720x540 16 . . Cirrus 510/520 chipset
+ = G 100x42 8x14 800x600 256 . A000 ATI VGA Wonder,VGA Wonder+
+ = G 100x42 8x14 800x600 256 . A000 ATI Ultra 8514A,ATI XL
+ = G . . 800x600 32K . A000 WD90C
+ = G . . 800x600 32K . A000 Diamond Speedstar 24X
+ = G 128x48 7x16 1024x768 256 1 A000 Ahead B (1MB)
+ = G . . 1024x768 2 . . Video7 V-RAM VGA
+ 64h = T 132x60 8x8 . 16 . . Genoa 6400
+ = T 80x43 8x8 528x344 16 . B800 C&T 82C450 BIOS
+ = G . . 640x480 64K . A000 Cirrus CL-GD 5422/5426
+ = G . . 800x600 16 . . MORSE VGA
+ = G . . 800x600 16 . . Cirrus 510/520 chipset
+ = G . . 800x600 ??? . . SAMPO-Mira VGA
+ = G . . 1024x768 4 . . Video7 V-RAM VGA
+ = G 128x48 8x16 1024x768 256 . A000 ATI VGA Wonder Plus,ATI XL
+ = G 160x64 8x16 1280x1024 16/256K . A000 WD90C [1]
+ = G 160x64 8x16 1280x1024 16/256K . A000 Diamond Speedstar 24X [1]
+ 65h = T 80x50 8x8 528x400 16 . B800 C&T 82C450 BIOS
+ = G . . 800x600 64K . A000 Cirrus CL-GD 5422/5426
+ = G . . 1024x768 16 . . Video7 V-RAM VGA
+ = G 128x48 8x16 1024x768 16 . A000 ATI VGA Wonder
+ 66h = T 80x50 8x8 640x400 16/256K . B800 WD90C
+ = T 80x50 8x8 . 16 . B800 Diamond Speedstar 24X
+ = G . . 640x400 256 . . Tatung VGA
+ = G . . 640x400 256 . . Video7 V-RAM VGA
+ = G . . 640x480 32K . A000 Cirrus CL-GD 5422/5426
+ 67h = T 80x43 8x8 640x344 16/256K . B800 WD90C
+ = T 80x43 8x8 . 16 . B800 Diamond Speedstar 24X
+ = G . . 640x480 256 . . Video7 V-RAM VGA
+ = G . . 800x600 32K . A000 Cirrus CL-GD 5422/5426
+ = G 128x48 8x16 1024x768 4 . A000 ATI VGA Wonder
+ = G 160x64 8x16 1280x1024 16 . A000 NCR 77C22 [1,9]
+ 68h = G 80x25 8x16 640x400 . . A000 Diamond Stealth64 Video 2xx1
+ 69h = T 132x50 8x8 1056x400 16/256K . B800 WD90C
+ = T 132x50 8x8 . 16 . B800 Diamond Speedstar 24X
+ = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
+ = G . . 720x540 256 . A000 Video7 V-RAM VGA
+ 6Ah = G . . 800x600 16 . A000 VESA standard interface
+ = G 100x75 8x8 800x600 16 . A000 Genoa 6400
+ = G 100x75 8x8 800x600 16 . A000 Diamond Speedstar 24X
+ = G . . 800x600 16 . A000 Ahead A
+ = G 100x75 8x8 800x600 16 1 A000 Ahead B (VESA) [see 71h]
+ = G . . 800x600 16 . . Zymos Poach, Hi Res 512
+ = G . . 800x600 16 . . Epson LT-386SX in CRT Mode
+ = G . . 800x600 16 . . Compuadd 316SL in CRT Mode
+ = G 100x37 8x16 800x600 16/256K . A000 Cirrus CL-GD5420/5422/5426
+ = G 100x37 8x16 800x600 16 . A000 Diamond Stealth64 Video 2xx1
+ = G 100x42 8x14 800x600 . . A000 ATI VGA Wonder (undoc)
+ = G . . 800x600 16 . A000 Chips&Technologies chipset
+ = G 160x64 8x16 1280x1024 256 . A000 NCR 77C22 [1,9]
+ 6Bh = T 100x37 8x16 . 16 . . Genoa 6400
+ = T 100x37 8x16 . . . . NEL Electronics BIOS
+ = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
+ 6Ch = G 80x30 8x16 640x480 16M . A000 Trident 8900CL/BIOS C04
+ = G 100x75 8x8 800x600 256 . . Genoa 6400
+ = G 128x48 8x16 1024x768 2 . A000 Diamond Stealth64 Video 2xx1
+ = G 160x60 8x16 1280x960 16/256K . A000 WD90C [1]
+ = G 160x60 8x16 1280x960 16/256K . A000 Diamond Speedstar 24X [1]
+ = G 160x64 8x16 1280x1024 16/256K . A000 Cirrus CL-GD 5422/5426 [1]
+ 6Dh = G 80x25 8x14 640x350 64K . A000 STB Lightspeed ET4000/W32P
+ = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
+ = G 160x64 8x16 1280x1024 256/256K . A000 Cirrus CL-GD 5422/5426 [1]
+ 6Eh = G 40x25 8x8 320x200 64K . A000 Cirrus CL-GD 5422/5426
+ = G 160x64 8x16 1280x1024 2 . A000 Diamond Stealth64 Video 2xx1
+ 6Fh = G 40x25 8x8 320x200 16M . A000 Cirrus CL-GD 5422/5426
+ = G 160x64 8x16 1280x1024 . . A000 Diamond Stealth64 Video 2xx1
+ 70h = extended mode set (see AX=0070h) . Everex Micro Enhancer EGA
+ = T 40x25 8x8 . 16 8 B800 Quadram (CGA double scan)
+ = T 40x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
+ = G . . 360x480 256 . . Cirrus 510/520/5320 chips
+ = G 90x28 8x14 720x392 16 1 A000 Ahead B
+ = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
+ = G 100x38 8x16 800x600 16 . A000 C&T chipset, Cardinal
+ = G . . 1024x480 256 . A000 Trident 8900C BIOS C3.0
+ 71h = T 80x25 8x8 . 16 8 B800 Quadram (CGA double scan)
+ = T 80x25 8x8 (CGA dblscan) . . Genoa SuperEGA BIOS 3.0+
+ = G . . 528x400 256 . . Cirrus 510/520 chipset
+ = G 80x30 8x16 640x480 16M . A000 Cirrus CL-GD 5422/5426
+ = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
+ = G 100x35 8x16 800x600 16/64 . A000 NSI Smart EGA+
+ = G 100x75 8x8 800x600 16 1 A000 Ahead B (same as 6Ah)
+ = G . . 960x720 16 . . C&T chipset, Cardinal
+ = G . . 1024x480 256 . A000 Trident 8900C BIOS C3.0
+ 72h = T 80x60 8x8 . 16 . B800 Quadram Ultra VGA
+ = T 80x60 8x8 . 16 . B800 Genoa 6400
+ = T 80x60 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
+ = G . . 528x480 256 . . Cirrus 510/520 chipset
+ = G 80x25 8x19 640x480 16 1 A000 DOS/V w/ any VGA
+ = G 80x30 8x16 640x480 . . A000 Diamond Stealth64 Video 2xx1
+ = G . . 640x480 32K . A000 ATI
+ = G . . 640x480 16M . A000 WD90C
+ = G . . 640x480 16M . A000 Diamond Speedstar 24X
+ = G . . 1024x768 16 . . C&T chipset, Cardinal
+ = G 128x48 8x16 1024x768i 16 . A000 C&T 82C450 BIOS
+ = G 128x48 8x16 1024x768 16 . A000 C&T 65530 BIOS (multisync)
+ 73h = G 80x60 8x8 640x480 16 . A000 Quadram Ultra VGA
+ = G 80x60 8x8 640x480 16 . . Genoa 6400
+ = G 80x60 8x8 640x480 16 . . Genoa SuperEGA BIOS 3.0+
+ = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
+ = T 80x25 8x19 640x475 16 1 none DOS/V, emulated in VGA graph
+ 74h = T 80x66 8x8 . 16 . B800 Quadram Ultra VGA
+ = T 80x66 8x8 . 16 . B800 Genoa 6400
+ = T 80x66 8x8 . 16 . B800 Genoa SuperEGA BIOS 3.0+
+ = G . . 640x400 2 . B800 Toshiba 3100 AT&T mode
+ = G 80x30 8x16 640x480 32K . A000 Trident 8900C/BIOS C03
+ = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
+ = G 128x48 8x16 1024x768 16 1 A000 Ahead A, Ahead B (512K)
+ = G . . 1024x768 64K . A000 Cirrus CL-GD 5422/5426 [1]
+ 75h = G 80x30 8x16 640x480 64K . A000 Trident 8900C/BIOS C03
+ = G 80x66 . 640x528 16??? . A000 Quadram Ultra VGA
+ = G 80x66 . 640x528 16 . . Genoa SuperEGA BIOS 3.0+
+ = G 100x37 8x16 800x600 . . A000 Diamond Stealth64 Video 2xx1
+ = G 128x48 8x16 1024x768 4 1 A000 Ahead B
+ = G 128x48 8x16 1024x768 16 . A000 Chips&Technologies 64310
+ 76h = T 94x29 8x14 . 16 . B800 Quadram Ultra VGA
+ = T 94x29 8x14 . . . . Genoa SuperEGA BIOS 3.0+
+ = G 100x75 8x8 800x600 32K . A000 Trident 8900C/BIOS C03
+ = G 128x48 8x16 1024x768 2 1 A000 Ahead B
+ = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
+ = G 160x64 8x16 1280x1024 16 . A000 Chips&Technologies 64310 [1]
+ 77h = G 94x29 . 752x410 16??? . A000 Quadram Ultra VGA
+ = G 94x29 . 752x410 16 . . Genoa SuperEGA BIOS 3.0+
+ = G 100x75 8x8 800x600 64K . A000 Trident 8900C/BIOS C03
+ = G 128x48 8x16 1024x768 . . A000 Diamond Stealth64 Video 2xx1
+ 78h = T 100x37 8x16 . 16 . . Genoa 6400
+ = T 100x75 8x8 . 16 . B800 Quadram Ultra VGA
+ = T 100x75 8x8 . . . . Genoa SuperEGA BIOS 3.0+
+ = G . . 640x400 256 . . STB VGA/EM-16 Plus
+ = G 80x25 8x16 640x400 256 . . Cardinal, C&T chipset
+ = G . . 640x400 256 . . Cirrus 5320 chipset
+ = G 80x25 8x16 640x400 256 . A000 Chips&Technologies 64310
+ 79h = G 80x30 8x16 640x480 256 . . Cardinal, C&T chipset
+ = G 80x30 8x16 640x480 256 . A000 Chips&Technologies 64310
+ = G 100x75 . 800x600 16??? . A000 Quadram Ultra VGA
+ = G 100x75 8x8 800x600 16 . . Genoa SuperEGA BIOS 3.0+
+ = G 100x75 8x8 800x600 16 . . Genoa 6400
+ 7Ah = T 114x60 8x8 . 16 . B800 Quadram Ultra VGA
+ = T 114x60 8x8 . . . . Genoa SuperEGA BIOS 3.0+
+ = G . . 720x540 256 . . C&T chipset, Cardinal
+ 7Bh = G . . 800x600 256 . . C&T chipset, Cardinal
+ = G 114x60 . 912x480 16??? . A000 Quadram Ultra VGA
+ = G . . 912x480 16 . . Genoa SuperEGA BIOS 3.0+
+ 7Ch = G . . 512x512 16 . . Genoa
+ = G 100x37 8x16 800x600 256 . . C&T 82C453/F65530 chipsets
+ = G 100x37 8x16 800x600 256 . A000 Chips&Technologies 64310
+ = G 200x75 8x16 1600x1200 . [16] . A000 Diamond Stealth64 Video 2xx1
+ 7Dh = G 64x32 8x16 512x512 256 . . Genoa
+ 7Eh = special mode set (see AX=007Eh) . Paradise VGA, AT&T VDC600
+ = G 80x25 8x16 640x400 256 . . Genoa 6400
+ = G . . 1024x768 256 . . C&T 82C453 chipset
+ = G 128x48 8x16 1024x768 256 . A000 Chips&Technologies 64310
+ = G 90x43 . . mono . B000 HERCULES.COM on HGC [14]
+ 7Fh = special function set (see AX=007Fh/BH=00h) Paradise VGA, AT&T VDC600
+ = G 128x48 8x16 1024x768 4 . . Genoa 6400
+ = G 90x29 . . mono . B000 HERCULES.COM on HGC [14]
+ 82h = T 80x25 . . B&W . . AT&T VDC overlay mode [6]
+ 83h = T 80x25 . . . . . AT&T VDC overlay mode [6]
+ 86h = G . . 640x200 B&W . . AT&T VDC overlay mode [6]
+ 88h = G 90x43 8x8 720x348 mono . B000 Hercules + MSHERC.COM
+ C0h = G . . 640x400 2/prog palette . AT&T VDC overlay mode [6]
+ = G . . 640x400 2/prog palette . Olivetti Quaderno overlay
+ C4h = disable output . . . . AT&T VDC overlay mode [6]
+ C8h = G 80x50 8x8 640x400 2 . B800 Olivetti Quaderno overlay
+ D0h = G . . 640x400 2 . B800 DEC VAXmate AT&T mode
+Notes:
+[1] interlaced only
+[2] 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) 132x25 character mode.
+ for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
+ resident
+[3] early XGA boards support 132-column text but do not have this BIOS mode
+[4] 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
+[5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
+[6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
+ 40h, or 44h
+[7] 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.
+[8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
+ may choose to use only partially or not at all; thus, not all Oak boards
+ support all "Oak" modes listed here
+[9] this card uses the full 128K A000h-BFFFh range for the video buffer,
+ precluding the use of a monochrome adapter in the same system
+[10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 1990/09/14, but not
+ v8.01X dated 1992/02/28; mode 21h supported by 1992/02/28 version but not
+ 1990/09/14 version
+[11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
+ installation check for HERKULES.COM is the signature "Herkules" two
+ bytes beyond the INT 10 handler
+[12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into
+ modes 21h or 27h; this version of the BIOS also sets the BIOS data area
+ incorrectly for extended text modes, resulting in scrolling after only
+ 24 lines (the VMODE.EXE utility does set the data area correctly)
+[13] The Tandy 1000SL/TL BIOS does not actually support this mode
+[14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
+ graphics cards by Soft Warehouse, Inc. Its installation check is to
+ test whether the word preceding the INT 10 handler is 4137h.
+[15] The Hercules-graphics video modes for HERCBIOS (shareware by Dave
+ Tutelman) may be changed by a command-line switch; the 90x43
+ character-cell mode's number is always one higher than the 90x29 mode
+ (whose default is mode 08h)
+[16] Stealth64 Video 2001-series BIOS v1.03 reports 76 lines for mode 7Ch,
+ resulting in incorrect scrolling for TTY output (scrolling occurs only
+ after the end of the 76th line, which is not displayed)
+[17] For 43-line text on EGA or 43/50-line text on VGA, you must load an 8x8
+ font using AX=1102h after switching to mode 3; VGA may also require
+ using INT 10/AH=12h/BL=30h
+SeeAlso: #00011,#00083,#00191
+Index: video modes
+Index: installation check;HERKULES|installation check;HERCULES.COM
+--------V-100070-----------------------------
+INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
+ AX = 0070h
+ BL = mode (see #00011)
+Desc: specify a proprietary display mode on the Everex Micro Enhancer or
+ Viewpoint video adapters
+SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
+
+(Table 00011)
+Values for Everex video mode:
+ text/ text pixel pixel colors disply scrn monitor adapter
+ grph resol box resolution pages addr
+ 00h = G . . 640x480 16 . . multisync EGA,VGA
+ 01h = G . . 752x410 16 . . multisync EGA,VGA
+ 02h = G . . 800x600 16 . . multisync EGA,VGA
+ 03h = T 80x34 . . . . . multisync EGA,VGA
+ 04h = T 80x60 . . . . . multisync EGA,VGA
+ 05h = T 94x29 . . . . . multisync EGA only
+ 06h = T 94x51 . . . . . multisync EGA only
+ 07h = T 100x43 8x14 . 16 . . . VGA only
+ 08h = T 100x75 8x8 . 16 . . . VGA only
+ 09h = T 80x44 . . . . . EGA EGA only
+ 0Ah = T 132x25 . . . . . EGA EGA,VGA
+ 0Bh = T 132x44 . . . . . EGA EGA,VGA
+ 0Ch = T 132x25 . . . . . CGA EGA only
+ 0Dh = T 80x44 . . . . . mono EGA only
+ 0Eh = T 132x25 . . . . . mono
+ 0Fh = T 132x44 . . . . . mono
+ 10h = reserved
+ 11h = G . . 1280x350 4 . . . EGA only
+ 12h = G . . 1280x600 4 . . . EGA only
+ 13h = G . . 640x350 256 . . . EGA,EV673
+ 14h = G . . 640x400 256 . . .
+ 15h = G . . 512x480 256 . . .
+ 16h = T 80x30 8x16 . 256 . . . VGA only
+ 18h = T 100x27 8x16 . 16 . . . VGA only
+ 20h = G . . 1024x768 16 . . . Everex 629,678
+ . . . . . . . Everex EV-673
+ 21h = T 160x64 8x16 1280x1024 16 . . . 1MB VGA only
+ 30h = G . . 640x480 256 . . . Everex 629,678
+ . . . . . . . Everex EV-673
+ 31h = G . . 800x600 256 . . . Everex 629,678
+ . . . . . . . Everex EV-673
+ 32h = G 128x48 8x16 1024x768 256 . . . 1MB VGA only
+ 40h = T 132x30 8x16 . 16 . . . VGA only
+ 50h = T 132x32 8x16 . mono . . . VGA only
+ 62h = G 40x25 8x8 320x200 32K . . . Vwpt TC (EV629)
+ 70h = G 64x30 8x16 512x480 32K . . . Viewpoint TC
+ 71h = G 80x30 8x16 640x480 32K . . . Viewpoint TC
+ 76h = G 64x30 8x16 512x480 16M . . . Viewpoint TC
+ 77h = G 80x30 8x16 640x480 16M . . . Viewpoint TC
+SeeAlso: #00010,#00191
+Index: video modes;Everex
+--------V-10007E-----------------------------
+INT 10 - 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)
+Desc: specify a display mode by resolution rather than mode number
+SeeAlso: AH=00h,AX=0070h,AX=007Fh/BH=00h,AX=6F05h,AH=FFh"GO32"
+Index: video modes;Paradise|video modes;AT&T
+--------V-10007FBH00-------------------------
+INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
+ AX = 007Fh
+ BH = 00h
+Return: AL = 7Fh if successful (AT&T VDC600)
+ BH = status (Paradise/Dell)
+ 00h invalid function
+ 7Fh successful
+SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
+--------V-10007FBH01-------------------------
+INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
+ AX = 007Fh
+ BH = 01h
+Return: AL = 7Fh if successful (AT&T VDC600)
+ BH = status (Paradise/Dell)
+ 00h invalid function
+ 7Fh successful
+Note: 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
+SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
+--------V-10007FBH02-------------------------
+INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
+ AX = 007Fh
+ BH = 02h
+Return: AL = 7Fh if successful (AT&T VDC600)
+ BH = status (Paradise/Dell)
+ 00h invalid function
+ 7Fh successful
+ ---if successful---
+ 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
+Note: under Novell DOS 7 TaskMgr Multitasker, this call always returns 0K
+ video memory in CX
+SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=01h
+--------V-10007FBH03-------------------------
+INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - LOCK CURRENT MODE
+ AX = 007Fh
+ BH = 03h
+Return: AL = 7Fh if successful (AT&T VDC600)
+ BH = status (Paradise/Dell)
+ 00h invalid function
+ 7Fh successful
+Desc: allows current mode (VGA or non-VGA) to survive re-boot
+SeeAlso: AX=007Eh,AX=007Fh/BH=04h,AX=007Fh/BH=06h,AH=FFh"Oak"
+--------V-10007FBH04-------------------------
+INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MDA EMULATION MODE
+ AX = 007Fh
+ BH = 04h
+Return: AL = 7Fh if successful (AT&T VDC600)
+ BH = status (Paradise/Dell)
+ 00h invalid function
+ 7Fh successful
+SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
+--------V-10007FBH05-------------------------
+INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER CGA EMULATION MODE
+ AX = 007Fh
+ BH = 05h
+Return: AL = 7Fh if successful (AT&T VDC600)
+ BH = status (Paradise/Dell)
+ 00h invalid function
+ 7Fh successful
+SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=04h,AH=FFh"Oak"
+--------V-10007FBH06-------------------------
+INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER MONOCHROME VGA MODE
+ AX = 007Fh
+ BH = 06h
+Return: AL = 7Fh if successful (AT&T VDC600)
+ BH = status (Paradise/Dell)
+ 00h invalid function
+ 7Fh successful
+Note: this function also switches to video mode 7
+SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=07h,AH=FFh"Oak"
+--------V-10007FBH07-------------------------
+INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - ENTER COLOR VGA MODE
+ AX = 007Fh
+ BH = 07h
+Return: AL = 7Fh if successful (AT&T VDC600)
+ BH = status (Paradise/Dell)
+ 00h invalid function
+ 7Fh successful
+Note: this function also switches to video mode 3
+SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=06h,AH=FFh"Oak"
+--------V-10007F-----------------------------
+INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED DATA REGISTER ACCESS
+ AX = 007Fh
+ BH = function
+ 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
+ 29h-2Fh ??? (Paradise VGA for Dell, 1991/07/24)
+Return: AL = 7Fh if successful (AT&T VDC600)
+ BH = status (Paradise/Dell)
+ 00h invalid function
+ 7Fh successful
+SeeAlso: AX=007Eh,AX=007Fh/BH=03h,AX=007Fh/BH=05h,AH=FFh"Oak"
+--------V-10007FBH60-------------------------
+INT 10 - Paradise VGA - ???
+ AX = 007Fh
+ BH = 60h
+ BL = ??? (00h-13h)
+ ???
+Return: BH = status (00h failed or not supported, 7Fh successful)
+ ???
+Note: this function is supported by the 1993/5/14 ROM for the Dell 486D
+SeeAlso: AX=007Fh/BH=61h
+--------V-10007FBH61-------------------------
+INT 10 - Paradise VGA - ???
+ AX = 007Fh
+ BH = 61h
+ ES:DI -> buffer for list of ??? (see #00012)
+Return: BH = status (00h failed or not supported, 7Fh successful)
+ ???
+Note: this function is supported by the 1993/5/14 ROM for the Dell 486D
+SeeAlso: AX=007Fh/BH=60h
+
+Format of Paradise VGA list entry:
+Offset Size Description (Table 00012)
+ 00h BYTE ??? or 00h if end of list
+ 01h BYTE ???
+ 02h WORD ???
+ 04h WORD ???
+ 06h WORD ???
+--------V-10007FBXA500-----------------------
+INT 10 - Paradise VGA - ???
+ AX = 007Fh
+ BX = A500h
+ ???
+Return: BH = status (00h failed or not supported, 7Fh successful)
+ ???
+Note: this function is supported by the 1993/5/14 ROM for the Dell 486D
+SeeAlso: AX=007Fh/BH=A6h
+--------V-10007FBHA5-------------------------
+INT 10 - Paradise VGA - ???
+ AX = 007Fh
+ BH = A5h
+ BL = ???
+ bits 3-0: ??? (0-4)
+ bits 5,4: ???
+ ???
+Return: BH = status (00h failed or not supported, 7Fh successful)
+ ???
+Note: this function is supported by the 1993/5/14 ROM for the Dell 486D
+--------V-10007FBHA6-------------------------
+INT 10 - Paradise VGA - ???
+ AX = 007Fh
+ BH = A6h
+ ???
+Return: BH = status (00h failed or not supported, 7Fh successful)
+ ???
+Note: this function is supported by the 1993/5/14 ROM for the Dell 486D
+SeeAlso: AX=007Fh/BH=A5h
+--------V-1001-------------------------------
+INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
+ AH = 01h
+ CH = cursor start and options (see #00013)
+ CL = bottom scan line containing cursor (bits 0-4)
+Return: nothing
+Desc: specify the starting and ending scan lines to be occupied by the
+ hardware cursor in text modes
+Notes: 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 above should call INT 10/AX=1130h or
+ read 0040h:0085h first to determine the current font height
+ on some adapters, setting the end line greater than the number of lines
+ in the font will result in the cursor extending to the top of the
+ next character cell on the right
+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,AH=12h/BL=34h,#03885
+
+Bitfields for cursor start and options:
+Bit(s) Description (Table 00013)
+ 7 should be zero
+ 6,5 cursor blink
+ (00=normal, 01=invisible, 10=erratic, 11=slow)
+ (00=normal, other=invisible on EGA/VGA)
+ 4-0 topmost scan line containing cursor
+--------V-1002-------------------------------
+INT 10 - 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)
+Return: nothing
+SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh,MEM 0040h:0050h
+--------V-1003-------------------------------
+INT 10 - 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)
+Notes: 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
+ With PhysTechSoft's PTS ROM-DOS the BH value is ignored on entry.
+SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h,MEM 0040h:0050h,MEM 0040h:0060h
+--------V-1004-------------------------------
+INT 10 - 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
+Desc: determine the current position and status of the light pen (if
+ present)
+Notes: 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
+--------V-1004------------------------------------
+INT 10 - HUNTER 16 - GET CURSOR ADDRESS
+ AH = 04h
+ BH = page
+Return: DH = row (0..24)
+ DL = column (0..79)
+ CH = cursor pixel Y-address (0..199)
+ CL = cursor pixel X-address (0..639)
+Notes: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
+ members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
+ pixel coordinates are for the lower left corner of the character cell
+ containing the cursor
+SeeAlso: AH=60h"HUNTER"
+--------V-1005-------------------------------
+INT 10 - VIDEO - SELECT ACTIVE DISPLAY PAGE
+ AH = 05h
+ AL = new page number (00h to number of pages - 1) (see #00010)
+Return: nothing
+Desc: specify which of possibly multiple display pages will be visible
+Note: to determine whether the requested page actually exists, use AH=0Fh
+ to query the current page after making this call
+SeeAlso: AH=0Fh,AH=43h,AH=45h,MEM 0040h:0062h,MEM 0040h:004Eh
+--------V-100500-----------------------------
+INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - SET GRAPHICS BITMAP BUFFER
+ AX = 0500h
+ BX = segment of buffer
+Return: nothing
+Desc: set the address of graphics bitmap buffer for video modes 60h and 61h
+SeeAlso: AX=050Fh"Corona"
+--------V-10050F-----------------------------
+INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GET GRAPHICS BITMAP BUFFER
+ AX = 050Fh
+Return: DX = segment of graphics bitmap buffer
+Desc: get the address of graphics bitmap buffer for video modes 60h and 61h
+SeeAlso: AX=0500h"Corona"
+--------V-100580-----------------------------
+INT 10 - VIDEO - PCjr, Tandy 1000 - GET CRT/CPU PAGE REGISTERS
+ AX = 0580h
+Return: BH = CRT page register
+ BL = CPU page register
+Notes: 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
+SeeAlso: AH=05h"SET CRT/CPU"
+--------V-1005-------------------------------
+INT 10 - VIDEO - PCjr, Tandy 1000 - SET CRT/CPU PAGE REGISTERS
+ AH = 05h
+ AL = subfunction
+ 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
+Return: nothing
+Notes: 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
+SeeAlso: AX=0580h
+--------V-1006-------------------------------
+INT 10 - 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
+Return: nothing
+Note: affects only the currently active page (see AH=05h)
+BUGS: some implementations (including the original IBM PC) have a bug which
+ destroys BP
+ the Trident TVGA8900CL (BIOS dated 1992/9/8) clears DS to 0000h when
+ scrolling in an SVGA mode (800x600 or higher)
+SeeAlso: AH=07h,AH=12h"Tandy 2000",AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
+--------V-1007-------------------------------
+INT 10 - 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
+Return: nothing
+Note: affects only the currently active page (see AH=05h)
+BUGS: some implementations (including the original IBM PC) have a bug which
+ destroys BP
+ the Trident TVGA8900CL (BIOS dated 1992/9/8) clears DS to 0000h when
+ scrolling in an SVGA mode (800x600 or higher)
+SeeAlso: AH=06h,AH=12h"Tandy 2000",AH=72h,AH=73h,INT 50/AX=0014h
+--------V-1008-------------------------------
+INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
+ AH = 08h
+ BH = page number (00h to number of pages - 1) (see #00010)
+Return: AH = character's attribute (text mode only) (see #00014)
+ AH = character's color (Tandy 2000 graphics mode only)
+ AL = character
+Notes: 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
+ the foreground intensity bit (3) can be programmed to switch between
+ character sets A and B on EGA and VGA cards, thus enabling 512
+ simultaneous characters on screen. In this case the bit's usual
+ function (intensity) is regularly turned off.
+ in graphics modes, only characters drawn with white foreground pixels
+ are matched by the pattern-comparison routine
+ on the Tandy 2000, BH=FFh specifies that the current page should be
+ used
+ because of the IBM BIOS specifications, there may exist some clone
+ BIOSes which do not preserve SI or DI; the Novell DOS kernel
+ preserves SI, DI, and BP before many INT 10h calls to avoid problems
+ due to those registers not being preserved by the BIOS.
+BUG: some IBM PC ROM BIOSes destroy BP when in graphics modes
+SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
+
+Bitfields for character's display attribute:
+Bit(s) Description (Table 00014)
+ 7 foreground blink or (alternate) background bright (see also AX=1003h)
+ 6-4 background color (see #00015)
+ 3 foreground bright or (alternate) alternate character set (see AX=1103h)
+ 2-0 foreground color (see #00015)
+SeeAlso: #00026
+
+(Table 00015)
+Values for character color:
+ Normal Bright
+ 000b black dark gray
+ 001b blue light blue
+ 010b green light green
+ 011b cyan light cyan
+ 100b red light red
+ 101b magenta light magenta
+ 110b brown yellow
+ 111b light gray white
+--------V-1009-------------------------------
+INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
+ AH = 09h
+ AL = character to display
+ BH = page number (00h to number of pages - 1) (see #00010)
+ background color in 256-color graphics modes (ET4000)
+ BL = attribute (text mode) or color (graphics mode)
+ if bit 7 set in <256-color graphics mode, character is XOR'ed
+ onto screen
+ CX = number of times to write character
+Return: nothing
+Notes: 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
+ With PhysTechSoft's PTS ROM-DOS the BH, BL, and CX values are ignored
+ on entry.
+SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F"SYSTEM DATA"
+SeeAlso: INT 43"VIDEO DATA",INT 44"VIDEO DATA"
+--------V-100A-------------------------------
+INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
+ AH = 0Ah
+ AL = character to display
+ BH = page number (00h to number of pages - 1) (see #00010)
+ background color in 256-color graphics modes (ET4000)
+ BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
+ if bit 7 set in <256-color graphics mode, character is XOR'ed
+ onto screen
+ CX = number of times to write character
+Return: nothing
+Notes: 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
+ With PhysTechSoft's PTS ROM-DOS the BH and CX values are ignored
+ on entry.
+SeeAlso: AH=08h,AH=09h,AH=11h"Tandy 2000",AH=4Bh,INT 17/AH=60h
+SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA",INT 44"VIDEO DATA"
+--------V-100B--BH00-------------------------
+INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
+ AH = 0Bh
+ BH = 00h
+ BL = background/border color (border only in text modes)
+Return: nothing
+SeeAlso: AH=0Bh/BH=01h
+--------V-100B--BH01-------------------------
+INT 10 - VIDEO - SET PALETTE
+ AH = 0Bh
+ BH = 01h
+ BL = palette ID
+ 00h background, green, red, and brown/yellow
+ 01h background, cyan, magenta, and white
+Return: nothing
+Note: this call was only valid in 320x200 graphics on the CGA, but newer
+ cards support it in many or all graphics modes
+SeeAlso: AH=0Bh/BH=00h,MEM 0040h:0066h
+--------V-100B--BH02-------------------------
+INT 10 - Tandy 2000 - VIDEO - SET PALETTE ENTRY
+ AH = 0Bh
+ BH = 02h
+ BL = palette entry number
+ AL = new color value for palette entry
+Return: nothing
+Note: this interrupt is identical to INT 52 for Tandy 2000
+SeeAlso: INT 10/AH=00h,INT 10/AH=0Bh/BH=01h,INT 52"Tandy 2000"
+--------V-100C-------------------------------
+INT 10 - VIDEO - WRITE GRAPHICS PIXEL
+ AH = 0Ch
+ BH = page number
+ AL = pixel color
+ if bit 7 set, value is XOR'ed onto screen except in 256-color modes
+ CX = column
+ DX = row
+Return: nothing
+Desc: set a single pixel on the display in graphics modes
+Notes: valid only in graphics modes
+ BH is ignored if the current video mode supports only one page
+SeeAlso: AH=0Dh,AH=46h
+--------V-100D-------------------------------
+INT 10 - VIDEO - READ GRAPHICS PIXEL
+ AH = 0Dh
+ BH = page number
+ CX = column
+ DX = row
+Return: AL = pixel color
+Desc: determine the current color of the specified pixel in grahics modes
+Notes: valid only in graphics modes
+ BH is ignored if the current video mode supports only one page
+SeeAlso: AH=0Ch,AH=47h
+--------V-100E-------------------------------
+INT 10 - VIDEO - TELETYPE OUTPUT
+ AH = 0Eh
+ AL = character to write
+ BH = page number
+ BL = foreground color (graphics modes only)
+Return: nothing
+Desc: display a character on the screen, advancing the cursor and scrolling
+ the screen as necessary
+Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
+ and do the expected things
+ IBM PC ROMs dated 1981/4/24 and 1981/10/19 require that BH be the same
+ as the current active page
+BUG: if the write causes the screen to scroll, BP is destroyed by BIOSes
+ for which AH=06h destroys BP
+SeeAlso: AH=02h,AH=06h,AH=0Ah
+--------b-100E--CXABCD-----------------------
+INT 10 - V20-XT-BIOS - TELETYPE OUTPUT WITH ATTRIBUTE
+ AH = 0Eh
+ CX = ABCDh
+ BP = ABCDh
+ AL = character to write
+ BH = page number
+ BL = foreground color (text modes as well as graphics modes)
+Return: nothing
+Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
+ Koehlmann / c't magazine
+Desc: display a character on the screen, advancing the cursor and scrolling
+ the screen as necessary
+Notes: characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
+ and do the expected things
+SeeAlso: INT 15/AH=84h"V20-XT-BIOS"
+--------V-100F-------------------------------
+INT 10 - VIDEO - GET CURRENT VIDEO MODE
+ AH = 0Fh
+Return: AH = number of character columns
+ AL = display mode (see #00010 at AH=00h)
+ BH = active page (see AH=05h)
+Notes: 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
+ HP 200LX returns AL=07h (monochrome) if mode was set to AL=21h
+ and always 80 resp. 40 columns in all text modes regardless of
+ current zoom setting (see AH=D0h)
+ when using a Hercules Graphics Card, additional checks are necessary:
+ mode 05h: if WORD 0040h:0063h is 03B4h, may be in graphics page 1
+ (as set by DOSSHELL and other Microsoft software)
+ mode 06h: if WORD 0040h:0063h is 03B4h, may be in graphics page 0
+ (as set by DOSSHELL and other Microsoft software)
+ mode 07h: if BYTE 0040h:0065h bit 1 is set, Hercules card is in
+ graphics mode, with bit 7 indicating the page (mode set by
+ Hercules driver for Borland Turbo C)
+ the Tandy 2000 BIOS is only documented as returning AL, not AH or BH
+SeeAlso: AH=00h,AH=05h,AX=10F2h,AX=1130h,AX=CD04h,MEM 0040h:004Ah
+--------V-100F56BX4756-----------------------
+INT 10 - 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 #00016)
+ ???
+ Return: ???
+Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
+Note: the use of TSR display drivers was discontinued after v2.20
+Index: installation check;VUIMAGE display driver
+
+Format of record for VUIMAGE Function 04h:
+Offset Size Description (Table 00016)
+ 00h WORD row number
+ 02h WORD starting column???
+ 04h WORD ending column???
+ ???
+--------V-100F--SIF123-----------------------
+INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
+ AH = 0Fh
+ SI = F123h
+ DI = 321Fh
+Return: AH = number of character columns
+ AL = display mode (see #00010 at AH=00h)
+ BH = active page (see AH=05h)
+ SI = DI = F345h if installed
+Notes: 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"
+--------V-1010-------------------------------
+INT 10 - 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
+Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
+Note: when a window has been set, all output via AH=0Eh is restricted to
+ the specified window
+SeeAlso: AH=11h"Window",AH=12h"Window"
+--------V-1010-------------------------------
+INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
+ AH = 10h
+ AL = speed
+ 00h fast
+ 01h slow (scrolling only moves characters during vertical retrace)
+Return: AH = previous speed
+--------V-1010-------------------------------
+INT 10 - Tandy 2000 - VIDEO - GET/SET CHARACTER FONTS
+ AH = 10h
+ AL = control value
+ bit 0: set character set instead of reading it
+ bit 1: high 128 characters instead of low 128 characters
+ ES:BX -> new character set if AL bit 0 set
+Return: ES:BX -> current character set if AL bit 0 clear on entry
+Notes: this interrupt is identical to INT 52 on Tandy 2000
+ the character set consists of 16 bytes for each of the 128 characters,
+ where each of the 16 bytes describes the pixels in one scan line,
+ most significant bit leftmost
+SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
+SeeAlso: INT 52"Tandy 2000"
+--------V-101000-----------------------------
+INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
+ AX = 1000h
+ BL = palette register number (00h-0Fh)
+ = attribute register number (undocumented) (see #00017)
+ BH = color or attribute register value
+Return: nothing
+Notes: 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
+
+(Table 00017)
+Values for attribute register number:
+ 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
+--------V-101001-----------------------------
+INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
+ AX = 1001h
+ BH = border color (00h-3Fh)
+Return: nothing
+BUG: 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
+Note: under UltraVision, the palette locking status (see AX=CD01h)
+ determines the outcome
+SeeAlso: AX=1002h,AX=1008h,AX=CD01h
+--------V-101002-----------------------------
+INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
+ AX = 1002h
+ ES:DX -> palette register list (see #00018)
+ BH = 00h to avoid problems on some adapters
+Return: nothing
+Note: 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 (Table 00018)
+ 00h 16 BYTEs colors for palette registers 00h through 0Fh
+ 10h BYTE border color
+SeeAlso: #00461
+--------V-101003-----------------------------
+INT 10 - 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
+Return: nothing
+Notes: although there is no function to get the current status on adapters
+ prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
+ VGA, use AH=1Bh and check offset 2Dh of the returned data (see #00040)
+ 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
+ this call is reported to be "Get Cursor Position" on the Tandy
+ 1000SL/TL
+SeeAlso: AH=08h,AH=1Bh
+--------V-101007-----------------------------
+INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
+ AX = 1007h
+ BL = palette or attribute (undoc) register number (see #00017)
+Return: BH = palette or attribute register value
+Note: 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
+--------V-101008-----------------------------
+INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
+ AX = 1008h
+Return: BH = border color (00h-3Fh)
+Note: (see AX=1007h)
+SeeAlso: AX=1001h
+--------V-101009-----------------------------
+INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
+ AX = 1009h
+ ES:DX -> 17-byte buffer for palette register list (see #00018)
+Return: nothing
+Note: 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
+--------V-101010-----------------------------
+INT 10 - 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)
+Return: nothing
+SeeAlso: AX=1012h,AX=1015h
+--------V-101012-----------------------------
+INT 10 - 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)
+Return: nothing
+SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
+--------V-101013-----------------------------
+INT 10 - 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)
+Return: nothing
+Note: this function is not valid in mode 13h
+SeeAlso: AX=101Ah
+--------V-101015-----------------------------
+INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
+ AX = 1015h
+ BL = palette register number
+Return: DH = red value
+ CH = green value
+ CL = blue value
+ AX destroyed by some BIOSes
+ (e.g. Tseng ET4000 BIOS v8.00n always returns AX=00C9h)
+SeeAlso: AX=1010h,AX=1017h
+--------V-101017-----------------------------
+INT 10 - 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,INT 62/AX=00A4h
+--------V-101018-----------------------------
+INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
+ AX = 1018h
+ BL = new PEL value
+Return: nothing
+SeeAlso: AX=1019h
+--------V-101019-----------------------------
+INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
+ AX = 1019h
+Return: BL = value read
+SeeAlso: AX=1018h
+--------V-10101A-----------------------------
+INT 10 - 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
+--------V-10101B-----------------------------
+INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
+ AX = 101Bh
+ BX = starting palette register
+ CX = number of registers to convert
+Return: nothing
+Desc: convert the RGB values of one or more palette registers such that the
+ resulting values are grays with the same intensities as the original
+ colors
+SeeAlso: AH=12h/BL=33h
+--------V-1010E0-----------------------------
+INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
+ AX = 10E0h
+ BL = video mode (see also #00010 at AH=00h)
+ 2Eh = 640x480
+Return: ???
+SeeAlso: AH=00h,AX=10F0h
+--------V-1010F0-----------------------------
+INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
+ AX = 10F0h
+ BL = video mode (see also #00010 at AH=00h)
+ 13h = 320x200x32K
+ 2Dh = 640x350x32K
+ 2Eh = 640x480x32K
+ 2Fh = 640x400x32K
+ 30h = 800x600x32K
+ 3Eh = 640x480x16M (Genoa 7900)
+ FFh Tseng 24-bit color mode
+ BH = mode
+ 2Dh = 640x480
+ 2Eh = 640x480x16M
+ 2Fh = 640x400
+ 30h = 800x600
+ 38h = 1024x768??? (Tseng ET4000/W32i)
+Return: AL = 10h if supported
+ AH = status
+ 00h if successful
+ other on error
+Desc: switch the display into a graphics mode with 15 or more bits per pixel
+Note: 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 Genoa 7900
+SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
+Index: video modes;Tseng Hi-Color
+--------V-1010F1-----------------------------
+INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
+ AX = 10F1h
+Return: AL = 10h if supported
+ BL = type of digital/analog converter (see #00019)
+Desc: determine which type of digital-to-analog converter is installed on the
+ display board
+SeeAlso: AX=10F0h,AX=10F2h
+
+(Table 00019)
+Values for type of DAC:
+ 00h normal VGA DAC
+ 01h Sierra SC1148x HiColor DAC
+ ---Diamond SpeedStar 24---
+ 02h new Sierra SS24 DAC (24-bit)
+ ---generic Tseng BIOS v8+ ---
+ 02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
+ 03h ATT20c490/1/2 (15/16/24-bit)
+ 04h AcuMos ADAC1 (15/16/24-bit)
+ 05h unknown 15/16/24-bit DAC
+ 06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
+ 07h Diamond SS2410 (15/24-bit)
+ 08h unknown 15/16/24-bit DAC
+ 09h unknown 15/16/24-bit DAC
+ else other HiColor DAC
+--------V-1010F2-----------------------------
+INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
+ AX = 10F2h
+ BL = function
+ 00h get current HiColor mode
+ 01h set 15-bit HiColor mode
+ 02h set 16-bit HiColor mode
+Return: AX = 0010h if supported
+ BL = video mode type
+ 00h not in HiColor mode
+ 01h 15-bit RGB mode
+ 02h 16-bit RGB mode
+ 03h 24-bit RGB mode
+Desc: determine whether the display is in a graphics mode with 15 or more
+ bits per pixel color resolution
+Note: set (BL=01h/02h) only works if already in a HiColor mode
+SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
+--------V-1011-------------------------------
+INT 10 - 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
+Desc: determine the portion of the display to which output is restricted
+Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
+SeeAlso: AH=10h"Window",AH=12h"Window"
+--------V-1011-------------------------------
+INT 10 - Tandy 2000 - VIDEO - WRITE ATTRIBUTE ONLY
+ AH = 11h
+ BL = new character attribute (text modes) or color (graphics)
+ CX = number of times to write attribute
+Return: nothing
+Note: this interrupt is identical to INT 52 on Tandy 2000
+SeeAlso: AH=0Ah,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
+SeeAlso: INT 52"Tandy 2000"
+--------V-101100-----------------------------
+INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
+ AX = 1100h
+ 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
+Return: nothing
+Notes: This function will cause a mode set, completely resetting
+ the video environment, but without clearing the video buffer
+ the current block specifiers may be determined with INT 10/AH=1Bh,
+ looking at offsets 2Bh and 2Ch of the returned data (VGA only)
+ (see AH=1Bh,#00040)
+SeeAlso: AX=1101h,AX=1102h,AX=1103h,AX=1104h,AX=1110h,AH=1Bh,AX=CD10h
+SeeAlso: MEM 0040h:0084h
+Index: text mode;font|text mode;screen rows
+--------V-101101-----------------------------
+INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
+ AX = 1101h
+ BL = block to load
+Return: nothing
+Notes: (see also AX=1100h)
+ This function will cause a mode set, completely resetting
+ the video environment, but without clearing the video buffer
+ the "monochrome" patters are 8x14 pixels in size
+SeeAlso: AX=1100h,AX=1102h,AX=1103h,AX=1104h,AX=1111h,AH=1Bh,AX=CD10h
+SeeAlso: MEM 0040h:0084h
+Index: text mode;font|text mode;screen rows
+--------V-101102-----------------------------
+INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
+ AX = 1102h
+ BL = block to load
+Return: nothing
+Notes: (see AX=1100h)
+SeeAlso: AX=1100h,AX=1101h,AX=1103h,AX=1104h,AX=1112h,AH=1Bh,AX=CD10h
+SeeAlso: MEM 0040h:0084h
+--------V-101103-----------------------------
+INT 10 - VIDEO - TEXT-MODE CHARGEN - SET BLOCK SPECIFIER (PS,EGA,VGA)
+ AX = 1103h
+ BL = block specifier (see #00020)
+Return: nothing
+Notes: (see also AX=1110h)
+ This function allows dual character sets to appear on screen
+ simultaneously
+SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1104h,AH=1Bh,AX=CD10h
+SeeAlso: MEM 0040h:0084h
+Index: text mode;font|text mode;screen rows
+
+Bitfields for block specifier:
+Bit(s) Description (Table 00020)
+---EGA/MCGA---
+ 0,1 block selected by characters with attribute bit 3 clear
+ 2,3 block selected by characters with attribute bit 3 set
+---VGA---
+ 0,1,4 block selected by characters with attribute bit 3 clear
+ 2,3,5 block selected by characters with attribute bit 3 set
+--------V-101104-----------------------------
+INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
+ AX = 1104h
+ BL = block to load
+Return: nothing
+Notes: (see AX=1100h)
+SeeAlso: AX=1100h,AX=1101h,AX=1102h,AX=1103h,AX=1114h,AH=1Bh,AX=CD10h
+SeeAlso: MEM 0040h:0084h
+Index: text mode;font|text mode;screen rows
+--------V-1011-------------------------------
+INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
+ AH = 11h
+ AL = 07h load user-specified patterns and recalculate mode parms
+ parameters are the same as for AX=1110h
+ AL = 08h load monochrome patterns (8x14) and recalculate mode parms
+ parameters are the same as for AX=1111h
+ AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
+ parameters are the same as for AX=1112h
+ AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
+ parameters are the same as for AX=1114h
+Note: these functions should only be called under the same conditions as
+ AL=1xh (see AX=1110h"EGA")
+SeeAlso: AX=1100h,AX=1110h"CHARGEN",AX=1110h"Realtek",MEM 0040h:0084h
+Index: text mode;font|text mode;screen rows
+--------V-10110F-----------------------------
+INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
+ AX = 110Fh
+ ES:BP -> user table for INT 1F
+Return: nothing
+Note: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+SeeAlso: AX=1110h"Realtek",AX=1111h"Realtek",AX=1112h"Realtek",AX=1120h
+--------V-101110-----------------------------
+INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD USER-SPECIFIED PATTERNS (PS,EGA,VGA)
+ AX = 1110h
+ 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
+Return: nothing
+Notes: This function will cause a mode set, completely resetting
+ the video environment, but without clearing the video buffer
+ This function is designed to be called immediately after a mode set,
+ it is equivalent to AX=110xh 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 ***)
+ the current block specifiers may be determined with INT 10/AH=1Bh,
+ looking at offsets 2Bh and 2Ch of the returned data (VGA only)
+ (see AH=1Bh,#00040)
+SeeAlso: AX=1100h,AX=1111h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h,MEM 0040h:0084h
+Index: text mode;font|text mode;screen rows
+--------V-101110-----------------------------
+INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
+ AX = 1110h
+ 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
+Return: nothing
+Note: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+SeeAlso: AX=110Fh"Realtek",AX=1112h"Realtek",AX=1121h
+--------V-101111-----------------------------
+INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM MONOCHROME PATTERNS (PS,EGA,VGA)
+ AX = 1111h
+ BL = block to load
+Return: nothing
+Notes: (see AX=1110h)
+ the "monochrome" patters are 8x14 pixels in size
+SeeAlso: AX=1101h,AX=1110h,AX=1112h,AX=1114h,AH=1Bh,AX=CD10h
+--------V-101111-----------------------------
+INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
+ AX = 1111h
+ BL = row specifier (see AX=1121h)
+Return: nothing
+Note: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1122h
+--------V-101112-----------------------------
+INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x8 DBL-DOT PATTERNS (PS,EGA,VGA)
+ AX = 1112h
+ BL = block to load
+Return: nothing
+Notes: (see AX=1110h)
+SeeAlso: AX=1103h,AX=1110h,AX=1111h,AX=1114h,AH=1Bh,AX=CD10h
+--------V-101112-----------------------------
+INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
+ AX = 1112h
+ BL = row specifier (see AX=1121h)
+Return: nothing
+Note: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+SeeAlso: AX=110Fh"Realtek",AX=1110h"Realtek",AX=1111h"Realtek",AX=1123h
+--------V-101114-----------------------------
+INT 10 - VIDEO - TEXT-MODE CHARGEN - LOAD ROM 8x16 CHARACTER SET (VGA)
+ AX = 1114h
+ BL = block to load
+Return: nothing
+Notes: (see AX=1110h)
+SeeAlso: AX=1104h,AX=1110h,AX=1111h,AX=1112h,AH=1Bh,AX=CD10h
+--------V-101118-----------------------------
+INT 10 - IBM SurePath BIOS - Officially "Private" Function
+ AX = 1118h
+--------V-101120-----------------------------
+INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
+ AX = 1120h
+ ES:BP -> user table for INT 1F
+Return: nothing
+Note: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F"SYSTEM DATA"
+SeeAlso: INT 43"VIDEO DATA"
+--------V-101121-----------------------------
+INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
+ AX = 1121h
+ 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
+Return: AL = new number of rows (Diamond Stealth64 Video)
+Note: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h"Compaq"
+SeeAlso: AX=1129h"Diamond",INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
+--------V-101122-----------------------------
+INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
+ AX = 1122h
+ BL = row specifier (see AX=1121h)
+Return: nothing
+Notes: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+ UltraVision v2+ sets INT 43 to the appropriate font on this call
+SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h
+SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
+--------V-101123-----------------------------
+INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
+ AX = 1123h
+ BL = row specifier (see AX=1121h)
+Return: nothing
+Notes: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+ UltraVision v2+ sets INT 43 to the appropriate font on this call
+SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h
+SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
+--------V-101124-----------------------------
+INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
+ AX = 1124h
+ BL = row specifier (see AX=1121h)
+Return: nothing
+Notes: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+ UltraVision v2+ sets INT 43 to the appropriate font on this call
+SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h
+SeeAlso: INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
+--------V-101129-----------------------------
+INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
+ AX = 1129h
+ BL = row specifier (see AX=1121h)
+Return: nothing
+Notes: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+ UltraVision v2+ sets INT 43 to the appropriate font on this call
+SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM DATA"
+SeeAlso: INT 43"VIDEO DATA"
+--------V-101129-----------------------------
+INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (Diamond)
+ AX = 1129h
+ DI: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
+Return: AL = new number of rows
+Notes: this function is meant to be called immediately after a mode set;
+ results are unpredictable at other times
+ supported by Diamond Stealth64 Video
+SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,INT 1F"SYSTEM",INT 43"VIDEO"
+--------V-101130-----------------------------
+INT 10 - 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) (see #00021)
+ 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 = highest character row on screen
+Note: for UltraVision v2+, the 9xN alternate fonts follow the corresponding
+ 8xN font at ES:BP+256N
+BUG: the IBM EGA and some other EGA cards return in DL the number of rows on
+ screen rather than the highest row number (which is one less).
+SeeAlso: AX=1100h,AX=1103h,AX=1120h,INT 1F"SYSTEM DATA",INT 43"VIDEO DATA"
+
+Format of alternate font table [array]:
+Offset Size Description (Table 00021)
+ 00h BYTE character to be replaced (00h = end of table)
+ 01h N BYTEs graphics data for character, one byte per scan line
+--------V-101130BX4D4F-----------------------
+INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
+ AX = 1130h
+ BX = 4D4Fh
+Return: CX = 4F4Dh if installed
+ ES:BP -> M10_SCR INT 10 handler
+Program: M10_SCR is a shareware extended text mode and font driver by
+ I.V. Morozov
+SeeAlso: INT 16/AX=4D4Fh
+--------V-1012-------------------------------
+INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
+ AH = 12h
+Return: BH = attribute to use on blanked lines when scrolling
+Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
+SeeAlso: AH=11h"Window",AH=12h"Window"
+--------V-1012-------------------------------
+INT 10 - Tandy 2000 - VIDEO - SCROLL WINDOW
+ AH = 12h
+ AL = number of rows or columns to scroll
+ BH = buffer flag
+ 00h data in user buffer
+ ES:SI -> buffer containing character/attribute pairs
+ 01h no buffer, fill emptied rows/columns with blanks
+ BL = direction in which to scroll
+ 00h up
+ 01h down
+ 02h left
+ 03h right
+ CH,CL = row,column of upper left corner of scroll area
+ DH,DL = row,column of lower right corner
+Return: nothing
+Notes: this interrupt is identical to INT 52 on Tandy 2000
+ the user buffer, if supplied, must be organized by row; regardless of
+ the scroll direction, all character/attribute pairs for the first
+ row are first, then the pairs for the second row, etc.
+SeeAlso: AH=00h,AH=0Bh/BH=02h,AH=11h"Tandy 2000",AH=12h"Tandy 2000"
+SeeAlso: INT 52"Tandy"
+--------V-1012--BL10-------------------------
+INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
+ AH = 12h
+ BL = 10h
+Return: BH = video state
+ 00h color mode in effect (I/O port 3Dxh)
+ 01h mono mode in effect (I/O port 3Bxh)
+ BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
+ CH = feature connector bits (see #00022)
+ CL = switch settings (see #00023,#00024)
+ AH destroyed (at least by Tseng ET4000 BIOS v8.00n)
+Note: 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
+ another installation check is used by Athena Digital's HGCIBM, which
+ sets CX to FFFFh on calling and checks whether it has been changed
+ on return
+Index: installation check;EGA
+
+Bitfields for feature connector bits:
+Bit(s) Description (Table 00022)
+ 0 FEAT 1 line, state 2
+ 1 FEAT 0 line, state 2
+ 2 FEAT 1 line, state 1
+ 3 FEAT 0 line, state 1
+ 4-7 unused (0)
+
+Bitfields for switch settings:
+Bit(s) Description (Table 00023)
+ 0 switch 1 OFF
+ 1 switch 2 OFF
+ 2 switch 3 OFF
+ 3 switch 4 OFF
+ 4-7 unused
+
+(Table 00024)
+Values for switch settings on original EGA/VGA:
+ 00h primary MDA/HGC, secondary EGA+ 40x25
+ 01h-03h primary MDA/HGC, secondary EGA+ 80x25
+ 04h primary CGA 40x25, secondary EGA+ 80x25 mono
+ 05h primary CGA 80x25, secondary EGA+ 80x25 mono
+ 06h primary EGA+ 40x25, secondary MDA/HGC (optional)
+ 07h-09h primary EGA+ 80x25, secondary MDA/HGC (optional)
+ 0Ah primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
+ 0Bh primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
+--------V-1012--BL11-------------------------
+INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
+ AH = 12h
+ BL = 11h
+Return: AL = 12h if function supported
+ BL = ??? (10h)
+ ES:BP -> BIOS info structure (see #00025)
+SeeAlso: AH=12h/BL=12h"TRIDENT"
+
+Format of Trident BIOS Info structure:
+Offset Size Description (Table 00025)
+ 00h BYTE ??? (0000h)
+ 01h BYTE OEM Code (00h for original Trident)
+ 02h WORD ID??? (1073h for 8800BR, 1074 for 8800CS)
+ 04h 8 BYTEs BIOS date ('mm/dd/yy')
+ 0Ch WORD ???
+ 0Eh 8 BYTEs BIOS Version (' C3-128 ', ' C3-129 ')
+--------V-1012--BL12-------------------------
+INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
+ AH = 12h
+ BL = 12h
+Return: AL = 12h if function supported
+ AH = number of 256K banks of RAM installed
+ (read from CRTC register 1Fh)
+SeeAlso: AH=12h/BL=11h"TRIDENT"
+--------V-1012--BL20-------------------------
+INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
+ AH = 12h
+ BL = 20h select alternate print screen routine
+Return: nothing
+Desc: 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
+Note: some adapters disable print-screen instead of enhancing it
+SeeAlso: INT 05"PRINT SCREEN"
+--------V-1012--BL2E-------------------------
+INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
+ AH = 12h
+ BL = 2Eh
+Return: nothing
+Note: due to an omitted end-of-list marker, these versions of the BIOS will
+ crash the system on this function
+--------V-1012--BL30-------------------------
+INT 10 - 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
+Desc: specify the number of scan lines used to display text modes
+Note: the specified resolution will take effect on the next mode set
+SeeAlso: AH=00h
+--------V-1012--BL31-------------------------
+INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
+ AH = 12h
+ BL = 31h
+ AL = new state
+ 00h enable default palette loading
+ 01h disable default palette loading
+Return: AL = 12h if function supported
+Desc: specify whether a default palette should be loaded when the display
+ mode is set
+SeeAlso: AH=00h
+--------V-1012--BL32-------------------------
+INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
+ AH = 12h
+ BL = 32h
+ AL = new state
+ 00h enable video addressing
+ 01h disable video addressing
+Return: AL = 12h if function supported
+Desc: specify whether the CPU should have access to video memory and the
+ display adapters I/O registers
+--------V-1012--BL33-------------------------
+INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
+ AH = 12h
+ BL = 33h
+ AL = new state
+ 00h enable gray scale summing
+ 01h disable gray scale summing
+Return: AL = 12h if function supported
+Desc: specify whether or not colors should be converted to gray scale when
+ palette or color registers are loaded
+SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
+--------V-1012--BL34-------------------------
+INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
+ AH = 12h
+ BL = 34h
+ AL = new state
+ 00h enable alphanumeric cursor emulation
+ 01h disable alphanumeric cursor emulation
+Return: AL = 12h if function supported
+Desc: specify whether the BIOS should automatically remap cursor start/end
+ according to the current character height in text modes
+SeeAlso: AH=01h,AH=03h
+--------V-1012--BL35-------------------------
+INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
+ AH = 12h
+ BL = 35h
+ AL = subfunction
+ 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 for 128 byte save area (if AL = 00h-03h)
+Return: AL = 12h if function supported
+Desc: switch between two video adapters which may otherwise have address
+ conflicts
+SeeAlso: AX=BF00h,AX=BF01h,INT 6D"VGA"
+--------V-1012--BL36-------------------------
+INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
+ AH = 12h
+ BL = 36h
+ AL = new state
+ 00h enable refresh
+ 01h disable refresh
+Return: AL = 12h if function supported
+Desc: specify whether the contents of video memory should be displayed on
+ the screen; disabling refresh effectively blanks the screen
+Note: when display refresh is disabled, the entire screen displays the color
+ specified by the DAC color register 00h; thus to actually blank the
+ screen, the application must first ensure that that register has been
+ set to black
+BUG: GEM/VIEWMAX ET3000 and ET4000 drivers dated 1988/6/23 do not correctly
+ reenable refresh after the screen has been blanked due to inactivity,
+ resulting in a total loss of video synchronization
+SeeAlso: AX=BF05h
+--------V-1012--BL37-------------------------
+INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
+ AH = 12h
+ BL = 37h
+ AL = text attribute type (00h normal VGA, 01h mainframe type)
+Return: AL = 12h if supported
+SeeAlso: #00026,AH=08h,#00042
+
+Bitfields for XGA mainframe type character attributes:
+Bit(s) Description (Table 00026)
+ 7 blink double rate (75% ON time) or use color 8 as background
+ (see AX=1003h)
+ 6 reverse video
+ 5 underlined
+ 4 left-most and right-most dots of underline area inverted
+ 3 foreground intensity/character font select
+ 2-0 foreground color
+SeeAlso: #00014,#00036
+--------V-1012--BL38-------------------------
+INT 10 - IBM SurePath BIOS - Officially "Private" Function
+ AH = 12h
+ BL = 38h
+SeeAlso: AX=1118h,AH=12h/BL=39h
+--------V-1012--BL39-------------------------
+INT 10 - IBM SurePath BIOS - Officially "Private" Function
+ AH = 12h
+ BL = 39h
+SeeAlso: AX=1118h,AH=12h/BL=38h,AH=12h/BL=3Ah
+--------V-1012--BL3A-------------------------
+INT 10 - IBM SurePath BIOS - Officially "Private" Function
+ AH = 12h
+ BL = 3Ah
+SeeAlso: AX=1118h,AH=12h/BL=39h
+--------V-1012--BL53-------------------------
+INT 10 - Tseng ET-4000 BIOS v8.00 (1991/06/07) - BUG
+ AH = 12h
+ BL = 53h
+Note: due to an omitted end-of-list marker, this version of the BIOS will
+ crash the system on this function
+--------V-1012--BL57-------------------------
+INT 10 - Tseng ET-4000 BIOS v8.00 (1991/06/07) - BUG
+ AH = 12h
+ BL = 57h
+Note: due to an omitted end-of-list marker, this version of the BIOS will
+ crash the system on this function
+--------V-1012--BH55-------------------------
+INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
+ AH = 12h
+ BH = 55h
+ BL = subfunction
+ 00h disable enhanced features
+ 01h enable enhanced features
+ 02h get status
+ Return: AL = status flags (see #00027)
+ 03h disable register trapping (CGA emulation)
+ 04h enable register trapping
+ 05h program video mode
+ ES:BP -> video mode table (see #00028)
+ 06h get mode table
+ AL = video mode
+ Return: ES:BP -> table suitable for mode AL
+ (and subfunc BL=05h) (see #00028)
+ BP = FFFFh on error
+ SI = 0000h (ATI Mach32)
+Note: the ATI Mouse driver (MOUSE.COM/MOUSE.SYS) uses subfunction 06h to get
+ the mode table for mode 03h, and then looks for a signature string
+ beginning within 32 bytes of the offset specified by the word at
+ ES:000Ch
+SeeAlso: AH=FFh"Oak"
+Index: installation check;ATI video adapters
+
+Bitfields for status flags:
+Bit(s) Description (Table 00027)
+ 3 set if enhanced features enabled
+ 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
+
+Format of ATI VGA Wonder video mode table:
+Offset Size Description (Table 00028)
+ 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
+--------V-1012--BL74-------------------------
+INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
+ AH = 12h
+ BL = 74h
+Note: due to an omitted end-of-list marker, these versions of the BIOS will
+ crash the system on this function
+--------V-1012--BL80-------------------------
+INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
+ AH = 12h
+ BL = 80h
+Note: due to an omitted end-of-list marker, these versions of the BIOS will
+ crash the system on this function
+--------V-1012--BL80-------------------------
+INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
+ AH = 12h
+ BL = 80h
+Return: AX = controller type in bits 13-0 (see #00029)
+ bit 14: ???
+ bit 15: ???
+ BL = silicon revision number (bit 7 set if not available)
+ BH = ???
+ bit 2 set if using CL-GD 6340 LCD interface
+SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
+
+(Table 00029)
+Values for Cirrus Logic video controller type:
+ 0000h no extended alternate select support
+ 0001h reserved
+ 0002h CL-GD510/520
+ 0003h CL-GD610/620
+ 0004h CL-GD5320
+ 0005h CL-GD6410
+ 0006h CL-GD5410
+ 0007h CL-GD6420
+ 0008h CL-GD6412
+ 0010h CL-GD5401
+ 0011h CL-GD5402
+ 0012h CL-GD5420
+ 0013h CL-GD5422
+ 0014h CL-GD5424
+ 0015h CL-GD5426
+ 0016h CL-GD5420r1
+ 0017h CL-GD5402r1
+ 0018h CL-GD5428
+ 0019h CL-GD5429
+ 0020h CL-GD6205/15/25
+ 0021h CL-GD6215
+ 0022h CL-GD6225
+ 0023h CL-GD6235
+ 0024h CL-GD6245
+ 0030h CL-GD5432
+ 0031h CL-GD5434
+ 0032h CL-GD5430
+ 0033h CL-GD5434 rev. E and F
+ 0035h CL-GD5440
+ 0036h CL-GD5436
+ 0039h CL-GD5446
+ 0040h CL-GD6440
+ 0041h CL-GD7542 (Nordic)
+ 0042h CL-GD7543 (Viking)
+ 0043h CL-GD7541 (Nordic Lite)
+ 0050h CL-GD5452 (Northstar)
+ 0052h CL-GD5452 (Northstar) ???
+SeeAlso: #00732,#00743
+--------V-1012--BL81-------------------------
+INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
+ AH = 12h
+ BL = 81h
+Return: AH = BIOS major version
+ AL = BIOS minor version
+SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
+--------V-1012--BL82-------------------------
+INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
+ AH = 12h
+ BL = 82h
+Return: AL = chip revision
+ AH = ??? (AFh for v1.01)
+SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h,#00732 at INT 1A/AX=B102h
+--------V-1012--BL84-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
+ AH = 12h
+ BL = 84h
+Return: AX = user options word (see #00030)
+SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
+SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
+
+Bitfields for Cirrus Logic user options word:
+Bit(s) Description (Table 00030)
+ 1,0 centering
+ 00 vertical centered, 01 from bottom, 10 from top, 11 reserved
+ 3,2 720-dot fix-up options
+ 00 OR every 8th and 9th pixel
+ 01 display MGA mode from left
+ 10 display MGA mode from right
+ 11 skip every 9th pixel
+ 4 ???
+ 7-5 video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
+ 8 external monitor enabled instead of LCD panel
+ 9 vertical expand mode enabled
+ 10 8-bit mode instead of 16-bit mode
+ 11 normal video rather than reverse video (for LCD)
+ 12 attribute automap rather than attribute emulation
+ 13 bold mode disabled (default)
+ 14 fast bandwidth
+ 15 ???
+--------V-1012--BL85-------------------------
+INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
+ AH = 12h
+ BL = 85h
+Return: AL = number of 64K banks of video memory
+SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
+--------V-1012--BL89-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
+ AH = 12h
+ BL = 89h
+ AL = new state (00h enabled, 01h disabled)
+Return: nothing
+SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
+--------V-1012--BL8A-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
+ AH = 12h
+ BL = 8Ah
+ AL = new gray-scale color (00h = black to 0Fh = white)
+Return: nothing
+SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
+--------V-1012--BL8B-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
+ AH = 12h
+ BL = 8Bh
+ AL = new state (00h enabled, 01h disabled)
+Return: nothing
+SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
+--------V-1012--BL8C-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
+ AH = 12h
+ BL = 8Ch
+ AL = new state
+ 00h enable automap
+ 01h disable automap and emulate attributes
+Return: nothing
+SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
+--------V-1012--BL8F-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
+ AH = 12h
+ BL = 8Fh
+ AL = new state (00h enabled, 01h disabled)
+Return: nothing
+Note: when expand mode is enabled, the vertical dimension is enlarged to
+ full screen
+SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
+--------V-1012--BL90-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
+ AH = 12h
+ BL = 90h
+ AL = new position
+ 00h centered
+ 01h from top
+ 02h from bottom
+ 03h from top
+Return: nothing
+SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
+--------V-1012--BL91-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
+ AH = 12h
+ BL = 91h
+ AL = new mode
+ 00h display MGA mode from left of screen (default)
+ 01h display MGA from right
+ 02h skip every ninth pixel
+ 03h OR every 8th and 9th pixel
+Return: nothing
+SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
+--------V-1012--BL92-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
+ AH = 12h
+ BL = 92h
+ AL = new display (00h LCD, 01h external monitor)
+Return: nothing
+Note: the deselected display is disabled
+SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
+--------V-1012--BL93-------------------------
+INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
+ AH = 12h
+ BL = 93h
+ AL = new I/O width (00h = 16 bits, 01h = 8 bits)
+Return: nothing
+SeeAlso: AH=12h/BL=9Ah
+--------V-1012--BL94-------------------------
+INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
+ AH = 12h
+ BL = 94h
+ AL = new state (00h wake up monitor, 01h shut down display)
+Return: nothing
+Note: AL=01h is reported not to work properly on the LCD panel
+SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
+--------V-1012--BL9A-------------------------
+INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
+ AH = 12h
+ BL = 9Ah
+Return: AX = options word 1 (see #00031)
+ CX = options word 2 (see #00032)
+ BX,DX reserved
+SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
+SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h,#00732 at INT 1A/AX=B102h
+
+Bitfields for Cirrus Logic options word 1:
+Bit(s) Description (Table 00031)
+ 0,1 reserved
+ 2-4 monitor type
+ 5-6 maximum vertical resolution
+ 7-9 reserved
+ 10 force 8-bit operation
+ 11-13 reserved
+ 14 vertical refresh frequency at 640x480
+ =0 60 Hz
+ =1 high refresh
+ 15 reserved
+SeeAlso: AH=12h/BL=AEh
+
+Bitfields for Cirrus Logic options word 2:
+Bit(s) Description (Table 00032)
+ 15-13 vertical refresh frequency at 1024x768
+ 12-11 vertical refresh frequency at 800x600
+ 10-6 reserved
+ 5-4 vertical refresh frequency at 1280x1024
+ 3-0 reserved
+SeeAlso: #00033
+
+Bitfields for Cirrus Logic Options word 2 (alternate???):
+Bit(s) Description (Table 00033)
+ 15-12 vertical refresh frequency at 1024x768
+ 0000 43i Hz
+ 0001 60 Hz
+ 0010 70 Hz
+ 0011 72 Hz
+ 0100 76 Hz
+ other reserved
+ 11-8 vertical refresh frequency at 800x600
+ 0000 56 Hz
+ 0001 60 Hz
+ 0010 72 Hz
+ 0011 75 Hz
+ other reserved
+ 7-4 maximum vertical resolution
+ 0000 480 scanlines
+ 0001 600 scanlines
+ 0010 768 scanlines
+ 0011 1024 scanlines
+ other reserved
+ 3-1 vertical refresh frequency at 1280x1024
+ 000 43i Hz
+ 001 60 Hz
+ 010 71.2 Hz (CL-GD5434 rev. E and F)
+ 011 74 Hz (CL-GD5434 rev. E and F)
+ other reserved
+ 0 reserved
+SeeAlso: #00032
+--------V-1012--BLA0-------------------------
+INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
+ AH = 12h
+ BL = A0h
+ AL = video mode number (00h-7Fh)
+Return: AH bit 0: video mode supported
+ BX = offset of BIOS subroutine to fixup standard video parameters
+ (call subroutine with DS:SI and ES:DI as returned by this call)
+ DS:SI -> standard video parameters or FFFFh:FFFFh
+ ES:DI -> supplemental video parameters or FFFFh:FFFFh
+SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
+--------V-1012--BLA1-------------------------
+INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
+ AH = 12h
+ BL = A1h
+Return: BH = monitor ID (see #00034)
+ BL = monitor type (00h color, 01h grayscale, 02h no display)
+SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
+
+(Table 00034)
+Values for Cirrus Logic monitor ID:
+ 00h-08h reserved
+ 09h IBM 8604/8507 or equivalent
+ 0Ah IBM 8514 or equivalent
+ 0Bh IBM 8515 or equivalent
+ 0Dh IBM 8503 or equivalent
+ 0Eh IBM 8512/8513 or equivalent
+ 0Fh no monitor
+--------V-1012--BLA2-------------------------
+INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
+ AH = 12h
+ BL = A2h
+ AL = retrace rate
+ 00h standard VGA (31.5 kHz)
+ 01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
+ 02h SuperVGA (31.5-35.1 kHz)
+ 03h extended SuperVGA (31.5-35.5 kHz)
+ 04h multi-frequency (31.5-37.8 kHz)
+ 05h extended multi-frequency (31.5-48.0 kHz)
+ 06h super multi-frequency (31.5-56.0 kHz)
+ 07h extended super multi-frequency (31.5-64.0 kHz)
+Return: nothing
+SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
+--------V-1012--BLA3-------------------------
+INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
+ AH = 12h
+ BL = A3h
+ AL = refresh rate for 640x480 (00h normal, 01h high)
+Return: nothing
+SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
+--------V-1012--BLA4-------------------------
+INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
+ AH = 12h
+ BL = A4h
+ AL = options 1
+ bits 7-4 = vertical refresh at 640x480
+ (0 = 60Hz, 1 = 72Hz, other reserved)
+ bits 3-0 = maximum vertical resolution
+ (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
+ BH = options 2
+ bits 7-4 = vertical refresh at 1024x768
+ (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
+ bits 3-0 = vertical refresh at 800x600
+ (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
+ CH = options 3
+ bits 7-4 = vertical refresh at 1280x1024
+ (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
+ bits 3-0: reserved
+ CL,DX reserved
+Return: nothing
+SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
+--------V-1012--BLAE-------------------------
+INT 10 - Cirrus Logic BIOS - GET HIGH REFRESH
+ AH = 12h
+ BL = AEh
+Return: AL = result
+ bits 7-1: reserved
+ bit 0: 640x480 high refresh rate
+ =0 72 Hz
+ =1 75 Hz
+SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h,AH=12h/BL=A4h,AH=12h/BL=AFh
+--------V-1012--BLAF-------------------------
+INT 10 - Cirrus Logic BIOS - SET HIGH REFRESH
+ AH = 12h
+ BL = AFh
+ AL = option
+ bits 7-1: reserved
+ bit 0: 640x480 high refresh rate
+ =0 72 Hz
+ =1 75 Hz
+Return: nothing
+SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h,AH=12h/BL=A4h,AH=12h/BL=AEh
+--------V-1012--BLBE-------------------------
+INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
+ AH = 12h
+ BL = BEh
+Note: due to an omitted end-of-list marker, these versions of the BIOS will
+ crash the system on this function
+--------V-1012--BLC6-------------------------
+INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
+ AH = 12h
+ BL = C6h
+Note: due to an omitted end-of-list marker, these versions of the BIOS will
+ crash the system on this function
+--------V-1012--BLF0-------------------------
+INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
+ AH = 12h
+ BL = F0h
+Note: due to an omitted end-of-list marker, these versions of the BIOS will
+ crash the system on this function
+--------V-1012--BLF1--------------------------
+INT 10 - Tseng ET-4000 BIOS - GET/SET SCREEN REFRESH RATE
+ AH = 12h
+ BL = F1h
+ AL = subfunction
+ 00h set refresh rate
+ 01h get refresh rate
+ BH = video mode
+ 00h 640x480
+ 01h 800x600
+ 02h 1024x768
+ 03h 1280x1024
+ CX = new refresh rate (see #00035) if AL = 00h
+Return: AL = 12h if supported
+ CX = current rate (for AL=00h, a changed CX indicates failure)
+
+(Table 00035)
+Values for Tseng ET4000 refresh rate:
+ CX 640x480 800x600 1024x768/1280x1024
+ 00h 60 Hz 56 Hz interlaced
+ 01h 72 Hz 60 Hz 60 Hz
+ 02h 75 Hz 72 Hz 70 Hz
+ 03h 90 Hz 75 Hz 75 Hz
+ 04h -- 90 Hz --
+--------V-1013-------------------------------
+INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
+ AH = 13h
+ AL = write mode
+ bit 0: update cursor after writing
+ bit 1: string contains alternating characters and attributes
+ bits 2-7: reserved (0)
+ 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
+Return: nothing
+Notes: recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling,
+ backspace, and CR only take place in the active page
+ also available PC or XT with EGA or higher
+ HP 95LX only supports write mode 00h
+ IBM documents AL=10h,11h,20h,21h as "private" rather than "reserved"
+ with PhysTechSoft's PTS ROM-DOS the AL,BH,BL,DH, and DL values are
+ ignored on entry.
+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,AH=13h"DOS/V"
+--------J-1013-------------------------------
+INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
+ AH = 13h
+ AL = function
+ 10h read characters and standard attributes
+ 11h read characters and extended attributes
+ 12h write characters and standard attributes
+ 13h write characters and extended attributes
+ BH = 00h
+ CX = number of characters to transfer
+ DH,DL = row,column at which to start transfer
+ ES:BP -> buffer for/containing characters and attributes (see #00036)
+Return: ES:BP buffer filled if reading
+Program: DOS/V is a Japanese-language version of MS-DOS which can run on
+ standard (non-Japanese) ATs and compatible equipped with a VGA or
+ newer video adapter
+Notes: subfunctions 11h and 13h are only valid when DOS/V is using video
+ mode 73h
+ the cursor position is not changed by these functions
+ extended attributes consist of three bytes; the first is the standard
+ character attribute byte, the second is as described below, and the
+ third is always zero in current versions
+SeeAlso: AH=00h,AH=13h"VIDEO"
+
+Bitfields for DOS/V second extended attribute byte:
+Bit(s) Description (Table 00036)
+ 7 underline using foreground color
+ 6 reverse foreground/background specified in standard attribute byte
+ 5-4 unused
+ 3 vertical white grid line in cell
+ 2 horizontal white grid line in cell
+ 1-0 unused
+SeeAlso: #00014,#00026
+--------V-101400-----------------------------
+INT 10 - 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
+Return: nothing
+SeeAlso: AX=1100h,AX=1110h,AX=1401h
+--------V-101401-----------------------------
+INT 10 - 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)
+Return: nothing
+SeeAlso: AX=1100h,AX=1102h,AX=1400h
+--------V-101402-----------------------------
+INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
+ AX = 1402h
+ BL = subfunction
+ 00h ignore high intensity attribute
+ 01h map high intensity to reverse video
+ 02h map high intensity to underscore
+ 03h map high intensity to selected alternate font
+ B0h half intensity (Compaq)
+ B1h toggle active intensity bit interpretation (CP386)
+Return: nothing
+--------V-1015-------------------------------
+INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
+ AH = 15h
+Return: AX = alternate display adapter type (see #00037)
+ ES:DI -> parameter table (see #00038)
+SeeAlso: AH=1Bh
+
+(Table 00037)
+Values for PC Convertible alternate display adapter type:
+ 0000h none
+ 5140h LCD
+ 5153h CGA
+ 5151h mono
+
+Format of PC Convertible display parameter table:
+Offset Size Description (Table 00038)
+ 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
+ (width, center-to-center)
+ 0Ch WORD vertical pixel separation in micrometers
+ (height, center-to-center)
+--------V-1015-------------------------------
+INT 10 - 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
+Return: nothing
+--------J-1018-------------------------------
+INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
+ AH = 18h
+ AL = subfunction
+ 00h get font pattern
+ 01h set font pattern
+ BX = 0000h
+ CL = character size in bytes (01h,02h)
+ CH = 00h
+ DH = character width in pixels
+ DL = character height in pixels
+ ES:DI -> buffer for/containing font image
+Return: AL = status (00h successful, else error)
+ ES:DI buffer filled for function 00h if successful
+Note: the supported font sizes are 8x16 single-byte, 8x19 single-byte,
+ 16x16 double-byte, and 24x24 double-byte
+SeeAlso: AH=19h,INT 16/AH=14h
+--------V-1019-------------------------------
+INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
+ AH = 19h
+ ???
+Return: ???
+SeeAlso: AH=18h,INT 16/AH=14h
+--------V-101A00-----------------------------
+INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
+ AX = 1A00h
+Return: AL = 1Ah if function was supported
+ BL = active display code (see #00039)
+ BH = alternate display code (see #00039)
+Notes: this function is commonly used to check for the presence of a VGA
+ this function is supported on the ATI EGA Wonder with certain
+ undocumented configuration switch settings, even though the EGA
+ Wonder does not support VGA graphics; to distinguish this case,
+ call AX=1C00h with CX nonzero, which the EGA Wonder does not support
+SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh,AH=1Ch,MEM 0040h:008Ah
+Index: installation check;VGA
+
+(Table 00039)
+Values for display combination code:
+ 00h no display
+ 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
+--------V-101A01-----------------------------
+INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
+ AX = 1A01h
+ BL = active display code (see #00039)
+ BH = alternate display code
+Return: AL = 1Ah if function was supported
+SeeAlso: AH=12h/BL=35h,AX=1A00h
+--------V-101B-------------------------------
+INT 10 - 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 #00040)
+Return: AL = 1Bh if function supported
+ ES:DI buffer filled with state information
+BUG: Trident 8900 (BIOS D3.0 1991/11/12) and Trident 9000 (C3.0 1991/10/25)
+ do not correctly set the fields at offsets 27h and 29h of the
+ state information
+SeeAlso: AH=15h,AX=1A00h,AX=1F01h
+
+Format of MCGA+ state information:
+Offset Size Description (Table 00040)
+ 00h DWORD address of static funtionality table (see #00045)
+ 04h BYTE video mode in effect
+ 05h WORD number of columns
+ 07h WORD length of regen buffer in bytes
+ 09h WORD starting address of regen buffer
+ 0Bh WORD cursor position for page 0
+ 0Dh WORD cursor position for page 1
+ 0Fh WORD cursor position for page 2
+ 11h WORD cursor position for page 3
+ 13h WORD cursor position for page 4
+ 15h WORD cursor position for page 5
+ 17h WORD cursor position for page 6
+ 19h WORD cursor position for page 7
+ 1Bh WORD cursor "type" (start/stop scan lines)
+ 1Dh BYTE active display page
+ 1Eh WORD CRTC port address
+ 20h BYTE current setting of PORT 03x8h
+ 21h BYTE current setting of PORT 03x9h
+ 22h BYTE number of rows - 1
+ 23h WORD bytes/character
+ 25h BYTE display combination code of active display
+ 26h BYTE DCC of alternate display
+ 27h WORD number of colors supported in current mode (0000h = mono)
+ 29h BYTE number of pages supported in current mode
+ 2Ah BYTE number of scan lines active
+ (0,1,2,3) = (200,350,400,480)
+ Tseng ET3000: (4,5,6 = 512,600,768)
+ 2Bh BYTE primary character block
+ 2Ch BYTE secondary character block
+ 2Dh BYTE miscellaneous flags (see #00041)
+ 2Eh BYTE non-VGA mode support (see #00042)
+ 2Fh 2 BYTEs reserved (00h)
+ 31h BYTE video memory available
+ 00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
+ 32h BYTE save pointer state flags (see #00043)
+ 33h BYTE display information and status (see #00044)
+ 34h 12 BYTEs reserved (00h)
+
+Bitfields for miscellaneous flags:
+Bit(s) Description (Table 00041)
+ 0 all modes on all displays on
+ 1 gray summing on
+ 2 monochrome display attached
+ 3 default palette loading disabled
+ 4 cursor emulation enabled
+ 5 0 = intensity; 1 = blinking
+ 6 flat-panel display is active
+ 7 unused (0)
+SeeAlso: #00040
+
+Bitfields for non-VGA mode support:
+Bit(s) Description (Table 00042)
+ 7-5 reserved
+ 4 132-column mode supported
+ 3 =1 MFI attributes enabled (see AH=12h/BL=37h)
+ =0 VGA attributes
+ 2 16-bit VGA graphics present
+ 1 adapter interface driver required
+ 0 BIOS supports information return for adapter interface
+SeeAlso: #00040
+
+Bitfields for save pointer state flags:
+Bit(s) Description (Table 00043)
+ 0 512 character set active
+ 1 dynamic save area present
+ 2 alpha font override active
+ 3 graphics font override active
+ 4 palette override active
+ 5 DCC override active
+ 6-7 unused (0)
+SeeAlso: #00040
+
+Bitfields for display information and status:
+Bit(s) Description (Table 00044)
+ 7 640x480 flat-panel can be used simultaneously with CRT controller
+ 6-3 reserved
+ 2 color display
+ 1 flat-panel display active
+ 0 flat-panel display attached
+SeeAlso: #00040
+
+Format of Static Functionality Table:
+Offset Size Description (Table 00045)
+ 00h BYTE modes supported 1
+ bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6,7 supported
+ 01h BYTE modes supported 2
+ bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
+ 02h BYTE modes supported 3
+ bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
+ bit 4 to bit 7 unused (0)
+ 03h BYTE (IBM) reserved
+ (Tseng ET3000/4000) modes supported 4
+ bit 0 to bit 7 = modes 18h-1Fh supported
+ 04h BYTE (IBM) reserved
+ (Tseng ET3000/4000) modes supported 5
+ bit 0 to bit 7 = modes 20h-27h supported
+ 05h BYTE (IBM) reserved
+ (Tseng ET3000/4000) modes supported 6
+ bit 0 to bit 7 = modes 28h-2Fh supported
+ 06h BYTE (IBM) reserved
+ (Tseng ET3000/4000) modes supported 7
+ bit 0 to bit 7 = modes 30h-37h supported
+ 07h BYTE scan lines supported
+ bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
+ bits 3-7 = unused (0)
+ 08h BYTE total number of character blocks available in text modes
+ 09h BYTE maximum number of active character blocks in text modes
+ 0Ah WORD miscellaneous function support flags (see #00046)
+ 0Ch WORD reserved
+ 0Eh BYTE save pointer function flags (see #00047)
+ 0Fh BYTE reserved
+SeeAlso: #00040
+
+Bitfields for miscellaneous function support flags:
+Bit(s) Description (Table 00046)
+ 0 all modes on all displays function supported
+ 1 gray summing function supported
+ 2 character font loading function supported
+ 3 default palette loading enable/disable supported
+ 4 cursor emulation function supported
+ 5 EGA palette present
+ 6 color palette present
+ 7 color-register paging function supported
+ 8 light pen supported (see AH=04h)
+ 9 save/restore state function 1Ch supported
+ 10 intensity/blinking function supported (see AX=1003h)
+ 11 Display Combination Code supported (see #00039)
+ 12-15 unused (0)
+SeeAlso: #00040
+
+Bitfields for save pointer function flags:
+Bit(s) Description (Table 00047)
+ 0 512 character set supported
+ 1 dynamic save area supported
+ 2 alpha font override supported
+ 3 graphics font override supported
+ 4 palette override supported
+ 5 DCC extension supported
+ 6-7 unused (0)
+SeeAlso: #00040
+--------V-101C-------------------------------
+INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
+ AH = 1Ch
+ AL = function
+ 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 (see #00048)
+Return: AL = 1Ch if function supported
+Notes: many BIOSes corrupt the video registers when saving the state, so a
+ program should restore the state immediately after saving it (the
+ saved data is uncorrupted)
+ the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
+ this function is not supported when DOS/V is running
+ this function may be a better VGA installation check than the usual
+ INT 10/AX=1A00h, since some late-model EGA cards (such as the ATI
+ EGA Wonder) supported that call
+SeeAlso: AX=1A00h,AX=5F90h,AX=5FA0h,MEM 0040h:00A8h
+
+Bitfields for requested states:
+Bit(s) Description (Table 00048)
+ 0 video hardware (see #00049)
+ 1 BIOS data areas
+ 2 color registers and DAC state (see #00050)
+ 3-15 unused (0)
+SeeAlso: #00186
+
+Format of VGA video hardware state:
+Offset Size Description (Table 00049)
+ 00h BYTE sequencer index register
+ 01h BYTE CRTC index register
+ 02h BYTE graphics controller index register
+ 03h BYTE attribute controller index register
+ 04h BYTE feature controller register
+ 05h 4 BYTEs sequencer registers
+ 09h BYTE sequencer register 0
+ 0Ah 25 BYTEs CRTC registers 0-8
+ 23h 16 BYTEs palette registers 00h-0Fh
+ 33h 4 BYTEs attribute registers 10h-13h
+ 37h 9 BYTEs graphics controller registers 0-8
+ 40h BYTE CRTC base address (low)
+ 41h BYTE CRTC base address (high)
+ 42h BYTE plane 0 latch
+ 43h BYTE plane 1 latch
+ 44h BYTE plane 2 latch
+ 45h BYTE plane 3 latch
+
+Format of VGA DAC state:
+Offset Size Description (Table 00050)
+ 00h BYTE read/write mode DAC
+ 01h BYTE pixel address
+ 02h BYTE pixel mask
+ 03h 768 BYTEs color data (256 triples)
+303h BYTE color select register
+--------J-101D-------------------------------
+INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
+ AH = 1Dh
+ AL = function
+ 00h enable shift status line(s)
+ BX = number of lines to reserve at bottom of screen (usu. 1)
+ 01h disable shift status line
+ BX = number of lines reserved at bottom of screen (usually 1)
+ 02h get number of status lines
+ Return: BX = number of lines reserved for shift status
+SeeAlso: AH=19h
+--------V-101D-------------------------------
+INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
+ AH = 1Dh
+ AL = video mode
+ ES = caller's segment
+Return: nothing
+Note: the caller's segment contains at offset 5Ch (FCB field in PSP)
+ or 100h a table with sync parameters (see #00051) (BIOS looks at both
+ offsets)
+
+Format of SpeedSTAR Plus sync table:
+Offset Size Description (Table 00051)
+ 00h 9 BYTEs ID contains string 'ey5CENTER'
+ 09h 5 BYTEs sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
+ 0Bh 5 BYTEs sync parameters for 800x600 modes 29h,30h,2Ah
+ 13h 5 BYTEs sync parameters for 1024x768 modes 37h,38h
+--------V-101D-------------------------------
+INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
+ AH = 1Dh
+Note: these versions of the BIOS jump to a random location on this function
+ due to a fencepost error
+--------V-101DAABXFDEC-----------------------
+INT 10 U - Diamond Stealth64 Video - INSTALLATION CHECK
+ AX = 1DAAh
+ BX = FDECh
+Return: BX = CDEFh if Diamond Stealth64 Video 2001-series video card installed
+ AL = number of megabytes of video memory
+ AH = card type??? (4Bh for VL-Bus/5Bh for PCI)
+ CX = ??? (0000h)
+ SI:DI -> signature/copyright string
+--------V-101E00-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - READ INFORMATION
+ AX = 1E00h
+Return: AL = 1Eh if function supported
+ BL = flat-panel status (see #00052)
+ ES:DI -> information table (see #00053)
+Note: IBM classifies this function as optional
+SeeAlso: AX=1E01h,AX=1E02h,AX=1E03h,AX=1E04h,AX=1E05h,AX=1EFEh
+
+Bitfields for flat-panel status:
+Bit(s) Description (Table 00052)
+ 7-3 reserved
+ 2 color display
+ 1 flat panel is active
+ 0 flat panel is attached
+SeeAlso: #00053
+
+Format of flat-panel information table:
+Offset Size Description (Table 00053)
+ 00h BYTE number of WORDs in the remainder of the table
+ 01h WORD number of vertical pixels per meter
+ 03h WORD number of horizontal pixels per meter
+ 05h WORD total number of vertical pixels
+ 07h WORD total number of horizontal pixels
+ 09h WORD vertical pixel separation in micrometers (center-to-center)
+ 0Bh WORD horizontal pixel separation in micrometers
+ 0Dh WORD range of gray levels available, less 1
+ 0Fh WORD number of red levels available, less 1 (0000h if nonochrome)
+ 11h WORD number of green levels available, less 1 (0000h if nonochrome)
+ 13h WORD number of blue levels available, less 1 (0000h if nonochrome)
+SeeAlso: #00052
+--------V-101E01-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - LCD/CRT DISPLAY CONTROL
+ AX = 1E01h
+ BH = function
+ bit 7: =1 set display control, =0 query control
+ bits 6-0: reserved (0)
+ ---if BH bit 7 set---
+ BL = new display combination (see #00054)
+Return: AL = 1Eh if function supported
+ BH = results
+ bit 7: query/set (copied from input)
+ bits 6-3: reserved (0)
+ bit 2: simultaneous display is supported by hardware
+ bit 1: LCD/CRT display control supported by hardware
+ bit 0: set operation was successful (always clear on get)
+ BL = active display combination (see #00054)
+SeeAlso: AX=1E00h,AX=1E02h
+
+Bitfields for Flat-Panel display combination:
+Bit(s) Description (Table 00054)
+ 7-2 reserved (0)
+ 1-0 combination
+ 00 reserved
+ 01 LCD active
+ 10 CRT active
+ 11 both LCD and CRT active (simultaneous display)
+SeeAlso: #00055
+--------V-101E02-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - DISPLAY POSITION
+ AX = 1E02h
+ BH = function
+ bit 7: =1 set display position, =0 query position
+ bits 6-0: reserved (0)
+ ---if BH bit 7 set---
+ BL = new position setting (see #00055)
+Return: AL = 1Eh if function supported
+ BH = results
+ bit 7: query/set (copied from input)
+ bits 6-4: reserved (0)
+ bit 3: positioning to top is supported by hardware
+ bit 2: positioning to center is supported by hardware
+ bit 1: positioning to bottom is supported by hardware
+ bit 0: set operation was successful (always clear on get)
+ BL = active position setting (see #00055)
+SeeAlso: AX=1E00h,AX=1E01h
+
+Bitfields for Flat-Panel position setting:
+Bit(s) Description (Table 00055)
+ 7-2 reserved (0)
+ 1-0 position
+ 00 center
+ 01 top
+ 10 bottom
+ 11 reserved
+SeeAlso: #00054,#00056
+--------V-101E03-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - VERTICAL EXPANSION FOR TEXT/GRAPHICS MODES
+ AX = 1E03h
+ BH = function
+ bit 7: =1 set vertical expansion, =0 query expansion
+ bits 6-0: reserved (0)
+ ---if BH bit 7 set---
+ BL = new vertical expansion setting (see #00056)
+Return: AL = 1Eh if function supported
+ BH = results
+ bit 7: query/set (copied from input)
+ bits 6-4: reserved (0)
+ bit 3: vertical expansion of text is supported by hardware
+ bit 2: vertical expansion of graphics is supported by hardware
+ bit 1: hardware supports independent control of expansion in
+ text and graphics modes
+ bit 0: set operation was successful (always clear on get)
+ BL = active vertical expansion setting (see #00056)
+SeeAlso: AX=1E00h,AX=1E02h.AX=1E04h
+
+Bitfields for Flat-Panel vertical expansion setting:
+Bit(s) Description (Table 00056)
+ 7-2 reserved (0)
+ 1 vertical expansion turned on for text modes
+ 0 vertical expansion turned on for graphics modes
+SeeAlso: #00054,#00055,#00057
+--------V-101E04-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - NORMAL/REVERSE VIDEO FOR TEXT/GRAPHICS MODES
+ AX = 1E04h
+ BH = function
+ bit 7: =1 set normal/reverse video, =0 query normal/reverse
+ bits 6-0: reserved (0)
+ ---if BH bit 7 set---
+ BL = new normal/reverse video setting (see #00057)
+Return: AL = 1Eh if function supported
+ BH = results
+ bit 7: query/set (copied from input)
+ bits 6-4: reserved (0)
+ bit 3: hardware supports reverse video for text modes
+ bit 2: hardware supports reverse video for graphics modes
+ bit 1: hardware supports independent control of reverse video
+ in text and graphics modes
+ bit 0: set operation was successful (always clear on get)
+ BL = active normal/reverse video setting (see #00057)
+SeeAlso: AX=1E00h,AX=1E03h,AX=1E05h
+
+Bitfields for Flat-Panel normal/reverse video setting:
+Bit(s) Description (Table 00057)
+ 7-2 reserved (0)
+ 1 reverse video for text
+ 0 reverse video for graphics
+SeeAlso: #00054,#00056,#00058,#00059
+--------V-101E05-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS CONTROL
+ AX = 1E05h
+ BH = function
+ bit 7: =1 set brightness, =0 query brightness
+ bits 6-0: reserved (0)
+ ---if BH bit 7 set---
+ BL = new brightness setting (see #00058)
+Return: AL = 1Eh if function supported
+ BH = results
+ bit 7: query/set (copied from input)
+ bits 6-2: reserved (0)
+ bit 1: software brightness control is supported
+ bit 0: set operation was successful (always clear on get)
+ BL = active brightness setting (see #00058)
+Note: this function operates independently of AX=1E07h
+SeeAlso: AX=1E00h,AX=1E04h,AX=1E06h,AX=1E07h
+
+Bitfields for Flat-Panel brightness control:
+Bit(s) Description (Table 00058)
+ 7-1 reserved (0)
+ 0 high brightness
+SeeAlso: #00057,#00059
+--------V-101E06-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - CONTRAST CONTROL FOR TEXT/GRAPHICS
+ AX = 1E06h
+ BH = function
+ bit 7: =1 set contrast control, =0 query contrast
+ bits 6-0: reserved (0)
+ ---if BH bit 7 set---
+ BL = new normal/reverse video setting (see #00059)
+Return: AL = 1Eh if function supported
+ BH = results
+ bit 7: query/set (copied from input)
+ bits 6-4: reserved (0)
+ bit 3: software contrast control supported for text
+ bit 2: software contrast control supported for graphics
+ bit 1: hardware supports independent control of contrast
+ in text and graphics modes
+ bit 0: set operation was successful (always clear on get)
+ BL = active contrast setting (see #00059)
+Note: this function operates independently of AX=1E08h
+SeeAlso: AX=1E00h,AX=1E04h,AX=1E05h,AX=1E07h,AX=1E08h
+
+Bitfields for Flat-Panel contrast control:
+Bit(s) Description (Table 00059)
+ 7-2 reserved (0)
+ 1 high contrast for text
+ 0 high contrast for graphics
+SeeAlso: #00057,#00058
+--------V-101E07-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - BRIGHTNESS SETTING
+ AX = 1E07h
+ BH = function
+ bit 7: =1 set brightness control, =0 query brightness
+ bit 6: use standard brightness
+ bits 5-0: reserved (0)
+ ---if BH bits 7,6=10---
+ BL = brightness (00h = minimum, FFh = maximum)
+Return: AL = 1Eh if function supported
+ BH = results
+ bit 7: query/set (copied from input)
+ bit 6: standard/custom (copied from input)
+ bits 5-2: reserved (0)
+ bit 1: software brightness control is supported
+ bit 0: set operation was succesful (always clear on get)
+ BL = brightness (00h = minimum, FFh = maximum)
+Note: this function operates independently of AX=1E05h
+SeeAlso: AX=1E00h,AX=1E05h,AX=1E08h
+--------V-101E08-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - CONTRAST SETTING
+ AX = 1E08h
+ BH = function
+ bit 7: =1 set contrast control, =0 query contrast
+ bit 6: use standard contrast
+ bits 5-0: reserved (0)
+ ---if BH bits 7,6=10---
+ BL = contrast (00h = minimum, FFh = maximum)
+Return: AL = 1Eh if function supported
+ BH = results
+ bit 7: query/set (copied from input)
+ bit 6: standard/custom (copied from input)
+ bits 5-2: reserved (0)
+ bit 1: software contrast control is supported
+ bit 0: set operation was succesful (always clear on get)
+ BL = contrast (00h = minimum, FFh = maximum)
+Note: this function operates independently of AX=1E06h
+SeeAlso: AX=1E00h,AX=1E06h,AX=1E07h
+--------V-101EFE-----------------------------
+INT 10 - VIDEO - FLAT-PANEL - FUNCTION SUPPORT FLAG
+ AX = 1EFEh
+ ES:DI -> DWORD buffer for bitmap of supported functions
+ (set to all zeros before calling)
+Return: ES:DI buffer updated with mask of supported functions
+Index: installation check;flat-panel display support
+SeeAlso: AX=1E00h,AX=1E06h
+--------V-101F00-----------------------------
+INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
+ AX = 1F00h
+Return: AL = 1Fh if supported
+ BX = number of bytes of DMQS data
+Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
+ and later models.
+SeeAlso: AX=1F01h
+--------V-101F01-----------------------------
+INT 10 - VIDEO - XGA - READ DMQS DATA
+ AX = 1F01h
+ ES:DI -> user buffer for return data (call AX=1F00h for size)
+Return: AL = 1Fh if function supported
+ user buffer filled with DMQS data (see #00060)
+Note: not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
+ and later models.
+SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
+
+Format of XGA DMQS buffer:
+Offset Size Description (Table 00060)
+ 00h WORD offset (in bytes) to DMQS data for next XGA instance
+ 02h BYTE slot number
+ 03h BYTE XGA implementation function level identifier
+ 04h BYTE XGA implementation resolution level identifier
+ 05h WORD vendor identifier - identifies card vendor
+ 07h WORD vendor defined field
+ 09h WORD XGA adapter I/O register base address
+ 0Bh WORD XGA coprocessor register base address
+ (paragraph--multiply by 10h to get physical address)
+ 0Dh WORD 1 Megabyte system video memory aperture
+ 0000h if not allocated
+ (Multiply by 100000h to get physical address)
+ 0Fh WORD 4 Megabyte system video memory aperture
+ 0000h if not allocated
+ (multiply by 100000h to get physical address)
+ 11h WORD video memory base address
+ (multiply by 100000h to get physical address)
+ 13h WORD composite ID of the attached display
+ 15h BYTE amount of video memory available, in multiples of 256K bytes
+ 16h DWORD alternate XGA coprocessor register base address. 0 = none.
+ 1Ah var DMQS Data for further XGA Instances (as above)
+Note: "Instances" refers to the capability of having up to 8 XGA
+ adapters in one computer.
+SeeAlso: #00061
+--------V-101F02-----------------------------
+INT 10 - VIDEO - XGA - GET SVGA DMQS DATA LENGTH
+ AX = 1F02h
+Return: AL = 1Fh if function supported
+ BX = length of SVGA DMQS data in bytes
+SeeAlso: AX=1F00h,AX=1F03h
+--------V-101F03-----------------------------
+INT 10 - VIDEO - XGA - GET SVGA DMQS DATA
+ AX = 1F03h
+ ES:DI -> buffer for SVGA DMQS data (see #00061)
+Return: AL = 1Fh if function supported
+ ES:DI buffer filled
+SeeAlso: AX=1F00h,AX=1F02h
+
+Format of SVGA DMQS data:
+Offset Size Description (Table 00061)
+ 00h WORD offset to DMQS data for next SVGA instance or 0000h
+ 02h BYTE reserved
+ 03h BYTE SVGA implementation functional level
+ 04h BYTE SVGA implementation resolution level
+ 05h WORD vendor ID
+ 07h WORD vendor-specific
+ 09h 7 BYTEs reserved
+ 10h BYTE SVGA linear address window size
+ 00h 64K
+ 01h 1M
+ 02h 2M
+ 03h 4M
+ 11h WORD SVGA linear address window location or 0000h if not allocated
+ (multiply by 10000h [shift left 16 bits] to get physical addr)
+ 13h WORD attached monitor's composite monitor ID
+ 15h BYTE available video RAM in multiples of 256K
+ 16h 11 BYTEs reserved
+SeeAlso: #00060
+--------V-103000CX0000-----------------------
+INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
+ AX = 3000h
+ CX = 0000h
+ DX = 0000h
+Return: CX:DX -> 3270PC configuration table (see #00062)
+ CX:DX = 0000h:0000h if 3270PC Control Program not active
+SeeAlso: AX=1F01h
+
+Format of 3270 PC configuration table:
+Offset Size Description (Table 00062)
+ 00h BYTE aspect ratio X
+ 01h BYTE aspect ratio Y
+ 02h BYTE monitor type (see #00063)
+ 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 (see #00064)
+ 07h BYTE function flags 2
+ bit 6: GPI graphics supported
+ 08h WORD segment address of Control Program Level table (see #00065)
+ 0Ah 10 BYTEs reserved
+
+(Table 00063)
+Values for 3270 PC 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
+
+Bitfields for 3270 PC function flags 1:
+Bit(s) Description (Table 00064)
+ 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
+
+Format of Control Program Level table:
+Offset Size Description (Table 00065)
+ 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")
+--------a-103800-----------------------------
+INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
+ AX = 3800h
+Return: ES:DI -> configuration info (see #00066)
+Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
+Notes: this call is also used as the installation check by verifying that the
+ returned ES:DI points at valid configuration info
+ Tinytalk v1.09f ignores AL and always returns the configuration info;
+ v1.10 adds several subfunctions selected with AL
+SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
+SeeAlso: INT 2F/AX=FB00h"AutoBraille"
+Index: installation check;Tinytalk Personal
+
+Format of Tinytalk Personal configuration info:
+Offset Size Description (Table 00066)
+ 00h 8 BYTEs signature "TTCONFIG"
+ 08h WORD size of configuration data, not counting signature, this WORD,
+ or the following byte
+ 0Ah BYTE ???
+ 0Bh ??? configuration data
+--------a-103801-----------------------------
+INT 10 - Tinytalk Personal v1.10 - ???
+ AX = 3801h
+ DL = ???
+Return: ???
+SeeAlso: AX=3800h,AX=3802h
+--------a-103802-----------------------------
+INT 10 - Tinytalk Personal v1.10 - ???
+ AX = 3802h
+ DL = ???
+Return: ???
+SeeAlso: AX=3800h,AX=3801h
+--------a-103803-----------------------------
+INT 10 - Tinytalk Personal v1.10 - GET ???
+ AX = 3803h
+Return: AL = ???
+SeeAlso: AX=3800h,AX=3804h,AX=3805h
+--------a-103804-----------------------------
+INT 10 - Tinytalk Personal v1.10 - GET ???
+ AX = 3804h
+Return: AX = ???
+SeeAlso: AX=3800h,AX=3803h,AX=3805h
+--------a-103805-----------------------------
+INT 10 - Tinytalk Personal v1.10 - GET ???
+ AX = 3805h
+Return: AL = ???
+SeeAlso: AX=3800h,AX=3803h,AX=3804h
+--------a-103806-----------------------------
+INT 10 - Tinytalk Personal v1.10 - ???
+ AX = 3806h
+ ES:DX -> ASCIZ ???
+Return: ???
+SeeAlso: AX=3800h
+--------a-1039-------------------------------
+INT 10 - Tinytalk Personal v1.10 - ???
+ AH = 39h
+Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
+Note: this function was a NOP in TTDEMO.EXE, but may be implemented in other
+ variants of Tinytalk
+--------V-1040-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "GMODE" - SET GRAPHICS MODE
+ AH = 40h
+Return: nothing
+Program: Hercules GRAFIX (or GRAPH X, as it is called in some documentation)
+ provides text output in graphics mode and some graphics primitives
+ on the Hercules Graphics Card
+Desc: switch the Hercules Graphics Card into graphics mode (720x348) without
+ clearing the screen; make Page 0 the default for both writing and
+ display, and set LEVEL (see AH=44h) to 01h
+SeeAlso: AH=00h,AH=41h,AH=42h
+Index: video modes;Hercules
+--------V-1041-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "TMODE" - SET TEXT MODE
+ AH = 41h
+Return: nothing
+Desc: switch the Hercules Graphics Card into text mode
+SeeAlso: AH=00h,AH=40h
+Index: video modes;Hercules
+--------V-1042-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "CLRSCR" - CLEAR CURRENT PAGE
+ AH = 42h
+Return: nothing
+SeeAlso: AH=45h
+--------V-1043-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "GPAGE" - SELECT DRAWING PAGE
+ AH = 43h
+ AL = page number (0,1)
+Return: nothing
+Desc: specify which of the two pages of video memory is to be used for
+ output
+SeeAlso: AH=05h,AH=44h,AH=45h
+--------V-1044-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "LEVEL" - SELECT DRAWING FUNCTION
+ AH = 44h
+ AL = drawing function
+ 00h clear pixels
+ 01h set pixels
+ 02h invert pixels
+Return: nothing
+Desc: specify how graphics output will change the display
+SeeAlso: AH=40h,AH=45h,AH=46h,AH=4Bh,AH=4Ch,AH=4Dh
+--------V-1045-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "DISP" - SELECT PAGE TO DISPLAY
+ AH = 45h
+ AL = page number (0,1)
+Return: nothing
+Desc: specify which of the two pages of video memory is visible on screen
+SeeAlso: AH=05h,AH=42h,AH=43h
+--------V-1046-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "PLOT" - DRAW ONE PIXEL
+ AH = 46h
+ DI = x (0-719)
+ BP = y (0-347)
+Return: nothing
+Notes: function 44h determines operation and function 43h which page to use
+ if the indicated coordinate is invalid, this function does nothing
+SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
+--------V-1047-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "GETPT" - FIND PIXEL VALUE
+ AH = 47h
+ DI = x (0-719)
+ 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
+--------V-1048-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "MOVE" - MOVE TO POINT
+ AH = 48h
+ DI = x (0-719)
+ BP = y (0-347)
+Return: nothing
+Desc: specify the location from which to start the next graphics output
+SeeAlso: AH=49h
+--------V-1049-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "DLINE" - DRAW TO POINT
+ AH = 49h
+ DI = x (0-719)
+ BP = y (0-347)
+Return: nothing
+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
+--------V-104A-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "BLKFIL" - BLOCK FILL
+ AH = 4Ah
+ DI = x coordinate of lower left corner
+ BP = y coordinate of lower left corner
+ BX = height in pixels
+ CX = width in pixels
+Return: nothing
+Desc: draw a solid rectangle of the specified size at the given location
+SeeAlso: AH=4Eh
+--------V-104B-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "TEXT" - DISPLAY CHARACTER
+ AH = 4Bh
+ AL = character to display
+ DI = x (0-719)
+ BP = y (0-347)
+Return: nothing
+Notes: unlike the other BIOS character functions character position is
+ specified in pixels rather than rows and columns
+ the character is writting using the drawing function last specified by
+ AH=44h
+SeeAlso: AH=09h,AH=0Ah,AH=44h
+--------P-104B-------------------------------
+INT 10 - FRIEZE - API
+ AH = 4Bh
+ CL = function
+ 00h (v6.x-) print window
+ AL = mode
+ 00h character
+ 01h normal
+ 02h sideways
+ 01h load window
+ ES:BX -> ASCIZ filename from which to read
+ 02h save window
+ ES:BX -> ASCIZ filename to which to write
+ 03h set print width
+ AL = width in 1/4 inches
+ 04h set print height
+ AL = height in 1/4 inches
+ 05h reserved
+ 06h set left margin
+ AL = printout margin in 1/4 inches
+ 07h set window size
+ ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
+ 08h reserved
+ 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 initialize
+ ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
+ 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 #00068)
+ 16h get parameters
+ ES:BX -> buffer for parameter table (see #00068)
+ 17h get printer resolution
+ ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
+ 18h (v8.0 only) reserved
+ 50h (v7.41) get ???
+ Return: AX = ???
+ 51h (v7.41) get ???
+ Return: ES = ??? (seen 2348h)
+ AX = ??? (seen 8432h)
+Return: AX = status (see #00067)
+SeeAlso: AH=0Fh/SI=F123h
+
+(Table 00067)
+Values for FRIEZE function status:
+ 00h successful
+ 01h user aborted printout with ESC
+ 02h reserved
+ 03h file read error
+ 04h file write error or printer error
+ 05h file not found
+ 06h invalid header (not an image or wrong screen mode) or can't create file
+ 07h file close error
+ 08h disk error
+ 09h (v7.0+) printer error
+ 0Ah invalid function
+ 0Bh (v7.0+) can't create file
+ 0Ch (v7.0+) wrong video mode
+
+Format of FRIEZE parameter table:
+Offset Size Description (Table 00068)
+ 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
+--------V-104C-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "ARC" - DRAW ARC
+ AH = 4Ch
+ AL = quadrant (1 = upper right, 2 = upper left, etc)
+ DI = x coordinate of center
+ BP = y coordinate of center
+ BX = radius
+Return: nothing
+SeeAlso: AH=49h,AH=4Dh
+--------V-104D-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "CIRC" - DRAW CIRCLE
+ AH = 4Dh
+ DI = x of center
+ BP = y of center
+ BX = radius
+Return: nothing
+SeeAlso: AH=49h,AH=4Ch
+--------V-104E-------------------------------
+INT 10 - VIDEO - Hercules GRAFIX - "FILL" - FILL AREA
+ AH = 4Eh
+ DI = x coordinate of an interior point
+ BP = y coordinate of an interior point
+Return: nothing
+Desc: fill a convex polygonal area bounded by a contiguous line of the
+ opposite color with the border color
+Note: the first fill makes the figure solid, the second erases it
+SeeAlso: AH=4Ah
+--------V-104E00-----------------------------
+INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
+ AX = 4E00h
+ ES:DI -> 256-byte buffer for XGA information (see #00069)
+Return: AL = 4Eh if function supported
+ AH = status
+ 00h successful
+ else error code
+Desc: determine whether VESA XGA extensions are present and the capabilities
+ supported by the display adapter
+SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
+Index: installation check;VESA XGA
+
+Format of XGA information buffer:
+Offset Size Description (Table 00069)
+ 00h 4 BYTEs signature ("VESA")
+ 04h WORD VESA version number
+ 06h DWORD pointer to ASCIZ OEM string
+ 0Ah DWORD environment flags (see #00070)
+ 0Eh WORD number of XGA adapters installed (other VESA XGA functions
+ require a handle indicating which adapter to use)
+ 10h 240 BYTEs reserved
+
+Bitfields for XGA environment flags:
+Bit(s) Description (Table 00070)
+ 0-1 system bus (00 = MCA, 01 = ISA, 10 = EISA)
+ 2 bus mastering available
+ 3-31 reserved
+--------V-104E01----------------------------
+INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
+ AX = 4E01h
+ DX = XGA handle (0 to number of XGAs-1)
+ ES:DI -> 256-byte buffer for subsystem information (see #00071)
+Return: AL = 4Eh if function supported
+ AH = status
+ 00h function successful
+ else error code
+SeeAlso: AX=4E00h,AX=4E02h
+
+Format of XGA subsystem information:
+Offset Size Description (Table 00071)
+ 00h DWORD pointer to null-terminated board OEM string
+ 04h DWORD capabilities (see #00072)
+ 08h DWORD pointer to 8KB XGA ROM (or NULL)
+ 0Ch DWORD pointer to the XGA memory mapped registers
+ 10h WORD base address of XGA I/O registers (21x0h)
+ 12h DWORD pointer to start of physical video memory
+ (A000h:0000h or B000h:0000h)
+ 16h DWORD physical address of 4MB aperture (or NULL if none)
+ 1Ah DWORD physical address of 1MB aperture (or NULL if none)
+ 1Eh DWORD physical address of 64KB aperture (or NULL if not enabled)
+ 22h DWORD physical address of OEM aperture (or NULL if none)
+ 26h WORD size of OEM aperture in 64KByte units
+ 28h DWORD pointer to list of video modes
+ The list is a series of WORDs terminated by FFFFh
+ 2Ch WORD number of 64KB blocks on the board
+ 2Eh DWORD XGA manufacturer ID
+ byte 0 POS data index 1
+ byte 1 is index 2
+ byte 2 is 21xAh index 75h
+ 32h 206 BYTEs reserved
+
+Bitfields for XGA capabilities:
+Bit(s) Description (Table 00072)
+ 0-1 board bus architecture: 0=MCA, 1=ISA, 3=EISA
+ 2-3 reserved
+ 4-6 DMA Channel assigned for acquiring bus mastership (only for ISA bus)
+ 7 DMA Channel Status (ISA only). enabled if set
+ 8-31 reserved
+--------V-104E02-----------------------------------
+INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
+ AX = 4E02h
+ CX = Video mode
+ DX = XGA handle
+ ES:DI -> 256 byte buffer for mode information (see #00073)
+Return: AL = 4Eh if function supported
+ AH = status
+ 00h function successful
+ else error code
+SeeAlso: AX=4E00h,AX=4E01h
+
+Format of XGA mode information:
+Offset Size Description (Table 00073)
+ 00h WORD attributes of the mode (see #00074)
+ 02h WORD bytes per logical scanline
+ 04h WORD horizontal resolution in pixels
+ 06h WORD vertical resolution in scanlines
+ 08h BYTE character Width in pixels
+ 09h BYTE character Height in pixels
+ 0Ah BYTE number of planes
+ 0Bh BYTE bits per pixels
+ 0Ch BYTE memory model (see #00075)
+ 0Dh BYTE number of Image Pages
+ 0Eh BYTE number of Red bits
+ 0Fh BYTE bit position of Red bit field
+ 10h BYTE number of Green bits
+ 11h BYTE bit position of Green bit field
+ 12h BYTE number of Blue bits
+ 13h BYTE bit position of Blue bit field
+ 14h BYTE number of Reserved bits
+ 15h BYTE bit position of Reserved bit field
+ 16h 235 BYTEs reserved
+
+Bitfields for XGA mode attributes:
+Bit(s) Description (Table 00074)
+ 0 set if mode is supported
+ 1 reserved
+ 2 output is supported by the BIOS
+ 3 reserved
+ 4 if set this is a graphics mode (VGA registers inactive, XGA active),
+ if clear this is a text mode (VGA registers active, XGA inactive)
+
+(Table 00075)
+Values for XGA video memory model:
+ 00h Text Mode
+ 01h CGA graphics
+ 02h Hercules graphics
+ 03h 4-planar graphics
+ 04h Packed Pixel
+ 05h Non-chain 4, 256 color
+ 06h Direct Color
+ 07h YUV-24
+--------V-104E03-----------------------------------
+INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
+ AX = 4E03h
+ BX = video mode
+ CX = other command flags
+ bit 0 If clear the feature connector is set to the default state
+ DX = XGA handle
+ ES:DI -> 256 byte buffer
+Return: AL = 4Eh if function supported
+ AH = status
+ 00h function successful
+ else error code
+SeeAlso: AH=00h,AX=4E04h,AX=4F02h
+--------V-104E04-----------------------------------
+INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
+ AX = 4E04h
+ DX = XGA handle
+Return: AL = 4Eh if function supported
+ AH = status
+ 00h function successful
+ BX??? = current mode
+ else error code
+SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
+--------V-104E05-----------------------------------
+INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
+ AX = 4E05h
+ BX = Feature Connector State (see #00076)
+ DX = XGA handle
+Return: AL = 4Eh if function supported
+ AH = status
+ 00h function successful
+ else error code
+SeeAlso: AX=4E00h,AX=4E06h
+
+Bitfields for XGA Feature Connector State:
+Bit(s) Description (Table 00076)
+ 0 Feature Connector is enabled
+ 1 Feature Connector is in Output Mode rather than Input Mode
+ 2-15 reserved (0)
+--------V-104E06-----------------------------------
+INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
+ AX = 4E06h
+ DX = XGA handle
+Return: AL = 4Eh if function supported
+ AH = status
+ 00h function successful
+ else error code
+ BX = Feature Connector State (see #00076)
+SeeAlso: AX=4E00h,AX=4E05h
+--------V-104F00-----------------------------
+INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
+ AX = 4F00h
+ ES:DI -> buffer for SuperVGA information (see #00077)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ ES:DI buffer filled
+ 01h failed
+ ---VBE v2.0---
+ 02h function not supported by current hardware configuration
+ 03h function invalid in current video mode
+Desc: determine whether VESA BIOS extensions are present and the capabilities
+ supported by the display adapter
+SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h"SOLLEX",AX=A00Ch
+Index: installation check;VESA SuperVGA
+
+Format of SuperVGA information:
+Offset Size Description (Table 00077)
+ 00h 4 BYTEs (ret) signature ("VESA")
+ (call) VESA 2.0 request signature ("VBE2"), required to receive
+ version 2.0 info
+ 04h WORD VESA version number (one-digit minor version -- 0102h = v1.2)
+ 06h DWORD pointer to OEM name
+ "761295520" for ATI
+ 0Ah DWORD capabilities flags (see #00078)
+ 0Eh DWORD pointer to list of supported VESA and OEM video modes
+ (list of words terminated with FFFFh)
+ 12h WORD total amount of video memory in 64K blocks
+---VBE v1.x ---
+ 14h 236 BYTEs reserved
+---VBE v2.0 ---
+ 14h WORD OEM software version (BCD, high byte = major, low byte = minor)
+ 16h DWORD pointer to vendor name
+ 1Ah DWORD pointer to product name
+ 1Eh DWORD pointer to product revision string
+ 22h WORD (if capabilities bit 3 set) VBE/AF version (BCD)
+ 0100h for v1.0P
+ 24h DWORD (if capabilities bit 3 set) pointer to list of supported
+ accelerated video modes (list of words terminated with FFFFh)
+ 28h 216 BYTEs reserved for VBE implementation
+100h 256 BYTEs OEM scratchpad (for OEM strings, etc.)
+Notes: the list of supported video modes is stored in the reserved portion of
+ the SuperVGA information record by some implementations, and it may
+ thus be necessary to either copy the mode list or use a different
+ buffer for all subsequent VESA calls
+ not all of the video modes in the list of mode numbers may be
+ supported, e.g. if they require more memory than currently installed
+ or are not supported by the attached monitor. Check any mode you
+ intend to use through AX=4F01h first.
+ the 1.1 VESA document specifies 242 reserved bytes at the end, so the
+ buffer should be 262 bytes to ensure that it is not overrun; for
+ v2.0, the buffer should be 512 bytes
+ the S3 specific video modes will most likely follow the FFFFh
+ terminator at the end of the standard modes. A search must then
+ be made to find them, FFFFh will also terminate this second list
+ in some cases, only a "stub" VBE may be present, supporting only
+ AX=4F00h; this case may be assumed if the list of supported video
+ modes is empty (consisting of a single word of FFFFh)
+
+Bitfields for VESA capabilities:
+Bit(s) Description (Table 00078)
+ 0 DAC can be switched into 8-bit mode
+ 1 non-VGA controller
+ 2 programmed DAC with blank bit (i.e. only during blanking interval)
+ 3 (VBE v3.0) controller supports hardware stereoscopic signalling
+ 3 controller supports VBE/AF v1.0P extensions
+ 4 (VBE v3.0) if bit 3 set:
+ =0 stereo signalling via external VESA stereo connector
+ =1 stereo signalling via VESA EVC connector
+ 4 (VBE/AF v1.0P) must call EnableDirectAccess to access framebuffer
+ 5 (VBE/AF v1.0P) controller supports hardware mouse cursor
+ 6 (VBE/AF v1.0P) controller supports hardware clipping
+ 7 (VBE/AF v1.0P) controller supports transparent BitBLT
+ 8-31 reserved (0)
+SeeAlso: #00077,AX=4F09h
+--------V-104F01-----------------------------
+INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
+ AX = 4F01h
+ CX = SuperVGA video mode (see #04082 for bitfields)
+ ES:DI -> 256-byte buffer for mode information (see #00079)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ ES:DI buffer filled
+ 01h failed
+Desc: determine the attributes of the specified video mode
+SeeAlso: AX=4F00h,AX=4F02h
+
+Bitfields for VESA/VBE video mode number:
+Bit(s) Description (Table 04082)
+ 15 preserve display memory on mode change
+ 14 (VBE v2.0+) use linear (flat) frame buffer
+ 13 (VBE/AF 1.0P) VBE/AF initializes accelerator hardware
+ 12 reserved for VBE/AF
+ 11 (VBE v3.0) user user-specified CRTC refresh rate values
+ 10-9 reserved for future expansion
+ 8-0 video mode number (0xxh are non-VESA modes, 1xxh are VESA-defined)
+
+Format of VESA SuperVGA mode information:
+Offset Size Description (Table 00079)
+ 00h WORD mode attributes (see #00080)
+ 02h BYTE window attributes, window A (see #00081)
+ 03h BYTE window attributes, window B (see #00081)
+ 04h WORD window granularity in KB
+ 06h WORD window size in KB
+ 08h WORD start segment of window A (0000h if not supported)
+ 0Ah WORD start segment of window B (0000h if not supported)
+ 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 (graphics) or characters (text)
+ 14h WORD height in pixels (graphics) or characters (text)
+ 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 (see #00082)
+ 1Ch BYTE size of bank in KB
+ 1Dh BYTE number of image pages (less one) that will fit in video RAM
+ 1Eh BYTE reserved (00h for VBE 1.0-2.0, 01h for VBE 3.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
+ bit 0: color ramp is programmable
+ bit 1: bytes in reserved field may be used by application
+---VBE v2.0+ ---
+ 28h DWORD physical address of linear video buffer
+ 2Ch DWORD pointer to start of offscreen memory
+ 30h WORD KB of offscreen memory
+---VBE v3.0 ---
+ 32h WORD bytes per scan line in linear modes
+ 34h BYTE number of images (less one) for banked video modes
+ 35h BYTE number of images (less one) for linear video modes
+ 36h BYTE linear modes: size of direct color red mask (in bits)
+ 37h BYTE linear modes: bit position of red mask LSB (e.g. shift count)
+ 38h BYTE linear modes: size of direct color green mask (in bits)
+ 39h BYTE linear modes: bit position of green mask LSB (e.g. shift count)
+ 3Ah BYTE linear modes: size of direct color blue mask (in bits)
+ 3Bh BYTE linear modes: bit position of blue mask LSB (e.g. shift count)
+ 3Ch BYTE linear modes: size of direct color reserved mask (in bits)
+ 3Dh BYTE linear modes: bit position of reserved mask LSB
+ 3Eh DWORD maximum pixel clock for graphics video mode, in Hz
+ 42h 190 BYTEs reserved (0)
+Note: while VBE 1.1 and higher will zero out all unused bytes of the buffer,
+ v1.0 did not, so applications that want to be backward compatible
+ should clear the buffer before calling
+
+Bitfields for VESA SuperVGA mode attributes:
+Bit(s) Description (Table 00080)
+ 0 mode supported by present hardware configuration
+ 1 optional information available (must be =1 for VBE v1.2+)
+ 2 BIOS output supported
+ 3 set if color, clear if monochrome
+ 4 set if graphics mode, clear if text mode
+---VBE v2.0+ ---
+ 5 mode is not VGA-compatible
+ 6 bank-switched mode not supported
+ 7 linear framebuffer mode supported
+ 8 double-scan mode available (e.g. 320x200 and 320x240)
+---VBE v3.0 ---
+ 9 interlaced mode available
+ 10 hardware supports triple buffering
+ 11 hardware supports stereoscopic display
+ 12 dual display start address support
+ 13-15 reserved
+---VBE/AF v1.0P---
+ 9 application must call EnableDirectAccess before calling bank-switching
+ functions
+SeeAlso: #00079
+
+Bitfields for VESA SuperVGA window attributes:
+Bit(s) Description (Table 00081)
+ 0 exists
+ 1 readable
+ 2 writable
+ 3-7 reserved
+SeeAlso: #00079
+
+(Table 00082)
+Values for VESA SuperVGA 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 (luminance-chrominance, also called YIQ)
+ 08h-0Fh reserved for VESA
+ 10h-FFh OEM memory models
+SeeAlso: #00079
+--------V-104F02-----------------------------
+INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
+ AX = 4F02h
+ BX = new video mode (see #04082,#00083,#00084)
+ ES:DI -> (VBE 3.0+) CRTC information block, bit mode bit 11 set
+ (see #04083)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+Notes: bit 13 may only be set if the video mode is present in the list of
+ accelerated video modes returned by AX=4F00h
+ if the DAC supports both 8 bits per primary color and 6 bits, it will
+ be reset to 6 bits after a mode set; use AX=4F08h to restore 8 bits
+SeeAlso: AX=4E03h,AX=4F00h,AX=4F01h,AX=4F03h,AX=4F08h
+
+(Table 00083)
+Values for VESA video mode:
+ 00h-FFh OEM video modes (see #00010 at AH=00h)
+ 100h 640x400x256
+ 101h 640x480x256
+ 102h 800x600x16
+ 103h 800x600x256
+ 104h 1024x768x16
+ 105h 1024x768x256
+ 106h 1280x1024x16
+ 107h 1280x1024x256
+ 108h 80x60 text
+ 109h 132x25 text
+ 10Ah 132x43 text
+ 10Bh 132x50 text
+ 10Ch 132x60 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 (1:5:5:5)
+ 11Ah 1280x1024x64K (5:6:5)
+ 11Bh 1280x1024x16M
+---VBE 2.0+ ---
+ 120h 1600x1200x256
+ 121h 1600x1200x32K
+ 122h 1600x1200x64K
+81FFh special full-memory access mode
+Notes: the special mode 81FFh preserves the contents of the video memory and
+ gives access to all of the memory; VESA recommends that the special
+ mode be a packed-pixel mode. For VBE 2.0+, it is required that the
+ VBE implement the mode, but not place it in the list of available
+ modes (mode information for this mode can be queried directly,
+ however).
+ as of VBE 2.0, VESA will no longer define video mode numbers
+SeeAlso: #00010,#00011,#00084,#00191
+Index: video modes;VESA
+
+(Table 00084)
+Values for S3 OEM video mode:
+ 201h 640x480x256
+ 202h 800x600x16
+ 203h 800x600x256
+ 204h 1024x768x16
+ 205h 1024x768x256
+ 206h 1280x960x16
+ 207h 1152x864x256 (Diamond Stealth 64)
+ 208h 1280x1024x16
+ 209h 1152x864x32K
+ 20Ah 1152x864x64K (Diamond Stealth 64)
+ 20Bh 1152x864x4G
+ 211h 640x480x64K (Diamond Stealth 24)
+ 211h 640x400x4G (Diamond Stealth64 Video / Stealth64 Graphics)
+ 212h 640x480x16M (Diamond Stealth 24)
+ 301h 640x480x32K
+Note: these modes are only available on video cards using S3's VESA driver
+SeeAlso: #00083,#00191,#00732 at INT 1A/AX=B102h
+Index: video modes;S3
+
+Format of VESA VBE CRTC Information Block:
+Offset Size Description (Table 04083)
+ 00h WORD total number of pixels horizontally
+ 02h WORD horizontal sync start (in pixels)
+ 04h WORD horizontal sync end (in pixels)
+ 06h WORD total number of scan lines
+ 08h WORD vertical sync start (in scan lines)
+ 0Ah WORD vertical sync end (in scan lines)
+ 0Ch BYTE flags (see #04084)
+ 0Dh DWORD pixel clock, in Hz
+ 11h WORD refresh rate, in 0.01 Hz units
+ this field MUST be set to pixel_clock / (HTotal * VTotal),
+ even though it may not actually be used by the VBE
+ implementation
+ 13h 40 BYTEs reserved
+
+Bitfields for VESA VBE CRTC Information Block flags:
+Bit(s) Description (Table 04084)
+ 0 enable double scanning
+ 1 enable interlacing
+ 2 horizontal sync polarity (0 positive, 1 negative)
+ 3 vertical sync polarity (0 positive, 1 negative)
+SeeAlso: #04083
+--------V-104F03-----------------------------
+INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
+ AX = 4F03h
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ BX = video mode (see #00083,#00084)
+ bit 13: VBE/AF v1.0P accelerated video mode
+ bit 14: linear frame buffer enabled (VBE v2.0+)
+ bit 15: don't clear video memory
+ 01h failed
+SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
+--------V-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 = states to save/restore (see #00085)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+SeeAlso: AH=1Ch,AX=5F90h,AX=5FA0h
+
+Bitfields for VESA SuperVGA states to save/restore:
+Bit(s) Description (Table 00085)
+ 0 video hardware state
+ 1 video BIOS data state
+ 2 video DAC state
+ 3 SuperVGA register state
+SeeAlso: #00048,#00186
+--------V-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
+ ES = selector for memory-mapped registers (VBE 2.0+, when called from
+ 32-bit protected mode)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+Note: when using an accelerated video mode under VBE/AF v1.0P, the
+ application must call EnableDirectAccess before switching banks if
+ bit 9 of the video mode attributes flag is set (see #00080)
+BUG: Phoenix S3 Trio64V+ v1.02-02 reportedly returns garbage in DX for
+ subfunction 01h
+SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
+--------V-104F06-----------------------------
+INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS)
+ AX = 4F06h
+ BL = subfunction
+ 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 pixel values are
+ multiplied by the character cell width/height
+SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h/BL=02h,AX=4F06h/BL=03h,AX=4F07h
+--------V-104F06BL02-------------------------
+INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES)
+ AX = 4F06h
+ BL = 02h
+ CX = desired scanline width in bytes
+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 pixel values are
+ multiplied by the character cell width/height
+SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=03h,AX=4F07h
+--------V-104F06BL03-------------------------
+INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH
+ AX = 4F06h
+ BL = 03h
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+ BX = maximum bytes per scan line
+ CX = maximum number of pixels per scan line
+Notes: this function is valid in text modes, provided that pixel values are
+ multiplied by the character cell width/height
+SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=02h,AX=4F07h
+--------V-104F07-----------------------------
+INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
+ AX = 4F07h
+ BL = subfunction
+ 00h,80h 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
+ BH = 00h (reserved)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+Notes: this function is valid in text modes, provided that values are
+ multiplied by the character cell width/height
+ subfunction 80h waits until vertical retrace before changing the
+ display start address (VBE v2.0+)
+SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
+--------V-104F07-----------------------------
+INT 10 - VESA SuperVGA BIOS v3.0+ - SCHEDULED DISPLAY START
+ AX = 4F07h
+ BL = subfunction
+ 02h,82h (VBE v3.0) schedule display start at next vertical retrace
+ ECX = display start address in bytes
+ 03h,83h schedule stereoscopic display start
+ ECX = left image start address (in bytes)
+ EDX = right image start address (in bytes)
+ 04h get scheduled display start status
+ Return: CX = start status
+ (00h no display flip, else display has flipped)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+SeeAlso: AX=4F07h"DISPLAY START",AX=4F07h"STEREOSCOPIC"
+--------V-104F07-----------------------------
+INT 10 - VESA SuperVGA BIOS v3.0+ - ENABLE/DISABLE STEREOSCOPIC MODE
+ AX = 4F07h
+ BL = subfunction
+ 05h enable stereoscopic mode
+ 06h disable stereoscopic mode
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+Note: when stereoscopic mode is enabled, the display start address will
+ automatically alternate between the left and right images on every
+ vertical retrace
+SeeAlso: AX=4F07h"DISPLAY START",AX=4F07h"SCHEDULED"
+--------V-104F08-----------------------------
+INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
+ AX = 4F08h
+ BL = subfunction
+ 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
+ 00h successful
+ BH = current number of bits per primary (06h = standard VGA)
+ 01h failed
+--------V-104F09-----------------------------
+INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
+ AX = 4F09h
+ BL = subfunction
+ 00h set (primary) palette
+ 01h get (primary) palette
+ 02h set secondary palette data
+ 03h get secondary palette data
+ 80h set palette during vertical retrace
+ CX = number of entries to change
+ DX = starting palette index
+ ES:DI -> palette buffer, array of DAC entries (see #00086)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+SeeAlso: AX=4F0Ah,AX=D000h"S3VBE"
+
+Format of VESA VBE palette entry:
+Offset Size Description (Table 00086)
+ 00h BYTE red
+ 01h BYTE green
+ 02h BYTE blue
+ 03h BYTE alpha or alignment byte
+--------V-104F0ABL00-------------------------
+INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE INTERFACE
+ AX = 4F0Ah
+ BL = 00h
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ ES:DI -> protected-mode table (see #00087)
+ CX = length of table in bytes, included protected-mode code
+ 01h failed
+SeeAlso: AX=4F00h,AX=4F05h,AX=4F07h,AX=4F09h
+
+Format of VESA VBE 2.0 protected-mode table:
+Offset Size Description (Table 00087)
+ 00h WORD offset (within table) of protected-mode code for Function 5
+ (Set Window)
+ 02h WORD offset of protected-mode code for Function 7 (Set Disp Start)
+ 04h WORD offset of protected-mode code for Function 9 (Set Primary
+ Palette)
+ 06h WORD offset (within table) of list of I/O ports and memory locations
+ for which I/O privilege may be required in protected mode
+ (0000h if no list) (see #04085)
+ 08h var code and optional port/memory list
+
+Format of VESA VBE 2.0+ protected-mode port/memory list:
+Offset Size Description (Table 04085)
+ 00h WORD I/O port number
+ ...
+ WORD FFFFh marking end of I/O port list
+ DWORD memory region base address
+ WORD memory region limit (one less than length)
+ WORD FFFFh marking end of memory region list
+Note: the memory region is optional; if not present, there will be a word
+ of FFFFh immediately following the FFFFh marking the end of the I/O
+ port list
+SeeAlso: #00087
+--------V-104F0A-----------------------------
+INT 10 O - VESA SuperVGA BIOS v2.0 beta - GET PROTECTED-MODE CODE
+ AX = 4F0Ah
+ BX = function to be copied (see #00088)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ CX = number of bytes to copy
+ ES:DI -> code for requested function
+ 01h failed
+SeeAlso: AX=4F09h,AX=D000h"S3VBE"
+
+(Table 00088)
+Values for VESA VBE protected-mode function identifiers:
+ 0001h set bank (see AX=4F05h)
+ 0002h set display start (see AX=4F07h)
+ 0003h set palette (see AX=4F09h)
+--------V-104F0BBL00-------------------------
+INT 10 - VESA SuperVGA BIOS v3.0 - GET NEAREST PIXEL CLOCK
+ AX = 4F0Bh
+ BL = 00h get closest pixel clock
+ ECX = requested clock frequency in Hz
+ DX = video mode number
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ ECX = nearest clock rate
+ 01h failed
+--------V-104F0B-----------------------------
+INT 10 - VESA SuperVGA BIOS - GET VBE/AF v1.0P DEVICE CONTEXT BUFFER
+ AX = 4F0Bh
+ BL = subfunction
+ 00h get length of device context buffer
+ 01h initialize device context buffer
+ ES:DI -> real-mode address of buffer (see #00089)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ CX = number of bytes required for buffer (if BL=00h on entry)
+ ES:DI buffer initialized (if BL=01h on entry)
+ 01h failed
+Note: this interface description is derived from the draft VBE/AF proposal
+ (version 1.0P, document revsion 0.12P, dated 13jan95)
+SeeAlso: AX=4F00h,AX=4F01h,AX=4F17h
+
+Format of VBE/AF v1.0P Device Context buffer:
+Offset Size Description (Table 00089)
+ 00h WORD maximum X coordinate in frame buffer (0 = left edge)
+ Note: application must never pass X coordinate greater than
+ this value to the SetClipRect function (values are
+ NOT range-checked!)
+ 02h WORD maximum Y coordinate in frame buffer (0 = top edge)
+ Note: application must never pass Y coordinate greater than
+ this value to the SetClipRect function
+ 04h DWORD -> "SetForeColor" to set foreground color/mix (see #00091)
+ 08h DWORD -> "SetBackColor" to set background color/mix (see #00092)
+ 0Ch DWORD -> "SetClipRect" set hardware clipping rectangle (see #00093)
+ 10h DWORD -> function "DrawScan" to draw a single scan line
+ 14h DWORD -> function "DrawScanList" to draw a list of scan lines
+ 18h DWORD -> function "DrawRect" to draw a solid rectangle
+ 1Ch DWORD -> function "DrawLine" to draw a solid line
+ 20h DWORD -> function "DrawPattScan" to draw a patterned scan line
+ 24h DWORD -> function "BitBlt" to perform screen-to-screen BitBLT
+ 28h DWORD -> "TransBitBlt" to perform transparent screen-to-screen BitBLT
+ 2Ch DWORD -> "MonoBitBlt" to monochrome expansion screen-to-screen BitBLT
+ 30h DWORD -> function "SetCursor" to download hardware cursor image
+ 34h DWORD -> function "SetCursorPos" to set hardware cursor position
+ 38h DWORD -> function "SetCursorColor" to set hardware cursor color
+ 3Ch DWORD -> function "ShowCursor" to show/hide hardware cursor
+ 40h DWORD -> function "WaitTillIdle" to wait until graphics engine idle
+ 44h DWORD -> "EnableDirectAccess" to enable direct framebuffer access
+ 48h DWORD -> "DisableDirectAccess" to disable direct framebuffer access
+ 4Ch DWORD -> "BankSwitchCB" bank-switching callback function
+ (set by application, may simply point at 32-bit VBE 2.0 bank
+ switching entry point)
+ 50h WORD "VidMemSel" selector for video memory (must be set by app)
+ 52h WORD "IOPortsOff" offset of I/O ports table in context buffer
+ 54h WORD "IOMemoryOff" offset of I/O memory table in context buffer
+ 56h WORD "IOMemSel1" selector for first I/O memory area specified by
+ I/O memory table (must be set by application)
+ 58h WORD "IOMemSel2" selector for second I/O memory area
+ 5Ah WORD "IOMemSel3" selector for third I/O memory area
+ 5Ch WORD "IOMemSel4" selector for fourth I/O memory area
+ 5Eh N BYTEs device-specific state buffer
+ N WORDs I/O port access table (list of ports, last entry is FFFFh)
+ N DWORDs I/O memory access table (list of physical-address/length pairs,
+ last entry is FFFFFFFFh)
+ N BYTEs 32-bit code for VBE/AF v1.0P function
+Notes: all function pointers are offsets into the 32-bit code within the
+ context buffer, and should be updated to point at the actual
+ functions after the application has copied the buffer from the
+ real-mode memory used for the interrupt call into its own flat-model
+ memory space
+ any functions which are not supported by the hardware have function
+ pointers which are set to 00000000h initially
+
+(Table 00090)
+Values for VBE/AF v1.0P color mixing mode:
+ 00h replace
+ 01h XOR with existing pixel
+ 02h OR with existing pixel
+ 03h AND with existing pixel
+SeeAlso: #00091,#00090
+
+(Table 00091)
+Call VBE/AF v1.0P function "SetForeColor" with:
+ ES:EDI -> device context buffer (see #00089)
+ EAX = new foreground color (format varies by video mode)
+ BL = new foreground mixing mode (see #00090)
+SeeAlso: #00089,#00092,#00107
+
+(Table 00092)
+Call VBE/AF v1.0P function "SetbackColor" with:
+ ES:EDI -> device context buffer (see #00089)
+ EAX = new background color (format varies by video mode)
+ BL = new background mixing mode (see #00090)
+SeeAlso: #00089,#00091,#00093
+
+(Table 00093)
+Call VBE/AF v1.0P function "SetClipRect" with:
+ ES:EDI -> device context buffer (see #00089)
+ EAX = left clipping coordinate
+ EBX = top clipping coordinate
+ ECX = right clipping coordinate
+ EDX = bottom clipping coordinate
+SeeAlso: #00089,#00092,#00094,#00107
+
+(Table 00094)
+Call VBE/AF v1.0P function "DrawScan" with:
+ ES:EDI -> device context buffer (see #00089)
+ EAX = X1 coordinate
+ EBX = Y coordinate
+ ECX = X2 coordinate
+Desc: draw a solid horizontal line from (X1,Y) to (X2,Y) in the currently-
+ active foreground color and mix, omitting the pixel at the largest
+ X coordinate
+SeeAlso: #00089,#00093,#00095,#00098,#00107
+
+(Table 00095)
+Call VBE/AF v1.0P function "DrawScanList" with:
+ ES:EDI -> device context buffer (see #00089)
+ EAX = Y coordinate of first line
+ EBX = length of scan list
+ DS:ESI -> scanline list X coordinates (2N WORDs)
+Desc: draw multiple solid horizontal lines at successive Y coordinates,
+ using the currently-active foreground color and mix, omitting the
+ pixel at the largest X coordinate for each line
+Note: the scanline list consists of pairs of X coordinates; because the
+ last pixel is omitted, a scanline will be skipped if X1==X2
+SeeAlso: #00089,#00094,#00096,#00107
+
+(Table 00096)
+Call VBE/AF v1.0P function "DrawRect" with:
+ ES:EDI -> device context buffer (see #00089)
+ EAX = left coordinate
+ EBX = top coordinate
+ ECX = right coordinate
+ EDX = bottom coordinate
+Desc: draw a solid rectangle in the currently-active foreground color and
+ mix, omitting the rightmost X coordinate and bottom-most scan line
+Note: results are undefined if EAX>ECX or EBX>EDX; nothing will be drawn if
+ EAX=ECX or EBX=EDX
+SeeAlso: #00089,#00094,#00095,#00097
+
+(Table 00097)
+Call VBE/AF v1.0P function "DrawLine" with:
+ ES:EDI -> device context buffer (see #00089)
+ EAX = ??? (specified this way in the draft documentation!)
+ EBX = ???
+ ECX = ???
+ EDX = ???
+ ESI = ???
+Desc: draw a solid line in the currently-active foreground color and mix,
+ given the Bresenham parameters
+SeeAlso: #00089,#00094,#00096,#00098
+
+(Table 00098)
+Call VBE/AF v1.0P function "DrawPattScan" with:
+ ES:EDI -> device context buffer (see #00089)
+ EAX = X1 coordinate
+ EBX = Y coordinate
+ ECX = X2 coordinate
+ DL = 8-bit stipple pattern
+Desc: draw a patterned horizontal line from (X1,Y) to (X2,Y) in the
+ currently-active foreground color and mix, omitting the pixel at
+ the largest X coordinate
+Note: for each pixel in the line, if DL bit (X mod 8) is set, the pixel is
+ drawn, and left untouched if the bit is clear
+SeeAlso: #00089,#00096,#00097,#00094,#00099,#00107
+
+(Table 00099)
+Call VBE/AF v1.0P function "BitBlt" with:
+ ES:EDI -> device context buffer (see #00089)
+ DS:ESI -> BitBlt parameter block (see #00100)
+ BL = mix operation
+ 00h replace
+ 01h XOR
+ 02h OR
+ 03h AND
+SeeAlso: #00089,#00094,#00098,#00101,#00107
+
+Format of VBE/AF BitBlt parameter block:
+Offset Size Description (Table 00100)
+ 00h WORD left coordinate of source rectangle
+ 02h WORD top coordinate of source rectangle
+ 04h WORD right coordinate of source rectangle
+ 06h WORD bottom coordinate of source rectangle
+ 08h WORD left coordinate of destination rectangle
+ 0Ah WORD top coordinate of destination rectangle
+ 0Ch BYTE horizontal direction: 00h = decrement X, 01h = increment X
+ 0Dh BYTE vertical direction: 00h = decrement Y, 01h = increment Y
+Notes: the rightmost pixel(s) and bottom-most scan line are not copied
+ the horizontal/vertical direction flags are used to ensure correct
+ copies when the source and destination rectangles overlap
+SeeAlso: #00099
+
+(Table 00101)
+Call VBE/AF v1.0P function "TransBitBlt" with:
+ ES:EDI -> device context buffer (see #00089)
+ DS:ESI -> BitBlt parameter block (see #00100)
+ BL = mix operation
+ 00h replace
+ 01h XOR
+ 02h OR
+ 03h AND
+ ECX = transparent color
+Desc: copy a rectangular area from one location to another, treating pixels
+ with the specified color as transparent (leaving the destination
+ unchanged)
+SeeAlso: #00089,#00099,#00102,#00107
+
+(Table 00102)
+Call VBE/AF v1.0P function "MonoBitBlt" with:
+ ES:EDI -> device context buffer (see #00089)
+ DS:ESI -> BitBlt parameter block (see #00100)
+ BL = mix operation
+ 00h replace
+ 01h XOR
+ 02h OR
+ 03h AND
+ BH = bit-plane from which to read
+Desc: copy a rectangular area from one location to another, expanding a
+ single bit of each source pixel
+SeeAlso: #00089,#00099,#00101
+
+(Table 00103)
+Call VBE/AF v1.0P function "SetCursor" with:
+ ES:EDI -> device context buffer (see #00089)
+ DS -> application's data segment
+ ESI -> 32x32 cursor data, in Windows 3.1 cursor-file format
+ (32 DWORDs of XOR mask followed by 32 DWORDs of AND mask)
+SeeAlso: #00089,#00094,#00104,#00105
+
+(Table 00104)
+Call VBE/AF v1.0P function "SetCursorPos" with:
+ ES:EDI -> device context buffer (see #00089)
+ EAX = cursor X coordinate
+ EBX = cursor Y coordinate
+ CL = cursor's X hotspot
+ CH = cursor's Y hotspot
+SeeAlso: #00089,#00103,#00105
+
+(Table 00105)
+Call VBE/AF v1.0P function "SetCursorColor" with:
+ ES:EDI -> device context buffer (see #00089)
+ AL = 8-bit color index, or color's Red value
+ AH = color's Green value (16-bpp, 24-bpp, 32-bpp modes)
+ BL = color's Blue value (16-bpp, 24-bpp, 32-bpp modes)
+SeeAlso: #00089,#00103,#00104,#00106
+
+(Table 00106)
+Call VBE/AF v1.0P function "ShowCursor" with:
+ ES:EDI -> device context buffer (see #00089)
+ AL = new visibility (00h hide cursor, 01h show cursor)
+SeeAlso: #00089,#00103,#00104,#00105
+
+(Table 00107)
+Call VBE/AF v1.0P function "WaitTillIdle" with:
+ ES:EDI -> device context buffer (see #00089)
+Desc: pause until the hardware accelerator has completed all pending
+ operations
+SeeAlso: #00089,#00108,#00109
+
+(Table 00108)
+Call VBE/AF v1.0P function "EnableDirectAccess" with:
+ ES:EDI -> device context buffer (see #00089)
+SeeAlso: #00089,#00109,#00107,AX=4F05h,#00078,#00080
+
+(Table 00109)
+Call VBE/AF v1.0P function "DisableDirectAccess" with:
+ ES:EDI -> device context buffer (see #00089)
+SeeAlso: #00089,#00108
+--------V-104F0C-----------------------------
+INT 10 - VESA SuperVGA BIOS - RESERVED FOR FUTURE SVGA FUNCTIONS
+ AX = 4F0Ch-4F0Fh
+SeeAlso: AX=4F00h
+--------V-104F0B-----------------------------
+INT 10 - Diamond Viper V330 - ???
+ AX = 4F0Bh
+ ECX = ???
+ ???
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ ECX = ???
+ ???
+ 01h failed
+Note: in BIOS v1.62, ECX is in multiples of 10000 (decimal) for both input
+ and output, and this function never fails
+--------p-104F10BL00-------------------------
+INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
+ AX = 4F10h
+ BL = 00h
+ ES:DI = 0000h:0000h (reserved for future use as pointer to info block)
+Return: AL = 4Fh if function supported (installed)
+ AH = call status
+ 00h successful
+ else failed
+ ---if successful---
+ BL = VBE/PM version (bits 7-4: major, bits 3-0: minor)
+ BH = supported states (see #00110)
+ ES:DI unchanged
+Index: installation check;VESA VBE/Power Management|VESA DPMS
+SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h
+
+Bitfields for VESA VBE/PM supported power states:
+Bit(s) Description (Table 00110)
+ 0 standby
+ 1 suspend
+ 2 off
+ 3 reduced on
+--------p-104F10BL01-------------------------
+INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
+ AX = 4F10h
+ BL = 01h
+ BH = new state (see #00111)
+Return: AL = 4Fh if function supported
+ AH = call status
+ 00h successful
+ else failed
+SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch
+
+(Table 00111)
+Values for VESA VBE/PM power state:
+ 00h On
+ 01h standby
+ 02h suspend
+ 04h Off
+ 08h reduced On (for flat screens)
+--------p-104F10BL02-------------------------
+INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
+ AX = 4F10h
+ BL = 02h
+Return: AL = 4Fh if function supported
+ AH = call status
+ 00h successful
+ BH = current power state (see #00111)
+ else failed
+SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h,AX=A00Dh
+--------V-104F11-----------------------------
+INT 10 - VESA VBE/FP (Flat Panel Interface) - API
+ AX = 4F11h
+ BL = function
+ 00h installation check / get capabilities
+ other registers vary by function
+Return: varies by function
+--------V-104F12-----------------------------
+INT 10 - VESA VBE/CI (Cursor Interface) - API
+ AX = 4F12h
+ BL = function
+ other registers vary by function
+Return: varies by function
+SeeAlso: AX=4F4Dh
+--------s-104F13BX0000-----------------------
+INT 10 - VESA VBE/AI (Audio Interface) - INSTALLATION CHECK
+ AX = 4F13h
+ BX = 0000h
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ BX = version (0010h for 1.00 -- note nonstandard value!)
+ 01h failed
+SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005h
+--------s-104F13BX0001-----------------------
+INT 10 - VESA VBE/AI (Audio Interface) - LOCATE DEVICE
+ AX = 4F13h
+ BX = 0001h
+ CX = 0000h ???
+ DX = type of device
+ 0001h Wave device
+ 0002h MIDI device
+ 0003h Volume device
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2]
+ 01h failed
+SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h
+--------s-104F13BX0002-----------------------
+INT 10 - VESA VBE/AI (Audio Interface) - QUERY DEVICE
+ AX = 4F13h
+ BX = 0002h
+ CX = handle
+ DX = query
+ 0001h return length of GeneralDeviceClass
+ 0002h return copy of GeneralDeviceClass (see #00112)
+ 0003h return length of Volume Info Structure
+ 0004h return copy of Volume Info Structure (see #00122)
+ 0005h return length of Volume Services Structure
+ 0006h return copy of Volume Services Structure (see #00124)
+ 0007h-000Fh reserved
+ 0010h-FFFFh device-specific
+ SI:DI -> buffer (functions 0002h,0004h,0006h)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ SI:DI = length (functions 1,3,5)
+ SI:DI buffer filled (functions 2,4,6)
+ 01h failed
+Note: functions 0003h to 0006h are only supported for the Volume device
+
+Format of GeneralDeviceClass structure:
+Offset Size Description (Table 00112)
+ 00h 4 BYTEs name of the structure ("GENI")
+ 04h DWORD structure length
+ 08h WORD type of device (1=Wave, 2=MIDI)
+ 0Ah WORD version of VESA driver support (0100h for 1.00)
+ 10h var for CX=handle for Wave device:
+ Wave Info structure (see #00113)
+ some bytes ???
+ for CX=handle for MIDI device:
+ MIDI Info Structure (see #00118)
+ first 8 bytes of MIDI Service Structure ???
+SeeAlso: #00122,#00124
+
+Format of WAVE Info Structure:
+Offset Size Description (Table 00113)
+ 00h 4 BYTEs name of the structure ("WAVI")
+ 04h DWORD structure length [0000007Eh]
+ 08h DWORD driver software version [00000003h]
+ 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
+ 2Ch 32 BYTEs vendor product name
+ 4Ch 32 BYTEs vendor chip/hardware description
+ 6Ch BYTE installed board number
+ 6Dh 3 BYTEs unused data
+ 70h DWORD feature bits (see #00114)
+ 74h WORD user determined preference field
+ 76h WORD memory required for driver use [0200h]
+ 78h WORD number of timer tick callbacks per second [0000h]
+ 7Ah WORD channels: 1 = mono, 2 = stereo
+ stereo is assumed to be interleaved data
+ 7Ch WORD bitfield of max sample sizes (see #00115)
+SeeAlso: #00118
+
+Bitfields for Wave feature bits:
+Bit(s) Description (Table 00114)
+ 0 8000hz Mono Playback
+ 1 8000hz Mono Record
+ 2 8000hz Stereo Record
+ 3 8000hz Stereo Playback
+ 4 8000hz Full Duplex Play/Record
+ 5 11025hz Mono Playback
+ 6 11025hz Mono Record
+ 7 11025hz Stereo Record
+ 8 11025hz Stereo Playback
+ 9 11025hz Full Duplex Play/Record
+ 10 22050hz Mono Playback
+ 11 22050hz Mono Record
+ 12 22050hz Stereo Record
+ 13 22050hz Stereo Playback
+ 14 22050hz Full Duplex Play/Record
+ 15 44100hz Mono Playback
+ 16 44100hz Mono Record
+ 17 44100hz Stereo Record
+ 18 44100hz Stereo Playback
+ 19 44100hz Full Duplex Play/Record
+ 20-26 reserved (0)
+ 27 driver must pre-handle the data
+ 28 Variable Sample mono playback
+ 29 Variable Sample stereo playback
+ 30 Variable Sample mono record
+ 31 Variable Sample stereo record
+
+(Table 00115)
+Values for Sample data size:
+ 01h 8bit play
+ 02h 16bit play
+ 10h 8bit record
+ 20h 16bit record
+
+Format of WAVE Audio Services structure:
+Offset Size Description (Table 00116)
+ 00h 4 BYTEs name of the structure
+ 04h DWORD structure length
+ 08h 16 BYTEs for future expansion
+---entry points (details???)---
+ 18h DWORD DeviceCheck
+ 11h compression (see also #00117)
+ 12h driver state
+ 13h get current pos
+ 14h sample rate
+ 15h set preference
+ 16h get DMA,IRQ
+ 17h get IO address
+ 18h get mem address
+ 19h get mem free
+ 1Ah full duplex
+ 1Bh get block size
+ 1Ch get PCM format
+ 1Dh enable PCM format
+ 80h-.. vendors can add DevChks above 0x80
+ 1Ch DWORD PCMInfo
+ 20h DWORD PlayBlock
+ 24h DWORD PlayCont
+ 28h DWORD RecordBlock
+ 2Ch DWORD RecordCont
+ 30h DWORD PauseIO
+ 34h DWORD ResumeIO
+ 38h DWORD StopIO
+ 3Ch DWORD WavePrepare
+ 40h DWORD WaveRegister
+ 44h DWORD GetLastError
+ 01h unsupported feature/function
+ 02h bad sample rate
+ 03h bad block length
+ 04h bad block address
+ 05h app. missed an IRQ
+ 06h don't understand the PCM size/format
+ 80h-.. vendors specific errors
+ 48h DWORD TimerTick
+ 4Ch DWORD ApplPSyncCB: CallBack: play filled in by the app
+ 50h DWORD ApplRSyncCB: CallBack: rec filled in by the app
+SeeAlso: #00120,#00124
+
+(Table 00117)
+Values for type of compression:
+ 01h IMA play
+ 02h ALAW play
+ 03h ULAW play
+ 11h IMA record
+ 12h ALAW record
+ 13h ULAW record
+
+Format of MIDI Info Structure:
+Offset Size Description (Table 00118)
+ 00h 4 BYTEs name of the structure ("MIDI")
+ 04h DWORD structure length
+ 08h DWORD driver software version [00000003h]
+ 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
+ 2Ch 32 BYTEs vendor product name
+ 4Ch 32 BYTEs vendor chip/hardware description
+ 6Ch BYTE installed board number
+ 6Dh 3 BYTEs unused data
+ 70h 14 BYTEs the patch library file name [OPL2.BNK 00..]
+ 7Eh DWORD feature bits (see #00119)
+ 80h WORD user determined preference field
+ 82h WORD memory required for driver use
+ 84h WORD # of timer tick callbacks per second
+ 86h WORD max # of tones (voices, partials)
+SeeAlso: #00112,#00120,#00122
+
+Bitfields for MIDI feature bits:
+Bit(s) Description (Table 00119)
+ 0-3 reserved for GM extensions
+ 4 Transmitter/Receiver only
+ 5 Patches preloaded
+ 6 MIDI receive has time stamp
+ 8 MIDI interrupt driven input supported
+ 9 MIDI polled input supported
+ 10 MIDI remote patches supported
+
+Format of MIDI Service structure:
+Offset Size Description (Table 00120)
+ 00h 4 BYTEs name of the structure ("MIDS")
+ 04h DWORD structure length
+ 08h 16 WORDs patches loaded table bit field
+ 28h 16 BYTEs for future expansion
+---entry points (details???)---
+ 38h DWORD device check
+ 11h return available tones
+ 12h return TRUE/FALSE if patch is understood
+ 13h set preference
+ 14h allow/disallow voice stealing
+ 15h get FIFO sizes
+ 16h get DMA,IRQ
+ 17h get IO address
+ 18h get mem address
+ 19h get mem free
+ 80h-.. vendors can add DevChks above 0x80
+ 3Ch DWORD global reset
+ 40h DWORD MIDI msg
+ 44h DWORD poll MIDI
+ 48h DWORD preload patch
+ 4Ch DWORD unload patch
+ 50h DWORD timer tick
+ 54h DWORD get last error
+ 01h unsupported feature/function
+ 02h unknown patch type (see #00121)
+ 03h all tones are used
+ 04h messages are out of sync
+ 05h an incoming patch was incomplete
+ 06h an incoming patch couldn't be stored
+ 07h had to drop an incoming byte
+ 08h driver is failing a patch download
+ 80h-.. vendors specific errors
+ 58h DWORD Patch Block free callback
+ 5Ch DWORD MIDI byte avail. callback
+SeeAlso: #00116,#00124
+
+(Table 00121)
+Values for MIDI Registered Patch Types:
+ 10h OPL2
+ 11h OPL3
+
+Format of Volume Info Structure:
+Offset Size Description (Table 00122)
+ 00h 4 BYTEs name of the structure ("VOLI")
+ 04h DWORD structure length (00000092h)
+ 08h DWORD driver software version [00000001h]
+ 0Ch 32 BYTEs vendor name, etc. (ASCIZ string)
+ 2Ch 32 BYTEs vendor product name
+ 4Ch 32 BYTEs vendor chip/hardware description
+ 6Ch BYTE installed board number (0 for 1st/only board)
+ 6Dh 3 BYTEs unused data (0)
+ 70h 24 BYTEs text name of the mixer channel
+ 88h DWORD features bits (see #00123)
+ 8Ch WORD minimum volume setting
+ 8Eh WORD maximum volume setting
+ 90h WORD attenuation/gain crossover
+SeeAlso: #00112,#00124
+
+Bitfields for Volume feature bits:
+Bit(s) Description (Table 00123)
+ 0 Stereo Volume control available
+ 2 Low Pass Filter is available
+ 3 High Pass Filter is available
+ 4 Parametric Tone Control is available
+ 5 selectable output paths
+ 8 Azimuth Field positioning supported
+ 9 Phi Field positioning supported
+ 10-30 unused???
+ 31 Master Volume device
+
+Format of Volume Services Structure:
+Offset Size Description (Table 00124)
+ 00h 4 BYTEs name of the structure ("VOLS")
+ 04h DWORD structure length (00000038h)
+ 08h 16 BYTEs 16 bytes for future expansion (0)
+---entry points (details???)---
+ 18h DWORD device check
+ 0011h filter range
+ 0012h filter setting
+ 0013h filter current
+ 0014h tone range
+ 0015h tone setting
+ 0016h tone current
+ 0017h path
+ 0018h get IO address
+ 0080h-.. vendors can add DevChks above 0x80
+ 1Ch DWORD set vol to an absolute setting
+ 01h User master volume setting
+ 02h application master volume setting
+ 20h DWORD set 3D volume
+ 24h DWORD tone control
+ 28h DWORD filter control
+ 2Ch DWORD output path
+ 30h DWORD reset channel
+ 34h DWORD get last error
+ 01h unsupported feature/function
+ 02h out of range parameter value
+ 80h+ vendor-specific errors
+SeeAlso: #00116,#00120
+--------s-104F13BX0003-----------------------
+INT 10 - VESA VBE/AI (Audio Interface) - OPEN DEVICE
+ AX = 4F13h
+ BX = 0003h
+ CX = handle
+ DX = API set (16/32-bit)
+ SI = segment ???
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ SI:CX -> memory ???
+ 01h failed
+SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004h
+--------s-104F13BX0004-----------------------
+INT 10 - VESA VBE/AI (Audio Interface) - CLOSE DEVICE
+ AX = 4F13h
+ BX = 0004h
+ CX = handle
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005h
+--------s-104F13BX0005-----------------------
+INT 10 - VESA VBE/AI (Audio Interface) - UNINSTALL DRIVER
+ AX = 4F13h
+ BX = 0005h
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006h
+--------s-104F13BX0006-----------------------
+INT 10 - VESA VBE/AI (Audio Interface) - DRIVER CHAIN/UNCHAIN
+ AX = 4F13h
+ BX = 0006h
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005h
+----------104F14-----------------------------
+INT 10 - VESA OEM Extensions - API
+ AX = 4F14h
+ BL = function
+ 00h installation check / get capabilities
+ other registers vary by function
+Return: varies by function
+Note: this function is provided for OEMs to implement system-specific
+ functionality in a VESA-compatible manner
+----------104F14-----------------------------
+INT 10 - VESA OEM Extensions - Matrox Millenium (BIOS v2.1)
+ AX = 4F14h
+ BL = function
+ 00h installation check / get capabilities
+ ES:DI -> 256-byte buffer for Matrox-specific information
+ (see #00125)
+ Return: ES:DI buffer filled
+ 01h read/write MGA indexed data register
+ BH = direction (00h = write, else read)
+ CL = register number (80h for most-recently used register)
+ CH = new value, if writing
+ Return: CH = current value, if reading
+ 02h read/write register in MGA control space
+ BH = direction and size
+ bit 4: read register instead of writing
+ bits 1-0: data size (00 = BYTE, 01 = WORD, 10 = DWORD)
+ SI = register address
+ CL/CX/ECX = new value if writing
+ Return: CL/CX/ECX = current value if reading
+ 03h read PINS byte
+ SI = offset of byte within PINS data (see #00126)
+ Return: CL = value of specified PINS byte
+ 04h ??? (related to PLL programming)
+ DX = ???
+ Return: CL,EDX destroyed
+ 05h read BIOS byte
+ SI = offset of byte relative to start of BIOS image
+ Return: CL = specified byte
+ else
+ Return: AX = FFFFh
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+Note: most of this info is from http:\\grafi.ii.pw.edu.pl\gbm\matrox
+SeeAlso: MEM C000h:7FFCh"Matrox"
+
+Format of Matrox-specific VESA extensions information:
+Offset Size Description (Table 00125)
+ 00h 7 BYTEs signature "VBE/MGA"
+ 07h 10 BYTEs ??? (01h 01h 00h 00h 00h 00h 00h 00h 00h 07h)
+ 11h WORD BIOS version (high byte = major, low byte = one-digit minor)
+ 13h DWORD -> manufacturer name (ASCIZ "Matrox")
+ 17h DWORD -> ASCIZ card name
+ 1Bh DWORD -> ??? ASCIZ string (empty string on card examined)
+ 1Fh DWORD -> ASCIZ vendor name
+ 23h DWORD -> ASCIZ BIOS file base name
+ 27h DWORD -> PINS
+ 2Bh WORD video memory size in 64K units
+ 2Dh DWORD linear address of linear frame buffer
+ 31h DWORD linear address of MGA control aperture
+ 35h WORD PCI bus/device for card???
+ 37h 201 BYTEs unused??? (cleared to 00h)
+
+Format of Matrox PINS data (version 3.0):
+Offset Size Description (Table 00126)
+ 00h 2 BYTEs signature ".A" (2Eh 41h)
+ 02h BYTE structure length (40h for v3.0)
+ 03h BYTE ???
+ 04h WORD PINS version (high byte = major, low byte = minor)
+ 06h WORD date last programmed
+ 08h WORD number of times programmed
+ 0Ah WORD flags
+ 0Ch 8 BYTEs ASCII serial number, three letters + five digits
+ 14h 8 BYTEs ???
+ 1Ch 4 BYTEs ASCII card version
+ 20h DWORD PCB revision
+ 24h BYTE maximum RAMDAC frequency in MHz (less 100)
+ 25h BYTE maximum RAMDAC frequency???
+ 26h BYTE maximum RAMDAc frequency???
+ 27h BYTE ???
+ 28h BYTE ??? timing data?
+ 29h BYTE ???
+ 2Ah BYTE ???
+ 2Bh BYTE ???
+ 2Ch BYTE ???
+ 2Dh BYTE ???
+ 2Eh BYTE ???
+ 2Fh BYTE ???
+ 30h 4 BYTEs ???
+ 34h BYTE ???
+ 35h BYTE ???
+ 36h BYTE ???
+ 37h BYTE memory size in 64K units
+ 38h BYTE ???
+ 39h BYTE ???
+ 3Ah BYTE ???
+ 3Bh BYTE ???
+ 3Ch BYTE ???
+ 3Dh BYTE ???
+ 3Eh BYTE ???
+ 3Fh BYTE checksum (to make sum of all bytes MOD 256 == 00h)
+--------V-104F15BL00-------------------------
+INT 10 - VESA VBE/DC (Display Data Channel) - INSTALLATION CHECK / CAPABILITIES
+ AX = 4F15h
+ BL = 00h
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ BX = ???
+ 01h failed
+ ???
+SeeAlso: AX=4F15h/BL=01h,AX=4F15h/BL=02h
+--------V-104F15BL01-------------------------
+INT 10 - VESA VBE/DC (Display Data Channel) - READ EDID
+ AX = 4F15h
+ BL = 01h
+ CX = 0000h
+ DX = 0000h
+ ES:DI -> 128-byte buffer for EDID record (see #00127)
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ ES:DI buffer filled
+ 01h failed (e.g. non-DDC monitor)
+SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=02h,I2C A0h"DDC"
+
+Format of VESA EDID record:
+Offset Size Description (Table 00127)
+ 00h 8 BYTEs padding (all FFh, or 00h FFh..FFh 00h)
+ 08h WORD big-endian manufacturer ID (see #00136)
+ bits 14-10: first letter (01h='A', 02h='B', etc.)
+ bits 9-5: second letter
+ bits 4-0: third letter
+ 0Ah WORD EDID ID code -- identifies monitor model
+ 0Ch DWORD serial number or FFFFFFFFh
+ for "MAG", subtract 7000000 to get actual serial number
+ for "OQI", subtract 456150000
+ for "PHL", subtract ???
+ for "VSC", subtract 640000000
+ 10h BYTE week number of manufacture
+ 11h BYTE manufacture year - 1990
+ 12h BYTE EDID version
+ 13h BYTE EDID revision
+ 14h BYTE video input type (see #00129)
+ 15h BYTE maximum horizontal size in cm
+ 16h BYTE maximum vertical size in cm
+ 17h BYTE gamma factor (gamma = 1.0 + factor/100, so max = 3.55)
+ 18h BYTE DPMS flags (see #00128)
+ 19h BYTE chroma information: green X'/Y' and red X'/Y'
+ 1Ah BYTE chroma information: white X'/Y' and blue X'/Y'
+ 1Bh BYTE chroma information: red Y
+ 1Ch BYTE chroma information: red X
+ 1Dh BYTE chroma information: green Y
+ 1Eh BYTE chroma information: green X
+ 1Fh BYTE chroma information: blue Y
+ 20h BYTE chroma information: blue X
+ 21h BYTE chroma information: white Y
+ 22h BYTE chroma information: white X
+ 23h BYTE established timings 1 (see #00130)
+ 24h BYTE established timings 2 (see #00131)
+ 25h BYTE manufacturer's reserved timing or 00h for none
+ bit 7: 1152x870 @ 75 Hz (Mac II, Apple)
+ 26h 8 WORDs standard timing identification
+ resolution (low byte) and vertical frequency (high byte) for
+ each of eight modes (see #00132)
+ X resolution = (lowbyte + 31) * 8
+ 36h 18 BYTEs detailed timing description #1 (see #00133)
+ (v1.1) alternately, text identification (see #00135)
+ 48h 18 BYTEs detailed timing description #2
+ (v1.1) alternately, text identification (see #00135)
+ 5Ah 18 BYTEs detailed timing description #3
+ (v1.1) alternately, text identification (see #00135)
+ 6Ch 18 BYTEs detailed timing description #4
+ (v1.1) alternately, text identification (see #00135)
+ 7Eh BYTE unused???
+ 7Fh BYTE checksum
+ (radix-complement: 256-low byte of 16-bit sum of 00h-7Eh)
+
+Bitfields for DPMS EDID flags:
+Bit(s) Description (Table 00128)
+ 2-0 unused???
+ 3 display type
+ =0 non-RGB multicolor
+ =1 RGB color
+ 4 unused???
+ 5 Active Off supported
+ 6 Suspend supported
+ 7 Standby supported
+SeeAlso: #00127
+
+Bitfields for DPMS input signal type:
+Bit(s) Description (Table 00129)
+ 0 separate sync
+ 1 composite sync
+ 2 sync on green
+ 4-3 unused???
+ 6-5 voltage level
+ 00 0.700V/0.300V (1.00 Vp-p)
+ 01 0.714V/0.286V
+ 10 0.100V/0.400V
+ 11 reserved
+ 7 =1 digital signal, =0 analog
+SeeAlso: #00127
+
+Bitfields for DPMS established timings 1:
+Bit(s) Description (Table 00130)
+ 0 720x400 @ 70 Hz (VGA 640x400, IBM)
+ 1 720x400 @ 88 Hz (XGA2)
+ 2 640x480 @ 60 Hz (VGA)
+ 3 640x480 @ 67 Hz (Mac II, Apple)
+ 4 640x480 @ 72 Hz (VESA)
+ 5 640x480 @ 75 Hz (VESA)
+ 6 800x600 @ 56 Hz (VESA)
+ 7 800x600 @ 60 Hz (VESA)
+SeeAlso: #00127,#00131
+
+Bitfields for DPMS established timings 2:
+Bit(s) Description (Table 00131)
+ 0 800x600 @ 72 Hz (VESA)
+ 1 800x600 @ 75 Hz (VESA)
+ 2 832x624 @ 75 Hz (Mac II)
+ 3 1024x768 @ 87 Hz interlaced (8514A)
+ 4 1024x768 @ 60 Hz (VESA)
+ 5 1024x768 @ 70 Hz (VESA)
+ 6 1024x768 @ 75 Hz (VESA)
+ 7 1280x1024 @ 75 Hz (VESA)
+SeeAlso: #00127,#00130
+
+Bitfields for DPMS standard timing information:
+Bit(s) Description (Table 00132)
+ 5-0 vertical refresh frequency - 60 (Hz)
+ 7-6 aspect ratio (Y resolution = X resolution * aspect ratio)
+ 00 ???
+ 01 0.75
+ 10 0.8
+ 11 0.5625
+Note: if both bytes of the timing are 00h or 01h, then the Standard Timing
+ is "None"
+SeeAlso: #00127
+
+Format of Detailed Timing Description:
+Offset Size Description (Table 00133)
+ 00h BYTE horizontal frequency in kHz (if 00h, may be text)(see #00135)
+ 01h BYTE vertical frequency in Hz
+ 02h BYTE horizontal active time (pixels) and X resolution
+ 03h BYTE horizontal blanking time (pixels)
+ 04h BYTE horizontal active time 2 / horizontal blanking time 2
+ 05h BYTE vertical active time (lines) and Y resolution
+ 06h BYTE vertical blanking time (lines)
+ 07h BYTE vertical active time 2 / vertical blanking time 2
+ 08h BYTE horizontal sync offset (pixels)
+ 09h BYTE horizontal sync pulsewidth (pixels)
+ 0Ah BYTE vertical sync offset / vertical sync pulsewidth
+ 0Bh BYTE vertical/horizontal sync offset 2 / vert/hor. sync pulsewidth 2
+ 0Ch BYTE horizontal image size (mm)
+ 0Dh BYTE vertical image size (mm)
+ 0Eh BYTE horizontal image size 2 / vertical image size 2
+ 0Fh BYTE horizontal border (pixels)
+ 10h BYTE vertical border (lines)
+ 11h BYTE type of display (see #00134)
+SeeAlso: #00127,#00135
+
+Bitfields for EDID detailed display type:
+Bit(s) Description (Table 00134)
+ 7 interlaced
+ 6-5 stereo mode
+ 00 normal display (no stereo)
+ 01 stereo, right stereo sync high
+ 10 stereo, left stereo sync high
+ 11 undefined
+ 4-3 sync type
+ 00 sync analog composite
+ 01 sync bipolar analog composite
+ 10 sync digital composite
+ 11 sync digital separate
+---sync digital separate---
+ 2 vertical sync polarity (0 = negative, 1 = positive)
+ 1 horizontal sync polarity (0 = negative, 1 = positive)
+---other sync types---
+ 2 serrate
+ 1 sync location (0 = on green, 1 = on RGB)
+------
+ 0 not used???
+SeeAlso: #00133
+
+Format of EDID Text Identification Strings:
+Offset Size Description (Table 00135)
+ 00h 3 BYTEs 00h 00h 00h (to distinguish from detailed timing description)
+ 03h BYTE text identifier
+ FFh serial number
+ FEh vendor name
+ FDh vertical/horizontal frequency range
+ FCh model name
+---frequency range---
+ 04h BYTE 00h ???
+ 05h BYTE minimum vertical refresh frequency in Hz
+ 06h BYTE maximum vertical refresh
+ 07h BYTE minimum horizontal frequency in kHz
+ 08h BYTE maximum horizontal frequency
+ 09h BYTE FFh ???
+---other---
+ 04h 14 BYTEs text, may be terminated with either a NUL (00h) or LF (0Ah)
+SeeAlso: #00132
+
+(Table 00136)
+Values for manufacturer ID:
+ "ACT" Targa
+ "ADI" ADI Corporation http://www.adi.com.tw
+ "AOC" AOC International (USA) Ltd. (see #00137)
+ "API" Acer America Corp. (see #00138)
+ "APP" Apple Computer, Inc. (see #00139)
+ "ART" ArtMedia
+ "AST" AST Research (see #00140)
+ "CPL" Compal Electronics, Inc. / ALFA (see #00141)
+ "CPQ" COMPAQ Computer Corp. (see #00142)
+ "CTX" CTX - Chuntex Electronic Co. (see #00143)
+ "DEC" Digital Equipment Corporation (see #00144)
+ "DEL" Dell Computer Corp. (see #00145)
+ "DPC" Delta Electronics, Inc. (see #00146)
+ "DWE" Daewoo Telecom Ltd (see #00147)
+ "ECS" ELITEGROUP Computer Systems (see #00148)
+ "EIZ" EIZO (see #00149)
+ "FCM" Funai Electric Company of Taiwan
+ "GSM" LG Electronics Inc. (GoldStar Technology, Inc.) (see #00158)
+ "GWY" Gateway 2000
+ "HEI" Hyundai Electronics Industries Co., Ltd. (see #00150)
+ "HIT" Hitachi (see #00151)
+ "HSL" Hansol Electronics (see #00152)
+ "HTC" Hitachi Ltd. / Nissei Sangyo America Ltd. (see #00153)
+ "HWP" Hewlett Packard (see #00154)
+ "IBM" IBM PC Company (see #00155)
+ "ICL" Fujitsu ICL (see #00156)
+ "IVM" Idek Iiyama North America, Inc. (see #00157)
+ "KFC" KFC Computek
+ "LKM" ADLAS / AZALEA
+ "LNK" LINK Technologies, Inc.
+ "LTN" Lite-On
+ "MAG" MAG InnoVision (see #00159)
+ "MAX" Maxdata Computer GmbH
+ "MEI" Panasonic Comm. & Systems Co. (see #00168)
+ "MEL" Mitsubishi Electronics (see #00160)
+ "MIR" miro Computer Products AG (see #00161)
+ "MTC" MITAC
+ "NAN" NANAO (see #00162)
+ "NEC" NEC Technologies, Inc. (see #00163)
+ "NOK" Nokia (see #00164)
+ "OQI" OPTIQUEST (see #00165)
+ "PBN" Packard Bell
+ "PGS" Princeton Graphic Systems (see #00166)
+ "PHL" Philips Consumer Electronics Co. (see #00167)
+ "REL" Relisys
+ "SAM" Samsung (see #00169)
+ "SDI" Samtron (see #00170)
+ "SMI" Smile
+ "SNI" Siemens Nixdorf
+ "SNY" Sony Corporation
+ "SPT" Sceptre
+ "SRC" Shamrock Technology
+ "STP" Sceptre
+ "TAT" Tatung Co. of America, Inc. (see #00171)
+ "TRL" Royal Information Company (see #00172)
+ "TSB" Toshiba, Inc.
+ "UNM" Unisys Corporation
+ "VSC" ViewSonic Corporation (see #00173)
+ "WTC" Wen Technology
+ "ZCM" Zenith Data Systems
+ "___" Targa
+SeeAlso: #00127
+
+(Table 00137)
+Values for AOC monitor EDID:
+ A566h AOC SPECTRUM 5Nlr
+ A782h AOC SPECTRUM 7Nlr
+ D350h AOC SPECTRUM 4V, 4VA, 4Vlr, 4VlrA
+ D566h AOC SPECTRUM 5Vlr, 5VlrA
+ E570h AOC SPECTRUM 5Glr
+ E750h AOC SPECTRUM 7DlrA
+SeeAlso: #00136,#00138
+
+(Table 00138)
+Values for Acer monitor EDID:
+ 0037h AcerView 55
+ 424Ch AcerView 76ie
+ 440Bh AcerView 11D
+ 4421h AcerView 33D
+ 4522h AcerView 7134e
+ 4536h AcerView 7154e
+ 4538h AcerView 7156e
+ 454Ch AcerView 7176ie
+ 454Eh AcerView 7178ie
+ 4938h AcerView 7156i
+ 494Ch AcerView 76i
+ 494Eh AcerView 78i
+ 4962h AcerView 98i
+ 4C21h AcerView 33DL
+ 4C22h AcerView 34TL
+ 4C37h AcerView 55L
+ 4C38h AcerView 56L
+ 4E4Ch AcerView 76N
+ 5321h AcerView 7133s
+ 5322h AcerView 7134s
+ 5336h AcerView 7154s
+ 5338h AcerView 7156s, 7156is
+ 534Ch AcerView 7176is
+ 5422h AcerView 34T
+SeeAlso: #00136,#00137,#00140
+
+(Table 00139)
+Values for Apple Computer monitor EDID:
+ 0352h AppleVision 850
+SeeAlso: #00136
+
+(Table 00140)
+Values for AST monitor EDID:
+ 8001h ASTVision 4V
+ 8002h ASTVision 4I
+ 8003h ASTVision 4N
+ 8004h ASTVision 4L
+ 8005h ASTVision 5L
+ 8006h ASTVision 7L
+ 8007h ASTVision 7H
+ 8008h ASTVision 20H
+ 8009h AST Sabre
+ 800Ah ASTVision 5V
+SeeAlso: #00136,#00127,#00138,#00141
+
+(Table 00141)
+Values for ALFA monitor EDID:
+ 096Bh ALFA TH-450
+SeeAlso: #00136,#00140,#00142
+
+(Table 00142)
+Values for Compaq monitor EDID:
+ 0011h COMPAQ 1024
+ 0012h COMPAQ 1024
+ 0013h COMPAQ 1024
+ 0014h COMPAQ 1024
+ 0015h COMPAQ 1024
+ 0016h COMPAQ 1024
+ 0017h COMPAQ PRB
+ 0018h COMPAQ PRB
+ 0019h COMPAQ PRB
+ 001Ah COMPAQ PRB
+ 0020h COMPAQ PRB
+ 0021h COMPAQ PRB
+ 0022h COMPAQ 151FS
+ 0023h COMPAQ 151FS
+ 0024h COMPAQ 151FS
+ 0025h COMPAQ 151FS
+ 0026h COMPAQ 151FS
+ 0027h COMPAQ 151FS
+ 0028h COMPAQ 151FS
+ 0029h COMPAQ PRB
+ 002Ah COMPAQ PRB
+ 002Bh COMPAQ PRB
+ 002Ch COMPAQ PRB
+ 002Dh COMPAQ 171FS
+ 002Eh COMPAQ 171FS
+ 002Fh COMPAQ 171FS
+ 0030h COMPAQ 171FS
+ 0031h COMPAQ 171FS
+ 0032h COMPAQ 171FS
+ 0033h COMPAQ 171FS
+ 0040h COMPAQ QVision 200
+ 0041h COMPAQ QVision 200
+ 0042h COMPAQ QVision 200
+ 0043h COMPAQ QVision 200
+ 0044h COMPAQ QVision 200
+ 0045h COMPAQ QVision 200
+ 0046h COMPAQ QVision 200
+ 0047h COMPAQ QVision 200
+ 0048h COMPAQ QVision 200
+ 0049h COMPAQ QVision 200
+ 0100h COMPAQ 1024
+ 0146h COMPAQ 1024
+ 0147h COMPAQ 1024
+ 0346h COMPAQ 151FS
+ 0347h COMPAQ 151FS
+ 0348h COMPAQ 151FS
+ 0349h COMPAQ 151FS
+ 034Ah COMPAQ 151FS
+ 034Bh COMPAQ 151FS
+ 0546h COMPAQ 171FS
+ 0547h COMPAQ 171FS
+ 0548h COMPAQ 171FS
+ 0549h COMPAQ 171FS
+ 0746h COMPAQ PRB
+ 0747h COMPAQ PRB
+ 0846h COMPAQ PRA
+ 0847h COMPAQ PRA
+ 0848h COMPAQ PRA
+ 0849h COMPAQ PRA
+ 084Ah COMPAQ PRA
+ 084Bh COMPAQ PRA
+ 084Ch COMPAQ PRA
+ 084Dh COMPAQ PRA
+ 0946h COMPAQ PRB
+ 0947h COMPAQ PRB
+ 0948h COMPAQ PRB
+ 0949h COMPAQ PRB
+ 0A46h COMPAQ PRA
+ 0A47h COMPAQ PRA
+ 0A48h COMPAQ PRA
+ 0A49h COMPAQ PRA
+ 0A4Ah COMPAQ PRA
+ 0A4Bh COMPAQ PRA
+ 0A4Ch COMPAQ PRA
+ 0A4Dh COMPAQ PRA
+ 0D46h COMPAQ 140
+ 0D47h COMPAQ 140
+ 0D48h COMPAQ 140
+ 0D49h COMPAQ 140
+ 0D4Ah COMPAQ 140
+ 0D4Bh COMPAQ 140
+ 0D4Ch COMPAQ 140
+ 0D4Dh COMPAQ 140
+ 0F46h COMPAQ 150
+ 0F47h COMPAQ 150
+ 0F48h COMPAQ 150
+ 0F49h COMPAQ 150
+ 0F4Ah COMPAQ 150
+ 0F4Bh COMPAQ 150
+ 0F4Ch COMPAQ 150
+ 0F4Dh COMPAQ 150
+SeeAlso: #00136,#00141,#00143
+
+(Table 00143)
+Values for "CTX" monitor EDID:
+ 1451h CTX 1451
+ 1551h CTX 1551
+ 1562h CTX 1562
+ 1565h CTX 1565
+ 1569h CTX 1569S 15-inch
+ 1765h CTX 1765
+ 1785h CTX 1785 XE
+ 2085h CTX 2085
+ 2185h CTX 2185
+SeeAlso: #00136,#00142,#00144
+
+(Table 00144)
+Values for Digital Equipment Corporation monitor EDID:
+ 06FAh Digital 21" Color (FR-PCXAV-WZ)
+ 073Ah Digital 17" Color (FR-PCXAV-YZ)
+ BA08h Digital 15" Color Monitor (FR-PCXBV-E*)
+ DA08h Digital 17" Color Monitor (FR-PCXBV-F*)
+SeeAlso: #00136,#00143,#00145
+
+(Table 00145)
+Values for Dell monitor EDID:
+ 139Ah Dell Ultrascan 14XE
+ 139Bh Dell Ultrascan 14XE
+ 139Ch Dell Ultrascan 14XE
+ 139Dh Dell Ultrascan 14XE
+ 2210h Dell Ultrascan V17X
+ 2211h Dell Ultrascan V17X
+ 2212h Dell Ultrascan V17X
+ 2213h Dell Ultrascan V17X
+ 2214h Dell Ultrascan 21TE
+ 2215h Dell Ultrascan 21TE
+ 2216h Dell Ultrascan 21TE
+ 2217h Dell Ultrascan 21TE
+ 3024h Dell VS17X
+ 3025h Dell VS17X
+ 3026h Dell VS17X
+ 3027h Dell VS17X
+ 4273h Dell VS15X
+SeeAlso: #00136,#00144,#00146
+
+(Table 00146)
+Values for Delta Electronics monitor EDID:
+ 0456h Delta DA-456
+ 1565h Delta DA-1565
+ 1765h Delta DA-1765
+SeeAlso: #00136,#00145,#00147
+
+(Table 00147)
+Values for Daewoo monitor EDID:
+ 1423h Daewoo CMC-1423B1
+ 1427h Daewoo CMC-1427X1
+ 1502h Daewoo CMC-1502B1
+ 1505h Daewoo CMC-1505X
+ 1507h Daewoo CMC-1507X1
+ 1703h Daewoo CMC-1703B
+ 5133h Daewoo CMC-1511B
+ 7044h Daewoo CMC-1704C
+SeeAlso: #00136,#00146,#00148
+
+(Table 00148)
+Values for ELITEGROUP Computer Systems monitor EDID:
+ 0001h ECS VERTOS 1401
+ 0002h ECS VERTOS 1501
+ 0003h ECS VERTOS 1502
+ 0004h ECS VERTOS 1503
+ 0005h ECS VERTOS 1700
+ 0006h ECS VERTOS 1701
+ 0007h ECS VERTOS 1700
+ 0008h ECS VERTOS 2101
+ 0009h ECS VERTOS 2102
+SeeAlso: #00136,#00147,#00149
+
+(Table 00149)
+Values for EIZO monitor EDID:
+ 0200h EIZO FlexScan F351
+ 0201h EIZO FlexScan F553
+ 0202h EIZO FlexScan F563
+ 0203h EIZO FlexScan F764
+ 0204h EIZO FlexScan F784
+ 0206h EIZO FlexScan 6600
+ 0300h EIZO FlexScan 6500
+ 0302h EIZO 9060S
+ 0303h EIZO 9065S
+ 0305h EIZO FlexScan T563
+ 0306h EIZO 9070S
+ 0307h EIZO 9080i
+ 0308h EIZO 9400i
+ 0309h EIZO 9500
+ 030Ah EIZO FlexScan F340iW
+ 030Ch EIZO FlexScan F552
+ 030Dh EIZO FlexScan F560iW
+ 030Fh EIZO FlexScan F760iW
+ 0310h EIZO FlexScan F780iW
+ 0311h EIZO FlexScan T560i
+ 0312h EIZO FlexScan T660i
+ 0313h EIZO FlexScan T562
+ 0314h EIZO FlexScan T662
+ 038Ch EIZO FlexScan F550iW
+SeeAlso: #00136,#00148,#00150
+
+(Table 00150)
+Values for Hyundai monitor EDID:
+ 0B42h Hyundai Deluxscan 21
+ 12F0h Hyundai Deluxscan 14S
+ 16D8h Hyundai Deluxscan 15B
+ 16E8h Hyundai Deluxscan 15G
+ 16EEh Hyundai Delucscan 15G+
+ 1E02h Hyundai Deluxscan 17 Pro
+ 1EB8h Hyundai Deluxscan 17B
+ 1EBEh Hyundai Deluxscan 17B+
+ 5864h Hyundai DeluxScan 15 Pro
+ B81Eh Hyundai DeluxScan 17
+SeeAlso: #00136,#00149,#00151
+
+(Table 00151)
+Values for Hitachi monitor EDID:
+ 1717h Hitachi Accuvue GX17L
+ 1727h Hitachi HM1764
+ 1827h Hitachi HM1782
+ 2147h Hitachi HM4721
+ 2149h Hitachi HM4921
+ 4020h Hitachi HM4020
+ 4021h Hitachi HM4021
+ 4711h Hitachi Accuvue UX4721
+ 4810h Hitachi Accuvue GX20
+ 4811h Hitachi Accuvue GX21
+ 4820h Hitachi HM4820
+ 4821h Hitachi HM4821
+ 4830h Hitachi Accuvue GX20H
+ 4911h Hitachi Accuvue UX4921
+ 6421h Hitachi HM6421
+ 6811h Hitachi Accuvue UX6821
+ 6821h Hitachi HM6821
+SeeAlso: #00136,#00150,#00152
+
+(Table 00152)
+Values for Hansol Electronics monitor EDID:
+ 0579 Hansol Electronics Mazellan14px
+ 057A Hansol Electronics Mazellan400A
+ 05DD Hansol Electronics Mazellan15ax
+ A605 Hansol Electronics Mazellan17px
+SeeAlso: #00136,#00151,#00153
+
+(Table 00153)
+Values for Hitachi, Ltd. monitor EDID:
+ AB6Fh CM-1711M
+ ABC2h CM-2112M
+ ABC7h CM-2111M
+ ABCCh CM-2110M
+ ABE0h Hitachi, Ltd CM802
+ ABE2h Hitachi, Ltd CM801
+ ABE3h Hitachi, Ltd CM800
+ ABEAh Hitachi, Ltd CM803
+ ABF4h Hitachi, Ltd CM701
+ AFC8h Hitachi, Ltd CM500
+ AFD2h Hitachi, Ltd CM600
+ AFD7h Hitachi, Ltd CM611
+SeeAlso: #00136,#00152,#00154
+
+(Table 00154)
+Values for Hewlett-Packard monitor EDID:
+ 0AF0h HP D2800A Ultra VGA 1600 21"
+ 0AF6h HP D2806A Ergo Ultra VGA 15"
+ 0AF8h HP D2808 1024 Low Emission
+ 0AFFh HP D2815A 1024 Low Emission 14"
+ 0F11h HP D3857A Multi Media 15"
+ 0F12h HP D3858A Multi Media 14"
+SeeAlso: #00136,#00151,#00155
+
+(Table 00155)
+Values for IBM monitor EDID:
+ 198Eh IBM G41
+ 198Fh IBM G50
+ 1990h IBM G70
+ 1991h IBM G200
+ 1999h IBM P50
+ 199Ah IBM P70
+ 199Bh IBM P200
+ 1BB7h IBM 7095
+ 1BB9h IBM 7097
+ 2112h IBM 2112
+ 2113h IBM 2113
+ 2114h IBM 2114
+ 2115h IBM 2115
+ 2117h IBM 2117
+ 2215h IBM 2215
+ 2238h IBM 2238
+ 2248h IBM 2248
+ 2264h IBM 2264
+ 2535h IBM 9525-0X1
+ 26ACh IBM Aptiva 9900
+ 27ADh IBM Aptiva 9901
+ 6312h IBM 6312
+ 6314h IBM 6314
+ 6315h IBM 6315
+ 6317h IBM 6317
+ 6319h IBM 6319
+ 6321h IBM 6321
+ 6322h IBM 6322
+ 6324h IBM 6324
+ 6325h IBM 6325
+ 6327h IBM 6327
+ 8504h IBM 8504
+ 8511h IBM 8511
+ 8512h IBM 8512
+ 8513h IBM 8513
+ 8514h IBM 8514
+ 8515h IBM 8515
+ 8517h IBM 8517
+ 8518h IBM 8518
+ 9504h IBM 9504
+ 9515h IBM 9515
+ 9517h IBM 9517
+ 9518h IBM 9518
+ 9521h IBM 9521
+ 9524h IBM 9524
+ 9525h IBM 9525
+ 9527h IBM 9527
+SeeAlso: #00136,#00154,#00156
+
+(Table 00156)
+Values for Fujitsu ICL monitor EDID:
+ 0100h Fujitsu ICL ErgoPro 211v
+ 0200h Fujitsu ICL ErgoPro 171p
+ 0400h Fujitsu ICL ErgoPro 171v
+ 0700h Fujitsu ICL ErgoPro 151p
+ 0800h Fujitsu ICL ErgoPro 151p AutoBrite
+ 0A00h Fujitsu ICL ErgoPro 151v
+ 0B00h Fujitsu ICL ErgoPro 141v
+ 0D00h Fujitsu ICL ErgoPro 141p
+ 0F00h Fujitsu ICL ErgoPro 152v
+ 1400h Fujitsu ICL ErgoPro 142v
+ 1600h Fujitsu ICL ErgoPro e153
+ 1900h Fujitsu ICL ErgoPro x173
+ 1A00h Fujitsu ICL ErgoPro x173a
+ 1C00h Fujitsu ICL ErgoPro x152
+ 1D00h Fujitsu ICL ErgoPro e173
+ 2200h FUJITSU ErgoPro e154
+ 2400h FUJITSU ErgoPro x174
+SeeAlso: #00136,#00155,#00157
+
+(Table 00157)
+Values for Idek Iiyama North America monitor EDID:
+ 1700h Iiyama Vision Master MF-8617
+SeeAlso: #00136,#00156,#00158
+
+(Table 00158)
+Values for LG Electronics monitor EDID:
+ 36B4h LG StudioWorks 44m
+ 36B9h LG StudioWorks 44i
+ 3AA0h LG 1505s
+ 3AA2h LG StudioWorks 56m
+ 3AAFh LG StudioWorks 56T 15-inch
+ 3AB0h LG StudioWorks 5D
+ 3AB6h LG StudioWorks 5D
+ 426Ch LG StudioWorks 78i
+ 426Dh LG StudioWorks 78T
+ 426Eh LG StudioWorks 76i
+ 4273h LG StudioWorks 76m
+ 4274h LG StudioWorks 78m
+ 4277h LG StudioWorks 74m
+ 4278h LG StudioWorks 74i
+ 427Eh LG StudioWorks 7D
+ 427Fh LG StudioWorks 78D
+ 4280h LG StudioWorks 78DT
+ 4281h LG StudioWorks 7DT
+ 4284h LG StudioWorks 76T
+ 42CFh LG 1725s
+ 4E21h LG StudioWorks 20i
+SeeAlso: #00136,#00157,#00159
+
+(Table 00159)
+Values for MAG monitor EDID:
+ 5620h DX1595
+ 5624h DX15T
+ 5626h DX1795
+SeeAlso: #00136,#00158,#00160
+
+(Table 00160)
+Values for Mitsubishi monitor EDID:
+ 0040h Mitsubishi Diamond Pro 21TX (THN-9105)
+ 2040h Mitsubishi Diamond Scan 20H (FR-8905)
+ 2040h Mitsubishi Diamond Pro 20X (FR-8905B)
+ 6140h Mitsubishi Diamond Scan 17HX (FFF8705)
+ 8040h Mitsubishi Diamond Pro 15H (SD-57xxC)
+ 4040h Mitsubishi Diamond Pro 17TX (TFG-8705)
+ 408Fh Mitsubishi Diamond Scan 15VX (SD58xx)
+ 40C0h Mitsubishi Diamond Pro 87TXM (TFM8705)
+SeeAlso: #00136,#00159,#00161
+
+(Table 00161)
+Values for Miro monitor EDID:
+ 0721h PROOFSCREEN miroC21107
+ 6815h miroD1568
+ 6817h PROOFSCREEN miroC1768
+ 6917h miroD1769
+ 8217h PROOFSCREEN miroC1782
+ 8520h PROOFSCREEN miroC2085 E
+ 8521h PROOFSCREEN miroC2185
+ 9321h PROOFSCREEN miroC2193
+SeeAlso: #00136,#00160,#00162
+
+(Table 00162)
+Values for Nanao monitor EDID:
+ 0000h NANAO USA FlexScan T2-20
+ 0400h NANAO USA F2-15
+ 0401h NANAO USA F2-17
+ 0402h NANAO USA F2-17EX
+ 0403h NANAO USA F2-21
+ 0404h NANAO USA FX2-21
+ 0405h NANAO USA FlexScan T2-17TS
+ 0406h NANAO FlexScan 6600
+ 0502h NANAO 9060S
+ 0503h NANAO 9065S
+ 0506h NANAO 9070U
+ 0507h NANAO 9080i
+ 0508h NANAO 9400i
+ 0509h NANAO 9500
+ 050Ah NANAO FlexScan F340iW
+ 050Bh NANAO FlexScan F550i
+ 050Ch NANAO FlexScan F550iW
+ 050Dh NANAO FlexScan F560iW
+ 050Eh NANAO FlexScan F750i
+ 050Fh NANAO FlexScan F760iW
+ 0510h NANAO FlexScan F780iW
+ 0511h NANAO FlexScan T560i
+ 0512h NANAO FlexScan T660i
+ 0513h NANAO USA FlexScan T2-17
+ 0514h NANAO USA FlexScan T2-20
+ 0580h NANAO USA FlexScan 6300
+ 0800h NANAO FlexScan 33F
+ 0802h NANAO FlexScan 88F
+ 0805h NANAO FlexScan 54T
+ 0882h NANAO FlexScan 52F
+ 0900h NANAO FlexScan 6500
+ 0902h NANAO 9060S
+ 0906h NANAO 9070U
+ 0907h NANAO 9080i
+ 090Ah NANAO FlexScan F347
+ 090Bh NANAO FlexScan F550i
+ 090Ch NANAO FlexScan F557
+ 090Fh NANAO FlexScan 77F
+ 0910h NANAO FlexScan F780iJ
+ 0911h NANAO FlexScan T560iJ
+ 0912h NANAO FlexScan T660iJ
+ 0913h NANAO FlexScan 56T
+ 0914h NANAO FlexScan 68T
+ 098Ah NANAO FlexScan F347II
+ 098Ch NANAO FlexScan 55F
+ 098Fh NANAO FlexScan 76F
+ 0991h NANAO FlexScan T567
+ 0993h NANAO FlexScan 53T
+SeeAlso: #00136,#00161,#00163
+
+(Table 00163)
+Values for NEC monitor EDID:
+ 37FAh NEC MultiSync XV14
+ 37FBh NEC MultiSync XV14
+ 3A66h NEC MultiSync C400
+ 3C00h NEC MultiSync XE15
+ 3C0Ah NEC MultiSync XP15
+ 3C14h NEC MultiSync XV15
+ 3C1Eh NEC MultiSync XE15
+ 3D5Eh NEC MultiSync XV15+
+ 3D68h NEC MultiSync M500
+ 3E4Eh NEC MultiSync C500
+ 43A8h NEC MultiSync XE17
+ 43B2h NEC MultiSync XE17
+ 43BCh NEC MultiSync XV17
+ 4416h NEC MultiSync XP17
+ 533Eh NEC MultiSync XE21
+ 53B6h NEC MultiSync XP21
+SeeAlso: #00136,#00162,#00164
+
+(Table 00164)
+Values for Nokia monitor EDID:
+ 008Dh NOKIA 449M
+ 0098h NOKIA 449X
+ 00A3h NOKIA 447KC
+ 00A9h NOKIA 447XI
+ 00ABh NOKIA 447KA
+ 00ADh NOKIA 447M
+ 00B7h NOKIA 447W
+ 00B8h NOKIA 447X
+ 00BBh NOKIA 447XAV
+ 00BCh NOKIA 447K
+ 00D2h NOKIA 445R
+SeeAlso: #00136,#00163,#00165
+
+(Table 00165)
+Values for OptiQuest monitor EDID:
+ 3138h OPTIQUEST VA656
+ 3141h OPTIQUEST 14ES
+ 3232h OPTIQUEST 1562A-2
+ 3233h OPTIQUEST 1769DC
+ 3234h OPTIQUEST 1000S-2
+ 3332h OPTIQUEST V655
+ 3333h OPTIQUEST V775
+ 3432h OPTIQUEST V650
+ 3832h OPTIQUEST V665
+ 4637h OPTIQUEST 1769DC
+SeeAlso: #00136,#00164,#00166
+
+(Table 00166)
+Values for Princeton Graphics monitor EDID:
+ 003Bh Princeton EO15
+ 003Dh Princeton EO17
+SeeAlso: #00136,#00165,#00167
+
+(Table 00167)
+Values for Philips monitor EDID:
+ 0200h Philips CM0200 (15C)
+ 0500h Philips CM0500 (20C)
+ 0700h Philips CM0700 (20T)
+ 0800h Philips CM0800 (15B)
+ 1200h Philips CM1200 (15A)
+ 1800h Philips CM1800 (15A)
+ 2000h Philips CM0200 (14B)
+ 2600h Philips 17TCM26
+ 2800h Philips 17BCM28
+ 3800h Philips 17ACM38
+ 5600h Philips CM5600 (20B)
+ 700Bh Philips CM0700 (21B)
+ 8000h Philips CM0800 (14A)
+SeeAlso: #00136,#00166,#00168
+
+(Table 00168)
+Values for Panasonic monitor EDID:
+ 1604h Panasonic TX-D2151W-ES
+ 1610h Panasonic TX-D2151NM
+SeeAlso: #00136,#00167,#00169
+
+(Table 00169)
+Values for Samsung monitor EDID:
+ 0000h Samsung SyncMaster 3Ne
+ 0100h Samsung SyncMaster 4S
+ 1530h Samsung 15GLsi
+ 4610h Samsung SyncMaster 21GLs
+ 4690h Samsung SyncMaster 20GLsi
+ 4D50h Samsung SyncMaster 15GLe
+ 4D51h Samsung SyncMaster 15GLi
+ 4D52h Samsung SyncMaster 15M
+ 4D70h Samsung SyncMaster 17GLi
+ 4D71h Samsung SyncMaster 17GLsi
+ 4D72h Samsung SyncMaster 6Ne
+ 4D73h Samsung 17GLi
+ 4D74h Samsung 17GLsi
+ 5450h Samsung SyncMaster 15Me
+ 6D20h Samsung SyncMaster 15GLe
+SeeAlso: #00136,#00168,#00170
+
+(Table 00170)
+Values for Samtron monitor EDID:
+ 1428h Samtron 428PT/PTL
+ 1528h Samtron SC-528TXL
+ 1529h Samtron SC-528UXL
+ 1530h Samtron SC-528MXLJ
+ 4690h Samtron SC-208DXL+
+ 4D70h Samtron SC-728FXL
+ 4D71h Samtron SC-726GXL
+ 5451h Samtron SC-528MDL
+SeeAlso: #00136,#00169,#00171
+
+(Table 00171)
+Values for Tatung monitor EDID:
+ 1F65h Intelliscan TM651x series 15"
+ 1F67h Intelliscan TM671x series 17"
+ 2F44h Intelliscan TM442x series 14"
+ 2F45h Intelliscan TM452x series 15"
+ 434Dh Tatung CM-17MC
+ 4855h Tatung CM-14UH
+SeeAlso: #00136,#00170,#00172
+
+(Table 00172)
+Values for Royal Information Company monitor EDID:
+ 061Ch TRL/RIC DL-1564
+ 0622h TRL/RIC DH-1570
+SeeAlso: #00136,#00171,#00173
+
+(Table 00173)
+Values for ViewSonic monitor EDID:
+ 0C00h ViewSonic 17GS
+ 0C0Fh ViewSonic 17PS
+ 0C1Fh ViewSonic 17GA
+ 1600h ViewSonic 21PS-2
+ 2601h ViewSonic 15GS
+ 2600h ViewSonic 15GS-2
+ 3141h ViewSonic 14ES
+ 3142h ViewSonic 14ES
+ 3143h ViewSonic 14ES
+ 3145h ViewSonic 15GS-3
+ 3252h ViewSonic 21PS-2
+ 3253h ViewSonic 21PS-2
+ 334Bh ViewSonic 17GS-2
+ 334Ch ViewSonic 17GS-2
+ 3351h ViewSonic PT810
+ 344Bh ViewSonic 17PS-2
+ 344Ch ViewSonic 17PS-2
+ 3451h ViewSonic PT810-2
+ 354Dh ViewSonic GT800
+ 354Eh ViewSonic GT800
+ 3550h ViewSonic GT800
+ 3644h ViewSonic 15GA
+ 3646h ViewSonic 15GA
+ 3648h ViewSonic 15GA
+ 364Ah ViewSonic PT770
+ 364Bh ViewSonic PT770
+ 364Ch ViewSonic PT770
+ 3744h ViewSonic 15G-2
+ 3746h ViewSonic 15G-2
+ 3748h ViewSonic 15G-2
+ 374Bh ViewSonic 17GA
+ 374Ch ViewSonic 17GA
+ 3844h ViewSonic 15ES-2
+ 3846h ViewSonic 15ES-2
+ 3848h ViewSonic 15ES-2
+ 384Ah ViewSonic 17EA
+ 384Bh ViewSonic 17EA
+ 384Ch ViewSonic 17EA
+ 3944h ViewSonic 15GS-2
+ 3946h ViewSonic 15GS-2
+ 3948h ViewSonic 15GS-2
+ 394Ah ViewSonic 17GS-2
+ 394Bh ViewSonic 17GS-2
+ 394Ch ViewSonic 17GS-2
+ 424Ah ViewSonic GT770
+ 424Bh ViewSonic GT770
+ 424Ch ViewSonic GT770
+ 434Ah ViewSonic 17PS-2
+ 434Bh ViewSonic 17PS-2
+ 434Ch ViewSonic 17PS-2
+ 4439h ViewSonic 15GS-2
+ 444Ah ViewSonic 17GA-2
+ 4637h ViewSonic 1769DC
+ 4745h ViewSonic G653 (VCDTS21444-2E)
+SeeAlso: #00136,#00172
+--------V-104F15BL02-------------------------
+INT 10 - VESA VBE/DC (Display Data Channel) - READ VDIF
+ AX = 4F15h
+ BL = 02h
+ ???
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ ???
+ 01h failed
+SeeAlso: AX=4F15h/BL=00h,AX=4F15h/BL=01h
+--------V-104F16-----------------------------
+INT 10 - VESA VBE/GC (Graphics System Configuration) - API
+ AX = 4F16h
+ BL = function
+ 00h installation check / get capabilities
+ other registers vary by function
+Return: varies by function
+--------V-104F17-----------------------------
+INT 10 - VESA VBE/AF (Accelerator Functions) - API
+ AX = 4F17h
+ BL = function
+ 00h installation check / get capabilities
+ other registers vary by function
+Return: AL = 4Fh if function supported
+ AH = status
+ 00h successful
+ 01h failed
+ 02h hardware does not support function
+ 03h function not available in current video mode
+ else reserved for future error codes
+ other vary by function
+Notes: the accelerator function code should be given a 32-bit protected
+ mode stack which has at least 1024 bytes available for use by the
+ VBE/AF code
+ when called, the I/O permission bitmap must allow access to any
+ ports which VBE/AF may require for operation
+SeeAlso: AX=4F0Bh
+--------V-104F4D-----------------------------
+INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
+ AX = 4F4Dh
+ BX = number of bytes available for VCI use
+ DS:0000h -> buffer for VCI
+ ES:DI -> VCI driver callback function
+Return: AL = 4Fh if supported
+ AH = status
+ 00h successful
+ BX = number of bytes used by VCI
+ ES:DI -> VCI request handler
+ 01h failed
+Desc: allow the VESA BIOS Extensions to cooperate with a pointing-device
+ (typically mouse) driver
+SeeAlso: AX=4F12h
+--------V-104F70-----------------------------
+INT 10 - Avance Logic - GET ADAPTER INFORMATION
+ AX = 4F70h
+Return: AX = 004Fh if successful
+ BL = board information (see #00174)
+ BH = board type???
+ 00h on ALG2101
+ FFh otherwise
+SeeAlso: AX=4F00h
+
+Bitfields for Avance Logic board information:
+Bit(s) Description (Table 00174)
+ 0-1 video RAM size
+ 00 256K
+ 01 512K
+ 10 1M
+ 11 2M
+ 2 ???
+ 3 slot size???
+ =0 8-bit slot
+ =1 16-bit slot
+ 4 unused
+ 5 set on ALG2228/AL2301
+ 6-7 unused
+--------V-104FDD-----------------------------
+INT 10 - ATI M64VBE.COM - GET RESIDENT SEGMENT
+ AX = 4FDDh
+Return: AX = CS of resident code
+Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
+SeeAlso: AX=4FFFh/BX=364Dh"M64VBE",INT 60"M64VBE"
+--------V-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
+--------V-104FFF-----------------------------
+INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
+ AX = 4FFFh
+ BX = dual display mode
+ 00h reset
+ 01h set dual display, 32KB VGA test
+ 02h set dual display, 64KB VGA test
+Return: AX = 4F00h if successful
+ BX = number of scanlines off screen for test mode
+--------V-104FFFBX364D-----------------------
+INT 10 - ATI M64VBE.COM - UNINSTALL
+ AX = 4FFFh
+ BX = 364Dh ('6M')
+ CX = 5634h ('V4')
+Return: AX,DX,DS,ES destroyed
+Program: M64VBE is a VESA VBE 2.0 driver TSR for ATI's Mach64 video chip
+SeeAlso: AX=4FDDh"M64VBE",INT 60"M64VBE"
+--------U-1050-------------------------------
+INT 10 - SCROLOCK.COM - INSTALLATION CHECK
+ AH = 50h
+Return: BX = 1954h if installed
+ AL = 00h if inactive, nonzero if active
+Program: SCROLOCK is a utility supplied with System Enhancement Associates'
+ ARC archiver
+SeeAlso: AH=51h
+--------J-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
+Note: This function is called with BX=0051h by Japanese versions of
+ MS-DOS/PC DOS/DR DOS IO.SYS/IBMBIO.COM at initialization time.
+SeeAlso: AX=5001h,INT 16/AX=5000h
+--------J-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
+--------V-105049-----------------------------
+INT 10 - VIDEO - SCREENR v1.55+ - API
+ AX = 5049h ('PI')
+ BX = function
+ 0000h installation check
+ 0001h lock mode
+ 0002h unlock mode
+ 0003h lock palette
+ 0004h unlock palette
+Return: AX = 0000h if installed
+ BX = TSR version (BH=major,BL=minor)
+ CL = mode locking status
+ 00h mode not locked
+ 01h mode locked: INT 10/AH=00h disabled
+ CH = palette locking status
+ 00h palette not locked
+ 01h palette locked, the following functions are disabled:
+ AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
+Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
+ utility.
+Index: installation check;SCREENR
+--------U-1051-------------------------------
+INT 10 - SCROLOCK.COM - ENABLE/DISABLE
+ AH = 51h
+ AL = state
+ 00h disable
+ nonzero enable
+Return: nothing
+Program: SCROLOCK is a utility supplied with System Enhancement Associates'
+ ARC file archiver
+SeeAlso: AH=50h"SCROLOCK"
+--------J-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"SYSTEM DATA"
+--------J-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
+--------J-105200-----------------------------
+INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
+ AX = 5200h
+ BX = segment of buffer
+Return: nothing
+SeeAlso: AX=5201h
+--------J-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
+--------V-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 (see #00175) in VCONFIG
+Program: 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 14/AX=AA01h,INT 2F/AX=6400h
+Index: screen saver;ATI Wonder SMS.COM
+
+Format of ATI Super Switch data area:
+Offset Size Description (Table 00175)
+ 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
+----------105555BXAAAA-----------------------
+INT 10 - LIR - SET CONFIGURATION
+ AX = 5555h
+ BX = AAAAh
+ CL = new configuration flags (see #04118)
+ CH > 0 new video adapter configuration (see #04121)
+ = 0 do not update video adapter configuration
+ DL = new keyboard layout flags (see #04119)
+ DH = new alphabet flags (see #04120)
+Return: AX = A55Ah if installed
+Program: LIR is a DOS/Windows 3.xx codepage support package develoved by
+ LABAS u.a.b. It supports several screen and printer codepages as
+ well as various keyboard layouts used in Lithuania.
+ Download at: ftp://ftp.labas.com/pub/drivers/language/lir422.zip
+SeeAlso: AX=5555h/BX=BBBBh,INT 17/AX=5555h/BX=AAAAh
+
+Bitfields for LIR configuration flags:
+Bit(s) Description (Table 04118)
+ 7 program is active
+ 6 ???
+ 5-3 code page
+ 2 Lithuanian???
+ 1 Russian???
+ 0 enable beeps
+SeeAlso: #04119
+
+Bitfields for LIR keyboard layout flags:
+Bit(s) Description (Table 04119)
+ 7-5 keyboard layout
+ 100 QWERTY
+ 010 Lithuanian AZERTY
+ 001 Lithuanian ergonomic FZVPUJ
+ 4-3 reserved (0)
+ 2 Lithuanian keyboard???
+ 1 Russian keyboard???
+ 0 ???
+SeeAlso: #04118,#04120
+
+Bitfields for LIR Alphabet flags:
+Bit(s) Description (Table 04120)
+ 7-3 reserved (0)
+ 2 Lithuanian alphabetic symbol table???
+ 1 Russian alphabetic symbol table???
+ 0 reserved (0)
+SeeAlso: #04118,#04119,#04121
+
+Bitfields for LIR video adapter configuration:
+Bit(s) Description (Table 04121)
+ 7 Hercules Graphics Card (HGC)
+ 6-5 reserved (0)
+ 4 VGA
+ 3 MCGA
+ 2 EGA
+ 1 CGA
+ 0 reserved (0)
+Note: multiple bits may be set if more than one video adapter is installed
+SeeAlso: #04118
+----------105555BXBBBB-----------------------
+INT 10 - LIR - GET CONFIGURATION
+ AX = 5555h
+ BX = BBBBh
+Return: AX = magic signature A55Ah
+ BX = version number (BH = major version, BL = minor version),
+ e.g. BX = 0410h for LIR v4.10, or BX = 0422h for LIR v4.22)
+ CL = configuration flags (see #04118)
+ CH = video adapter configuration (see #04121)
+ DL = keyboard layout flags(see #04119)
+ DH = alphabet flags (see #04120)
+SeeAlso: AX=5555h/BX=AAAAh,INT 17/AX=5555h/BX=BBBBh
+--------V-105F00-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION
+ AX = 5F00h
+Return: AL = 5Fh function supported
+ BL = chip type (see #00176)
+ BH = video memory size (see #00177)
+ CX = miscellaneous information (see #00178)
+SeeAlso: AX=5F01h
+
+Bitfields for Chips&Technologies chip type:
+Bit(s) Description (Table 00176)
+ 7-4 chip type
+ 0000: 82c451
+ 0001: 82c452 / 82c452A
+ 0010: 82c455
+ 0011: 82c453
+ 0100: 82c450
+ 0101: 82c456
+ 0110: 82c457
+ 0111: F65520
+ 1000: F65530 / F65525
+ 1001: F66510
+ 1010: ???
+ 1011: F64300 "Wingine DGX"
+ 1100: F65535/F65545 ???
+ 1101: F65540
+ 1110: ???
+ 1111: ???
+ 3-0 revision number
+SeeAlso: #00177
+
+(Table 00177)
+Values for Chips&Technologies video memory size:
+ 00h 256KB
+ 01h 512KB
+ 02h 1MB
+ 03h 2MB
+SeeAlso: #00176
+
+Bitfields for Chips&Technologies miscellaneous information:
+Bit(s) Description (Table 00178)
+ 0 DAC size (0=6-bit, 1=8-bit)
+ 1 system type (0=PC/AT, 1=PS/2)
+ 2 extended text modes supported by BIOS
+ 3 reserved
+ 4 extended graphics modes supported by BIOS
+ 5 reserved
+ 6 BIOS supports graphics cursor
+ 7 BIOS supports anti-aliased font
+ 8 BIOS supports pre-programmed emulation
+ 9 BIOS supports auto emulation
+ 10 BIOS supports variable mode set at cold boot
+ 11 BIOS supports variable mode set on warm boot
+ 12 BIOS supports emulation mode set at cold boot
+ 13 BIOS supports emulation mode set on warm boot
+ 14-15 reserved
+--------V-105F00-----------------------------
+INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
+ AX = 5F00h
+Return: AH = 00h, if successful
+ AL = chip version (the same value that VTEST.EXE reads)
+ 00h RTG3103???
+ 01h RTG31030/RTG3105
+ 02h RTG3106???
+ 3Fh non-Realtek chip
+BUG: in v3.C10, AX=5F00h on return due to improper stack restoration code
+SeeAlso: AX=5F01h"RTVGA"
+--------V-105F01-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
+ AX = 5F01h
+ BL = emulation type (see #00179)
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
+
+(Table 00179)
+Values for Chips&Technologies emulation type:
+ 00h,01h reserved
+ 02h CGA
+ 03h MDA
+ 04h Hercules
+ 05h EGA
+ 06h VGA (disable emulation)
+--------V-105F01-----------------------------
+INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
+ AX = 5F01h
+ ES:DI -> zero-filled buffer for BIOS ID string
+Return: AH = 00h if successful
+ ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
+BUG: in v3.C10, AX=5F01h on return due to improper stack restoration code
+SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
+--------V-105F02-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
+ AX = 5F02h
+ BL = new state of autmatic emulation (00h enabled, 01h disabled)
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F01h,AX=5F03h
+--------V-105F02-----------------------------
+INT 10 - Chips & Technologies '64300' BIOS - SET CLOCK
+ AX = 5F02h
+ BH = what to set
+ 02h dot clock
+ BL = speed in MHz (12-99)
+ 03h memory clock
+ BL = speed in MHz (12-99)
+ FFh default dot and memory clocks
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F00h"Chips",AX=5F03h"64300",AX=5F02h"65530"
+--------V-105F02-----------------------------
+INT 10 - Chips & Technologies '65530' BIOS - SET CLOCK
+ AX = 5F02h
+ BH = what to set
+ 02h dot clock
+ BL = new clock speed (see #00180)
+ 03h memory clock
+ BL = new clock speed (see #00180)
+ 04h set power-down register
+ BL = new value for power-down register (bits 3-0 only)
+ 06h (404 clock chip) set control register
+ BL = new vlaue for control register (bits 5-0 only)
+ 06h (404A/B/B-ES clock chips) set control register PWRDN1
+ BL = new value for control register
+ 07h (404A/B/B-ES clock chips) set control register PWRDN1
+ BL = new value for control register
+ FFh default dot and memory clocks
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F01h,AX=5F02h"64300",AX=5FA0h,#00184
+
+(Table 00180)
+Values for C&T '65530' BIOS clock speed:
+ 00h 12 MHz
+ 01h 14 MHz
+ 02h 16 MHz
+ 03h 18 MHz
+ 04h 20 MHz
+ 05h 25 MHz
+ 06h 28 MHz
+ 07h 32 MHz
+ 08h 36 MHz
+ 09h 40 MHz
+ 0Ah 45 MHz
+ 0Bh 50 MHz
+ 0Ch 56 MHz
+ 0Dh 60 MHz
+ 0Eh 65 MHz
+ 0Fh 66 MHz
+ 15h 34 MHz
+--------V-105F02-----------------------------
+INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
+ AX = 5F02h
+Return: AH = 00h, if successful
+ AL = on-board memory size
+ (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
+BUG: in v3.C10, AX=5F02h on return due to improper stack restoration code
+SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
+--------V-105F03-----------------------------
+INT 10 - VIDEO - Realtek RTVGA - SET ???
+ AX = 5F03h
+ BL = 0-3 (???)
+Return: AH = 00h if successful
+BUG: in v3.C10, AX=5F03h on return due to improper stack restoration code
+SeeAlso: AX=5F02h"RTVGA"
+--------V-105F03BL00-------------------------
+INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON DISPLAY MODE
+ AX = 5F03h
+ BL = 00h
+ CL = display mode
+ CH = mode (see #00181)
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F02h,AX=5F03h/BL=01h"Chips",AX=5F90h
+
+Bitfields for Chips&Technologies display mode:
+Bit(s) Description (Table 00181)
+ 1-0 scanlines (00 = 200, 01 = 350, 10 = 400)
+ 7 persistence (0 reset on next boot, 1 until changed)
+--------V-105F03BH00-------------------------
+INT 10 - Chips & Technologies '64300' BIOS - GET CLOCK SPEED
+ AX = 5F03h
+ BH = 00h (get default memory clock)
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+ BL = clock speed in MHz
+SeeAlso: AX=5F02h"64300",AX=5F04h"64300"
+--------V-105F03BL01-------------------------
+INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
+ AX = 5F03h
+ BL = 01h
+ CL = emulation mode (see #00181)
+ CH = permanence
+ bit 7 persistence (0 reset on next boot, 1 until changed)
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F02h,AX=5F03h/BL=00h"Chips",AX=5F90h
+--------V-105F04-----------------------------
+INT 10 - Chips & Technologies '64300' BIOS - GET REFRESH RATE
+ AX = 5F04h
+ BL = video mode number
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+ BH = available refresh rates (see #00182)
+ BL = currently-set refresh rate (see #00182)
+SeeAlso: AX=5F03h"64300",AX=5F05h"64300"
+
+Bitfields for C&T 64300 refresh rates:
+Bit(s) Description (Table 00182)
+ 5 75 Hz
+ 4 72 Hz
+ 3 70 Hz
+ 2 60 Hz
+ 1 56 Hz
+ 0 interlaced
+--------V-105F05-----------------------------
+INT 10 - Chips & Technologies '64300' BIOS - SET REFRESH RATE
+ AX = 5F05h
+ BL = video mode number
+ BH = refresh rate to set (see #00182)
+ bit 7: =0 program new clock and CRT parametes
+ =1 keep current parameters
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F04h"64300"
+--------V-105F06-----------------------------
+INT 10 - Chips & Technologies '64300' BIOS - GET XRAM INFORMATION
+ AX = 5F06h
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+ BL = XRAM presence (00h no XRAM, 01h present)
+SeeAlso: AX=5F05h,AX=5F08h
+--------V-105F08-----------------------------
+INT 10 - Chips & Technologies '64300' BIOS - SET LINEAR MEMORY START ADDRESS
+ AX = 5F08h
+ BX = desired start address in megabytes
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F06h
+--------V-105F10-----------------------------
+INT 10 - Chips & Technologies '64300'/'65530' BIOS - GET LINEAR MEMORY INFO
+ AX = 5F10h
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+ BX:CX = linear memory base address
+ DX = virtual screen width offset (bytes)
+ SI;DI = linear memory size
+SeeAlso: AX=5F08h,AX=5FA0h
+--------V-105F50-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS
+ AX = 5F50h
+Return: DL = display status (see #00183)
+Note: this call can be used on Toshiba laptops since ~1995 instead of
+ INT 42/AX=7503h which is no longer supported with the F655xx chips
+SeeAlso: INT 42/AX=7503h
+
+Bitfields for display status:
+Bit(s) Description (Table 00183)
+ 7-4 always 0 ???
+ 3 1: both displays active (bit 1 also set)
+ 2 1: normal (monochrome display only), 0: inverse or color
+ 1 1: internal display active, 0: external only
+ 0 always set ???
+--------V-105F50-----------------------------
+INT 10 - Chips & Technologies '65530' BIOS - GET 655xx INFORMATION
+ AX = 5F50h
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+ BX = width of flat panel in pixels
+ CX = height of flat panel in pixels
+ DX = F65520/525/530 status (see #00184)
+SeeAlso: AX=5F51h,INT 15/AX=5F31h
+
+Bitfields for C&T F65520/525/530 status:
+Bit(s) Description (Table 00184)
+ 15-0 reserved
+ 6-5 type of clock chip
+ 00 = 404
+ 01 = 404A
+ 10 = 404B ES
+ 11 = 404B
+ 4 accelerator enabled
+ 3 both displays active
+ 2 video polarity (1 = inverted)
+ 1 output device
+ 0 CRT
+ 1 flat panel (LCD)
+ 0 reserved
+--------V-105F51-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - SWITCH DISPLAY DEVICE
+ AX = 5F51h
+ BL = new active display
+ 00h CRT
+ 01h flat panel (LCD)
+ 02h both simultaneously
+ BH = 01h to allow reprogramming the DAC
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F50h,AX=5F53h
+--------V-105F53-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE ACCELERATOR SUPPORT
+ AX = 5F53h
+ BL = new support state
+ 00h disable buffer/accelerator
+ 01h enable buffer/acelerator
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F50h,AX=5F51h,AX=5F54h
+--------V-105F54-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - TURN FLAT PANEL ON/OFF
+ AX = 5F54h
+ BL = new state
+ 00h on
+ 01h off
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F50h,AX=5F51h,AX=5F53h,AX=5F5Ah
+--------V-105F5A-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - SET FLAT-PANEL VIDEO POLARITY
+ AX = 5F5Ah
+ BL = new video polarity
+ 00h normal
+ 01h inverted
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F50h,AX=5F54h
+--------V-105F5C-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - SET VERTICAL COMPENSATION
+ AX = 5F5Ch
+ BL = type of vertical compensation to use
+ 00h no compensation
+ 01h automatic centering
+ 02h set centering register
+ DX = centering value (bits 9-0 only)
+ 03h non-automatic centering
+ 04h set vertical line insertion register
+ DL = vertical line insertion (bits 3-0 only)
+ 05h set alternate maximum scanline register
+ DL = alternate maximum scanline (bits 4-0 only)
+ 06h enable text stretching, type 0
+ 07h enable text stretching, type 1
+ 08h enable text stretching, type 2
+ 09h enable text stretching, type 3
+ 0Ah disable text stretching
+ 0Bh set vertical line replication register
+ DL = vertical line replication (bits 3-0 only)
+ 0Ch enable graphics stretching, type 0
+ 0Dh enable graphics stretching, type 1
+ 0Eh disable vertical graphics stretching
+ 0Fh disable all horizontal and vertical compensation
+ 10h enable optimal compensation
+ 11h disable optimal compensation
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F50h,AX=5F5Eh,AX=5F5Fh
+--------V-105F5E-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - EN/DISABLE TALL FONT LOADING
+ AX = 5F5Eh
+ BL = new state of tall-font loading
+ 00h enable loading of 8x19/30/32 fonts
+ 01h disable loading of 8x19/30/32 fonts
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+Note: when tall fonts are enabled, the fonts are stretched by duplicating
+ scan lines as appropriate to convert an 8x16 font to the proper
+ height (scan lines 1/9/12 [8x19] or 2-15 [8x30] or all [8x32])
+SeeAlso: AX=5F5Ch,AX=5F5Fh
+--------V-105F5F-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - HORIZONTAL COMPENSATION
+ AX = 5F5Fh
+ BL = horizontal compensation type
+ 00h none
+ 01h automatic centering
+ 02h set centering register
+ DL = centering value
+ 03h non-automatic centering
+ 04h enable text compression (force 8xN fonts)
+ 05h disable text compression (allow 9xN fonts)
+ 06h enable auto doubling
+ 07h disable auto doubling
+ 0Fh disable all horizontal and vertical compensation
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AX=5F50h,AX=5FA0h
+--------V-105F90-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - GET SUPERVGA STATE BUFFER SIZE
+ AX = 5F90h
+ CX = state mask (see #00185)
+Return: AL = 5Fh if function supported
+ BX = number of 64-byte blocks required
+SeeAlso: AH=1Ch,AX=5F03h,AX=5F91h,AX=5F92h,AX=5FA0h
+
+Bitfields for Chips&Technologies state mask:
+Bit(s) Description (Table 00185)
+ 0 video hardware
+ 1 BIOS data state
+ 2 DAC state
+ 15 type (0 all state info, 1 SuperVGA state only)
+--------V-105F91-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - SAVE SUPERVGA STATE
+ AX = 5F91h
+ CX = state mask (see #00185)
+ ES:BX -> save buffer
+Return: AL = 5Fh if function supported
+ buffer at ES:BX filled
+SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h,AX=5FA1h
+--------V-105F92-----------------------------
+INT 10 - Chips & Technologies Extended BIOS - RESTORE SUPERVGA STATE
+ AX = 5F92h
+ CX = state mask (see #00185)
+ ES:BX -> previously-filled save buffer
+Return: AL = 5Fh if function supported
+SeeAlso: AH=1Ch,AX=5F03h,AX=5F90h,AX=5F92h,AX=5FA2h
+--------V-105FA0-----------------------------
+INT 10 - Chips & Technologies Wingine DGX - GET EXTENDED BIOS SAVE BUFFER SIZE
+ AX = 5FA0h
+ CX = state(s) to be saved (see #00186)
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+ BX = number of 64-byte blocks required for state
+SeeAlso: AH=1Ch,AX=5FA1h,AX=5FA2h,AX=5F90h,AX=4F04h
+
+Bitfields for C&T BIOS save/restore state type:
+Bit(s) Description (Table 00186)
+ 0 video hardware
+ 1 BIOS data
+ 2 DAC and color registers
+ 14 (65530 BIOS with AL=A1h only) clear emulation state
+ 15 extended registers
+SeeAlso: #00048,#00085
+--------V-105FA1-----------------------------
+INT 10 - Chips & Technologies Wingine DGX - SAVE VIDEO STATE
+ AX = 5FA1h
+ CX = state(s) to be saved (see #00186)
+ ES:BX -> buffer for state information
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+ ES:BX buffer filled
+SeeAlso: AH=1Ch,AX=5FA0h,AX=5FA2h,AX=5F91h
+--------V-105FA2-----------------------------
+INT 10 - Chips & Technologies Wingine DGX - RESTORE VIDEO STATE
+ AX = 5FA2h
+ CX = state(s) to be restored (see #00186)
+ ES:BX -> buffer containing previously-saved state information
+Return: AL = 5Fh if function supported
+ AH = status
+ 00h unsuccessful
+ 01h successful
+SeeAlso: AH=1Ch,AX=5FA0h,AX=5FA1h,AX=5F92h
+--------V-1060------------------------------------
+INT 10 - HUNTER 16 - SET GRAPHICS FONT
+ AH = 60h
+ AL = new font
+ bit 7 output characters in reverse video
+ bits 0-6 font number (see #00200 at AH=77h)
+Return: BH = cell width
+ BL = cell height
+Desc: select the font to use for output in mode 6; this can be used to mix
+ fonts on the screen
+Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
+ members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
+SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
+--------V-1061------------------------------------
+INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
+ AH = 61h
+ CX = column
+ DX = row
+Return: nothing
+Note: this function is only valid in graphics modes
+SeeAlso: AH=62h
+--------V-1062------------------------------------
+INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
+ AH = 62h
+Return: CX = column
+ DX = row
+Note: this function is only valid in graphics modes
+SeeAlso: AH=61h
+--------V-1063------------------------------------
+INT 10 - HUNTER 16 - SET CONTRAST
+ AH = 63h
+ AL = contrast (0..127)
+Return: nothing
+Desc: set the LCD screen contrast to improve visibility
+SeeAlso: AH=64h,AH=75h
+--------V-1064------------------------------------
+INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
+ AH = 64h
+ AL = level (0..15)
+Return: nothing
+Desc: set the LCD backlight level to improve visibility in bad lighting
+SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
+--------V-106500----------------------------------
+INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
+ AX = 6500h
+Return: BX = timeout in seconds (0-300)
+Desc: returns the time after which the backlight will turn off
+SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
+--------V-106501----------------------------------
+INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
+ AX = 6501h
+ BX = timeout in seconds (0-300)
+Return: nothing
+Desc: set the idle time after which the backlight will turn off
+SeeAlso: AH=64h,AX=6500h
+--------V-1066------------------------------------
+INT 10 - HUNTER 16 - SPLIT DISPLAY
+ AH = 66h
+ AL = control bits (see #00187)
+ BH = top row of lower section of LCD (0..7)
+ BL = top row of lower section of the virtual screen (0..24)
+Return: nothing
+Desc: split the LCD screen horizontally into two parts; each part may be
+ individually scrollable or fixed.
+Note: the Hunter 16 has a 240x64 LCD display which serves as a window into
+ a 640x200 virtual screen
+
+Bitfields for HUNTER 16 control bits:
+Bit(s) Description (Table 00187)
+ 0-1 01: no split, 10: allow split
+ 2 allow scrolling the upper part
+ 3 allow scrolling the lower part
+--------V-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
+--------V-106A01CX0000-----------------------
+INT 10 - Direct Graphics Interface Standard (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
+--------V-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
+--------V-106D74-----------------------------
+INT 10 - MTRFONTS - INSTALLATION CHECK
+ AX = 6D74h ('mt')
+ DS:0104h = signature "MtRfOnTs"
+Return: AX = 4D54h ('MT') if installed
+ ES = PSP segment of resident code
+Program: MTRFONTS is a shareware TSR (part of the MTR package) by Mechon Mamre
+ which provides Hebrew screen fonts
+SeeAlso: INT 16/AX=6D74h"MTRTSR"
+--------V-106E00-----------------------------
+INT 10 - Paradise VGA internal - GET ???
+ AX = 6E00h
+Return: BX = 5744h ('WD') if supported
+ DH:AH:AL = last three ASCII digits of ROM serial number
+ CL = ???
+ CH = ???
+SeeAlso: AX=6E04h,AX=6E05h
+--------V-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=6E00h,AX=6E05h
+--------V-106E05-----------------------------
+INT 10 - Paradise VGA internal - SET MODE
+ AX = 6E05h
+ BL = mode
+Return: nothing
+Note: like AH=00h, AL=BL.
+SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
+--------V-106F00-----------------------------
+INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
+ AX = 6F00h
+ BX <> 4850h (usually set to 0000h for simplicity)
+Return: BX = 4850h ('HP') indicates HP Extended BIOS video functions present
+ AX destroyed
+SeeAlso: AX=6F00h"Video7",AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
+SeeAlso: INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
+--------V-106F00BX0000-----------------------
+INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
+ AX = 6F00h
+ BX = 0000h
+Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
+SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
+--------V-106F01-----------------------------
+INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO
+ AX = 6F01h
+Return: AL = monitor type code (HP,VEGA VGA only) (see #00188)
+ AH = status register information (see #00189)
+ CL = current value of Extended Control register (HP Ext BIOS, and only
+ if AL=41h) (see #00190)
+Notes: bits 0-3 are the same as the EGA/VGA status register bits 0-3
+ supported by original HP Vectra AT and by ES/QS/RS series Vectras
+
+(Table 00188)
+Values for monitor type code (HP Extended BIOS):
+ 00h non-HP card with ROM and possibly its own INT 10h driver
+ 41h MultiMode video display adapter
+ 42h-44h reserved
+ 45h industry standard monochrome display adapter
+ 46h industry standard color display adapter
+ 51h reserved
+
+Bitfields for status register information:
+Bit(s) Description (Table 00189)
+ 0 display enable
+ 0 = display enabled
+ 1 = vertical or horizontal retrace in progress
+ 1 light pen flip flop set
+ 2 light pen switch activated
+ 3 vertical sync
+ 4 monitor resolution
+ 0 = high resolution (>200 lines)
+ 1 = low resolution (<=200 lines)
+ 5 display type (0 = color, 1 = monochrome)
+ 6,7 diagnostic bits
+Note: bits 0-3 are the same as the EGA/VGA status register bits 0-3
+--------V-106F02-----------------------------
+INT 10 - HP Vectra EX-BIOS - SET MONITOR INFO
+ AX = 6F02h
+ BL = new value for extended control register (see #00190)
+Return: AX,BL destroyed
+Notes: this function is only valid when an HP MultiMode Video Display Adapter
+ is installed
+ the Extended Control register is at I/O address 3DDh
+SeeAlso: AX=6F01h,AX=6F03h
+
+Bitfields for HP Vectra extended control register:
+Bit(s) Description (Table 00190)
+ 0 screen resolution (0 = 200 lines, 1 = 400 lines)
+ 1 underline enable (if set, 'blue' of fg color = underline)
+ 2 font (0 = Standard-8, 1 = HP-Roman-8)
+ 3 memory disabled for CPU access
+ 4 allow access to full 32K memory instead of wrapping at 16K
+ 5 select second 16K page instead of first
+ 6,7 unused
+--------V-106F03-----------------------------
+INT 10 - HP Vectra EX-BIOS - MODIFY MONITOR INFO
+ AX = 6F03h
+ BH = exclude mask (set bits are not modified)
+ BL = new values for bits indicated by BH (see #00190)
+Return: AX destroyed
+Notes: this function is only valid when an HP MultiMode Video Display Adapter
+ is installed
+ supported by original HP Vectra AT and by ES/QS/RS series Vectras
+SeeAlso: AX=6F01h,AX=6F02h
+--------V-106F04-----------------------------
+INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
+ AX = 6F04h
+Return: AL = current video mode (see #00191)
+ BX = horizontal columns (text) or pixels (graphics)
+ CX = vertical columns (text) or pixels (graphics)
+SeeAlso: AX=6F05h
+--------V-106F05-----------------------------
+INT 10 - VIDEO - Video7 VGA,VEGA EXTENDED EGA/VGA,HP Vectra - SET VIDEO MODE
+ AX = 6F05h
+ BL = mode (see #00191)
+Return: AX,BL destroyed
+Notes: also supported by the HP Vectra Extended BIOS on the original
+ HP Vectra AT and by ES/QS/RS series Vectras
+ on the HP Vectra, this function rather than AH=00h must be used to
+ return to an IBM-standard mode after setting an HP-specified mode
+ from 08h to 0Fh.
+SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
+
+(Table 00191)
+Values for Video7/VEGA video mode:
+ text/ text pixel pixel colors disply scrn system
+ grph resol box resolution pages addr
+ 00h-13h = standard IBM modes (see #00010 at AH=00h)
+ 08h = T 80x27 . . mono . . HP MultiMode Video
+ 09h = T 80x27 . . . . . HP MultiMode Video
+ 0Ah = T 40x27 . . mono . . HP MultiMode Video
+ 0Bh = T 40x27 . . . . . HP MultiMode Video
+ 0Ch = reserved HP MultiMode Video
+ 0Dh = G . . 640x400 . . . HP MultiMode Video
+ 0Eh = G . . 320x400 . . . HP MultiMode Video
+ 0Fh = G . . 320x400 . . . HP MultiMode Video
+ 40h = T 80x43 8x8 . . . . Video7/VEGA VGA
+ 41h = T 132x25 8x14 . . . . Video7/VEGA VGA
+ 42h = T 132x43 8x8 . . . . Video7/VEGA VGA
+ 43h = T 80x60 8x8 . . . . Video7/VEGA VGA
+ 44h = T 100x60 8x8 . . . . Video7/VEGA VGA
+ 45h = T 132x28 8x8 . . . . Video7/VEGA VGA
+ 60h = G . . 752x410 16 . . Video7 VGA, VEGA VGA
+ 61h = G . . 720x540 16 . . Video7 VGA, VEGA VGA
+ = G . . 720x540 16 . . Northgate, Headland 1024i
+ 62h = G . . 800x600 16 . . Video7 VGA, VEGA Ext EGA
+ = G . . 800x600 16 . . Headland 1024i
+ 63h = G . . 1024x768 2 . . Video7 VGA
+ 64h = G . . 1024x768 4 . . Video7 VGA
+ 65h = G . . 1024x768 16 . . Video7 VGA, VEGA Ext EGA
+ = G . . 1024x768 16 . . Headland 1024i
+ 66h = G . . 640x400 256 . . Video7 VGA, VEGA Ext VGA
+ = G . . 640x400 256 . . Northgate, Headland 1024i
+ 67h = G . . 640x480 256 . . Video7 VGA, VEGA Ext VGA
+ = G . . 640x480 256 . . Headland 1024i
+ 68h = G . . 720x540 256 . . Video7 VGA, VEGA Ext VGA
+ = G . . 720x540 256 . . Headland 1024i
+ 69h = G . . 800x600 256 . . Video7 VGA, VEGA Ext VGA
+ = G . . 800x600 256 . . Headland 1024i
+ 70h = G . . 752x410 16gray . . Video7 VGA, VEGA VGA
+ 71h = G . . 720x540 16gray . . Video7 VGA, VEGA VGA
+ 72h = G . . 800x600 16gray . . Video7 VGA
+ 73h = G . . 1024x768 2gray . . Video7 VGA
+ 74h = G . . 1024x768 4gray . . Video7 VGA
+ 75h = G . . 1024x768 16gray . . Video7 VGA
+ 76h = G . . 640x400 256gray . . Video7 VGA
+ 77h = G . . 640x480 256gray . . Video7 VGA
+ 78h = G . . 720x540 256gray . . Video7 VGA
+ 79h = G . . 800x600 256gray . . (future)
+SeeAlso: AH=00h,#00010,AX=0070h,#00011,AX=007Eh,AX=6F04h,#00083
+Index: video modes;Video 7|video modes;VEGA|video modes;Headland
+--------V-106F06-----------------------------
+INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
+ 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)
+Return: nothing
+--------V-106F07-----------------------------
+INT 10 - VIDEO - Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
+ AX = 6F07h
+Return: AL = 6Fh
+ AH = memory configuration
+ 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
+--------V-1070-------------------------------
+INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
+ 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
+--------V-1070------------------------------------
+INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
+ AH = 70h
+ DS:BX -> control block (see #00192)
+Return: nothing
+Desc: Draws a circle or ellipse. Only valid in graphics modes.
+Note: the Husky Hunter 16 is an 8088-based ruggedized laptop. Other family
+ members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
+SeeAlso: AH=71h"HUNTER"
+
+Format of HUNTER 16 control block:
+Offset Size Description (Table 00192)
+ 00h WORD center X co-ordinate
+ 02h BYTE center Y co-ordinate
+ 03h WORD radius in pixels
+ 05h BYTE color (00h white, 01h black, FFh invert)
+ 06h BYTE aspect ratio x:x (1-127)
+ 07h BYTE aspect ratio y:y (1-127)
+--------V-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 (see #00193)
+ CH = feature bits (see #00194)
+ DX = video board info
+ bits 4-15: board ID model (see #00195)
+ bits 0-3: board ID revision
+ DI = BCD BIOS version number
+SeeAlso: AX=5F01h,AH=FFh"Oak"
+
+(Table 00193)
+Values for Everex 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
+
+Bitfields for Everex feature bits:
+Bit(s) Description (Table 00194)
+ 7-6 memory size
+ 00 = 256K
+ 01 = 512K
+ 10 = 1024K
+ 11 = 2048K
+ 5 special oscillator present
+ 4 VGA protect enabled
+ 0 6845 emulation
+
+(Table 00195)
+Values for board model for Trident-based Everex cards:
+ 0236h Ultragraphics II
+ 0620h Vision VGA
+ 0673h EVGA
+ 0678h Viewpoint
+--------V-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
+--------V-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 #00196)
+ DL = monitor type to get info for
+ ES:DI -> buffer for mode info (see #00197)
+Return: CL = total number of modes fitting criteria
+ CH = size of each info record
+SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
+
+(Table 00196)
+Values for Everex 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 Everex mode information record:
+Offset Size Description (Table 00197)
+ 00h BYTE mode number (bit 7 set if extended mode)
+ 01h BYTE mode type (see #00196)
+ 02h BYTE info bits (see #00198)
+ 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
+
+Bitfields for Everex info bits:
+Bit(s) Description (Table 00198)
+ 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
+--------V-1071-------------------------------
+INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
+ AH = 71h
+Return: AX:BX -> WORD containing segment address of INCRAM
+ AX:CX -> WORD containing offset of INCRAM
+SeeAlso: AH=70h"TANDY"
+--------V-1071------------------------------------
+INT 10 - HUNTER 16 - DRAW LINE/BOX
+ AH = 71h
+ DS:BX -> control block (see #00199)
+Return: nothing
+Desc: Draws a line or box. Only valid in graphics modes.
+SeeAlso: AH=70h"HUNTER"
+
+Format of HUNTER 16 control block:
+Offset Size Description (Table 00199)
+ 00h WORD left edge X co-ordinate
+ 02h BYTE lower edge Y co-ordinate
+ 03h WORD right edge X co-ordinate
+ 05h BYTE upper edge Y co-ordinate
+ 06h BYTE color (00h white, 01h black, FFh invert)
+ 07h BYTE type (00h line, 01h box)
+ 08h BYTE if non-zero (and type is BOX) fill with color
+--------V-1072-------------------------------
+INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
+ 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
+Return: nothing
+SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
+--------V-1072------------------------------------
+INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
+ AH = 72h
+ AL = mechanism to use
+ 00h do not use inverse video
+ 01h emulate MDA. Display attribute 07h is normal video and 70h is
+ inverse video.
+ 02h use inverse video if background is non-black.
+ 03h use inverse video for high intensity text.
+ 04h use inverse video for text with background intensity greater
+ than foreground intensity.
+ 05h use inverse video for text with background color other than
+ black or high intensity foreground.
+Return: nothing
+SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
+--------V-1073-------------------------------
+INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
+ 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
+Return: nothing
+SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
+--------V-1073------------------------------------
+INT 10 - HUNTER 16 - SELECT TEXT FONT
+ AH = 73h
+ AL = new font
+ 00h 7x7 in a 8x8 cell
+ 01h 5x7 in a 6x8 cell
+ 06h 3x5 in a 4x6 cell
+Return: BH = cell width
+ BL = cell height
+SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
+--------V-1074------------------------------------
+INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
+ AH = 74h
+ DH = row (0..24)
+ DL = column (0..79)
+Return: nothing
+Desc: set the position in the virtual screen being displayed in the LCD
+ screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
+ position for the window which has the cursor.
+SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
+--------V-1075------------------------------------
+INT 10 - HUNTER 16 - SET ZOOM
+ AH = 75h
+ AL = new Zoom state (00h off, nonzero on)
+Return: nothing
+SeeAlso: AH=74h,AH=76h
+--------V-1076------------------------------------
+INT 10 - HUNTER 16 - LOOKING KEYS
+ AH = 76h
+ AL = action
+ 00h home the window
+ 01h move up one line
+ 02h move down one line
+ 03h move left one character
+ 04h move right one character
+ 05h flip window to other side of virtual screen
+Return: nothing
+Desc: moves the displayed screen around the virtual screen
+SeeAlso: AH=74h,AH=75h
+--------V-1077------------------------------------
+INT 10 - HUNTER 16 - GET GRAPHICS FONT
+ AH = 77h
+Return: AL = font number (see #00200)
+SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
+
+(Table 00200)
+Values for HUNTER 16 graphics font number:
+ 00h 7x7 in a 8x8 cell
+ 01h 5x7 in a 6x8 cell
+ 02h 7x9 in a 8x10 cell
+ 03h 14x9 in a 16x10 cell
+ 04h 7x18 in a 8x20 cell
+ 05h 14x18 in a 16x20 cell
+ 06h 3x5 in a 4x6 cell
+Note: size is X * Y
+--------V-1078------------------------------------
+INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
+ AH = 78h
+ AL = new state of backlight (00h on, 01h off)
+Return: nothing
+SeeAlso: AH=64h,INT 15/AH=74h
+--------V-107F-------------------------------
+INT 10 - Paradise SVGA - WD90C24 INSTALLATION CHECK
+ AH = 7Fh
+Return: AX = 1234h if WD90C24 chip installed
+--------V-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 #00201)
+ 01h failed
+Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
+ an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
+ Seiko Epson Corporation intended to provided a standardized interface
+ to SuperVGA functionality not addressed by the VESA standard
+SeeAlso: AX=4F00h
+
+Format of SOLLEX SuperVGA info structure:
+Offset Size Description (Table 00201)
+ 00h DWORD pointer to VESA function dispatch table
+ 04h DWORD pointer to SOLLEX function dispatch table
+ 08h DWORD pointer to VESA SuperVGA info (see #00077 at AX=4F00h)
+ 0Ch DWORD pointer to mode info structure table, consisting of
+ alternating ResInfo (see #00202) and VESA mode information
+ (see #00079 at AX=4F01h) blocks, terminated with an FFFFh word
+ 10h DWORD pointer to font info structure table (see #00203)
+ 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 SOLLEX SuperVGA ResInfo:
+Offset Size Description (Table 00202)
+ 00h WORD 16-bit mode number
+ 02h WORD adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
+ 04h WORD display info (see #00206)
+ 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 #00204)
+SeeAlso: #00201
+
+Format of SOLLEX SuperVGA font info table [array] entry:
+Offset Size Description (Table 00203)
+ 00h BYTE required font height
+ 01h BYTE parameter to load text mode font
+ 02h BYTE parameter to load graphics mode font
+SeeAlso: #00201
+
+(Table 00204)
+Values for SOLLEX SuperVGA clock value index:
+ 00h 25 MHz
+ 01h 28 MHz
+ 02h PCLK
+ 03h 31.5 MHz (VESA 640x480)
+ 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 1024x768)
+ 0Ch 80 MHz
+ 0Dh 40 MHz
+ 0Eh 65 MHz
+ 0Fh 1 MHz (for powerdown)
+SeeAlso: #00201
+--------V-107F00BX4000-----------------------
+INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
+ AX = 7F00h
+ BX = 4000h
+Return: AX = 007Fh if supported
+ DX:BX -> DAC set mode routine
+SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h,#00732 at INT 1A/AX=B102h
+--------V-107F00BX4001-----------------------
+INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
+ AX = 7F00h
+ BX = 4001h
+Return: AX = 007Fh if supported
+ CX = current linear address base (high word)
+SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
+--------V-107F00BX4002-----------------------
+INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
+ AX = 7F00h
+ BX = 4002h
+ CX = new linear address base (high word)
+Return: AX = 007Fh if supported
+SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
+--------V-107F01BL00-------------------------
+INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
+ AX = 7F01h
+ BL = 00h
+ CX = adapter request (see #00205)
+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"SOLLEX",AX=7F01h/BL=01h,AX=7F01h/BL=02h
+
+Bitfields for SOLLEX SuperVGA adapter request:
+Bit(s) Description (Table 00205)
+ 1-0 adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
+ 2 reserved
+ 4-3 change displays (00 none, 01 analog 10 digital 11 panel)
+ 6-5 desired monitor sense (01 color, 10 mono, 11=8514)
+ 7 lock override
+ 8 alternate adapter mode
+ 15-9 reserved
+--------V-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 #00205)
+ DX = display type (see #00206)
+SeeAlso: AX=7F00h"SOLLEX",AX=7F01h/BL=00h,AX=7F01h/BL=02h
+
+Bitfields for SOLLEX SuperVGA display type:
+Bit(s) Description (Table 00206)
+ 15-9 reserved
+ 8 alternate display active
+ 7 Enhanced Color Display monitor active
+ 6 multi-frequency digital monitor active
+ 5 PS/2-type monitor active
+ 4 plasma/electroluminescent panel active
+ 3 LCD panel active
+ 2 multi-frequency analog monitor active
+ 1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)
+--------V-107F01BL02-------------------------
+INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
+ AX = 7F01h
+ BL = 02h
+ CX = adapter request (see #00205)
+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"SOLLEX",AX=7F01h/BL=00h
+--------V-107F02BL00-------------------------
+INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
+ AX = 7F02h
+ BL = 00h
+ CX = display output setting (see #00207)
+Return: AL <> 7Fh if not supported
+ AL = 7Fh if supported
+ AH = status
+ 00h successful
+ 01h failed
+SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
+
+Bitfields for SOLLEX SuperVGA display output setting:
+Bit(s) Description (Table 00207)
+ 0 CRTC control in 2,1 valid
+ 1 enable digital output
+ 2 enable analog output
+ 3 panel control in 5,4 valid
+ 4 enable LCD output
+ 5 enable plasma/EL output
+ 6 inverse control in 7 valid
+ 7 0=normal, 1=inverse
+ 15-8 reserved
+--------V-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 #00207)
+ CX = displays attached (see #00208)
+ 01h failed
+SeeAlso: AX=7F00h"SOLLEX",AX=7F02h/BL=00h
+
+Bitfields for SOLLEX SuperVGA displays attached:
+Bit(s) Description (Table 00208)
+ 0 PS/2 display on analog output
+ 1 multi-frequency monitor on analog output
+ 2 LCD panel attached
+ 3 plasma/electroluminescent panel attached
+ 4 multi-frequency monitor on digital output
+ 5 Enhanced Color Display attached to digital outpt
+ 6 alternate display
+ 15-7 reserved
+--------V-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
+--------V-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
+--------V-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"SOLLEX",AX=7F03h/BL=01h
+--------V-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"SOLLEX",AX=7F04h/BL=01h
+--------V-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"SOLLEX",AX=7F04h/BL=00h
+--------V-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"SOLLEX",AX=7F04h/BL=03h
+--------V-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"SOLLEX",AX=7F04h/BL=02h
+--------V-107F05-----------------------------
+INT 10 - SOLLEX SuperVGA - LOAD REGISTER
+ AX = 7F05h
+ ES:DI -> register value table (see #00209)
+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 SOLLEX SuperVGA register value table:
+Offset Size Description (Table 00209)
+ 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)
+--------V-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: AX=1100h,AX=1103h
+--------V-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
+--------A-1080-------------------------------
+INT 10 - CU Writer v1.4 - GET OPTION
+ AH = 80h
+ AL = desired option
+Return: ???
+Program: CU Writer is a public-domain Thai-English word processor from
+ Chulalongkorn University, Bangkok
+SeeAlso: AH=81h"CU Writer"
+--------Q-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
+--------A-1081-------------------------------
+INT 10 - CU Writer v1.4 - SET OPTION
+ AH = 81h
+ ???
+Return: ???
+SeeAlso: AH=80h"CU Writer"
+--------Q-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"DESQview"
+--------Q-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"DESQview"
+--------J-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
+--------J-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
+----------1086-------------------------------
+INT 10 - ???
+ AH = 86h
+Note: called by Diamond Stealth64 Video STLTH64.VXD
+SeeAlso: INT 2F/AX=4021h
+--------N-108B-------------------------------
+INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
+ AH = 8Bh
+Return: nothing
+SeeAlso: AH=92h,AH=93h
+--------N-1090-------------------------------
+INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
+ AH = 90h
+Return: AL = current video mode (see #00010 at AH=00h)
+SeeAlso: AH=91h
+--------N-1091-------------------------------
+INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
+ AH = 91h
+Return: AL = video adapter type (see #00210)
+Note: types less than 80h do not imply that the current user is on the host
+SeeAlso: AH=90h
+
+(Table 00210)
+Values for Alloy MW386 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
+--------N-1092-------------------------------
+INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
+ AH = 92h
+Return: nothing
+Note: the terminal will be updated even when screen updates are inhibited if
+ TTY output is used
+SeeAlso: AH=8Bh
+--------N-1093-------------------------------
+INT 10 - Alloy MW386 - REDRAW SCREEN
+ AH = 93h
+Return: nothing
+SeeAlso: AH=8Bh,AH=FFh
+--------V-109508-----------------------------
+INT 10 - VHRBIOS.SYS - ???
+ AX = 9508h
+Return: ???
+Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
+ black&white A4/portrait monitor
+SeeAlso: AH=96h"VHRBIOS.SYS",AH=F0h"VHRBIOS.SYS"
+--------V-1096-------------------------------
+INT 10 - VHRBIOS.SYS - GET OTHER DISPLAY INFO
+ AH = 96h
+Return: AL = display type (see AH=1Ah)
+ AH = ??? (possibly related to Micro Channel support)
+Program: VHRBIOS.SYS is a driver for the Micro Display Systems "TheGenius"
+ black&white A4/portrait monitor
+Desc: returns info on any non-Genius video adapter in the system
+SeeAlso: AX=9508h"VHRBIOS.SYS",AH=F0h"VHRBIOS.SYS"
+--------A-10A0-------------------------------
+INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
+ AH = A0h
+ ???
+Return: ???
+Program: CU Writer is a public-domain Thai-English word processor from
+ Chulalongkorn University, Bangkok
+SeeAlso: AH=80h"CU Writer",AH=B0h
+--------p-10A000-----------------------------
+INT 10 - ATI BIOS Extensions - ???
+ AX = A000h
+ CL = ??? (bits 2-0 may not be 000)
+ CH = ??? (81h or ???)
+ DX = segment of ??? (if CH=81h)
+ ???
+Return: AX = ???
+Program: the ATI BIOS extensions are supported by ATI graphics cards containing
+ the Mach64 or newer graphics chips (Rage Pro, Rage 128, etc.)
+SeeAlso: AX=4F10h/BL=00h,AX=A001h
+----------10A001-----------------------------
+INT 10 - ATI Mach64 BIOS - ???
+ AX = A001h
+ CL = ??? flags
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+SeeAlso: AX=A000h,AX=A002h
+----------10A002-----------------------------
+INT 10 - ATI Mach64 BIOS - ???
+ AX = A002h
+ CL = ??? (bits 2-0 may not be 000)
+ CH = ??? (81h or ???)
+ DX = segment of ??? (if CH=81h)
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+Note: executes AX=A000h, then AX=A001h if A000h was successful
+SeeAlso: AX=A000h,AX=A001h
+----------10A003-----------------------------
+INT 10 - ATI Mach64 BIOS - ???
+ AX = A003h
+ BX = ???
+ ???
+Return: AH = status (00h successful)
+ ???
+SeeAlso: AX=A000h,AX=A002h
+--------V-10A004-----------------------------
+INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE
+ AX = A004h
+ ???
+Return: ???
+Desc: configure display parameters
+SeeAlso: AX=A01Bh"PhoenixVIEW/LC"
+----------10A004-----------------------------
+INT 10 - ATI Mach64 BIOS - ???
+ AX = A004h
+ BX = video mode??? (0000-00FFh)
+ DX = ??? (sent to some port [66ECh???] one bit at a time, high to low)
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+SeeAlso: AX=A000h,AX=A002h
+----------10A005-----------------------------
+INT 10 - ATI Mach64 BIOS - ???
+ AX = A005h
+ CL = ??? flags (bits 0,2, others?)
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+SeeAlso: AX=A000h,AX=A002h
+----------10A006-----------------------------
+INT 10 - ATI Mach64 BIOS - ???
+ AX = A006h
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+SeeAlso: AX=A000h,AX=A002h
+----------10A007-----------------------------
+INT 10 - ATI Mach64 BIOS - GET ???
+ AX = A007h
+Return: AH = 00h (successful)
+ AL = ??? (00h)
+ BX = ??? (15A0h in examined BIOS)
+ DX = segment of BIOS
+SeeAlso: AX=A000h,AX=A002h
+----------10A008-----------------------------
+INT 10 - ATI Mach64 BIOS - GET ??? SIZE
+ AX = A008h
+ CL = ??? flags
+ ???
+Return: AH = 00h (successful)
+ BX = size of ??? (0046h if CL bit 0 clear on entry)
+SeeAlso: AX=A000h,AX=A009h
+----------10A009-----------------------------
+INT 10 - ATI Mach64 BIOS - GET ???
+ AX = A009h
+ DX:BX -> buffer for ???
+ CL = ??? flags
+ ???
+Return: AH = status
+ 00h successful
+ DX:BX buffer filled
+ 01h failed
+ ???
+SeeAlso: AX=A000h,AX=A008h
+----------10A00A-----------------------------
+INT 10 - ATI Mach64 BIOS - GET ???
+ AX = A00Ah
+Return: AH = 00h (successful)
+ AL = ??? (01h)
+ BX = ??? (5938h)
+ CX = ??? (595Eh)
+ DX = segment of BIOS
+SeeAlso: AX=A000h,AX=A002h
+----------10A00B-----------------------------
+INT 10 - ATI Mach64 BIOS - ???
+ AX = A00Bh
+ BX = ???
+ CL = ??? flags
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+SeeAlso: AX=A000h,AX=A002h
+--------p-10A00C-----------------------------
+INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
+ AX = A00Ch
+ CL = new state
+ 00h normal operation
+ 01h standby
+ 02h suspend
+ 03h off
+Return: AH = status
+ 00h successful
+ 01h failed
+Note: CL bit 2 affects values written to video card's ports
+SeeAlso: AX=A000h,AX=A00Dh,AX=4F00h,AX=4F10h/BL=01h
+----------10A00D-----------------------------
+INT 10 - ATI Mach64 BIOS - GET SLEEP MODE
+ AX = A00Dh
+Return: AH = 00h (successful)
+ CL = current power mode
+ 00h normal operation
+ 01h standby
+ 02h suspend
+ 03h off
+SeeAlso: AX=A00Ch,AX=4F10h/BL=02h
+SeeAlso: AX=A00Ch,AX=A00Dh"Rage128"AX=4F10h/BL=02h
+--------V-10A00D-----------------------------
+INT 10 - ATI Rage128 BIOS - GET ???
+ AX = A00Dh
+ BL = subfunction
+ 00h ???
+ 01h ???
+ 02h ???
+ 03h ???
+ DX:DI -> buffer for results
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+SeeAlso: AX=A000h,AX=A00Dh"Mach64",AX=A015h
+----------10A00E-----------------------------
+INT 10 - ATI Mach64 BIOS - SET ???
+ AX = A00Eh
+ CL = ??? (00h-03h)
+Return: AH = status
+ 00h successful
+ 01h failed
+Notes: CL zero/nonzero are treated differently
+ NOP in All-in-Wonder 128 BIOS
+SeeAlso: AX=A000h,AX=A00Fh
+----------10A00F-----------------------------
+INT 10 - ATI Mach64 BIOS - GET ???
+ AX = A00Fh
+Return: AH = 00h (successful)
+ CL = ??? (00h-03h, read from PORT 42ECh)
+Note: NOP in All-in-Wonder 128 BIOS
+SeeAlso: AX=A000h,AX=A00Eh
+----------10A010-----------------------------
+INT 10 - ATI Mach64 BIOS - ???
+ AX = A010h
+ CL = ??? (80h/other)
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+Note: NOP in All-in-Wonder 128 BIOS
+SeeAlso: AX=A000h,AX=A002h
+----------10A011-----------------------------
+INT 10 - ATI Mach64 BIOS - GET ???
+ AX = A011h
+Return: AH = 00h (successful)
+ BL = ??? (1Fh)
+ BH = ??? (0Fh)
+ CL = ??? (00h)
+ CH = ??? (0Fh)
+ DX = ??? (00FFh)
+Note: NOP in All-in-Wonder 128 BIOS
+SeeAlso: AX=A000h,AX=A010h
+--------V-10A012-----------------------------
+INT 10 - ATI Mach64 BIOS - GET ???
+ AX = A012h
+Return: AH = 00h (successful)
+ AL = ??? (00h)
+ BX = ??? (0000h)
+ CX = ??? (0000h)
+ DX = ??? (02ECh)
+Note: NOP in All-in-Wonder 128 BIOS
+SeeAlso: AX=A000h,AX=A002h
+--------V-10A013-----------------------------
+INT 10 - ATI Mach64 BIOS - ???
+ AX = A013h
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+Note: not implemented in examined Mach64 BIOS, always returns AH=01h; NOP in
+ examined All-in-Wonder 128 BIOS
+SeeAlso: AX=A000h,AX=A002h
+--------V-10A014-----------------------------
+INT 10 - ATI Rage128 BIOS - ???
+ AX = A014h
+ CH = ??? (bits 0,1,4)
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+SeeAlso: AX=A000h,AX=A015h
+--------V-10A015-----------------------------
+INT 10 - ATI Rage128 BIOS - GET/SET ???
+ AX = A015h
+ CH = subfunction
+ 00h get ???
+ 01h set ???
+ CL = ??? (only bits 0,1 used on All-in-Wonder 128)
+ other NOP
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+SeeAlso: AX=A014h,AX=A017h
+--------V-10A016-----------------------------
+INT 10 - ATI Rage128 BIOS - NOP
+ AX = A016h
+Return: nothing
+SeeAlso: AX=A000h,AX=A017h
+--------V-10A017-----------------------------
+INT 10 - ATI Rage128 BIOS - ???
+ AX = A017h
+ ???
+Return: AH = status
+ 00h successful
+ 01h failed
+ ???
+SeeAlso: AX=A014h,AX=A015h
+--------V-10A01B-----------------------------
+INT 10 - PhoenixVIEW/LC - CRT MONITOR DETECTION
+ AX = A01Bh
+ ???
+Return: ???
+Desc: determine whether an external display is currently attached
+SeeAlso: AX=A004h"PhoenixVIEW/LC"
+--------U-10AA-------------------------------
+INT 10 OU - Player's Tool 3.0 - UNINSTALL
+ AH = AAh
+Return: ???
+Note: this call has been removed in PT 3.996b
+Program: Player's Tool is a game cheater by Dmitry Yakunin & Andy Robinson
+SeeAlso: AH=ABh,INT 2F/AH=AAh
+--------U-10AB-------------------------------
+INT 10 OU - Player's Tool 3.0 - INSTALLATION CHECK
+ AH = ABh
+Return: BH = FFh
+ ???
+Note: this call has been removed in PT 3.996b
+SeeAlso: AH=AAh,INT 2F/AH=ABh
+--------A-10B0-------------------------------
+INT 10 - CU Writer v1.4 - PUT PIXEL
+ AH = B0h
+ ???
+Return: ???
+SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
+--------A-10B1-------------------------------
+INT 10 - CU Writer v1.4 - MOVE TO
+ AH = B1h
+ ???
+Return: ???
+SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
+--------A-10B2-------------------------------
+INT 10 - CU Writer v1.4 - DRAW LINE TO
+ AH = B2h
+ ???
+Return: ???
+SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
+--------A-10B3-------------------------------
+INT 10 - CU Writer v1.4 - FLOOD FILL
+ AH = B3h
+ ???
+Return: ???
+SeeAlso: AH=B2h,AH=B5h
+--------A-10B4-------------------------------
+INT 10 - CU Writer v1.4 - DRAW RECTANGLE
+ AH = B4h
+ ???
+Return: ???
+SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
+--------A-10B5-------------------------------
+INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
+ AH = B5h
+ ???
+Return: ???
+SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
+--------V-10BB-------------------------------
+INT 10 U - Doorway - SET BIOS/DIRECT REDIRECTION
+ AH = BBh
+ AL = new redirection mode
+ 00h BIOS (hook and redirect INT 10h,etc.)
+ 01h DIRECT (scan video memory for changes)
+Return: ???
+SeeAlso: INT 16/AH=67h"Doorway"
+--------V-10BD44-----------------------------
+INT 10 U - Compaq QVision - ???
+ AX = BD44h
+ ???
+Return: ???
+Note: called by Compaq's MTX132.COM, which places the QVision in 132-column
+ mode
+--------!---Section--------------------------