home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / dos / tools / inter47 / interrup.a < prev    next >
Text File  |  1995-08-13  |  360KB  |  9,057 lines

  1. Interrupt List        Release 47            Last change 8/13/95
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  3. --------!---FILELIST-------------------------
  4. Please redistribute the following files unmodified as a group, in a quartet of
  5. archives named INTER47A through INTER47D (preferably the original authenticated
  6. PKZIP archives):
  7.     INTERRUP.1ST    the read-me file, containing credits, availability info
  8.     INTERRUP.A    INT 00 through INT 13/2F  \
  9.     INTERRUP.B    INT 13/30 through INT 15/4F\
  10.     INTERRUP.C    INT 15/50 through INT 1A/5F \  
  11.     INTERRUP.D    INT 1A through INT 21/43     \     total 1856 pages at
  12.     INTERRUP.E    INT 21/44 through INT 21/5F   \     60 lines per page,
  13.     INTERRUP.F    INT 21/60 through INT 21/FE    > 1979 with INTPRINT -p
  14.     INTERRUP.G    INT 21/FF through INT 2F/42   /     (7400 entries)
  15.     INTERRUP.H    INT 2F/43 through INT 2F/CF  /     (2734 tables)
  16.     INTERRUP.I    INT 2F/D0 through INT 5A    /
  17.     INTERRUP.J    INT 5B through INT 61       /
  18.     INTERRUP.K    INT 62 through INT 6E      /
  19.     INTERRUP.L    INT 6F through INT 7F     /
  20.     INTERRUP.M    INT 80 through INT FF   /
  21.     INTERRUP.PRI    a brief introduction to interrupts
  22.     INTPRINT.COM    a simple formatter that also generates a list summary
  23.     INTPRINT.DOC    instructions for INTPRINT
  24.     OVERVIEW.LST    brief listing of major uses of each interrupt
  25.     86BUGS.LST    a listing of CPU bugs and undocumented features
  26.     CMOS.LST    a description of the CMOS RAM data bytes
  27.     FARCALL.LST    APIs available through FAR CALLs
  28.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  29.     MEMORY.LST    format of the BIOS data area
  30.     OPCODES.LST    a listing of recent and undocumented CPU instructions
  31.     PORTS.LST    a listing of I/O ports
  32.     CATEGORY.KEY    descriptions of divider-line category letters
  33.     COMBINE.BAT    combine the pieces of the list into a single file
  34. The following files should be distributed in an archive called INTER47E:
  35.     86BUGSnn.ZIP    programs to test for CPU bugs
  36.     INT.*        invoke interrupts from commandline
  37.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  38.     INT2HLP.ZIP    convert list into QuickHelp database
  39.     INT2QH.*    program to convert list into QuickHelp database
  40.     INTHLP??.ZIP    Interrupt Helper viewer for the interrupt list
  41.     INTHELP.*    convert list into TurboPower GUIDE database
  42.     INTLIST.E    Epsilon extension for handling list
  43.     INTPRINT.C    source code for INTPRINT
  44.     RB2NG???.ZIP    convert list into Norton Guides database
  45.     INTERVUE.EXE    indexed interrupt list browser
  46.     INTLIST.ICO    Windows icon for INTERVUE
  47.     IV.BAT        wrapper for INTERVUE
  48. Finally, the following should be distributed in an archive called INTER47F:
  49.     INT2WHLP.ZIP    convert list into Windows Help database
  50.     HINTSRCH.ZIP    WinHelp DLL for full-text searches of interrupt list
  51.     WH_ED*.ZIP    WinHelp-file editor
  52. --------!---CONTACT_INFO---------------------
  53. If you notice any mistakes or omissions, please let me know!  It is only with
  54. YOUR help that the list can continue to grow at the current rate.  Please send
  55. all changes to me rather than distributing a modified version of the list.
  56.  
  57. Please read the file INTERRUP.1ST before asking me any questions.  You may find
  58. that they have already been addressed.
  59.  
  60.      Ralf Brown
  61.  
  62. Internet: ralf@telerama.lm.com
  63. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  64. FIDO: Ralf Brown 1:129/26.1
  65.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  66.     unless you address it to me)
  67. CIS:  >INTERNET:ralf@telerama.lm.com
  68.  
  69. I reply to all e-mail submissions and inquiries, but some of my replies bounce
  70. because of bad return paths.  If you don't get a response from me within a
  71. reasonable period of time, send it again with a better return path (starting at
  72. harvard or ucbvax for UUCP, from the Internet for others).
  73. --------!------------------------------------
  74. See INTERRUP.1ST for the key to system abbreviations and a list of the
  75. trademarks mentioned here.
  76. --------!---DISCLAIMER-----------------------
  77. DISCLAIMER:  THIS MATERIAL IS PROVIDED "AS IS".     I verify the information
  78. contained in this list to the best of my ability, but I cannot be held
  79. responsible for any problems caused by use or misuse of the information,
  80. especially for those functions not officially documented.  If it is marked
  81. "internal" or undocumented, you should check it carefully to make sure it
  82. works the same way in your version of the software (and please let me know
  83. whether or not it works the same way).    Information marked with "???" is
  84. known to be incomplete or guesswork.
  85. --------!---FLAGS----------------------------
  86. The use of -> instead of = signifies that the indicated register or register
  87. pair contains a pointer to the specified item, rather than the item itself.
  88. One or more letters may follow the interrupt number; they have the following
  89. meanings:  U - undocumented function, u - partially documented function,
  90. P - available only in protected mode, R - available only in real or V86 mode,
  91. C - callout or callback (usually hooked rather than called),
  92. O - obsolete (no longer present in current versions)
  93. --------!---CATEGORIES-----------------------
  94. The ninth column of the divider line preceding an entry usually contains a
  95. classification code (the entry has not been classified if that character is
  96. a dash).  The codes currently in use are:
  97.     A - applications, a - access software (screen readers, etc),
  98.     B - BIOS, b - vendor-specific BIOS extensions,
  99.     C - CPU-generated, c - caches/spoolers,
  100.     D - DOS kernel, d - disk I/O enhancements,
  101.     E - DOS extenders, e - electronic mail, F - FAX,
  102.     f - file manipulation, G - debuggers/debugging tools, g - games,
  103.     H - hardware, h - vendor-specific hardware,
  104.     I - IBM workstation/terminal emulators, i - system info/monitoring,
  105.     J - Japanese, j - joke programs,
  106.     K - keyboard enhancers, k - file/disk compression,
  107.     l - shells/command interpreters,
  108.     M - mouse/pointing device, m - memory management,
  109.     N - network, n - non-traditional input devices,
  110.     O - other operating systems,
  111.     P - printer enhancements, p - power management,
  112.     Q - DESQview/TopView and Quarterdeck programs,
  113.     R - remote control/file access, r - runtime support,
  114.     S - serial I/O, s - sound/speech,
  115.     T - DOS-based task switchers/multitaskers, t - TSR libraries
  116.     U - resident utilities, u - emulators,
  117.     V - video, v - virus/antivirus,
  118.     W - MS Windows, X - expansion bus BIOSes,
  119.     y - security, * - reserved (and not otherwise classified)
  120. --------C-00---------------------------------
  121. INT 00 C - CPU-generated - DIVIDE ERROR
  122. Desc:    generated if the divisor of a DIV or IDIV instruction is zero or the
  123.       quotient overflows the result register; DX and AX will be unchanged.
  124. Notes:    on an 8086/8088, the return address points to the following instruction
  125.     on an 80286+, the return address points to the divide instruction
  126.     an 8086/8088 will generate this interrupt if the result of a division
  127.       is 80h (byte) or 8000h (word)
  128. SeeAlso: INT 04
  129. --------G-00---------------------------------
  130. INT 00 - Zenith - ROM DEBUGGER
  131. Desc:    invokes the ROM Debugger when at the BIOS level; equivalent to
  132.       pressing Ctrl-Alt-Ins on booting.
  133. Note:    since DOS revectors INT 00, it is necessary to restore this vector to
  134.       its original ROM BIOS value in order to invoke the debugger once DOS
  135.       loads
  136. SeeAlso: INT 03"Columbia"
  137. --------C-01---------------------------------
  138. INT 01 C - CPU-generated - SINGLE STEP
  139. Desc:    generated after each instruction if TF (trap flag) is set; TF is
  140.       cleared on invoking the single-step interrupt handler
  141. Notes:    interrupts are prioritized such that external interrupts are invoked
  142.       after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  143.       first instruction of the handler executes
  144.     used by debuggers for single-instruction execution tracing, such as
  145.       MS-DOS DEBUG's T command
  146. SeeAlso: INT 03
  147. --------C-01---------------------------------
  148. INT 01 C - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
  149. Desc:    generated by the CPU on various occurrences which may be of interest
  150.       to a debugger program
  151. Note:    events which may trigger the interrupt:
  152.       Instruction address breakpoint fault - will return to execute inst
  153.       Data address breakpoint trap - will return to following instruction
  154.       General detect fault, debug registers in use
  155.       Task-switch breakpoint trap
  156.       undocumented 386/486 opcode F1h - will return to following instruc
  157. SeeAlso: INT 03
  158. --------H-02---------------------------------
  159. INT 02 C - external hardware - NON-MASKABLE INTERRUPT
  160. Desc:    generated by the CPU when the input to the NMI pin is asserted
  161. Notes:    return address points to start of interrupted instruction on 80286+
  162.     on the 80286+, further NMIs are disabled until the next IRET
  163.       instruction, but one additional NMI is remembered by the hardware
  164.       and will be serviced after the IRET instruction reenables NMIs
  165.     maskable interrupts may interrupt the NMI handler if interrupts are
  166.       enabled
  167.     although the Intel documentation states that this interrupt is
  168.       typically used for power-failure procedures, it has many other uses
  169.       on IBM-compatible machines:
  170.         Memory parity error: all except Jr, CONV, and some machines
  171.                   without memory parity
  172.         Breakout switch on hardware debuggers
  173.         Coprocessor interrupt: all except Jr and CONV
  174.         Keyboard interrupt: Jr, CONV
  175.         I/O channel check: CONV, PS50+
  176.         Disk-controller power-on request: CONV
  177.         System suspend: CONV
  178.         Real-time clock: CONV
  179.         System watch-dog timer, time-out interrupt: PS50+
  180.         DMA timer time-out interrupt: PS50+
  181.         Low battery: HP 95LX
  182.         Module pulled: HP 95LX
  183. --------C-03---------------------------------
  184. INT 03 C - CPU-generated - BREAKPOINT
  185. Desc:    generated by the one-byte breakpoint instruction (opcode CCh)
  186. Notes:    used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
  187.       command
  188.     also used by Turbo Pascal versions 1,2,3 when {$U+} specified
  189.     return address points to byte following the breakpoint instruction
  190.     called by Novell DOS 7 EMM386 after displaying an exception error
  191.       message (GPF, illegal opcodes, etc.) and before waiting for user
  192.       input
  193.     called by QEMM-386 if the user presses 'I' (undocumented) when prompted
  194.       after an exception error message
  195. SeeAlso: INT 01
  196. --------G-03---------------------------------
  197. INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
  198. Desc:    invokes the ROM Debugger if INT 03 has not been revectored; equivalent
  199.       to pressing Esc on booting.
  200. SeeAlso: INT 00"Zenith",INT 03"Realia"
  201. --------G-03---------------------------------
  202. INT 03 - Realia COBOL - DEBUGGER SUPPORT
  203. Note:    Realia COBOL checks for a signature eight bytes prior to the interrupt
  204.       handler when it starts up
  205. BUG:    if the offset of the INT 03 vector is less than 8, the compiler and
  206.       all executables generated by it will crash the system
  207. SeeAlso: INT 03"Columbia"
  208. --------G-03---------------------------------
  209. INT 03 U - Watcom WVIDEO, Watcom WD - OUTPUT DEBUGGING MESSAGE
  210.     STACK:    DWORD    selector
  211.         DWORD    offset of ASCIZ message to display
  212. Notes:    the INT 03h instruction which invokes the debugger must be followed by
  213.       a JMP SHORT and the signature string "WVIDEO"
  214.     to check whether this interface is available, define a public byte
  215.       variable named ___WD_Present, which the debugger will set to 01h
  216.       before running the program
  217. SeeAlso: AX=0910h
  218. --------U-03---------------------------------
  219. INT 03 - DTown Utilities - POP UP
  220. Program: DTown Software Development's DTown Utilities contains various tools
  221.       which are useful to programmers, such as a memory viewer and
  222.       disassembler
  223. Note:    DTU pops up on INT 03 (if not hooked by a debugger) to allow the
  224.       user to inspect memory or code when the machine crashes; various
  225.       memory managers will invoke INT 03 when displaying a CPU exception
  226.       error message (either automatically or when the user presses a
  227.       particular key)
  228. --------G-030910-----------------------------
  229. INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
  230.     AX = 0910h
  231.     SI = magic value 4647h ('FG')
  232.     DI = magic value 4A4Dh ('JM')
  233.     DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
  234. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  235. SeeAlso: INT 03"WVIDEO"
  236. --------G-030911-----------------------------
  237. INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
  238.     AX = 0911h
  239.     SI = magic value 4647h ('FG')
  240.     DI = magic value 4A4Dh ('JM')
  241.     DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
  242. --------G-030912-----------------------------
  243. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
  244.     AX = 0912h
  245.     SI = magic value 4647h ('FG')
  246.     DI = magic value 4A4Dh ('JM')
  247. Return: BH = entry number of last breakpoint set
  248.     BL = type of last breakpoint set (see #0001)
  249.     DH = entry number of last breakpoint to be triggered
  250.     DL = type of last triggered breakpoint (see #0001)
  251. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  252. SeeAlso: AX=0913h,AX=0914h
  253.  
  254. (Table 0001)
  255. Values for Soft-ICE breakpoint type:
  256.  00h    BPM (breakpoint register types)
  257.  01h    I/O
  258.  02h    INTerrupt
  259.  03h    BPX (INT 03h-style breakpoint)
  260.  04h    reserved
  261.  05h    range
  262. --------G-030913-----------------------------
  263. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
  264.     AX = 0913h
  265.     SI = magic value 4647h ('FG')
  266.     DI = magic value 4A4Dh ('JM')
  267.     DS:DX -> breakpoint structure (see #0002)
  268. Return: AX = status
  269.         00h successful
  270.         BX = breakpoint number
  271.         03h breakpoint table full
  272.         06h memory limit error
  273.         07h I/O limit error
  274.         09h range limit error
  275.         16h duplicate breakpoint
  276. SeeAlso: AX=0912h,AX=0914h
  277.  
  278. Format of Soft-ICE breakpoint structure:
  279. Offset    Size    Description    (Table 0002)
  280.  00h    BYTE    breakpoint type (see #0003)
  281.  01h    DWORD    breakpoint address 1
  282.         (lower range limit for memory BPs,
  283.         interrupt number for interrupt BPs,
  284.         address of BP for execution BPs,
  285.         I/O address (only word)    for I/O BPs)
  286.  05h    DWORD    breakpoint address 2
  287.         (upper range limit for memory BPs,
  288.         optional value to check for for interrupt BPs,
  289.         overlay number (0 = root) for execution BPs)
  290.  09h    DWORD    breakpoint address 3
  291.  0Dh    BYTE    breakpoint mode 1 (see #0004)
  292.         (for interrupt BPs = register to check
  293.             00h     no value checking
  294.             01h     check AL
  295.             02h     check AH
  296.             03h     check AX)
  297.  0Eh    BYTE    breakpoint mode 2 (see #0004)
  298.  0Fh    BYTE    breakpoint size (00h byte, 01h word, 03h dword)
  299.  10h    BYTE    breakpoint pass count before program stop
  300.  11h    BYTE    breakpoint state
  301. Note:    all unused fields should contain zeros
  302.  
  303. (Table 0003)
  304. Values for Soft-ICE breakpoint type:
  305.  00h    memory location
  306.  01h    memory range
  307.  03h    I/O
  308.  04h    interrupt
  309.  05h    execution break
  310.  
  311. (Table 0004)
  312. Values for Soft-ICE breakpoint mode:
  313.  01h    read
  314.  02h    write
  315.  04h    execution
  316. --------G-030914-----------------------------
  317. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
  318.     AX = 0914h
  319.     SI = magic value 4647h ('FG')
  320.     DI = magic value 4A4Dh ('JM')
  321.     BX = breakpoint number (returned by AX=0913h)
  322. Return: BX = ???
  323. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  324. SeeAlso: AX=0912h,AX=0913h
  325. --------C-04---------------------------------
  326. INT 04 C - CPU-generated - INTO DETECTED OVERFLOW
  327. Desc:    the INTO instruction will generate this interrupt if OF (Overflow Flag)
  328.       is set; otherwise, INTO is effectively a NOP
  329. Note:    may be used for convenient overflow testing (to prevent errors from
  330.       propagating) instead of JO or a JNO/JMP combination
  331. SeeAlso: INT 00
  332. --------B-05---------------------------------
  333. INT 05 - PRINT SCREEN
  334. Desc:    dump the current text screen to the first printer
  335. Notes:    normally invoked by the INT 09 handler when PrtSc key is pressed, but
  336.       may be invoked directly by applications
  337.     byte at 0050h:0000h contains status used by default handler
  338.       00h not active
  339.       01h PrtSc in progress
  340.       FFh last PrtSc encountered error
  341.     default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
  342. BUG:    some old BIOSes/applications appear to destroy BP on return
  343. SeeAlso: INT 10/AH=12h/BL=20h,INT 5E"TI Professional",INT 80"Phar Lap"
  344. --------C-05---------------------------------
  345. INT 05 C - CPU-generated (80186+) - BOUND RANGE EXCEEDED
  346. Desc:    generated by BOUND instruction when the value to be tested is less than
  347.       the indicated lower bound or greater than the indicated upper bound.
  348. Note:    returning from this interrupt re-executes the failing BOUND instruction
  349. --------P-05454A-----------------------------
  350. INT 05 U - PSPS v2.01 - EJECT PAGE
  351.     AX = 454Ah ('EJ')
  352. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  353.       Technologies
  354. Note:    sends a ^D to the current printer
  355. SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
  356. --------P-054E57-----------------------------
  357. INT 05 U - PSPS v2.01 - SET PARAMETERS
  358.     AX = 4E57h ('NW')
  359.     ES:SI -> 11-byte buffer containing new settings
  360. Return: buffer filled
  361. SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
  362. --------P-055053-----------------------------
  363. INT 05 U - PSPS v2.01 - GET PARAMETERS
  364.     AX = 5053h ('PS')
  365.     ES:SI -> 11-byte buffer for settings
  366. Return: buffer filled
  367. SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
  368. --------P-05554E-----------------------------
  369. INT 05 U - PSPS v2.01 - UNINSTALL
  370.     AX = 554Eh ('UN')
  371. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  372.       Technologies
  373. SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
  374. --------C-06---------------------------------
  375. INT 06 C - CPU-generated (80286+) - INVALID OPCODE
  376. Desc:    this interrupt is generated when the CPU attempts to execute an
  377.       invalid opcode (most protected-mode instructions are considered
  378.       invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  379.       which specifies a register rather than a memory address
  380. Notes:    return address points to beginning of invalid instruction
  381.     with proper programming, this interrupt may be used to emulate
  382.       instructions which do not exist; many 386 BIOSes emulate the 80286
  383.       undocumented LOADALL instruction which was removed from the 80386+
  384.     generated by the 80386+ when the LOCK prefix is used with instructions
  385.       other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
  386.       NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
  387.       not accessing memory.
  388. SeeAlso: INT 0C"CPU",INT 0D"CPU"
  389. --------b-06---------------------------------
  390. INT 06 C - HP 95LX - SLEEP/WAKEUP
  391. Desc:    this interrupt is called just before going into light or deep
  392.       (shutdown) sleep and just after returning from light or deep sleep
  393. SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
  394. --------V-06---------------------------------
  395. INT 06 U - no-name clone - GRAPHICS CHARACTER TABLE (NOT A VECTOR!)
  396. Desc:    points at graphics data for characters 00h-7Fh of the current font
  397. SeeAlso: INT 43"EGA",INT 44"VIDEO"
  398. --------C-07---------------------------------
  399. INT 07 C - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
  400. Desc:    this interrupt is automatically called if a coprocessor instruction is
  401.       encountered when no coprocessor is installed
  402. Note:    can be used to emulate a numeric coprocessor in software
  403. SeeAlso: INT 09"MATH UNIT PROTECTION"
  404. --------H-08---------------------------------
  405. INT 08 C - IRQ0 - SYSTEM TIMER
  406. Desc:    generated 18.2 times per second by channel 0 of the 8254 system timer,
  407.       this interrupt is used to keep the time-of-day clock updated
  408. Notes:    programs which need to be invoked regularly should use INT 1C unless
  409.       they need to reprogram the timer while still keeping the time-of-day
  410.       clock running at the proper rate
  411.     default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
  412.     may be masked by setting bit 0 on I/O port 21h
  413. SeeAlso: INT 1C,INT 4A,INT 50"DESQview",INT 58"DoubleDOS",INT 70,INT 78"GO32"
  414. SeeAlso: INT D8"Screen Thief"
  415. --------C-08---------------------------------
  416. INT 08 C - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
  417. Desc:    called when multiple exceptions occur on one instruction, or an
  418.       exception occurs in an exception handler
  419. Notes:    called in protected mode if an interrupt above the defined limit of
  420.       the interrupt vector table occurs
  421.     return address points at beginning of instruction with errors or the
  422.       beginning of the instruction which was about to execute when the
  423.       external interrupt caused the exception
  424.     if an exception occurs in the double fault handler, the CPU goes into
  425.       SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  426.       this "triple fault" is a faster way of returning to real mode on
  427.       many 80286 machines than the standard keyboard controller reset
  428. --------H-09---------------------------------
  429. INT 09 C - IRQ1 - KEYBOARD DATA READY
  430. Desc:    this interrupt is generated when data is received from the keyboard.
  431.       This is normally a scan code (from either a keypress *or* a key
  432.       release), but may also be an ACK or NAK of a command on AT-class
  433.       keyboards.
  434. Notes:    this IRQ may be masked by setting bit 1 on I/O port 21h
  435.     if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  436.       INT 15/AH=4Fh after reading the scan code (see #0005) from the
  437.       keyboard and before further processing; all further processing uses
  438.       the scan code returned from INT 15/AH=4Fh
  439.     the default interrupt handler is at F000h:E987h in 100%-compatible
  440.       BIOSes
  441.     the interrupt handler performs the following actions for certain
  442.       special keystrokes:
  443.         Ctrl-Break     clear keyboard buffer, place word 0000h in buffer,
  444.              invoke INT 1B, and set flag at 0040h:0071h
  445.         SysReq     invoke INT 15/AH=85h (SysReq is often labeled SysRq)
  446.         Ctrl-Numlock place system in a tight wait loop until next INT 09
  447.         Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
  448.                destination of the jump at that address)
  449.         Shift-PrtSc     invoke INT 05
  450.         Ctrl-Alt-Plus (HP Vectra) enable keyclick
  451.         Ctrl-Alt-Plus (many clones) set clock speed to high
  452.         Ctrl-Alt-Minus (HP Vectra) reduce keyclick volume
  453.         Ctrl-Alt-Minus (many clones) set clock speed to low
  454.         Ctrl-Alt-SysReq (HP Vectra) generate hard reset
  455.     DRDOS hooks this interrupt to control the cursor shape (underscore/
  456.       half block) for overwrite/insert mode
  457.     DR Multiuser DOS hooks this interrupt for cursor shape control and to
  458.       control whether Ctrl-Alt-Del reboots the current session or the
  459.       entire system
  460. SeeAlso: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B
  461. SeeAlso: INT 2F/AX=A901h,INT 4A"TI Professional",INT 51"DESQview"
  462. SeeAlso: INT 59"DoubleDOS",INT 79"GO32"
  463.  
  464. (Table 0005)
  465. Values for keyboard make/break (scan) code:
  466.  01h    Esc         31h    N
  467.  02h    1 !         32h    M
  468.  03h    2 @         33h    , <         63h    F16
  469.  04h    3 #         34h    . >         64h    F17
  470.  05h    4 $         35h    / ?         65h    F18
  471.  06h    5 %         36h    Right Shift     66h    F19
  472.  07h    6 ^         37h    Grey*         67h    F20
  473.  08h    7 &         38h    Alt         68h    F21
  474.  09h    8 *         39h    SpaceBar     69h    F22
  475.  0Ah    9 (         3Ah    CapsLock     6Ah    F23
  476.  0Bh    0 )         3Bh    F1         6Bh    F24
  477.  0Ch    - _         3Ch    F2         6Ch    --
  478.  0Dh    = +         3Dh    F3         6Dh    EraseEOF
  479.  0Eh    Backspace     3Eh    F4
  480.  0Fh    Tab         3Fh    F5         6Fh    Copy/Play
  481.  10h    Q         40h    F6
  482.  11h    W         41h    F7
  483.  12h    E         42h    F8         72h    CrSel
  484.  13h    R         43h    F9
  485.  14h    T         44h    F10         74h    ExSel
  486.  15h    Y         45h    NumLock         75h    --
  487.  16h    U         46h    ScrollLock     76h    Clear
  488.  17h    I         47h    Home
  489.  18h    O         48h    UpArrow
  490.  19h    P         49h    PgUp
  491.  1Ah    [ {         4Ah    Grey-
  492.  1Bh    ] }         4Bh    LeftArrow
  493.  1Ch    Enter         4Ch    Keypad 5
  494.  1Dh    Ctrl         4Dh    RightArrow
  495.  1Eh    A         4Eh    Grey+
  496.  1Fh    S         4Fh    End
  497.  20h    D         50h    DownArrow
  498.  21h    F         51h    PgDn
  499.  22h    G         52h    Ins
  500.  23h    H         53h    Del
  501.  24h    J         54h    SysReq        ---non-key codes---
  502.  25h    K                     00h    kbd buffer full
  503.  26h    L         56h    left \| (102-key)
  504.  27h    ; :         57h    F11         AAh    self-test complete
  505.  28h    ' "         58h    F12         E0h    prefix code
  506.  29h    ` ~                     E1h    prefix code
  507.  2Ah    Left Shift     5Ah    PA1         EEh    ECHO
  508.  2Bh    \ |         5Bh    F13 (LWin)     F0h    prefix code (key break)
  509.  2Ch    Z         5Ch    F14 (RWin)     FAh    ACK
  510.  2Dh    X         5Dh    F15 (Menu)     FCh    diag failure (MF-kbd)
  511.  2Eh    C                     FDh    diag failure (AT-kbd)
  512.  2Fh    V                     FEh    RESEND
  513.  30h    B                     FFh    kbd error/buffer full
  514. Notes:    scan codes 56h-E1h are only available on the extended (101/102-key)
  515.       keyboard and Host Connected (122-key) keyboard; scan codes 5Bh-5Dh
  516.       are only available on the 122-key keyboard and the Microsoft Natural
  517.       Keyboard; scan codes 5Eh-76h are only available on the 122-key
  518.       keyboard
  519.     in the default configuration, break codes are the make scan codes with
  520.       the high bit set; make codes 60h,61h,70h, etc. are not available
  521.       because the corresponding break codes conflict with prefix codes
  522.       (code 2Ah is available because the self-test result code AAh is only
  523.       sent on keyboard initialization).  An alternate keyboard
  524.       configuration can be enabled on AT and later systems with enhanced
  525.       keyboards, in which break codes are the same as make codes, but
  526.       prefixed with an F0h scan code
  527.     prefix code E0h indicates that the following make/break code is for a
  528.       "gray" duplicate to a key which existed on the original PC keyboard;
  529.       prefix code E1h indicates that the following make code has no
  530.       corresponding break code (currently only the Pause key generates no
  531.       break code)
  532.     the Microsoft Natural Keyboard sends make codes 5Bh, 5Ch, and 5Dh
  533.       (all with an E0h prefix) for the Left Windows, Right Windows, and
  534.       Menu keys on the bottom row
  535.     the SysReq key is often labeled SysRq
  536. SeeAlso: #0460
  537. --------C-09---------------------------------
  538. INT 09 C - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
  539. Desc:    called if the coprocessor attempts to access memory outside a segment
  540.       boundary; it may occur at an arbitrary time after the coprocessor
  541.       instruction was issued
  542. Notes:    until the condition is cleared or the coprocessor is reset, the only
  543.       coprocessor instruction which may be used is FNINIT; WAIT or other
  544.       coprocessor instructions will cause a deadlock because the
  545.       coprocessor is still busy waiting for data
  546.     for the 486+, a coprocessor protection error generates an INT 0D
  547. SeeAlso: INT 07"CPU"
  548. --------*-09---------------------------------
  549. INT 09 P - internal hardware - RESERVED BY Intel (80486)
  550. Note:    this exception has been moved to INT 0D
  551. SeeAlso: INT 09"MATH",INT 0D
  552. --------H-0A---------------------------------
  553. INT 0A C - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
  554. Notes:    the TOPS and PCnet adapters use this interrupt request line by default
  555.     DOS 3.2 revectors IRQ2 to a stack-switching routine
  556.     on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  557.       connects to the slave 8259.  The BIOS redirects the interrupt for
  558.       IRQ9 back here.
  559.     under DESQview, only the INT 15h vector and BASIC segment address (the
  560.       word at 0000h:0510h) may be assumed to be valid for the handler's
  561.       process
  562.     many VGA boards do not implement the vertical retrace interrupt,
  563.       including the IBM VGA Adapter where the traces are either cut or
  564.       removed
  565. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  566. --------H-0A---------------------------------
  567. INT 0A C - IRQ2 - Tandy 1000-series HARD DISK
  568. Notes:    this interrupt may be masked by setting bit 2 on I/O port 21h
  569.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  570.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  571.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  572.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  573.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  574.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  575.       interrupt use IRQ5 for vertical retrace.
  576. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  577. --------H-0A---------------------------------
  578. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  579. Note:    newer Roland cards and MIDI interfaces by other manufacturers use
  580.       a jumper-selectable IRQ, but software and hardware generally defaults
  581.       to IRQ2
  582. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  583. --------C-0A---------------------------------
  584. INT 0A CP - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  585. Desc:    automatically called during a task switch if the new TSS specified by
  586.       the task gate is invalid for any of the following reasons:
  587.         TSS limit is less than 43 (80286) or 103 (80386/80486)
  588.         LDT selector invalid or segment not present
  589.         null SS selector, or SS selector outside LDT/GDT limit
  590.         stack segment is read-only
  591.         stack segment DPL differs from new CPL, or RPL <> CPL
  592.         CS selector is outside LDT/GDT limit or not code
  593.         non-conforming code segment's DPL differs from CPL
  594.         conforming code segment's DPL > CPL
  595.         DS/ES selectors outside LDT/GDT limit or not readable segments
  596. Note:    the handler must use a task gate in order to have a valid TSS under
  597.       which to execute; it must also reset the busy bit in the new TSS
  598. SeeAlso: INT 0B"CPU"
  599. --------H-0B---------------------------------
  600. INT 0B C - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  601. Desc:    automatically asserted by the UART when COM2 needs attention, if the
  602.       UART has been programmed to generate interrupts
  603. Notes:    the TOPS and PCnet adapters use this interrupt request line as an
  604.       alternate
  605.     on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  606.       shares this interrupt
  607.     may be masked by setting bit 3 on I/O port 21h
  608. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  609. --------C-0B---------------------------------
  610. INT 0B CP - CPU-generated (80286+) - SEGMENT NOT PRESENT
  611. Desc:    generated when loading a segment register if the segment descriptor
  612.       indicates that the segment is not currently in memory, unless the
  613.       segment is an LDT (see INT 0A"CPU") or stack segment (see
  614.       INT 0C"CPU") needed by a task switch
  615. Note:    may be used to implement virtual memory by loading in segments as they
  616.       are accessed, clearing the "not present" bit after loading
  617. SeeAlso: INT 0A"CPU",INT 0E"hardware"
  618. --------h-0B---------------------------------
  619. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  620. Desc:    this is the lowest-level keyboard handler on an HP 95LX palmtop
  621. Note:    debounces key, places the keycode in I/O register 60h, and calls INT 09
  622. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  623. --------H-0C---------------------------------
  624. INT 0C C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  625. Desc:    automatically asserted by the UART when COM1 needs attention, if the
  626.       UART has been programmed to generate interrupts
  627. BUG:    this vector is modified but not restored by Direct Access v4.0, and
  628.       may be left dangling by other programs written with the same version
  629.       of compiled BASIC
  630. Notes:    on many PC's, COM3 shares this interrupt
  631.     may be masked by setting bit 4 on I/O port 21h
  632. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  633. --------C-0C---------------------------------
  634. INT 0C C - CPU-generated (80286+) - STACK FAULT
  635. Desc:    this interrupt is generated in protected mode on a stack overflow or
  636.       underflow, or if an inter-level transition or task switch references
  637.       a stack segment marked "not present"; it is generated in real mode
  638.       on accessing a word operand at SS:FFFFh
  639. Note:    the 80286 will shut down in real mode if SP=1 before a push.  On the
  640.       PC AT and compatibles, external circuitry generates a reset on
  641.       shutdown.
  642. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  643. --------I-0C---------------------------------
  644. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  645. Desc:    the IBM System 36/38 emulator may be invoked through a private API,
  646.       whose entry point address (see #0006) is offset 100h in the segment
  647.       pointed at by this vector
  648.  
  649. (Table 0006)
  650. Call the System 36/38 emulator API entry point with:
  651.     AH = function
  652.         03h update screen
  653.         05h select next session
  654.         AL = session number (00h-03h)
  655.         Return: AL = session type code
  656.                 00h not active
  657.                 01h display session
  658.                 02h printer session
  659.                 FEh invalid session number
  660.             DS = requested session's data segment (0 if not active)
  661.                 (see #0007)
  662. Return: ???
  663.  
  664. Format of System 36/38 emulator's data area:
  665. Offset    Size    Description    (Table 0007)
  666. 13Eh    BYTE    bit flags for status line indicators turned on since this byte
  667.         last zerod
  668. 13Fh    BYTE    bit flags for status line indicators turned off since this
  669.         byte last set to FFh
  670. 140h    WORD    offset of EBCDIC to ASCII translation
  671. 146h    WORD    offset of EBCDIC screen buffer
  672. 148h    WORD    offset of EC (engineering change) level signature
  673. 150h    BYTE    "KEYI"
  674. 151h    BYTE    5250 key scan code to be sent to remote
  675. 15Bh    BYTE    "SYSAV"
  676. 15Dh    BYTE    5250 cursor column
  677. 15Eh    BYTE    5250 cursor row
  678. 167h    BYTE    "DVCTAD"
  679. 178h    BYTE    "FLAGS"
  680. 184h    BYTE    "SESSNOAD"
  681. 193h    BYTE    "STNAD"
  682. 198h    BYTE    "NSDS"
  683. Note:    offsets are from the interrupt handler's segment
  684. --------H-0D---------------------------------
  685. INT 0D C - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  686. Notes:    under DESQview, only the INT 15h vector and BASIC segment address (the
  687.       word at 0000h:0510h) may be assumed to be valid for the handler's
  688.       process
  689.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  690.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  691.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  692.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  693.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  694.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  695.       interrupt use IRQ5 for vertical retrace.
  696.     may be masked by setting bit 5 on I/O port 21h
  697. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  698. SeeAlso: INT 7D"GO32"
  699. --------H-0D---------------------------------
  700. INT 0D C - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  701. Desc:    used to ensure that the dynamic RAM retains its contents in earlier
  702.       1000-series models; later models use normal DMA for RAM refresh
  703.       (some early models have no DMA unless it is added via an expansion
  704.       card)
  705. SeeAlso: INT 55
  706. --------h-0D---------------------------------
  707. INT 0D - HP 95LX - INFRARED INTERRUPT
  708. Desc:    this interrupt is used to perform communications over the infrared
  709.       data link
  710. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  711. --------C-0D---------------------------------
  712. INT 0D C - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  713. Desc:    the CPU generates this interrupt when it detects a protection violation
  714.       which does not fit under any other category having a separate
  715.       interrupt
  716. Notes:    called in real mode when
  717.         an instruction accesses a memory operand extending beyond offset
  718.           FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  719.           CS, DS, ES, FG, or GS
  720.         a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  721.           in the second byte
  722.         an instruction exceeds the maximum length allowed (10 bytes for
  723.           80286, 15 bytes for 80386/80486)
  724.         an instruction wraps from offset FFFFh to offset 0000h
  725.     called in protected mode on protection violations not covered by INT 06
  726.       through INT 0C, including
  727.         segment limit violations
  728.         write to read-only segments
  729.         accesses using null DS or ES selectors
  730.         accesses to segments with privilege greater than CPL
  731.         wrong descriptor type
  732.     called on 80486 protected-mode floating-point protection fault
  733. SeeAlso: INT 09"80486",INT 0C"STACK"
  734. --------H-0E---------------------------------
  735. INT 0E C - IRQ6 - DISKETTE CONTROLLER
  736. Desc:    this interrupt is generated by the floppy disk controller on
  737.       completion of an operation
  738. Notes:    default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  739.     may be masked by setting bit 6 on I/O port 21h
  740. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  741. --------C-0E---------------------------------
  742. INT 0E C - CPU-generated (80386+ native mode) - PAGE FAULT
  743. Desc:    this interrupt is generated in protected and virtual-86 modes on
  744.       attempting to access a 4K memory page whose page table entry has
  745.       the "present" bit cleared
  746. Note:    used to implement virtual memory
  747. SeeAlso: INT 0B"hardware"
  748. --------h-0E---------------------------------
  749. INT 0E C - HP 95LX - EXTERNAL CARD INTERRUPT
  750. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  751. --------H-0F---------------------------------
  752. INT 0F C - IRQ7 - PARALLEL PRINTER
  753. Desc:    this interrupt is generated by the LPT1 printer adapter when the
  754.       printer becomes ready
  755. Notes:    most printer adapters do not reliably generate this interrupt
  756.     the 8259 interrupt controller generates an interrupt corresponding to
  757.       IRQ7 when an error condition occurs
  758. SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  759. --------h-0F---------------------------------
  760. INT 0F C - HP 95LX - REAL-TIME CLOCK
  761. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
  762. --------C-10---------------------------------
  763. INT 10 C - CPU-generated (80286+) - COPROCESSOR ERROR
  764. Desc:    this interrupt is generated by the CPU when the -ERROR pin is asserted
  765.       by the coprocessor
  766. Note:    AT's and clones usually wire the coprocessor to use IRQ13, but not all
  767.       get it right
  768. SeeAlso: INT 09"hardware",INT 75
  769. --------V-1000-------------------------------
  770. INT 10 - VIDEO - SET VIDEO MODE
  771.     AH = 00h
  772.     AL = desired video mode (see #0009)
  773. Return: AL = video mode flag (Phoenix, AMI BIOS)
  774.         20h mode > 7
  775.         30h modes 0-5 and 7
  776.         3Fh mode 6
  777.     AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  778. Desc:    specify the display mode for the currently active display adapter
  779. Notes:    IBM standard modes do not clear the screen if the high bit of AL is set
  780.       (EGA or higher only)
  781.     the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  782.       SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  783.       Everex EV-673
  784.     the installation check for Ahead adapters is the signature "AHEAD" at
  785.       C000h:0025h
  786.     the installation check for Paradise adapters is the signature "VGA=" at
  787.       C000h:007Dh
  788.     the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  789.       signature "OAK VGA" at C000h:0008h
  790.     the installation check for ATI adapters is the signature "761295520" at
  791.       C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
  792.         31h for 18800
  793.         32h for 18800-1
  794.         33h for 18800-2
  795.         34h for 18800-4
  796.         35h for 18800-5
  797.       the two bytes at C000h:0040h indicate the adapter type
  798.         "22" EGA Wonder
  799.         "31" VGA Wonder
  800.         "32" EGA Wonder800+
  801.       the byte at C000h:0042h contains feature flags
  802.         bit 1: mouse port present
  803.         bit 4: programmable video clock
  804.       the byte at C000h:0044h contains additional feature flags if chipset
  805.         byte > 30h (see #0008)
  806.     the installation check for Genoa video adapters is the signature
  807.       77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
  808.       and XXh is
  809.         00h for Genoa 6200/6300
  810.         11h for Genoa 6400/6600
  811.         22h for Genoa 6100
  812.         33h for Genoa 5100/5200
  813.         55h for Genoa 5300/5400
  814.       for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  815.       for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  816.         "EXTMODE", indicating support for extended modes
  817. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  818. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
  819. Index:    installation check;Tseng ET4000|installation check;Ahead video cards
  820. Index:    installation check;Oak Technologies|installation check;ATI video cards
  821. Index:    installation check;Paradise video|installation check;Genoa video cards
  822.  
  823. Bitfields for ATI additional feature flags:
  824. Bit(s)    Description    (Table 0008)
  825.  0    70 Hz non-interlaced display
  826.  1    Korean (double-byte) characters
  827.  2    45 MHz memory clock rather than 40 MHz
  828.  3    zero wait states
  829.  4    paged ROMs
  830.  6    no 8514/A monitor support
  831.  7    HiColor DAC
  832.  
  833. (Table 0009)
  834. Values for video mode:
  835.      text/ text pixel    pixel    colors disply scrn  system
  836.      grph resol     box  resolution       pages  addr
  837.  00h = T  40x25     8x8   320x200    16gray      8   B800 CGA,PCjr,Tandy
  838.      = T  40x25     8x14  320x350    16gray      8   B800 EGA
  839.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  840.      = T  40x25     9x16  360x400     16      8   B800 VGA
  841.  01h = T  40x25     8x8   320x200     16      8   B800 CGA,PCjr,Tandy
  842.      = T  40x25     8x14  320x350     16      8   B800 EGA
  843.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  844.      = T  40x25     9x16  360x400     16      8   B800 VGA
  845.  02h = T  80x25     8x8   640x200    16gray      4   B800 CGA,PCjr,Tandy
  846.      = T  80x25     8x14  640x350    16gray      8   B800 EGA
  847.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  848.      = T  80x25     9x16  720x400     16      8   B800 VGA
  849.  03h = T  80x25     8x8   640x200     16      4   B800 CGA,PCjr,Tandy
  850.      = T  80x25     8x14  640x350     16/64      8   B800 EGA
  851.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  852.      = T  80x25     9x16  720x400     16      8   B800 VGA
  853.  04h = G  40x25     8x8   320x200      4      .   B800 CGA,PCjr,EGA,MCGA,VGA
  854.  05h = G  40x25     8x8   320x200     4gray      .   B800 CGA,PCjr,EGA
  855.      = G  40x25     8x8   320x200      4      .   B800 MCGA,VGA
  856.  06h = G  80x25     8x8   640x200      2      .   B800 CGA,PCjr,EGA,MCGA,VGA
  857.      = G  80x25      .      .    mono      .   B000 HERCULES.COM on HGC [14]
  858.  07h = T  80x25     9x14  720x350    mono     var  B000 MDA,Hercules,EGA
  859.      = T  80x25     9x16  720x400    mono      .   B000 VGA
  860.  08h = T 132x25     8x8  1056x200     16      .   B800 ATI EGA/VGA Wonder [2]
  861.      = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA/VGA Wonder [2]
  862.      = G  20x25     8x8   160x200     16      .    .  PCjr, Tandy 1000
  863.      = G  90x43     8x8   720x348    mono      .   B000 Hercules + MSHERC.COM
  864.      = G  90x45     8x8   720x360    mono      .   B000 Hercules + HERKULES [11]
  865.      = G  90x29  8x12  720x348    mono      .     .  Hercules + HERCBIOS [15]
  866.  09h = G  40x25     8x8   320x200     16      .    .  PCjr, Tandy 1000
  867.      = G  90x43  8x8   720x348    mono      .     .  Hercules + HERCBIOS [15]
  868.  0Ah = G  80x25     8x8   640x200      4      .    .  PCjr, Tandy 1000
  869.  0Bh =     reserved                   (EGA BIOS internal use)
  870.      = G  80x25     8x8   640x200     16      .    .  Tandy 1000 SL/TL [13]
  871.  0Ch =     reserved                   (EGA BIOS internal use)
  872.  0Dh = G  40x25     8x8   320x200     16      8   A000 EGA,VGA
  873.  0Eh = G  80x25     8x8   640x200     16      4   A000 EGA,VGA
  874.  0Fh = G  80x25     8x14  640x350    mono      2   A000 EGA,VGA
  875.  10h = G  80x25     8x14  640x350      4      2   A000 64k EGA
  876.      = G    .      .    640x350     16      .   A000 256k EGA,VGA
  877.  11h = G  80x30     8x16  640x480    mono      .   A000 VGA,MCGA,ATI EGA,ATI VIP
  878.  12h = G  80x30     8x16  640x480     16/256K  .   A000 VGA,ATI VIP
  879.      = G  80x30     8x16  640x480     16/64      .   A000 ATI EGA Wonder
  880.      = G    .      .    640x480     16      .    .  UltraVision+256K EGA
  881.  13h = G  40x25     8x8   320x200    256/256K  .   A000 VGA,MCGA,ATI VIP
  882.  14h = T 132x25     Nx16      .     16      .    .  XGA, IBM Enhanced VGA [3]
  883.      = T 132x25     8x16 1056x400     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  884.      = G  80x25     8x8   640x200      .      .    .  Lava Chrome II EGA
  885.      = G    .      .    640x400     16      .    .  Tecmar VGA/AD
  886.  15h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  887.  16h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  888.      = G    .      .    800x600     16      .    .  Tecmar VGA/AD
  889.  17h = T 132x25      .      .      .      .    .  Tecmar VGA/AD
  890.      = T  80x43     8x8   640x348     16      4   B800 Tseng ET4000 BIOS [10]
  891.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  892.  18h = T  80x30     9x16  720x480     16      1   A000 Realtek RTVGA [12]
  893.      = T 132x25      .      .    mono      .   B000 Cirrus 5320 chipset
  894.      = T 132x44     8x8  1056x352    mono      .   B000 Tseng Labs EVA
  895.      = T 132x44     9x8  1188x352     4gray      2   B000 Tseng ET3000 chipset
  896.      = T 132x44     8x8  1056x352     16/256      2   B000 Tseng ET4000 chipset
  897.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  898.      = G          1024x768     16      .    .  Tecmar VGA/AD
  899.  19h = T  80x43     9x11  720x473     16      1   A000 Realtek RTVGA [12]
  900.      = T 132x25     8x14 1056x350    mono      .   B000 Tseng Labs EVA
  901.      = T 132x25     9x14 1188x350     4gray      4   B000 Tseng ET3000 chipset
  902.      = T 132x25     8x14 1056x350     16/256      4   B000 Tseng ET4000 chipset
  903.      = T 132x34      .      .    mono      .   B000 Cirrus 5320 chipset
  904.  1Ah = T  80x60     9x8   720x480     16      1   A000 Realtek RTVGA [12]
  905.      = T 132x28     8x13 1056x364    mono      .   B000 Tseng Labs EVA
  906.      = T 132x28     9x13 1188x364     4gray      4   B000 Tseng ET3000 chipset
  907.      = T 132x28     8x13 1056x364     16/256      4   B000 Tseng ET4000 chipset
  908.      = T 132x44      .      .    mono      .   B000 Cirrus 5320 chipset
  909.      = G    .      .    640x350    256      .    .  Tecmar VGA/AD
  910.  1Bh = T 132x25     9x14 1188x350     16      1   A000 Realtek RTVGA [12]
  911.      = G    .      .    640x400    256      .    .  Tecmar VGA/AD
  912.  1Ch = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  913.      = T 132x30     9x16 1188x480     16      1   A000 Realtek RTVGA [12]
  914.      = G    .      .    640x480    256      .    .  Tecmar VGA/AD
  915.  1Dh = T 132x43      .      .      .      .    .  Cirrus 5320 chipset
  916.      = T 132x43     9x11 1188x473     16      1   A000 Realtek RTVGA [12]
  917.      = G    .      .    800x600    256      .    .  Tecmar VGA/AD
  918.  1Eh = T 132x44      .      .      .      .    .  Cirrus 5320 chipset
  919.      = T 132x60     9x8  1188x480     16      1   A000 Realtek RTVGA [12]
  920.  1Fh = G 100x75     8x8   800x600     16      1   A000 Realtek RTVGA
  921.  20h = T 132x25      .      .     16      .    .  Avance Logic AL2101
  922.      = G  40x16      .    240x128    mono      .   B000 HP 95LX/100LX/200LX
  923.      = G 120x45     8x16  960x720     16      1   A000 Realtek RTVGA
  924.  21h = T  80x25      .      .    mono      .   B000 HP 200LX
  925.      = T 132x30      .      .     16      .    .  Avance Logic AL2101
  926.      = T 132x44     9x9  1188x396     16/256K  .   B800 WD90C
  927.      = T 132x44     9x9  1188x396     16      .   B800 Diamond Speedstar 24X
  928.      = T 132x60      .      .     16      2   B800 Tseng ET4000 chipset [10]
  929.      = G  80x43     8x8   720x348    mono      .   B000 DESQview 2.x+Hercules [4]
  930.      = G 128x48     8x16 1024x768     16      1   A000 Realtek RTVGA [12]
  931.  22h = T 132x43      .      .      .      .    .  Allstar Peacock (VGA)
  932.      = T 132x43      .      .     16      .    .  Avance Logic AL2101
  933.      = T 132x44     8x8  1056x352      .      .   B800 Tseng Labs EVA
  934.      = T 132x44     9x8  1188x352     16/256K  2   B800 Tseng ET3000 chipset
  935.      = T 132x44     8x8  1056x352     16/256K  2   B800 Tseng ET4000 chipset
  936.      = T 132x44     8x8  1056x352      .      .    .  Ahead Systems EGA2001
  937.      = T 132x44     8x8  1056x352     16      2   B800 Ahead B
  938.      = T 132x44     8x9  1056x398     16      .    .  STB Lightspeed ET4000/W32P
  939.      = T 132x44      .      .     16      .    .  Orchid Prodesigner VGA
  940.      = G  80x43     8x8   720x348    mono      .   B800 DESQview 2.x+Hercules [4]
  941.      = G  96x64     8x16  768x1024     16      1   A000 Realtek RTVGA
  942.  23h = T 132x25     6x14  792x350      .      .   B800 Tseng Labs EVA
  943.      = T 132x25     9x14 1188x350     16/256K  4   B800 Tseng ET3000 chipset
  944.      = T 132x25     8x14 1056x350     16/256      4   B800 Tseng ET4000 chipset
  945.      = T 132x25     8x14 1056x350      .      .    .  Ahead Systems EGA2001
  946.      = T 132x25     8x14 1056x350     16      4   B800 Ahead B
  947.      = T 132x25     8x8  1056x200     16      .   B800 ATI EGA Wonder,ATI VIP
  948.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  949.      = T 132x28      .      .      .      .    .  Allstar Peacock (VGA)
  950.      = T 132x28      .      .     16      .    .  Orchid Prodesigner VGA
  951.      = T 132x60      .      .     16      .    .  Avance Logic AL2101
  952.      = G 128x48     8x16 1024x768      4      1   A000 Realtek RTVGA
  953.  24h = T  80x30      .      .     16      .    .  Avance Logic AL2101
  954.      = T 132x25      .      .      .      .    .  Allstar Peacock (VGA)
  955.      = T 132x25      .      .     16      .    .  Orchid Prodesigner VGA
  956.      = T 132x28     6x13  792x364      .      .   B800 Tseng Labs EVA
  957.      = T 132x28     9x13 1188x364     16/256K  4   B800 Tseng ET3000 chipset
  958.      = T 132x28     8x12 1056x336     16      1   B800 Ahead B
  959.      = T 132x28     8x13 1056x364     16/256K  4   B800 Tseng ET4000 chipset
  960.      = T 132x28     8x14 1056x392     16      .    .  STB Lightspeed ET4000/W32P
  961.      = T 132x28      .      .      .      .    .  Cirrus 5320 chipset
  962.      = G  64x32     8x16  512x512    256      1   A000 Realtek RTVGA
  963.  25h = T  80x43      .      .     16      .    .  Avance Logic AL2101
  964.      = G  80x60     8x8   640x480      .      .   A000 Tseng Labs EVA
  965.      = G  80x60     8x8   640x480     16/256K  1   A000 Tseng ET3000/4000 chipset
  966.      = G    .      .    640x480     16      .    .  VEGA VGA
  967.      = G  80x60     8x8   640x480     16      .   A000 Orchid Prodesigner VGA
  968.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 26h)
  969.      = G    .      .    640x480     16      .    .  NEC GB-1
  970.      = G    .      .    640x480     16      .    .  Cirrus 5320 chipset
  971.      = G    .      .    640x400    256      .    .  Realtek RTVGA
  972.  26h = T  80x60     8x8   640x480      .      .    .  Tseng Labs EVA
  973.      = T  80x60     8x8   640x480     16/256K  3   B800 Tseng ET3000/4000 chipset
  974.      = T  80x60      .      .      .      .    .  Allstar Peacock (VGA)
  975.      = T  80x60      .      .     16      .    .  Orchid ProDesigner VGA
  976.      = T  80x60      .      .     16      .    .  Avance Logic AL2101
  977.      = G  80x60     8x8   640x480      .      .    .  Ahead Systems EGA2001
  978.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 25h)
  979.      = G    .      .    640x480    256      .    .  Realtek RTVGA
  980.  27h = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA Wonder,ATI VIP
  981.      = G    .      .    720x512     16      .    .  VEGA VGA
  982.      = G    .      .    720x512     16      .    .  Genoa
  983.      = G 100x75     8x8   800x600    256      1   A000 Realtek RTVGA [12]
  984.      = G    .      .    960x720     16      .    .  Avance Logic AL2101
  985.  28h = T ???x???  .      .      .      .    .  VEGA VGA
  986.      = G    .      .    512x512    256      .    .  Avance Logic AL2101
  987.      = G    .      .   1024x768    256      .    .  Realtek RTVGA (1meg)
  988.  29h = G    .      .    640x400    256      .    .  Avance Logic AL2101
  989.      = G    .      .    800x600     16      .    .  VEGA VGA
  990.      = G 100x37     8x16  800x600     16      .   A000 Orchid
  991.      = G    .      .    800x600     16      .   A000 STB,Genoa,Sigma
  992.      = G    .      .    800x600     16      .    .  Allstar Peacock (VGA)
  993.      = G 100x37     8x16  800x600     16/256K  1   A000 Tseng ET3000/4000 chipset
  994.      = G    .      .    800x600    ???      .    .  EIZO MDB10
  995.      = G    .      .    800x600     16      .    .  Cirrus 5320 chipset
  996.      = G   NA      .    800x600     16      .    .  Compaq QVision 1024/1280
  997.      = G    .      .   1024x1024 256      .    .  Realtek RTVGA BIOS v3.C10
  998.  2Ah = T 100x40      .      .      .      .    .  Allstar Peacock (VGA)
  999.      = T 100x40     8x16  800x640     16      .    .  Orchid Prodesigner VGA
  1000.      = T 100x40     8x15  800x600     16/256K  4   B800 Tseng ET3000/4000 chipset
  1001.      = T 100x40     8x15  800x600     16      .    .  STB Lightspeed ET4000/W32P
  1002.      = G    .      .    640x480    256      .    .  Avance Logic AL2101
  1003.      = G    .      .   1280x1024     16      .    .  Realtek RTVGA
  1004.  2Bh = G    .      .    800x600     16      .    .  Avance Logic AL2101
  1005.  2Ch = G    .      .    800x600    256      .    .  Avance Logic AL2101
  1006.  2Dh = G    .      .    640x350    256      .    .  VEGA VGA
  1007.      = G    .      .    640x350    256/256K  .   A000 Orchid, Genoa, STB
  1008.      = G  80x25     8x14  640x350    256/256K  1   A000 Tseng ET3000/4000 chipset
  1009.      = G    .      .    640x350    256      .    .  Cirrus 5320 chipset
  1010.      = G  80x25     8x14  640x350    256      .    .  STB Lightspeed ET4000/W32P
  1011.      = G    .      .    768x1024     16      .    .  Avance Logic AL2101
  1012.  2Eh = G    .      .    640x480    256      .    .  VEGA VGA
  1013.      = G  80x30     8x16  640x480 256/256K      .   A000 Orchid
  1014.      = G    .      .    640x480 256/256K      .   A000 STB,Genoa,Sigma
  1015.      = G  80x30     8x16  640x480 256/256K      1   A000 Tseng ET3000/4000 chipset
  1016.      = G    .      .    640x480 256/256K      .    .  Compaq QVision 1024/1280
  1017.      = G    .      .    768x1024 256      .    .  Avance Logic AL2101
  1018.  2Fh = T 160x50     8x8  1280x400     16      4   B800 Ahead B (Wizard/3270)
  1019.      = G    .      .    720x512    256      .    .  VEGA VGA
  1020.      = G    .      .    720x512    256      .    .  Genoa
  1021.      = G  80x25     8x16  640x400 256/256K      1   A000 Tseng ET4000 chipset
  1022.      = G    .      .   1024x768      4      .    .  Avance Logic AL2101
  1023.  30h = G    .      .    800x600    256      .    .  VEGA VGA
  1024.      = G 100x37     8x16  800x600 256/256K      .   A000 Orchid
  1025.      = G    .      .    800x600 256/256K      .   A000 STB,Genoa,Sigma
  1026.      = G    .      .    720x350      2      .    .  3270 PC
  1027.      = G    .      .    800x600    256      .    .  Cardinal
  1028.      = G    .      .      .      .      .   B800 AT&T 6300
  1029.      = G 100x37     8x16  800x600 256/256K      1   A000 Tseng ET3000/4000 chipset
  1030.      = G    .      .   1024x768     16      .    .  Avance Logic AL2101
  1031.  31h = G    .      .   1024x768    256      .    .  Avance Logic AL2101
  1032.  32h = T  80x34     8x10      .     16      4   B800 Ahead B (Wizard/3270)
  1033.      = G    .      .    640x480    256      .    .  Compaq QVision 1024/1280
  1034.  33h = T 132x44     8x8      .     16      .   B800 ATI EGA Wonder,ATI VIP
  1035.      = T  80x34     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  1036.  34h = T  80x66     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  1037.      = G    .      .    800x600    256      .    .  Compaq QVision 1024/1280
  1038.  36h = G    .      .    960x720     16      .    .  VEGA VGA, STB
  1039.      = G    .      .    960x720     16      .   A000 Tseng ET3000 only
  1040.      = G    .      .   1280x1024     16      .    .  Avance Logic AL2101
  1041.  37h = T 132x44     8x8      .    mono      .   B800 ATI EGA Wonder,ATI VIP
  1042.      = G    .      .   1024x768     16      .    .  VEGA VGA
  1043.      = G 128x48     8x16 1024x768     16      .   A000 Orchid
  1044.      = G    .      .   1024x768     16      .   A000 STB,Genoa,Sigma
  1045.      = G    .      .   1024x768     16      .    .  Definicon
  1046.      = G 128x48     8x16 1024x768     16      1   A000 Tseng ET3000/4000 chipset
  1047.      = G    .      .   1024x768     16      .    .  Compaq QVision 1024/1280
  1048.      = G    .      .   1280x1024 256      .    .  Avance Logic AL2101
  1049.  38h = G    .      .   1024x768    256      .    .  STB VGA/EM-16 Plus (1MB)
  1050.      = G 128x48     8x16 1024x768    256/256K  1   A000 Tseng ET4000 chipset
  1051.      = G    .      .   1024x768    256      .    .  Orchid ProDesigner II
  1052.      = G    .      .   1024x768    256      .    .  Compaq QVision 1024/1280
  1053.  39h = G    .      .   1280x1024     16      .    .  Compaq QVision 1280
  1054.  3Ah = G    .      .   1280x1024    256      .    .  Compaq QVision 1280
  1055.  3Bh = G    .      .    512x480    256      .    .  Compaq QVision 1024/1280
  1056.  3Ch = G    .      .    640x400     64K      .    .  Compaq QVision 1024/1280
  1057.  3Dh = G    .      .   1280x1024     16      .    .  Definicon
  1058.      = G 128x64     8x16 1280x1024     16      1   A000 Tseng ET4000 v3.00 [1,7]
  1059.  3Eh = G    .      .   1280x961     16      .    .  Definicon
  1060.      = G    .      .    640x480     64K      .    .  Compaq QVision 1024/1280
  1061.  3Fh = G    .      .   1280x1024 256      .    .  Hercules ??? (ET4000W32)
  1062.      = G    .      .    800x600     64K      .    .  Compaq QVision 1024/1280
  1063.  40h = T  80x43      .      .      .      .    .  VEGA VGA, Tecmar VGA/AD
  1064.      = T  80x43      .      .      .      .    .  Video7 V-RAM VGA
  1065.      = T  80x43      .      .      .      .    .  Tatung VGA
  1066.      = T 100x30      .      .     16      .    .  MORSE VGA
  1067.      = T 100x30      .      .      .      .    .  Cirrus 510/520 chipset
  1068.      = T  80x25      .    720x350    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1069.      = G    .      .    320x200     64K      .    .  Avance Logic AL2101
  1070.      = G  80x25     8x16  640x400      2      1   B800 AT&T 6300, AT&T VDC600
  1071.      = G  80x25     8x16  640x400      2      1   B800 Olivetti Quaderno
  1072.      = G  80x25     8x16  640x400      2      1   B800 Compaq Portable
  1073.      = G    .      .   1024x768     64K      .    .  Compaq QVision 1280
  1074.  41h = T 132x25      .      .      .      .    .  VEGA VGA
  1075.      = T 132x25      .      .      .      .    .  Tatung VGA
  1076.      = T 132x25      .      .      .      .    .  Video7 V-RAM VGA
  1077.      = T 100x50      .      .     16      .    .  MORSE VGA
  1078.      = T 100x50      .      .      .      .    .  Cirrus 510/520 chipset
  1079.      = T  80x34     9x14  720x476     16/256K  .   B800 WD90C
  1080.      = T  80x34     9x14      .     16      .   B800 Diamond Speedstar 24X
  1081.      = G    .      .    512x512     64K      .    .  Avance Logic AL2101
  1082.      = G    .      .    640x200     16      1    .  AT&T 6300
  1083.      = G  80x25      .    720x348    mono      .   B000 Genoa SuperEGA BIOS 3.0+
  1084.  42h = T 132x43      .      .      .      .    .  VEGA VGA
  1085.      = T 132x43      .      .      .      .    .  Tatung VGA
  1086.      = T 132x43      .      .      .      .    .  Video7 V-RAM VGA
  1087.      = T  80x34     9x10      .      4      4   B800 Ahead B (Wizard/3270)
  1088.      = T 100x60      .      .     16      .    .  MORSE VGA
  1089.      = T 100x60      .      .      .      .    .  Cirrus 510/520 chipset
  1090.      = G  80x25     8x16  640x400     16      .    .  AT&T 6300, AT&T VDC600
  1091.      = G    .      .    640x400     64K      .    .  Avance Logic AL2101
  1092.      = G  80x25      .    720x348    mono      .   B800 Genoa SuperEGA BIOS 3.0+
  1093.  43h = T  80x60      .      .      .      .    .  VEGA VGA
  1094.      = T  80x60      .      .      .      .    .  Tatung VGA
  1095.      = T  80x60      .      .      .      .    .  Video7 V-RAM VGA
  1096.      = T  80x45     9x8      .      4      4   B800 Ahead B (Wizard/3270)
  1097.      = T 100x75      .      .     16      .    .  MORSE VGA
  1098.      = T  80x29      .    720x348    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1099.      = G    .      . 640x200 of 640x400 viewport       AT&T 6300 (unsupported)
  1100.      = G    .      .    640x480     64K      .    .  Avance Logic AL2101
  1101.  44h =    disable VDC and DEB output        .  AT&T 6300
  1102.      = T 100x60      .      .      .      .    .  VEGA VGA
  1103.      = T 100x60      .      .      .      .    .  Tatung VGA
  1104.      = T 100x60      .      .      .      .    .  Video7 V-RAM VGA
  1105.      = T  80x32      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1106.      = G    .      .    800x600     64K      .    .  Avance Logic AL2101
  1107.  45h = T 132x28      .      .      .      .    .  Tatung VGA
  1108.      = T 132x28      .      .      .      .    .  Video7 V-RAM VGA
  1109.      = T  80x44      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1110.  46h = T 132x25     8x14      .    mono      .    .  Genoa 6400
  1111.      = T 132x25     9x14      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1112.      = G 100x40     8x15  800x600      2      .    .  AT&T VDC600
  1113.  47h = T 132x29     8x12      .    mono      .    .  Genoa 6400
  1114.      = T 132x29     9x12      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1115.      = T 132x28     9x16 1188x448     16/256K  .   B800 WD90C
  1116.      = T 132x28     9x16      .     16      .   B800 Diamond Speedstar 24X
  1117.      = G 100x37     8x16  800x600     16      .    .  AT&T VDC600
  1118.  48h = T 132x32     8x12      .    mono      .    .  Genoa 6400
  1119.      = T 132x32     9x11      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1120.      = G  80x50     8x8   640x400      2      .   B800 AT&T 6300, AT&T VDC600
  1121.      = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno
  1122.  49h = T 132x44     8x8      .    mono      .    .  Genoa 6400
  1123.      = T 132x44     9x8      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1124.      = G  80x30     8x16  640x480      .      .    .  Lava Chrome II EGA
  1125.  4Dh = T 120x25      .      .      .      .    .  VEGA VGA
  1126.      = G    .      .    512x480     16M      .    .  Compaq QVision 1024/1280
  1127.  4Eh = T 120x43      .      .      .      .    .  VEGA VGA
  1128.      = T  80x60     8x8      .     16/256K  .   B800 Oak OTI-067/OTI-077 [8]
  1129.      = G    .      .    640x400     16M      .    .  Compaq QVision 1024/1280
  1130.  4Fh = T 132x25      .      .      .      .    .  VEGA VGA
  1131.      = T 132x60      .      .      .      .    .  some Oak Tech VGA [8]
  1132.      = G    .      .    640x480     16M      .    .  Compaq QVision 1280
  1133.  50h = T  80x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1134.      = T  80x34      .      .      .      .    .  Lava Chrome II EGA
  1135.      = T  80x43      .      .    mono      .    .  VEGA VGA
  1136.      = T 132x25     9x14      .    mono      .    .  Ahead Systems EGA2001
  1137.      = T 132x25     9x14      .      4      4   B800 Ahead B
  1138.      = T 132x25     8x14      .     16      8   B800 OAK Technologies VGA-16
  1139.      = T 132x25     8x14      .     16/256K  .   B800 Oak OTI-037/067/077 [8]
  1140.      = T 132x25     8x14 1056x350     16      8   B800 UM587 chipset
  1141.      = T 132x30      .      .     16      .    .  MORSE VGA
  1142.      = T 132x30      .      .      .      .    .  Cirrus 510/520 chipset
  1143.      = G  80x30     8x16  640x480     16      .    .  Paradise EGA-480
  1144.      = G  80x30     8x16  640x480     16      .    .  NEL Electronics BIOS
  1145.      = G    .      .    640x480    mono???      .    .  Taxan 565 EGA
  1146.      = G  40x25     8x8   320x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1147.  51h = T  80x30     8x16      .      .      .    .  Paradise EGA-480
  1148.      = T  80x30     9x16      .      .      .    .  NEL Electronics BIOS
  1149.      = T  80x30      .      .      .      .    .  Lava Chrome II EGA
  1150.      = T  80x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1151.      = T 132x25      .      .    mono      .    .  VEGA VGA
  1152.      = T 132x28     9x12      .      4      4   B800 Ahead B
  1153.      = T 132x43     8x8      .     16      5   B800 OAK Technologies VGA-16
  1154.      = T 132x43     8x8      .     16/256K  .   B800 Oak OTI-037/067/077
  1155.      = T 132x43     8x8  1056x344     16      5   B800 UM587 chipset
  1156.      = T 132x50      .      .     16      .    .  MORSE VGA
  1157.      = T 132x50      .      .      .      .    .  Cirrus 510/520 chipset
  1158.      = G  80x34     8x14  640x480     16      .    .  ATI EGA Wonder
  1159.      = G  80x25     8x8   640x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1160.  52h = T  80x60      .      .      .      .    .  Lava Chrome II EGA
  1161.      = T  80x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1162.      = T 132x43      .      .    mono      .    .  VEGA VGA
  1163.      = T 132x44     9x8      .    mono      .    .  Ahead Systems EGA2001
  1164.      = T 132x44     9x8      .      4      2   B800 Ahead B
  1165.      = T 132x60      .      .     16      .    .  MORSE VGA
  1166.      = T 132x60      .      .      .      .    .  Cirrus 510/520 chipset
  1167.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji&superimpose)
  1168.      = G  94x29     8x14  752x410     16      .    .  ATI EGA Wonder
  1169.      = G 100x75     8x8   800x600     16      1   A000 OAK Technologies VGA-16
  1170.      = G 100x75     8x8   800x600     16      .   A000 Oak OTI-037 chipset [8]
  1171.      = G 100x37     8x16  800x600     16      .   A000 Oak OTI-067/077 chips [8]
  1172.      = G 100x75     8x8   800x600     16      .   A000 UM587 chipset
  1173.      = G 128x30     8x16 1024x480     16      .    .  NEL Electronics BIOS
  1174.  53h = T  80x25     8x16      .      .      .    .  NEL Electronics BIOS
  1175.      = T  80x60      .      .     16      .    .  MORSE VGA
  1176.      = T  80x60      .      .      .      .    .  Cirrus 510/520 chipset
  1177.      = T 132x25     8x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1178.      = T 132x43      .      .      .      .    .  Lava Chrome II EGA
  1179.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji, no superimp.)
  1180.      = G    .      .    640x480    256      .    .  Oak VGA
  1181.      = G  80x30     8x16  640x480    256      .   A000 Oak OTI-067/OTI-077 [8]
  1182.      = G 100x40     8x14  800x560     16      .    .  ATI EGA Wonder,ATI VIP
  1183.      = G    .      .      .      .      .    .  AX PC
  1184.  54h = T 132x25      .      .      .      .    .  Lava Chrome II EGA
  1185.      = T 132x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1186.      = T 132x43     8x8      .      .      .    .  Paradise EGA-480
  1187.      = T 132x43     8x8      .      .      .    .  NEL Electronics BIOS
  1188.      = T 132x43     7x9      .     16/256K  .   B800 Paradise VGA
  1189.      = T 132x43     8x9      .     16/256K  .   B800 Paradise VGA on multisync
  1190.      = T 132x43      .      .      .      .    .  Taxan 565 EGA
  1191.      = T 132x43      .      .      .      .    .  AST VGA Plus
  1192.      = T 132x43      .      .      .      .    .  Hewlett-Packard D1180A
  1193.      = T 132x43     7x9      .     16      .    .  AT&T VDC600
  1194.      = T 132x43     9x9  1188x387     16/256K  .   B800 WD90C
  1195.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Speedstar 24X
  1196.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Stealth 24
  1197.      = T 132x43     8x8  1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1198.      = T 132x50     8x8      .     16      .   A000 NCR 77C22 [9]
  1199.      = G 100x42     8x14  800x600     16      .   A000 ATI EGA Wonder, VGA Wonder
  1200.      = G 100x42     8x14  800x600     16      .   A000 ATI Ultra 8514A, ATI XL
  1201.      = G    .      .    800x600    256      .   A000 Oak VGA
  1202.      = G 100x37     8x16  800x600    256      .   A000 Oak OTI-067/077 chips [8]
  1203.  55h = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1204.      = T 132x25     8x14      .      .      .    .  Paradise EGA-480
  1205.      = T 132x25     8x14      .      .      .    .  NEL Electronics BIOS
  1206.      = T 132x25     7x16      .     16/256K  .   B800 Paradise VGA
  1207.      = T 132x25     8x16      .     16/256K  .   B800 Paradise VGA on multisync
  1208.      = T 132x25      .      .      .      .    .  Taxan 565 EGA
  1209.      = T 132x25      .      .      .      .    .  AST VGA Plus
  1210.      = T 132x25      .      .      .      .    .  Hewlett-Packard D1180A
  1211.      = T 132x25     7x16      .     16      .    .  AT&T VDC600
  1212.      = T 132x25     8x16      .     16      .   A000 NCR 77C22 [9]
  1213.      = T 132x25     9x16 1188x400     16/256K  .   B800 WD90C
  1214.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Speedstar 24X
  1215.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Stealth 24
  1216.      = T 132x25     8x14 1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1217.      = T 132x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1218.      = G  94x29     8x14  752x410      .      .    .  Lava Chrome II EGA
  1219.      = G 128x48     8x16 1024x768     16/256K  .   A000 ATI VGA Wonder v4+  [5]
  1220.      = G    .      .   1024x768     16/256K  .    .  ATI VGA Wonder Plus
  1221.      = G    .      .   1024x768     16/256K  .    .  ATI Ultra 8514A,ATI XL
  1222.      = G 128x48     8x16 1024x768      4      .   A000 Oak OTI-067/077 chips [8]
  1223.  56h = T 132x43     8x8      .      3???      2   B000 NSI Smart EGA+
  1224.      = T 132x43     7x9      .      4      .   B000 Paradise VGA
  1225.      = T 132x43     8x9      .      4      .   B000 Paradise VGA on multisync
  1226.      = T 132x43      .      .    mono      .    .  Taxan 565 EGA
  1227.      = T 132x43     7x9      .      2      .    .  AT&T VDC600
  1228.      = T 132x43     9x8      .      .      .    .  NEL Electronics BIOS
  1229.      = T 132x50     8x8      .      4      .   A000 NCR 77C22 [9]
  1230.      = T 132x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1231.      = G    .      .   1024x768     16      .   A000 Oak VGA
  1232.      = G 128x48     8x16 1024x768     16      .   A000 Oak OTI-067/077 chips [8]
  1233.  57h = T 132x25     8x14      .      3???      4   B000 NSI Smart EGA+
  1234.      = T 132x25     7x16      .      4      .   B000 Paradise VGA
  1235.      = T 132x25     8x16      .      4      .   B000 Paradise VGA on multisync
  1236.      = T 132x25     9x14      .      .      .    .  NEL Electronics BIOS
  1237.      = T 132x25      .      .    mono      .    .  Taxan 565 EGA
  1238.      = T 132x25     7x16      .      2      .    .  AT&T VDC600
  1239.      = T 132x25     9x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1240.      = T 132x25     8x16      .      4      .   A000 NCR 77C22 [9]
  1241.      = G  96x48     8x16  768x1024     16      .   A000 Oak OTI-067/077 chips [8]
  1242.  58h = T  80x33     8x14      .     16      .   B800 ATI EGA Wonder,ATI VIP
  1243.      = T  80x32     9x16      .     16      .    .  Genoa 6400
  1244.      = T  80x43     8x8      .      .      .    .  NEL Electronics BIOS
  1245.      = T 132x30     9x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1246.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA
  1247.      = G 100x75     8x8   800x600     16      .    .  AT&T VDC600
  1248.      = G 100x75     8x8   800x600     16      .   A000 NCR 77C22 [9]
  1249.      = G 100x75     8x8   800x600     16      .    .  Diamond Speedstar 24X
  1250.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA, WD90C
  1251.      = G    .      .    800x600     16      .    .  AST VGA Plus, Compaq VGA
  1252.      = G    .      .    800x600     16      .    .  Dell VGA
  1253.      = G    .      .    800x600     16      .    .  Hewlett-Packard D1180A
  1254.      = G    .      .    800x600    ???      .    .  ELT VGA PLUS 16
  1255.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1256.      = G 160x64     8x16 1280x1024     16      .   A000 Oak OTI-077 chipset [8]
  1257.  59h = T  80x43     9x8      .      .      .    .  NEL Electronics BIOS
  1258.      = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1259.      = T 132x43     9x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1260.      = G 100x75     8x8   800x600      2      .   A000 Paradise VGA
  1261.      = G 100x75     8x8   800x600      2      .    .  AT&T VDC600
  1262.      = G    .      .    800x600      2      .    .  AST VGA Plus, Compaq VGA
  1263.      = G    .      .    800x600      2      .    .  Dell VGA
  1264.      = G    .      .    800x600      2      .    .  Hewlett-Packard D1180A
  1265.      = G 100x75     8x8   800x600      2      .   A000 NCR 77C22 [9]
  1266.      = G 128x48     8x16 1024x768    256      .   A000 Oak OTI-077 chipset [8]
  1267.  5Ah = T  80x60     8x8      .      .      .    .  NEL Electronics BIOS
  1268.      = T 132x60     9x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1269.      = G 128x48     8x16 1024x768      2      .   A000 NCR 77C22 [9]
  1270.  5Bh = T  80x30     8x16      .      .      .   B800 ATI VGA Wonder (undoc)
  1271.      = G    .      .    640x350    256      .    .  Genoa 6400
  1272.      = G  80x25     8x16  640x400     32K      .   A000 Oak OTI-067/077 chips [8]
  1273.      = G    .      .    800x600     16      .    .  Maxxon, SEFCO TVGA, Imtec
  1274.      = G 100x75     8x8   800x600     16/256K  .   A000 Trident TVGA 8800, 8900
  1275.      = G    .      .    800x600    ???      .    .  Vobis MVGA
  1276.      = G 100x37     8x16  800x600      .      .    .  NEL Electronics BIOS
  1277.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [1,9]
  1278.  5Ch = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1279.      = G    .      .    640x400    256      .    .  Logix, ATI Prism Elite
  1280.      = G    .      .    640x400    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1281.      = G  80x25     8x16  640x400    256/256K  .   A000 Zymos Poach, Hi Res 512
  1282.      = G  80x25     8x16  640x400    256/256K  .   A000 Trident TVGA 8800/8900
  1283.      = G  80x30     8x16  640x480    256      .    .  Genoa 6400
  1284.      = G  80x30     8x16  640x480     32K      .   A000 Oak OTI-077 chipset [8]
  1285.      = G 100x75     8x8   800x600    256      .   A000 NCR 77C22 [9]
  1286.      = G 100x75     8x8   800x600    256/256K  .   A000 WD90C
  1287.      = G 100x75     8x8   800x600    256/256K  .   A000 Diamond Speedstar 24X
  1288.      = G 100x37     8x16  800x600    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1289.  5Dh = T 100x75     8x8      .      .      .    .  NEL Electronics BIOS
  1290.      = G  80x25     8x14  640x350     64K      .    .  STB Lightspeed ET4000/W32P
  1291.      = G    .      .    640x480    256      .    .  Logix, ATI Prism Elite
  1292.      = G    .      .    640x480    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1293.      = G  80x30     8x16  640x480    256/256K  .   A000 Zymos Poach, Hi Res 512
  1294.      = G  80x30     8x16  640x480    256/256K  .   A000 Trident TVGA 8800 (512K)
  1295.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [9]
  1296.      = G 128x48     8x16 1024x768     16/256K  .   A000 WD90C
  1297.      = G 128x48     8x16 1024x768     16      .    .  Diamond Speedstar 24X
  1298.      = G 128x48     8x16 1024x768     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1299.  5Eh = G    .      .    640x400    256      .    .  Paradise VGA,VEGA VGA
  1300.      = G    .      .    640x400    256      .    .  AST VGA Plus, NCR 77C22
  1301.      = G    .      .    640x400    256      .    .  Compaq VGA, Dell VGA
  1302.      = G  80x25     8x16  640x400    256      .    .  AT&T VDC600
  1303.      = G  80x25     8x16  640x400    256      .   A000 NCR 77C22 [9]
  1304.      = G  80x25     8x16  640x400    256/256K  .   A000 WD90C
  1305.      = G  80x25     8x16  640x400    256/256K  .   A000 Diamond Speedstar 24X
  1306.      = G    .      .    800x600     16      .    .  Logix, ATI Prism Elite
  1307.      = G 100x37     8x16  800x600     16      .    .  NEL Electronics BIOS
  1308.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1309.      = G 100x75     8x8   800x600    256/256K  .   A000 Zymos Poach, Trident 8900
  1310.      = G 100x75     8x8   800x600    256/256K  .   A000 Hi Res 512
  1311.  5Fh = G  80x25     8x16  640x400     64K      .    .  STB Lightspeed ET4000/W32P
  1312.      = G    .      .    640x480    256      .    .  Paradise VGA
  1313.      = G    .      .    640x480    256      .    .  AST VGA Plus, NCR 77C22
  1314.      = G    .      .    640x480    256      .    .  Compaq VGA, Dell VGA
  1315.      = G    .      .    640x480    256      .    .  Hewlett-Packard D1180A
  1316.      = G  80x30     8x16  640x480    256      .    .  AT&T VDC600 (512K)
  1317.      = G  80x30     8x16  640x480    256      .   A000 NCR 77C22 [9]
  1318.      = G  80x30     8x16  640x480    256/256K  .   A000 WD90C
  1319.      = G  80x30     8x16  640x480    256/256K  .   A000 Diamond Speedstar 24X
  1320.      = G  80x30     8x16  640x480    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1321.      = G    .      .   1024x768     16      .    .  Logix, ATI Prism Elite
  1322.      = G    .      .   1024x768     16      .    .  Maxxon, Imtec
  1323.      = G 128x48     8x16 1024x768     16      .    .  Genoa 6400
  1324.      = G 128x48     8x16 1024x768     16/256K  .   A000 Zymos Poach, Hi Res 512
  1325.      = G 128x48     8x16 1024x768     16/256K  .   A000 Trident TVGA 88/8900 512K
  1326.  60h = T 132x25     8x14      .     16/64      8   B800 Quadram Ultra VGA
  1327.      = T 132x25     8x14      .     16      .    .  Genoa 6400
  1328.      = T 132x25     8x14      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1329.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  1330.      = T 132x25      .      .     16      .    .  Chips&Technologies chipset
  1331.      = G  80x???  .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1332.      = G  80x25     8x16  640x400    256      1   A000 Ahead A, Ahead B
  1333.      = G    .      .    752x410      .      .    .  VEGA VGA
  1334.      = G    .      .    752x410     16      .    .  Tatung VGA
  1335.      = G    .      .    752x410     16      .    .  Video7 V-RAM VGA
  1336.      = G 128x48     8x16 1024x768      4/256K  .   A000 Trident TVGA 8900
  1337.      = G 128x48     8x16 1024x768    256/256K  .   A000 WD90C
  1338.      = G 128x48     8x16 1024x768    256/256K  .   A000 Diamond Speedstar 24X
  1339.      = G 128x48     8x16 1024x768    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1340.  61h = T 132x29     8x12      .     16/64      8   B800 Quadram Ultra VGA
  1341.      = T 132x29     8x8      .     16      .    .  Genoa 6400
  1342.      = T 132x29     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1343.      = T 132x50      .      .      .      .    .  Cirrus 5320 chipset
  1344.      = T 132x50      .      .     16      .    .  Chips&Technologies chipset
  1345.      = G    .      .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1346.      = G  80x25     8x16  640x400    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1347.      = G  80x25     8x16  640x400    256      .   A000 ATI Ultra 8514A,ATI XL
  1348.      = G  80x30     8x16  640x480    256      1   A000 Ahead A, Ahead B (512K)
  1349.      = G    .      .    720x540      .      .    .  VEGA VGA
  1350.      = G    .      .    720x540     16      .    .  Tatung VGA
  1351.      = G    .      .    720x540     16      .    .  Video7 V-RAM VGA
  1352.      = G  96x64     8x16  768x1024     16/256K  .   A000 Trident TVGA 88/8900 512K
  1353.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [1,9]
  1354.  62h = T 132x32     8x11      .     16/64      6   B800 Quadram Ultra VGA
  1355.      = T 132x32     8x12      .     16      .    .  Genoa 6400
  1356.      = T 132x32     8x11      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1357.      = G    .      .    640x450     16      .    .  Cirrus 510/520 chipset
  1358.      = G  80x30     8x16  640x480    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1359.      = G  80x30     8x16  640x480    256      .   A000 ATI Ultra 8514A,ATI XL
  1360.      = G  80x30     8x16  640x480    32K      .   A000 WD90C
  1361.      = G  80x30     8x16  640x480    32K      .   A000 Diamond Speedstar 24X
  1362.      = G    .      .    800x600      .      .    .  VEGA VGA
  1363.      = G    .      .    800x600     16      .    .  Tatung VGA
  1364.      = G    .      .    800x600     16      .    .  Video7 V-RAM VGA
  1365.      = G 100x75     8x8   800x600    256      1   A000 Ahead A, Ahead B (512K)
  1366.      = G 128x48     8x16 1024x768    256/256K  .   A000 Trident TVGA 8900, Zymos
  1367.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [9]
  1368.  63h = T 132x44     8x8      .     16/64      5   B800 Quadram Ultra VGA
  1369.      = T 132x44     8x8      .     16      .    .  Genoa 6400
  1370.      = T 132x44     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1371.      = G    .      .    720x540     16      .    .  MORSE VGA
  1372.      = G    .      .    720x540     16      .    .  Cirrus 510/520 chipset
  1373.      = G 100x42     8x14  800x600    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1374.      = G 100x42     8x14  800x600    256      .   A000 ATI Ultra 8514A,ATI XL
  1375.      = G    .      .    800x600    32K      .   A000 WD90C
  1376.      = G    .      .    800x600    32K      .   A000 Diamond Speedstar 24X
  1377.      = G 128x48     7x16 1024x768    256      1   A000 Ahead B (1MB)
  1378.      = G    .      .   1024x768      2      .    .  Video7 V-RAM VGA
  1379.  64h = T 132x60     8x8      .     16      .    .  Genoa 6400
  1380.      = G    .      .    640x480    64K      .   A000 Cirrus CL-GD 5422/5426
  1381.      = G    .      .    800x600     16      .    .  MORSE VGA
  1382.      = G    .      .    800x600     16      .    .  Cirrus 510/520 chipset
  1383.      = G    .      .    800x600    ???      .    .  SAMPO-Mira VGA
  1384.      = G    .      .   1024x768      4      .    .  Video7 V-RAM VGA
  1385.      = G 128x48     8x16 1024x768    256      .   A000 ATI VGA Wonder Plus,ATI XL
  1386.      = G 160x64     8x16 1280x1024     16/256K  .   A000 WD90C [1]
  1387.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Diamond Speedstar 24X [1]
  1388.  65h = G    .      .    800x600    64K      .   A000 Cirrus CL-GD 5422/5426
  1389.      = G    .      .   1024x768     16      .    .  Video7 V-RAM VGA
  1390.      = G 128x48     8x16 1024x768     16      .   A000 ATI VGA Wonder
  1391.  66h = T  80x50     8x8   640x400     16/256K  .   B800 WD90C
  1392.      = T  80x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1393.      = G    .      .    640x400    256      .    .  Tatung VGA
  1394.      = G    .      .    640x400    256      .    .  Video7 V-RAM VGA
  1395.      = G    .      .    640x480    32K      .   A000 Cirrus CL-GD 5422/5426
  1396.  67h = T  80x43     8x8   640x344     16/256K  .   B800 WD90C
  1397.      = T  80x43     8x8      .     16      .   B800 Diamond Speedstar 24X
  1398.      = G    .      .    640x480    256      .    .  Video7 V-RAM VGA
  1399.      = G    .      .    800x600    32K      .   A000 Cirrus CL-GD 5422/5426
  1400.      = G 128x48     8x16 1024x768      4      .   A000 ATI VGA Wonder
  1401.      = G 160x64     8x16 1280x1024     16      .   A000 NCR 77C22 [1,9]
  1402.  69h = T 132x50     8x8  1056x400     16/256K  .   B800 WD90C
  1403.      = T 132x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1404.      = G    .      .    720x540    256      .    .  Video7 V-RAM VGA
  1405.  6Ah = G    .      .    800x600     16      .   A000 VESA standard interface
  1406.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1407.      = G 100x75     8x8   800x600     16      .    .  Diamond Speedstar 24X
  1408.      = G    .      .    800x600     16      .   A000 Ahead A
  1409.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (VESA) (see 71h)
  1410.      = G    .      .    800x600     16      .    .  Zymos Poach, Hi Res 512
  1411.      = G    .      .    800x600     16      .    .  Epson LT-386SX in CRT Mode
  1412.      = G    .      .    800x600     16      .    .  Compuadd 316SL in CRT Mode
  1413.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1414.      = G 100x42     8x14  800x600      .      .   A000 ATI VGA Wonder (undoc)
  1415.      = G    .      .    800x600     16      .    .  Chips&Technologies chipset
  1416.      = G 160x64     8x16 1280x1024 256      .   A000 NCR 77C22 [1,9]
  1417.  6Bh = T 100x37     8x16      .     16      .    .  Genoa 6400
  1418.      = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1419.  6Ch = G  80x30     8x16  640x480     16M      .   A000 Trident 8900CL/BIOS C04
  1420.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1421.      = G 160x60     8x16 1280x960     16/256K  .   A000 WD90C [1]
  1422.      = G 160x60     8x16 1280x960     16/256K  .   A000 Diamond Speedstar 24X [1]
  1423.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1424.  6Dh = G  80x25     8x14  640x350     64K      .    .  STB Lightspeed ET4000/W32P
  1425.      = G 160x64     8x16 1280x1024 256/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1426.  6Eh = G  40x25     8x8   320x200     64K      .   A000 Cirrus CL-GD 5422/5426
  1427.  6Fh = G  40x25     8x8   320x200     16M      .   A000 Cirrus CL-GD 5422/5426
  1428.  70h =    extended mode set (see AX=0070h)    .  Everex Micro Enhancer EGA
  1429.      = T  40x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1430.      = T  40x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1431.      = G    .      .    360x480    256      .    .  Cirrus 510/520/5320 chips
  1432.      = G  90x28     8x14  720x392     16      1   A000 Ahead B
  1433.      = G    .      .    800x600     16      .    .  C&T chipset, Cardinal
  1434.      = G    .      .   1024x480    256      .    .  Trident 8900C BIOS C3.0
  1435.  71h = T  80x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1436.      = T  80x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1437.      = G    .      .    528x400    256      .    .  Cirrus 510/520 chipset
  1438.      = G  80x30     8x16  640x480     16M      .   A000 Cirrus CL-GD 5422/5426
  1439.      = G 100x35     8x16  800x600     16/64      .   A000 NSI Smart EGA+
  1440.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (same as 6Ah)
  1441.      = G    .      .    960x720     16      .    .  C&T chipset, Cardinal
  1442.      = G    .      .   1024x480    256      .    .  Trident 8900C BIOS C3.0
  1443.  72h = T  80x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1444.      = T  80x60     8x8      .     16      .   B800 Genoa 6400
  1445.      = T  80x60     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1446.      = G    .      .    528x480    256      .    .  Cirrus 510/520 chipset
  1447.      = G  80x25     8x19  640x480     16      1   A000 DOS/V w/ any VGA
  1448.      = G    .      .    640x480    32K      .   A000 ATI
  1449.      = G    .      .    640x480    16M      .   A000 WD90C
  1450.      = G    .      .    640x480    16M      .   A000 Diamond Speedstar 24X
  1451.      = G    .      .   1024x768     16      .    .  C&T chipset, Cardinal
  1452.  73h = G  80x60     8x8   640x480     16      .   A000 Quadram Ultra VGA
  1453.      = G  80x60     8x8   640x480     16      .    .  Genoa 6400
  1454.      = G  80x60     8x8   640x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1455.      = T  80x25     8x19  640x475     16      1   none DOS/V, emulated in VGA graph
  1456.  74h = T  80x66     8x8      .     16      .   B800 Quadram Ultra VGA
  1457.      = T  80x66     8x8      .     16      .   B800 Genoa 6400
  1458.      = T  80x66     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1459.      = G    .      .    640x400      2      .   B800 Toshiba 3100 AT&T mode
  1460.      = G  80x30     8x16  640x480     32K      .   A000 Trident 8900C/BIOS C03
  1461.      = G 128x48     8x16 1024x768     16      1   A000 Ahead A, Ahead B (512K)
  1462.      = G    .      .   1024x768     64K      .   A000 Cirrus CL-GD 5422/5426 [1]
  1463.  75h = G  80x30     8x16  640x480     64K      .   A000 Trident 8900C/BIOS C03
  1464.      = G  80x66      .    640x528     16???      .   A000 Quadram Ultra VGA
  1465.      = G  80x66      .    640x528     16      .    .  Genoa SuperEGA BIOS 3.0+
  1466.      = G 128x48     8x16 1024x768      4      1   A000 Ahead B
  1467.  76h = T  94x29     8x14      .     16      .   B800 Quadram Ultra VGA
  1468.      = T  94x29     8x14      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1469.      = G 100x75     8x8   800x600     32K      .   A000 Trident 8900C/BIOS C03
  1470.      = G 128x48     8x16 1024x768      2      1   A000 Ahead B
  1471.  77h = G  94x29      .    752x410     16???      .   A000 Quadram Ultra VGA
  1472.      = G  94x29      .    752x410     16      .    .  Genoa SuperEGA BIOS 3.0+
  1473.      = G 100x75     8x8   800x600     64K      .   A000 Trident 8900C/BIOS C03
  1474.  78h = T 100x37     8x16      .     16      .    .  Genoa 6400
  1475.      = T 100x75     8x8      .     16      .   B800 Quadram Ultra VGA
  1476.      = T 100x75     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1477.      = G    .      .    640x400    256      .    .  STB VGA/EM-16 Plus
  1478.      = G    .      .    640x400    256      .    .  Cardinal, C&T chipset
  1479.      = G    .      .    640x400    256      .    .  Cirrus 5320 chipset
  1480.  79h = G    .      .    640x480    256      .    .  Cardinal, C&T chipset
  1481.      = G 100x75      .    800x600     16???      .   A000 Quadram Ultra VGA
  1482.      = G 100x75     8x8   800x600     16      .    .  Genoa SuperEGA BIOS 3.0+
  1483.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1484.  7Ah = T 114x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1485.      = T 114x60     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1486.      = G    .      .    720x540    256      .    .  C&T chipset, Cardinal
  1487.  7Bh = G    .      .    800x600    256      .    .  C&T chipset, Cardinal
  1488.      = G 114x60      .    912x480     16???      .   A000 Quadram Ultra VGA
  1489.      = G    .      .    912x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1490.  7Ch = G    .      .    512x512     16      .    .  Genoa
  1491.      = G    .      .    800x600    256      .    .  C&T 82C453 chipset
  1492.  7Dh = G  64x32     8x16  512x512    256      .    .  Genoa
  1493.  7Eh =    special mode set (see AX=007Eh)        .  Paradise VGA, AT&T VDC600
  1494.      = G  80x25     8x16  640x400    256      .    .  Genoa 6400
  1495.      = G    .      .   1024x768    256      .    .  C&T 82C453 chipset
  1496.      = G  90x43      .      .    mono      .   B000 HERCULES.COM on HGC [14]
  1497.  7Fh =    special function set (see AX=007Fh)    .  Paradise VGA, AT&T VDC600
  1498.      = G 128x48     8x16 1024x768      4      .    .  Genoa 6400
  1499.      = G  90x29      .      .    mono      .   B000 HERCULES.COM on HGC [14]
  1500.  82h = T  80x25      .      .    B&W      .    .  AT&T VDC overlay mode [6]
  1501.  83h = T  80x25      .      .      .      .    .  AT&T VDC overlay mode [6]
  1502.  86h = G    .      .    640x200    B&W      .    .  AT&T VDC overlay mode [6]
  1503.  88h = G  90x43     8x8   720x348    mono      .   B000 Hercules + MSHERC.COM
  1504.  C0h = G    .      .    640x400    2/prog palette    .  AT&T VDC overlay mode [6]
  1505.      = G    .      .    640x400    2/prog palette    .  Olivetti Quaderno overlay
  1506.  C4h =    disable output      .      .      .    .  AT&T VDC overlay mode [6]
  1507.  C8h = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno overlay
  1508.  D0h = G    .      .    640x400      2      .   B800 DEC VAXmate AT&T mode
  1509. Notes:
  1510. [1] interlaced only
  1511. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1512.       SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1513.       otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1514.       color) 132x25 character mode.
  1515.     for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1516.       resident
  1517. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1518. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1519.       22h is page 1) even if there is no Hercules graphics board installed
  1520. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1521. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1522.       40h, or 44h
  1523. [7] BIOS text support is broken in this undocumented mode; scrolling moves only
  1524.       about 1/3 of the screen (and does even that portion incorrectly), while
  1525.       screen clears only clear about 3/4.
  1526. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1527.       may choose to use only partially or not at all; thus, not all Oak boards
  1528.       support all "Oak" modes listed here
  1529. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1530.       precluding the use of a monochrome adapter in the same system
  1531. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1532.       v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1533.       09/14/90 version
  1534. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1535.       installation check for HERKULES.COM is the signature "Herkules" two bytes
  1536.       beyond the INT 10 handler
  1537. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into modes
  1538.       21h or 27h; this version of the BIOS also sets the BIOS data area
  1539.       incorrectly for extended text modes, resulting in scrolling after only
  1540.       24 lines (the VMODE.EXE    utility does set the data area correctly)
  1541. [13] The Tandy 1000SL/TL BIOS does not actually support this mode
  1542. [14] HERCULES.COM is a graphics-mode BIOS extension for Hercules-compatible
  1543.       graphics cards by Soft Warehouse, Inc.  Its installation check is to
  1544.       test whether the word preceding the INT 10 handler is 4137h.
  1545. [15] The Hercules-graphics video modes for HERCBIOS (shareware by Dave
  1546.       Tutelman) may be changed by a command-line switch; the 90x43
  1547.       character-cell mode's number is always one higher than the 90x29 mode
  1548.       (whose default is mode 08h)
  1549. Index:    video modes
  1550. Index:    installation check;HERKULES|installation check;HERCULES.COM
  1551. --------V-100070-----------------------------
  1552. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1553.     AX = 0070h
  1554.     BL = mode (see #0010)
  1555. Desc:    specify a proprietary display mode on the Everex Micro Enhancer or
  1556.       Viewpoint video adapters
  1557. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1558.  
  1559. (Table 0010)
  1560. Values for Everex video mode:
  1561.      text/ text pixel    pixel    colors disply scrn monitor    adapter
  1562.      grph resol     box  resolution       pages  addr
  1563.  00h = G    .      .    640x480     16      .    .  multisync  EGA,VGA
  1564.  01h = G    .      .    752x410     16      .    .  multisync  EGA,VGA
  1565.  02h = G    .      .    800x600     16      .    .  multisync  EGA,VGA
  1566.  03h = T  80x34      .      .      .      .    .  multisync  EGA,VGA
  1567.  04h = T  80x60      .      .      .      .    .  multisync  EGA,VGA
  1568.  05h = T  94x29      .      .      .      .    .  multisync  EGA only
  1569.  06h = T  94x51      .      .      .      .    .  multisync  EGA only
  1570.  07h = T 100x43     8x14      .     16      .    .  .          VGA only
  1571.  08h = T 100x75     8x8      .     16      .    .  .          VGA only
  1572.  09h = T  80x44      .      .      .      .    .  EGA          EGA only
  1573.  0Ah = T 132x25      .      .      .      .    .  EGA          EGA,VGA
  1574.  0Bh = T 132x44      .      .      .      .    .  EGA          EGA,VGA
  1575.  0Ch = T 132x25      .      .      .      .    .  CGA          EGA only
  1576.  0Dh = T  80x44      .      .      .      .    .  mono          EGA only
  1577.  0Eh = T 132x25      .      .      .      .    .  mono
  1578.  0Fh = T 132x44      .      .      .      .    .  mono
  1579.  10h =    reserved
  1580.  11h = G    .      .   1280x350      4      .    .  .          EGA only
  1581.  12h = G    .      .   1280x600      4      .    .  .          EGA only
  1582.  13h = G    .      .    640x350    256      .    .  .          EGA,EV673
  1583.  14h = G    .      .    640x400    256      .    .  .
  1584.  15h = G    .      .    512x480    256      .    .  .
  1585.  16h = T  80x30     8x16      .    256      .    .  .          VGA only
  1586.  18h = T 100x27     8x16      .     16      .    .  .          VGA only
  1587.  20h = G    .      .   1024x768     16      .    .  .          Everex 629,678
  1588.         .      .      .      .      .    .  .          Everex EV-673
  1589.  21h = T 160x64     8x16 1280x1024     16      .    .  .          1MB VGA only
  1590.  30h = G    .      .    640x480    256      .    .  .          Everex 629,678
  1591.         .      .      .      .      .    .  .          Everex EV-673
  1592.  31h = G    .      .    800x600    256      .    .  .          Everex 629,678
  1593.         .      .      .      .      .    .  .          Everex EV-673
  1594.  32h = G 128x48     8x16 1024x768    256      .    .  .          1MB VGA only
  1595.  40h = T 132x30     8x16      .     16      .    .  .          VGA only
  1596.  50h = T 132x32     8x16      .    mono      .    .  .          VGA only
  1597.  62h = G  40x25     8x8   320x200    32K      .    .  .          Vwpt TC (EV629)
  1598.  70h = G  64x30     8x16  512x480    32K      .    .  .          Viewpoint TC
  1599.  71h = G  80x30     8x16  640x480    32K      .    .  .          Viewpoint TC
  1600.  76h = G  64x30     8x16  512x480    16M      .    .  .          Viewpoint TC
  1601.  77h = G  80x30     8x16  640x480    16M      .    .  .          Viewpoint TC
  1602. Index:    video modes;Everex
  1603. --------V-10007E-----------------------------
  1604. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1605.     AX = 007Eh
  1606.     BX = horizontal dimension of the mode desired
  1607.     CX = vertical dimension of the mode desired
  1608.         (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1609.     DX = number of colors of the mode desired (0000h for monochrome modes)
  1610. Return: BH = 7Eh if successful (Paradise VGA)
  1611.     AL = 7Eh if successful (AT&T VDC600)
  1612. Desc:    specify a display mode by resolution rather than mode number
  1613. SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
  1614. Index:    video modes;Paradise|video modes;AT&T
  1615. --------V-10007FBH00-------------------------
  1616. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
  1617.     AX = 007Fh
  1618.     BH = 00h
  1619. Return: AL = 7Fh if successful (AT&T VDC600)
  1620.     BH = status (Paradise/Dell)
  1621.         00h invalid function
  1622.         7Fh successful
  1623. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1624. --------V-10007FBH01-------------------------
  1625. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
  1626.     AX = 007Fh
  1627.     BH = 01h
  1628. Return: AL = 7Fh if successful (AT&T VDC600)
  1629.     BH = status (Paradise/Dell)
  1630.         00h invalid function
  1631.         7Fh successful
  1632. Note:    color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
  1633.       mode 7 will set non-VGA MDA/Hercules operation
  1634. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
  1635. --------V-10007FBH02-------------------------
  1636. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
  1637.     AX = 007Fh
  1638.     BH = 02h
  1639. Return: AL = 7Fh if successful (AT&T VDC600)
  1640.     BH = status (Paradise/Dell)
  1641.         00h invalid function
  1642.         7Fh successful
  1643.     ---if successful---
  1644.     BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1645.     CH = total video RAM size in 64k byte units
  1646.     CL = video RAM used by the current mode
  1647. Note:    under Novell DOS 7 TaskMgr Multitasker, this call always returns 0K
  1648.       video memory in CX
  1649. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=01h
  1650. --------V-10007F-----------------------------
  1651. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
  1652.     AX = 007Fh
  1653.     BH = function
  1654.         03h     lock current mode
  1655.         allows current mode (VGA or non-VGA) to survive re-boot
  1656.         04h     enter MDA mode
  1657.         05h     enter CGA mode
  1658.         06h     enter monochrome VGA mode (also switches to video mode 7)
  1659.         07h     enter color VGA mode (also switches to video mode 3)
  1660.         0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1661.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1662.         BL = value to set in the paradise register
  1663.         1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1664.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1665.         Return: BL = value of the paradise register
  1666.             BH = 7Fh if successful
  1667.         29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
  1668. Return: AL = 7Fh if successful (AT&T VDC600)
  1669.     BH = status (Paradise/Dell)
  1670.         00h invalid function
  1671.         7Fh successful
  1672. Desc:    set emulation mode or access proprietary extended data registers
  1673. SeeAlso: AX=007Eh,AH=FF"Oak"
  1674. --------V-10007FBH60-------------------------
  1675. INT 10 - Paradise VGA - ???
  1676.     AX = 007Fh
  1677.     BH = 60h
  1678.     BL = ??? (00h-13h)
  1679.     ???
  1680. Return: BH = status (00h failed or not supported, 7Fh successful)
  1681.     ???
  1682. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1683. --------V-10007FBH61-------------------------
  1684. INT 10 - Paradise VGA - ???
  1685.     AX = 007Fh
  1686.     BH = 61h
  1687.     ES:DI -> buffer for list of ??? (see #0011)
  1688. Return: BH = status (00h failed or not supported, 7Fh successful)
  1689.     ???
  1690. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1691.  
  1692. Format of Paradise VGA list entry:
  1693. Offset    Size    Description    (Table 0011)
  1694.  00h    BYTE    ??? or 00h if end of list
  1695.  01h    BYTE    ???
  1696.  02h    WORD    ???
  1697.  04h    WORD    ???
  1698.  06h    WORD    ???
  1699. --------V-10007FBXA500-----------------------
  1700. INT 10 - Paradise VGA - ???
  1701.     AX = 007Fh
  1702.     BX = A500h
  1703.     ???
  1704. Return: BH = status (00h failed or not supported, 7Fh successful)
  1705.     ???
  1706. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1707. --------V-10007FBHA5-------------------------
  1708. INT 10 - Paradise VGA - ???
  1709.     AX = 007Fh
  1710.     BH = A5h
  1711.     BL = ???
  1712.         bits 3-0: ??? (0-4)
  1713.         bits 5,4: ???
  1714.     ???
  1715. Return: BH = status (00h failed or not supported, 7Fh successful)
  1716.     ???
  1717. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1718. --------V-10007FBHA6-------------------------
  1719. INT 10 - Paradise VGA - ???
  1720.     AX = 007Fh
  1721.     BH = A6h
  1722.     ???
  1723. Return: BH = status (00h failed or not supported, 7Fh successful)
  1724.     ???
  1725. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1726. --------V-1001-------------------------------
  1727. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1728.     AH = 01h
  1729.     CH = cursor start and options (see #0012)
  1730.     CL = bottom scan line containing cursor (bits 0-4)
  1731. Desc:    specify the starting and ending scan lines to be occupied by the
  1732.       hardware cursor in text modes
  1733. Notes:    buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1734.       returns unmapped cursor shape
  1735.     UltraVision scales size to the current font height by assuming 14-line
  1736.       monochrome and 8-line color fonts; this call is not valid if cursor
  1737.       emulation has been disabled
  1738.     applications which wish to change the cursor by programming the
  1739.       hardware directly on EGA or above should call INT 10/AX=1130h or
  1740.       read 0040h:0085h first to determine the current font height
  1741.     on some adapters, setting the end line greater than the number of lines
  1742.       in the font will result in the cursor extending to the top of the
  1743.       next character cell on the right
  1744. BUG:    AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1745.       is not equal to the current video mode
  1746. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h,#2469
  1747.  
  1748. Bitfields for cursor start and options:
  1749. Bit(s)    Description    (Table 0012)
  1750.  7    should be zero
  1751.  6,5    cursor blink
  1752.     (00=normal, 01=invisible, 10=erratic, 11=slow)
  1753.     (00=normal, other=invisible on EGA/VGA)
  1754.  4-0    topmost scan line containing cursor
  1755. --------V-1002-------------------------------
  1756. INT 10 - VIDEO - SET CURSOR POSITION
  1757.     AH = 02h
  1758.     BH = page number
  1759.         0-3 in modes 2&3
  1760.         0-7 in modes 0&1
  1761.         0 in graphics modes
  1762.     DH = row (00h is top)
  1763.     DL = column (00h is left)
  1764. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh,MEM 0040h:0050h
  1765. --------V-1003-------------------------------
  1766. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1767.     AH = 03h
  1768.     BH = page number
  1769.         0-3 in modes 2&3
  1770.         0-7 in modes 0&1
  1771.         0 in graphics modes
  1772. Return: AX = 0000h (Phoenix BIOS)
  1773.     CH = start scan line
  1774.     CL = end scan line
  1775.     DH = row (00h is top)
  1776.     DL = column (00h is left)
  1777. Notes:    a separate cursor is maintained for each of up to 8 display pages
  1778.     many ROM BIOSes incorrectly return the default size for a color display
  1779.       (start 06h, end 07h) when a monochrome display is attached
  1780. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h,MEM 0040h:0050h,MEM 0040h:0060h
  1781. --------V-1004-------------------------------
  1782. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  1783.     AH = 04h
  1784. Return: AH = light pen trigger flag
  1785.         00h not down/triggered
  1786.         01h down/triggered
  1787.         DH,DL = row,column of character light pen is on
  1788.         CH = pixel row (graphics modes 04h-06h)
  1789.         CX = pixel row (graphics modes with >200 rows)
  1790.         BX = pixel column
  1791. Desc:    determine the current position and status of the light pen (if
  1792.       present)
  1793. Notes:    on a CGA, returned column numbers are always multiples of 2 (320-
  1794.       column modes) or 4 (640-column modes)
  1795.     returned row numbers are only accurate to two lines
  1796. --------V-1004------------------------------------
  1797. INT 10 - HUNTER 16 - GET CURSOR ADDRESS
  1798.     AH = 04h
  1799.     BH = page
  1800. Return: DH = row (0..24)
  1801.     DL = column (0..79)
  1802.     CH = cursor pixel Y-address (0..199)
  1803.     CL = cursor pixel X-address (0..639)
  1804. Notes:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  1805.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  1806.     pixel coordinates are for the lower left corner of the character cell
  1807.       containing the cursor
  1808. SeeAlso: AH=60h"HUNTER"
  1809. --------V-1005-------------------------------
  1810. INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE
  1811.     AH = 05h
  1812.     AL = new page number (00h to number of pages - 1) (see #0009)
  1813. Desc:    specify which of possibly multiple display pages will be visible
  1814. Note:    to determine whether the requested page actually exists, use AH=0Fh
  1815.       to query the current page after making this call
  1816. SeeAlso: AH=0Fh,AH=43h,AH=45h,MEM 0040h:0062h
  1817. --------V-1005-------------------------------
  1818. INT 10 - VIDEO - PCjr, Tandy 1000 - MANIPULATE CRT/CPU PAGE REGISTERS
  1819.     AH = 05h
  1820.     AL = subfunction
  1821.         80h read CRT and CPU page registers
  1822.         Return: BH = CRT page register
  1823.             BL = CPU page register
  1824.         81h set CPU page register
  1825.         BL = CPU page
  1826.         82h set CRT page register
  1827.         BH = CRT page
  1828.         83h set both CPU and CRT page registers
  1829.         BL = CPU page
  1830.         BH = CRT page
  1831. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1832.       memory will be mapped at B800h by the hardware
  1833.     the CRT page determines the start address of the memory used by the
  1834.       video controller
  1835. --------V-1005-------------------------------
  1836. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER
  1837.     AH = 05h
  1838.     AL = function
  1839.         00h set address of graphics bitmap buffer (video modes 60h,61h)
  1840.         BX = segment of buffer
  1841.         0Fh get address of graphics bitmap buffer (video modes 60h,61h)
  1842.         Return: DX = segment of graphics bitmap buffer
  1843. --------V-1006-------------------------------
  1844. INT 10 - VIDEO - SCROLL UP WINDOW
  1845.     AH = 06h
  1846.     AL = number of lines by which to scroll up (00h = clear entire window)
  1847.     BH = attribute used to write blank lines at bottom of window
  1848.     CH,CL = row,column of window's upper left corner
  1849.     DH,DL = row,column of window's lower right corner
  1850. Note:    affects only the currently active page (see AH=05h)
  1851. BUGS:    some implementations (including the original IBM PC) have a bug which
  1852.       destroys BP
  1853.     the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  1854.       scrolling in an SVGA mode (800x600 or higher)
  1855. SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  1856. --------V-1007-------------------------------
  1857. INT 10 - VIDEO - SCROLL DOWN WINDOW
  1858.     AH = 07h
  1859.     AL = number of lines by which to scroll down (00h=clear entire window)
  1860.     BH = attribute used to write blank lines at top of window
  1861.     CH,CL = row,column of window's upper left corner
  1862.     DH,DL = row,column of window's lower right corner
  1863. Note:    affects only the currently active page (see AH=05h)
  1864. BUGS:    some implementations (including the original IBM PC) have a bug which
  1865.       destroys BP
  1866.     the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  1867.       scrolling in an SVGA mode (800x600 or higher)
  1868. SeeAlso: AH=06h,AH=72h,AH=73h,INT 50/AX=0014h
  1869. --------V-1008-------------------------------
  1870. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1871.     AH = 08h
  1872.     BH = page number (00h to number of pages - 1) (see #0009)
  1873. Return: AH = character's attribute (text mode only) (see #0013)
  1874.     AL = character
  1875. Notes:    for monochrome displays, a foreground of 1 with background 0 is
  1876.       underlined
  1877.     the blink bit may be reprogrammed to enable intense background colors
  1878.       using AX=1003h or by programming the CRT controller
  1879.     the foreground intensity bit (3) can be programmed to switch between
  1880.       character sets A and B on EGA and VGA cards, thus enabling 512
  1881.       simultaneous characters on screen.  In this case the bit's usual
  1882.       function (intensity) is regularly turned off.
  1883.     in graphics modes, only characters drawn with white foreground pixels
  1884.       are matched by the pattern-comparison routine
  1885. SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
  1886.  
  1887. Bitfields for character's display attribute:
  1888. Bit(s)    Description    (Table 0013)
  1889.  7    foreground blink or (alternate) background bright (see also AX=1003h)
  1890.  6-4    background color (see #0014)
  1891.  3    foreground bright or (alternate) alternate character set (see AX=1103h)
  1892.  2-0    foreground color (see #0014)
  1893. SeeAlso: #0025
  1894.  
  1895. (Table 0014)
  1896. Values for character color:
  1897.     Normal        Bright
  1898.  000b    black        dark gray
  1899.  001b    blue        light blue
  1900.  010b    green        light green
  1901.  011b    cyan        light cyan
  1902.  100b    red        light red
  1903.  101b    magenta        light magenta
  1904.  110b    brown        yellow
  1905.  111b    light gray    white
  1906. --------V-1009-------------------------------
  1907. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1908.     AH = 09h
  1909.     AL = character to display
  1910.     BH = page number (00h to number of pages - 1) (see #0009)
  1911.         background color in 256-color graphics modes (ET4000)
  1912.     BL = attribute (text mode) or color (graphics mode)
  1913.         if bit 7 set in <256-color graphics mode, character is XOR'ed
  1914.           onto screen
  1915.     CX = number of times to write character
  1916. Notes:    all characters are displayed, including CR, LF, and BS
  1917.     replication count in CX may produce an unpredictable result in graphics
  1918.       modes if it is greater than the number of positions remaining in the
  1919.       current row
  1920. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F,INT 43,INT 44
  1921. --------V-100A-------------------------------
  1922. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  1923.     AH = 0Ah
  1924.     AL = character to display
  1925.     BH = page number (00h to number of pages - 1) (see #0009)
  1926.         background color in 256-color graphics modes (ET4000)
  1927.     BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
  1928.         if bit 7 set in <256-color graphics mode, character is XOR'ed
  1929.           onto screen
  1930.     CX = number of times to write character
  1931. Notes:    all characters are displayed, including CR, LF, and BS
  1932.     replication count in CX may produce an unpredictable result in graphics
  1933.       modes if it is greater than the number of positions remaining in the
  1934.       current row
  1935. SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
  1936. --------V-100B--BH00-------------------------
  1937. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  1938.     AH = 0Bh
  1939.     BH = 00h
  1940.     BL = background/border color (border only in text modes)
  1941. SeeAlso: AH=0Bh/BH=01h
  1942. --------V-100B--BH01-------------------------
  1943. INT 10 - VIDEO - SET PALETTE
  1944.     AH = 0Bh
  1945.     BH = 01h
  1946.     BL = palette ID
  1947.         00h background, green, red, and brown/yellow
  1948.         01h background, cyan, magenta, and white
  1949. Note:    this call was only valid in 320x200 graphics on the CGA, but newer
  1950.       cards support it in many or all graphics modes
  1951. SeeAlso: AH=0Bh/BH=00h,MEM 0040h:0066h
  1952. --------V-100C-------------------------------
  1953. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  1954.     AH = 0Ch
  1955.     BH = page number
  1956.     AL = pixel color
  1957.         if bit 7 set, value is XOR'ed onto screen except in 256-color modes
  1958.     CX = column
  1959.     DX = row
  1960. Desc:    set a single pixel on the display in graphics modes
  1961. Notes:    valid only in graphics modes
  1962.     BH is ignored if the current video mode supports only one page
  1963. SeeAlso: AH=0Dh,AH=46h
  1964. --------V-100D-------------------------------
  1965. INT 10 - VIDEO - READ GRAPHICS PIXEL
  1966.     AH = 0Dh
  1967.     BH = page number
  1968.     CX = column
  1969.     DX = row
  1970. Return: AL = pixel color
  1971. Desc:    determine the current color of the specified pixel in grahics modes
  1972. Notes:    valid only in graphics modes
  1973.     BH is ignored if the current video mode supports only one page
  1974. SeeAlso: AH=0Ch,AH=47h
  1975. --------V-100E-------------------------------
  1976. INT 10 - VIDEO - TELETYPE OUTPUT
  1977.     AH = 0Eh
  1978.     AL = character to write
  1979.     BH = page number
  1980.     BL = foreground color (graphics modes only)
  1981. Desc:    display a character on the screen, advancing the cursor and scrolling
  1982.       the screen as necessary
  1983. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  1984.       and do the expected things
  1985.     IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  1986.       the current active page
  1987. SeeAlso: AH=02h,AH=0Ah
  1988. --------b-100E--CXABCD-----------------------
  1989. INT 10 - V20-XT-BIOS - TELETYPE OUTPUT WITH ATTRIBUTE
  1990.     AH = 0Eh
  1991.     CX = ABCDh
  1992.     BP = ABCDh
  1993.     AL = character to write
  1994.     BH = page number
  1995.     BL = foreground color (text modes as well as graphics modes)
  1996. Program: V20-XT-BIOS is a ROM BIOS replacement with extensions by Peter
  1997.       Koehlmann / c't magazine
  1998. Desc:    display a character on the screen, advancing the cursor and scrolling
  1999.       the screen as necessary
  2000. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  2001.       and do the expected things
  2002. SeeAlso: INT 15/AH=84h"V20-XT-BIOS"
  2003. --------V-100F-------------------------------
  2004. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  2005.     AH = 0Fh
  2006. Return: AH = number of character columns
  2007.     AL = display mode (see #0009 at AH=00h)
  2008.     BH = active page (see AH=05h)
  2009. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  2010.       also have bit 7 set
  2011.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  2012.       (monochrome) in all extended-row text modes
  2013.     HP 200LX returns AL=07h (monochrome) if mode was set to AL=21h
  2014.       and always 80 resp. 40 columns in all text modes regardless of
  2015.       current zoom setting (see AH=D0h)
  2016.     when using a Hercules Graphics Card, additional checks are necessary:
  2017.         mode 05h: if WORD 0040h:0063h is 03B4h, may be in graphics page 1
  2018.           (as set by DOSSHELL and other Microsoft software)
  2019.         mode 06h: if WORD 0040h:0063h is 03B4h, may be in graphics page 0
  2020.           (as set by DOSSHELL and other Microsoft software)
  2021.         mode 07h: if BYTE 0040h:0065h bit 1 is set, Hercules card is in
  2022.           graphics mode, with bit 7 indicating the page (mode set by
  2023.           Hercules driver for Borland Turbo C)
  2024. SeeAlso: AH=00h,AH=05h,AX=10F2h/BL=00h,AX=1130h,AX=CD04h
  2025. --------V-100F56BX4756-----------------------
  2026. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  2027.     AX = 0F56h
  2028.     BX = 4756h
  2029.     CX = 4944h
  2030.     DL = function
  2031.         01h installation check
  2032.         Return: AX = 5649h
  2033.             BX = 4443h
  2034.             CX = 5647h
  2035.             DH = 01h
  2036.         02h get first video mode's parameters
  2037.         Return: AX = BIOS mode number
  2038.             BX = width in pixels
  2039.             CX = height in pixels
  2040.             DX = number of colors
  2041.         03h get next video mode's parameters
  2042.         Return: as for DL=02h
  2043.         04h display line???
  2044.         ES:DI -> record (see #0015)
  2045.         ???
  2046.         Return: ???
  2047. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  2048. Note:    the use of TSR display drivers was discontinued after v2.20
  2049. Index:    installation check;VUIMAGE display driver
  2050.  
  2051. Format of record for VUIMAGE Function 04h:
  2052. Offset    Size    Description    (Table 0015)
  2053.  00h    WORD    row number
  2054.  02h    WORD    starting column???
  2055.  04h    WORD    ending column???
  2056.     ???
  2057. --------V-100F--SIF123-----------------------
  2058. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  2059.     AH = 0Fh
  2060.     SI = F123h
  2061.     DI = 321Fh
  2062. Return: AH = number of character columns
  2063.     AL = display mode (see #0009 at AH=00h)
  2064.     BH = active page (see AH=05h)
  2065.     SI = DI = F345h if installed
  2066. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  2067.       also have bit 7 set
  2068.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  2069.       (monochrome) in all extended-row text modes
  2070. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  2071. --------V-1010-------------------------------
  2072. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  2073.     AH = 10h
  2074.     CH,CL = row,column of upper left corner of window
  2075.     DH,DL = row,column of lower right corner of window
  2076. Return: AL = status
  2077.         00h successful
  2078.         01h failed
  2079.     AH destroyed
  2080. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2081. Note:    when a window has been set, all output via AH=0Eh is restricted to
  2082.       the specified window
  2083. SeeAlso: AH=11h"Window",AH=12h"Window"
  2084. --------V-1010-------------------------------
  2085. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  2086.     AH = 10h
  2087.     AL = speed
  2088.         00h fast
  2089.         01h slow (scrolling only moves characters during vertical retrace)
  2090. Return: AH = previous speed
  2091. --------V-101000-----------------------------
  2092. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
  2093.     AX = 1000h
  2094.     BL = palette register number (00h-0Fh)
  2095.        = attribute register number (undocumented) (see #0016)
  2096.     BH = color or attribute register value
  2097. Notes:    on MCGA, only BX = 0712h is supported
  2098.     under UltraVision, the palette locking status (see AX=CD01h)
  2099.       determines the outcome
  2100. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  2101.  
  2102. (Table 0016)
  2103. Values for attribute register number:
  2104.  10h    attribute mode control register (should let BIOS control this)
  2105.  11h    overscan color register (see also AX=1001h)
  2106.  12h    color plane enable register (bits 3-0 enable corresponding
  2107.       text attribute bit)
  2108.  13h    horizontal PEL panning register
  2109.  14h    color select register
  2110. --------V-101001-----------------------------
  2111. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
  2112.     AX = 1001h
  2113.     BH = border color (00h-3Fh)
  2114. BUG:    the original IBM VGA BIOS incorrectly updates the parameter save area
  2115.       and places the border color at offset 11h of the palette table
  2116.       rather than offset 10h
  2117. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  2118.       determines the outcome
  2119. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  2120. --------V-101002-----------------------------
  2121. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
  2122.     AX = 1002h
  2123.     ES:DX -> palette register list (see #0017)
  2124.     BH = 00h to avoid problems on some adapters
  2125. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  2126.       determines the outcome
  2127. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  2128.  
  2129. Format of palette register list:
  2130. Offset    Size    Description    (Table 0017)
  2131.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  2132.  10h    BYTE    border color
  2133. --------V-101003-----------------------------
  2134. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  2135.     AX = 1003h
  2136.     BL = new state
  2137.         00h background intensity enabled
  2138.         01h blink enabled
  2139.     BH = 00h to avoid problems on some adapters
  2140. Notes:    although there is no function to get the current status on adapters
  2141.       prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  2142.       VGA, use AH=1Bh and check offset 2Dh of the returned data (see #0037)
  2143.     when configured for a monochrome display, the Boca Research Multi-EGA
  2144.       with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  2145.     this call is reported to be "Get Cursor Position" on the Tandy
  2146.       1000SL/TL
  2147. SeeAlso: AH=08h,AH=1Bh
  2148. --------V-101007-----------------------------
  2149. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  2150.     AX = 1007h
  2151.     BL = palette or attribute (undoc) register number (see #0016)
  2152. Return: BH = palette or attribute register value
  2153. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2154.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2155.       registers will cause incorrect results because the EGA registers are
  2156.       write-only.  To guard against older versions or unsupported video
  2157.       modes, programs which expect to use this function on EGA systems
  2158.       should set BH to FFh on entry.
  2159. SeeAlso: AX=1000h,AX=1009h
  2160. --------V-101008-----------------------------
  2161. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  2162.     AX = 1008h
  2163. Return: BH = border color (00h-3Fh)
  2164. Note:    (see AX=1007h)
  2165. SeeAlso: AX=1001h
  2166. --------V-101009-----------------------------
  2167. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  2168.     AX = 1009h
  2169.     ES:DX -> 17-byte buffer for palette register list (see #0017)
  2170. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2171.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2172.       registers will cause incorrect results because the EGA registers are
  2173.       write-only.  To guard against older versions or unsupported video
  2174.       modes, programs which expect to use this function on EGA systems
  2175.       should set the ES:DX buffer to FFh before calling.
  2176. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  2177. --------V-101010-----------------------------
  2178. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2179.     AX = 1010h
  2180.     BX = register number
  2181.     CH = new value for green (0-63)
  2182.     CL = new value for blue (0-63)
  2183.     DH = new value for red (0-63)
  2184. SeeAlso: AX=1012h,AX=1015h
  2185. --------V-101012-----------------------------
  2186. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  2187.     AX = 1012h
  2188.     BX = starting color register
  2189.     CX = number of registers to set
  2190.     ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  2191.          byte each of red, green and blue (0-63)
  2192. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  2193. --------V-101013-----------------------------
  2194. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  2195.     AX = 1013h
  2196.     BL = subfunction
  2197.         00h select paging mode
  2198.         BH = 00h select 4 blocks of 64
  2199.         BH = 01h select 16 blocks of 16
  2200.         01h select page
  2201.         BH = page number (00h to 03h) or (00h to 0Fh)
  2202. Note:    this function is not valid in mode 13h
  2203. SeeAlso: AX=101Ah
  2204. --------V-101015-----------------------------
  2205. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2206.     AX = 1015h
  2207.     BL = palette register number
  2208. Return: DH = red value
  2209.     CH = green value
  2210.     CL = blue value
  2211.     AX destroyed by some BIOSes
  2212.           (e.g. Tseng ET4000 BIOS v8.00n always returns AX=00C9h)
  2213. SeeAlso: AX=1010h,AX=1017h
  2214. --------V-101017-----------------------------
  2215. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  2216.     AX = 1017h
  2217.     BX = starting palette register
  2218.     CX = number of palette registers to read
  2219.     ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  2220. Return: buffer filled with CX red, green and blue triples
  2221. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  2222. --------V-101018-----------------------------
  2223. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  2224.     AX = 1018h
  2225.     BL = new PEL value
  2226. SeeAlso: AX=1019h
  2227. --------V-101019-----------------------------
  2228. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  2229.     AX = 1019h
  2230. Return: BL = value read
  2231. SeeAlso: AX=1018h
  2232. --------V-10101A-----------------------------
  2233. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  2234.     AX = 101Ah
  2235. Return: BL = paging mode
  2236.         00h four pages of 64
  2237.         01h sixteen pages of 16
  2238.     BH = current page
  2239. SeeAlso: AX=1013h
  2240. --------V-10101B-----------------------------
  2241. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  2242.     AX = 101Bh
  2243.     BX = starting palette register
  2244.     CX = number of registers to convert
  2245. Desc:    convert the RGB values of one or more palette registers such that the
  2246.       resulting values are grays with the same intensities as the original
  2247.       colors
  2248. SeeAlso: AH=12h/BL=33h
  2249. --------V-1010E0-----------------------------
  2250. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  2251.     AX = 10E0h
  2252.     BL = video mode (see also #0009 at AH=00h)
  2253.         2Eh = 640x480
  2254. Return: ???
  2255. SeeAlso: AH=00h,AX=10F0h
  2256. --------V-1010F0-----------------------------
  2257. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  2258.     AX = 10F0h
  2259.     BL = video mode (see also #0009 at AH=00h)
  2260.         13h = 320x200x32K
  2261.         2Dh = 640x350x32K
  2262.         2Eh = 640x480x32K
  2263.         2Fh = 640x400x32K
  2264.         30h = 800x600x32K
  2265.         3Eh = 640x480x16M (Genoa 7900)
  2266.         FFh Tseng 24-bit color mode
  2267.         BH = mode
  2268.             2Dh = 640x480
  2269.             2Eh = 640x480x16M
  2270.             2Fh = 640x400
  2271.             30h = 800x600
  2272.             38h = 1024x768??? (Tseng ET4000/W32i)
  2273. Return: AL = 10h if supported
  2274.     AH = status
  2275.         00h if successful
  2276.         other on error
  2277. Desc:    switch the display into a graphics mode with 15 or more bits per pixel
  2278. Note:    the Tseng HiColor BIOS extensions are supported by:
  2279.       Diamond Computer Systems    SpeedStar HiColor VGA
  2280.       Everex Systems        HC VGA
  2281.       Focus Information Systems    2theMax 4000
  2282.       Cardinal Technologies        VGA732
  2283.       Orchid ProDesigner IIs    Genoa 7900
  2284. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  2285. Index:    video modes;Tseng Hi-Color
  2286. --------V-1010F1-----------------------------
  2287. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  2288.     AX = 10F1h
  2289. Return: AL = 10h if supported
  2290.     BL = type of digital/analog converter (see #0018)
  2291. Desc:    determine which type of digital-to-analog converter is installed on the
  2292.       display board
  2293. SeeAlso: AX=10F0h,AX=10F2h
  2294.  
  2295. (Table 0018)
  2296. Values for type of DAC:
  2297.  00h normal VGA DAC
  2298.  01h Sierra SC1148x HiColor DAC
  2299.  ---Diamond SpeedStar 24---
  2300.  02h new Sierra SS24 DAC (24-bit)
  2301.  ---generic Tseng BIOS v8+ ---
  2302.  02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
  2303.  03h ATT20c490/1/2 (15/16/24-bit)
  2304.  04h AcuMos ADAC1 (15/16/24-bit)
  2305.  05h unknown 15/16/24-bit DAC
  2306.  06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
  2307.  07h Diamond SS2410 (15/24-bit)
  2308.  08h unknown 15/16/24-bit DAC
  2309.  09h unknown 15/16/24-bit DAC
  2310.  else other HiColor DAC
  2311. --------V-1010F2-----------------------------
  2312. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
  2313.     AX = 10F2h
  2314.     BL = function
  2315.         00h get current HiColor mode
  2316.         01h set 15-bit HiColor mode
  2317.         02h set 16-bit HiColor mode
  2318. Return: AX = 0010h if supported
  2319.     BL = video mode type
  2320.         00h not in HiColor mode
  2321.         01h 15-bit RGB mode
  2322.         02h 16-bit RGB mode
  2323.         03h 24-bit RGB mode
  2324. Desc:    determine whether the display is in a graphics mode with 15 or more
  2325.       bits per pixel color resolution
  2326. Note:    set (BL=01h/02h) only works if already in a HiColor mode
  2327. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  2328. --------V-1011-------------------------------
  2329. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  2330.     AH = 11h
  2331. Return: CH,CL = row,column of upper left corner
  2332.     DH,DL = row,column of lower right corner
  2333. Desc:    determine the portion of the display to which output is restricted
  2334. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2335. SeeAlso: AH=10h"Window",AH=12h"Window"
  2336. --------V-1011-------------------------------
  2337. INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
  2338.     AH = 11h
  2339.     The following functions will cause a mode set, completely resetting
  2340.     the video environment, but without clearing the video buffer
  2341.     AL = 00h, 10h: load user-specified patterns
  2342.         ES:BP -> user table
  2343.         CX      = count of patterns to store
  2344.         DX      = character offset into map 2 block
  2345.         BL      = block to load in map 2
  2346.         BH      = number of bytes per character pattern
  2347.     AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
  2348.         BL      = block to load
  2349.     AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
  2350.         BL      = block to load
  2351.     AL = 03h: set block specifier (allows dual character sets on screen)
  2352.         BL      = block specifier (see #0019)
  2353.     AL = 04h, 14h: load ROM 8x16 character set (VGA)
  2354.         BL    = block to load
  2355. Notes:    The routines called with AL=1xh are designed to be called only
  2356.       immediately after a mode set and are similar to the routines called
  2357.       with AL=0xh, except that:
  2358.           Page 0 must be active.
  2359.           Bytes/character is recalculated.
  2360.           Max character rows is recalculated.
  2361.           CRT buffer length is recalculated.
  2362.           CRTC registers are reprogrammed as follows:
  2363.              R09 = bytes/char-1 ; max scan line (mode 7 only)
  2364.              R0A = bytes/char-2 ; cursor start
  2365.              R0B = 0        ; cursor end
  2366.              R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2367.              R14 = bytes/char    ; underline loc
  2368.                (*** BUG: should be 1 less ***)
  2369.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2370.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2371.       (see AH=1Bh,#0037)
  2372. SeeAlso: AH=1Bh,AX=CD10h
  2373.  
  2374. Bitfields for block specifier:
  2375. Bit(s)    Description    (Table 0019)
  2376. ---EGA/MCGA---
  2377.  0,1    block selected by characters with attribute bit 3 clear
  2378.  2,3    block selected by characters with attribute bit 3 set
  2379. ---VGA---
  2380.  0,1,4    block selected by characters with attribute bit 3 clear
  2381.  2,3,5    block selected by characters with attribute bit 3 set
  2382. --------V-1011-------------------------------
  2383. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2384.     AH = 11h
  2385.     AL = 07h load user-specified paterns and recalculate mode parms
  2386.          parameters are the same as for AL = 10h
  2387.     AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2388.          parameters are the same as for AL = 11h
  2389.     AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2390.          parameters are the same as for AL = 12h
  2391.     AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2392.          parameters are the same as for AL = 14h
  2393. Note:    these functions should only be called under the same conditions as
  2394.       AL=1xh (see entry above)
  2395. SeeAlso: AH=11h
  2396. --------V-10110F-----------------------------
  2397. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2398.     AX = 110Fh
  2399.     ES:BP -> user table for INT 1F
  2400. Note:    this function is meant to be called immediately after a mode set;
  2401.       results are unpredictable at other times
  2402. SeeAlso: AX=1110h,AX=1111h,AX=1112h,AX=1120h
  2403. --------V-101110-----------------------------
  2404. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2405.     AX = 1110h
  2406.     ES:BP -> user table
  2407.     CX = bytes per character
  2408.     BL = row specifier
  2409.         00h user set
  2410.         DL = number of rows
  2411.         01h 14 rows
  2412.         02h 25 rows
  2413.         03h 43 rows
  2414. Note:    this function is meant to be called immediately after a mode set;
  2415.       results are unpredictable at other times
  2416. SeeAlso: AX=110Fh,AX=1112h,AX=1121h
  2417. --------V-101111-----------------------------
  2418. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2419.     AX = 1111h
  2420.     BL = row specifier (see AX=1121h)
  2421. Note:    this function is meant to be called immediately after a mode set;
  2422.       results are unpredictable at other times
  2423. SeeAlso: AX=110Fh,AX=1110h,AX=1122h
  2424. --------V-101112-----------------------------
  2425. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2426.     AX = 1112h
  2427.     BL = row specifier (see AX=1121h)
  2428. Note:    this function is meant to be called immediately after a mode set;
  2429.       results are unpredictable at other times
  2430. SeeAlso: AX=110Fh,AX=1110h,AX=1111h,AX=1123h
  2431. --------V-101120-----------------------------
  2432. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2433.     AX = 1120h
  2434.     ES:BP -> user table for INT 1F
  2435. Note:    this function is meant to be called immediately after a mode set;
  2436.       results are unpredictable at other times
  2437. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1125h,INT 1F,INT 43
  2438. --------V-101121-----------------------------
  2439. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2440.     AX = 1121h
  2441.     ES:BP -> user table
  2442.     CX = bytes per character
  2443.     BL = row specifier
  2444.         00h user set
  2445.         DL = number of rows
  2446.         01h 14 rows
  2447.         02h 25 rows
  2448.         03h 43 rows
  2449. Note:    this function is meant to be called immediately after a mode set;
  2450.       results are unpredictable at other times
  2451. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2452. --------V-101122-----------------------------
  2453. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2454.     AX = 1122h
  2455.     BL = row specifier (see AX=1121h)
  2456. Notes:    this function is meant to be called immediately after a mode set;
  2457.       results are unpredictable at other times
  2458.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2459. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2460. --------V-101123-----------------------------
  2461. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2462.     AX = 1123h
  2463.     BL = row specifier (see AX=1121h)
  2464. Notes:    this function is meant to be called immediately after a mode set;
  2465.       results are unpredictable at other times
  2466.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2467. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h,INT 1F,INT 43
  2468. --------V-101124-----------------------------
  2469. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2470.     AX = 1124h
  2471.     BL = row specifier (see AX=1121h)
  2472. Notes:    this function is meant to be called immediately after a mode set;
  2473.       results are unpredictable at other times
  2474.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2475. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h,INT 1F,INT 43
  2476. --------V-101129-----------------------------
  2477. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2478.     AX = 1129h
  2479.     BL = row specifier (see AX=1121h)
  2480. Notes:    this function is meant to be called immediately after a mode set;
  2481.       results are unpredictable at other times
  2482.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2483. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F, INT 43
  2484. --------V-101130-----------------------------
  2485. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2486.     AX = 1130h
  2487.     BH = pointer specifier
  2488.         00h INT 1Fh pointer
  2489.         01h INT 43h pointer
  2490.         02h ROM 8x14 character font pointer
  2491.         03h ROM 8x8 double dot font pointer
  2492.         04h ROM 8x8 double dot font (high 128 characters)
  2493.         05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2494.         06h ROM 8x16 font (MCGA, VGA)
  2495.         07h ROM alternate 9x16 font (VGA only) (see #0020)
  2496.         11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2497.         12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2498. Return: ES:BP = specified pointer
  2499.     CX    = bytes/character of on-screen font (not the requested font!)
  2500.     DL    = highest character row on screen
  2501. Note:    for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2502.       8xN font at ES:BP+256N
  2503. BUG:    the IBM EGA and some other EGA cards return in DL the number of rows on
  2504.       screen rather than the highest row number (which is one less).
  2505. SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
  2506.  
  2507. Format of alternate font table [array]:
  2508. Offset    Size    Description    (Table 0020)
  2509.  00h    BYTE    character to be replaced (00h = end of table)
  2510.  01h  N BYTEs    graphics data for character, one byte per scan line
  2511. --------V-101130BX4D4F-----------------------
  2512. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2513.     AX = 1130h
  2514.     BX = 4D4Fh
  2515. Return: CX = 4F4Dh if installed
  2516.         ES:BP -> M10_SCR INT 10 handler
  2517. Program: M10_SCR is a shareware extended text mode and font driver by
  2518.       I.V. Morozov
  2519. SeeAlso: INT 16/AX=4D4Fh
  2520. --------V-1012-------------------------------
  2521. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2522.     AH = 12h
  2523. Return: BH = attribute to use on blanked lines when scrolling
  2524. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2525. SeeAlso: AH=11h"Window",AH=12h"Window"
  2526. --------V-1012--BL10-------------------------
  2527. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2528.     AH = 12h
  2529.     BL = 10h
  2530. Return: BH = video state
  2531.         00h color mode in effect (I/O port 3Dxh)
  2532.         01h mono mode in effect (I/O port 3Bxh)
  2533.     BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2534.     CH = feature connector bits (see #0021)
  2535.     CL = switch settings (see #0022,#0023)
  2536.     AH destroyed (at least by Tseng ET4000 BIOS v8.00n)
  2537. Note:    one possible check for the presence of an EGA or later display card
  2538.       is to call this function with BH=FFh; if not present, BH will be
  2539.       unchanged on return
  2540.     another installation check is used by Athena Digital's HGCIBM, which
  2541.       sets CX to FFFFh on calling and checks whether it has been changed
  2542.       on return
  2543. Index:    installation check;EGA
  2544.  
  2545. Bitfields for feature connector bits:
  2546. Bit(s)    Description    (Table 0021)
  2547.  0    FEAT 1 line, state 2
  2548.  1    FEAT 0 line, state 2
  2549.  2    FEAT 1 line, state 1
  2550.  3    FEAT 0 line, state 1
  2551.  4-7    unused (0)
  2552.  
  2553. Bitfields for switch settings:
  2554. Bit(s)    Description    (Table 0022)
  2555.  0    switch 1 OFF
  2556.  1    switch 2 OFF
  2557.  2    switch 3 OFF
  2558.  3    switch 4 OFF
  2559.  4-7    unused
  2560.  
  2561. (Table 0023)
  2562. Values for switch settings on original EGA/VGA:
  2563.  00h        primary MDA/HGC,    secondary EGA+ 40x25
  2564.  01h-03h    primary MDA/HGC,    secondary EGA+ 80x25
  2565.  04h        primary CGA 40x25,    secondary EGA+ 80x25 mono
  2566.  05h        primary CGA 80x25,    secondary EGA+ 80x25 mono
  2567.  06h        primary EGA+ 40x25,    secondary MDA/HGC (optional)
  2568.  07h-09h    primary EGA+ 80x25,    secondary MDA/HGC (optional)
  2569.  0Ah        primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
  2570.  0Bh        primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
  2571. --------V-1012--BL11-------------------------
  2572. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2573.     AH = 12h
  2574.     BL = 11h
  2575. Return: AL = 12h if function supported
  2576.         BL = ??? (10h)
  2577.         ES:BP -> BIOS info structure (see #0024)
  2578. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2579.  
  2580. Format of Trident BIOS Info structure:
  2581. Offset    Size     Description    (Table 0024)
  2582.  00h    BYTE     ??? (0000h)
  2583.  01h    BYTE     OEM Code (00h for original Trident)
  2584.  02h    WORD     ID??? (1073h for 8800BR, 1074 for 8800CS)
  2585.  04h  8 BYTEs     BIOS date ('mm/dd/yy')
  2586.  0Ch    WORD     ???
  2587.  0Eh  8 BYTEs     BIOS Version (' C3-128 ', ' C3-129 ')
  2588. --------V-1012--BL12-------------------------
  2589. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  2590.     AH = 12h
  2591.     BL = 12h
  2592. Return: AL = 12h if function supported
  2593.         AH = number of 256K banks of RAM installed
  2594. SeeAlso: AH=12h/BL=11h"TRIDENT"
  2595. --------V-1012--BL20-------------------------
  2596. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  2597.     AH = 12h
  2598.     BL = 20h  select alternate print screen routine
  2599. Desc:    installs a PrtSc routine from the video card's BIOS to replace the
  2600.       default PrtSc handler from the ROM BIOS, which usually does not
  2601.       understand screen heights other than 25 lines
  2602. Note:    some adapters disable print-screen instead of enhancing it
  2603. SeeAlso: INT 05
  2604. --------V-1012--BL2E-------------------------
  2605. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2606.     AH = 12h
  2607.     BL = 2Eh
  2608. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2609.       crash the system on this function
  2610. --------V-1012--BL30-------------------------
  2611. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  2612.     AH = 12h
  2613.     BL = 30h
  2614.     AL = vertical resolution
  2615.          00h 200 scan lines
  2616.          01h 350 scan lines
  2617.          02h 400 scan lines
  2618. Return: AL = 12h if function supported
  2619. Desc:    specify the number of scan lines used to display text modes
  2620. Note:    the specified resolution will take effect on the next mode set
  2621. SeeAlso: AH=00h
  2622. --------V-1012--BL31-------------------------
  2623. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  2624.     AH = 12h
  2625.     BL = 31h
  2626.     AL = new state
  2627.         00h enable default palette loading
  2628.         01h disable default palette loading
  2629. Return: AL = 12h if function supported
  2630. Desc:    specify whether a default palette should be loaded when the display
  2631.       mode is set
  2632. SeeAlso: AH=00h
  2633. --------V-1012--BL32-------------------------
  2634. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  2635.     AH = 12h
  2636.     BL = 32h
  2637.     AL = new state
  2638.         00h enable video addressing
  2639.         01h disable video addressing
  2640. Return: AL = 12h if function supported
  2641. Desc:    specify whether the CPU should have access to video memory and the
  2642.       display adapters I/O registers
  2643. --------V-1012--BL33-------------------------
  2644. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  2645.     AH = 12h
  2646.     BL = 33h
  2647.     AL = new state
  2648.         00h enable gray scale summing
  2649.         01h disable gray scale summing
  2650. Return: AL = 12h if function supported
  2651. Desc:    specify whether or not colors should be converted to gray scale when
  2652.       palette or color registers are loaded
  2653. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  2654. --------V-1012--BL34-------------------------
  2655. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  2656.     AH = 12h
  2657.     BL = 34h
  2658.     AL = new state
  2659.         00h enable alphanumeric cursor emulation
  2660.         01h disable alphanumeric cursor emulation
  2661. Return: AL = 12h if function supported
  2662. Desc:    specify whether the BIOS should automatically remap cursor start/end
  2663.       according to the current character height in text modes
  2664. SeeAlso: AH=01h,AH=03h
  2665. --------V-1012--BL35-------------------------
  2666. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  2667.     AH = 12h
  2668.     BL = 35h
  2669.     AL = subfunction
  2670.         00h initial adapter video off
  2671.         01h initial planar video on
  2672.         02h switch active video off
  2673.         03h switch inactive video on
  2674.         80h *UNDOCUMENTED* set system board video active flag
  2675.     ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
  2676. Return: AL = 12h if function supported
  2677. Desc:    switch between two video adapters which may otherwise have address
  2678.       conflicts
  2679. --------V-1012--BL36-------------------------
  2680. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  2681.     AH = 12h
  2682.     BL = 36h
  2683.     AL = new state
  2684.         00h enable refresh
  2685.         01h disable refresh
  2686. Return: AL = 12h if function supported
  2687. Desc:    specify whether the contents of video memory should be displayed on
  2688.       the screen; disabling refresh effectively blanks the screen
  2689. Note:    when display refresh is disabled, the entire screen displays the color
  2690.       specified by the DAC color register 00h; thus to actually blank the
  2691.       screen, the application must first ensure that that register has been
  2692.       set to black
  2693. BUG:    GEM/VIEWMAX ET3000 and ET4000 drivers dated 6/23/88 do not correctly
  2694.       reenable refresh after the screen has been blanked due to inactivity,
  2695.       resulting in a total loss of video synchronization
  2696. SeeAlso: AX=BF05h
  2697. --------V-1012--BL37-------------------------
  2698. INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
  2699.     AH = 12h
  2700.     BL = 37h
  2701.     AL = text attribute type (00h normal VGA, 01h mainframe type)
  2702. Return: AL = 12h if supported
  2703. SeeAlso: #0025,AH=08h
  2704.  
  2705. Bitfields for XGA mainframe type character attributes:
  2706. Bit(s)    Description    (Table 0025)
  2707.  7    blink double rate (75% ON time) or use color 8 as background
  2708.     (see AX=1003h)
  2709.  6    reverse video
  2710.  5    underlined
  2711.  4    left-most and right-most dots of underline area inverted
  2712.  3    foreground intensity/character font select
  2713.  2-0    foreground color
  2714. SeeAlso: #0013,#0033
  2715. --------V-1012--BL53-------------------------
  2716. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2717.     AH = 12h
  2718.     BL = 53h
  2719. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2720.       crash the system on this function
  2721. --------V-1012--BL57-------------------------
  2722. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2723.     AH = 12h
  2724.     BL = 57h
  2725. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2726.       crash the system on this function
  2727. --------V-1012--BH55-------------------------
  2728. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  2729.     AH = 12h
  2730.     BH = 55h
  2731.     BL = subfunction
  2732.         00h disable enhanced features
  2733.         01h enable enhanced features
  2734.         02h get status
  2735.         Return: AL = status flags (see #0026)
  2736.         03h disable register trapping (CGA emulation)
  2737.         04h enable register trapping
  2738.         05h program video mode
  2739.         ES:BP -> video mode table (see #0027)
  2740.         06h get mode table
  2741.         AL = video mode
  2742.         Return: ES:BP -> table suitable for mode AL
  2743.                   (and subfunc BL=05h) (see #0027)
  2744.             BP = FFFFh on error
  2745.             SI = 0000h (ATI Mach32)
  2746. Note:    the ATI Mouse driver (MOUSE.COM/MOUSE.SYS) uses subfunction 06h to get
  2747.       the mode table for mode 03h, and then looks for a signature string
  2748.       beginning within 32 bytes of the offset specified by the word at
  2749.       ES:000Ch
  2750. SeeAlso: AH=FFh"Oak"
  2751. Index:    installation check;ATI video adapters
  2752.  
  2753. Bitfields for status flags:
  2754. Bit(s)    Description    (Table 0026)
  2755.  3    set if enhanced features enabled
  2756.  7-5    monitor type
  2757.     000 PS/2 mono
  2758.     001 PS/2 color
  2759.     010 multi-sync
  2760.     011 Taxan 650 25kHz
  2761.     100 RGB
  2762.     101 mono
  2763.     110 EGA
  2764.     111 Compaq internal
  2765.  
  2766. Format of ATI VGA Wonder video mode table:
  2767. Offset    Size    Description    (Table 0027)
  2768.  00h    BYTE    number of columns
  2769.  01h    BYTE    maximum row (number of rows - 1)
  2770.  02h    BYTE    scan lines per row
  2771.  03h    WORD    video buffer size in bytes
  2772.  05h  4 BYTEs    values for Sequencer registers 1-4
  2773.  09h    BYTE    value for Miscellaneous Output register
  2774.  0Ah 25 BYTEs    values for CRTC registers 00h-18h
  2775.         00h horizontal total size (chars)
  2776.         01h horizontal displayed (chars)
  2777.         02h horizontal sync position (chars)
  2778.         03h horizontal sync width (chars)
  2779.         04h vertical total size (char rows)
  2780.         05h vertical total adjust (scan lines)
  2781.         06h vertical displayed (char rows)
  2782.         07h vertical sync position (char rows)
  2783.         08h interlace mode
  2784.         09h max scan line in row
  2785.         0Ah cursor start scan line
  2786.         0Bh cursor end scan line
  2787.         0Ch screen memory start (high)
  2788.         0Dh screen memory start (low)
  2789.         0Eh cursor address (high)
  2790.         0Fh cursor address (low)
  2791.         10h light pen (high)
  2792.         11h light pen (low)
  2793.  23h 20 BYTEs    default palette (values for Attribute Controller regs 00h-13h)
  2794.  37h  9 BYTEs    values for Graphics Controller registers 00h-08h
  2795. --------V-1012--BL74-------------------------
  2796. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2797.     AH = 12h
  2798.     BL = 74h
  2799. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2800.       crash the system on this function
  2801. --------V-1012--BL80-------------------------
  2802. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2803.     AH = 12h
  2804.     BL = 80h
  2805. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2806.       crash the system on this function
  2807. --------V-1012--BL80-------------------------
  2808. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  2809.     AH = 12h
  2810.     BL = 80h
  2811. Return: AX = controller type in bits 13-0 (see #0028)
  2812.         bit 14: ???
  2813.         bit 15: ???
  2814.     BL = silicon revision number (bit 7 set if not available)
  2815. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2816.  
  2817. (Table 0028)
  2818. Values for Cirrus Logic video controller type:
  2819.  0000h    no extended alternate select support
  2820.  0002h    510/520
  2821.  0003h    610/620
  2822.  0004h    5320
  2823.  0005h    6410
  2824.  0006h    5410
  2825.  0007h    6420
  2826.  0008h    6412
  2827.  0010h    5401
  2828.  0011h    5402
  2829.  0012h    5420
  2830.  0013h    5422
  2831.  0014h    5424
  2832.  0015h    5426
  2833.  0016h    5420r1
  2834.  0017h    5402r1
  2835.  0018h    5428
  2836.  0020h    6205/15/25
  2837.  0030h    5432
  2838.  0031h    5434
  2839. --------V-1012--BL81-------------------------
  2840. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  2841.     AH = 12h
  2842.     BL = 81h
  2843. Return: AH = BIOS major version
  2844.     AL = BIOS minor version
  2845. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  2846. --------V-1012--BL82-------------------------
  2847. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  2848.     AH = 12h
  2849.     BL = 82h
  2850. Return: AL = chip revision
  2851.     AH = ??? (AFh for v1.01)
  2852. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h
  2853. --------V-1012--BL84-------------------------
  2854. INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
  2855.     AH = 12h
  2856.     BL = 84h
  2857. Return: AX = user options word (see #0029)
  2858. SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2859. SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
  2860.  
  2861. Bitfields for Cirrus Logic user options word:
  2862. Bit(s)    Description    (Table 0029)
  2863.  1,0    centering
  2864.     00 vertical centered, 01 from bottom, 10 from top, 11 reserved
  2865.  3,2    720-dot fix-up options
  2866.     00 OR every 8th and 9th pixel
  2867.     01 display MGA mode from left
  2868.     10 display MGA mode from right
  2869.     11 skip every 9th pixel
  2870.  4    ???
  2871.  7-5    video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
  2872.  8    external monitor enabled instead of LCD panel
  2873.  9    vertical expand mode enabled
  2874.  10    8-bit mode instead of 16-bit mode
  2875.  11    normal video rather than reverse video (for LCD)
  2876.  12    attribute automap rather than attribute emulation
  2877.  13    bold mode disabled (default)
  2878.  14    fast bandwidth
  2879.  15    ???
  2880. --------V-1012--BL85-------------------------
  2881. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  2882.     AH = 12h
  2883.     BL = 85h
  2884. Return: AL = number of 64K banks of video memory
  2885. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  2886. --------V-1012--BL89-------------------------
  2887. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
  2888.     AH = 12h
  2889.     BL = 89h
  2890.     AL = new state (00h enabled, 01h disabled)
  2891. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
  2892. --------V-1012--BL8A-------------------------
  2893. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
  2894.     AH = 12h
  2895.     BL = 8Ah
  2896.     AL = new gray-scale color (00h = black to 0Fh = white)
  2897. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
  2898. --------V-1012--BL8B-------------------------
  2899. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
  2900.     AH = 12h
  2901.     BL = 8Bh
  2902.     AL = new state (00h enabled, 01h disabled)
  2903. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2904. --------V-1012--BL8C-------------------------
  2905. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
  2906.     AH = 12h
  2907.     BL = 8Ch
  2908.     AL = new state
  2909.         00h enable automap
  2910.         01h disable automap and emulate attributes
  2911. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
  2912. --------V-1012--BL8F-------------------------
  2913. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
  2914.     AH = 12h
  2915.     BL = 8Fh
  2916.     AL = new state (00h enabled, 01h disabled)
  2917. Note:    when expand mode is enabled, the vertical dimension is enlarged to
  2918.       full screen
  2919. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
  2920. --------V-1012--BL90-------------------------
  2921. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
  2922.     AH = 12h
  2923.     BL = 90h
  2924.     AL = new position
  2925.         00h centered
  2926.         01h from top
  2927.         02h from bottom
  2928.         03h from top
  2929. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
  2930. --------V-1012--BL91-------------------------
  2931. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
  2932.     AH = 12h
  2933.     BL = 91h
  2934.     AL = new mode
  2935.         00h display MGA mode from left of screen (default)
  2936.         01h display MGA from right
  2937.         02h skip every ninth pixel
  2938.         03h OR every 8th and 9th pixel
  2939. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
  2940. --------V-1012--BL92-------------------------
  2941. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
  2942.     AH = 12h
  2943.     BL = 92h
  2944.     AL = new display (00h LCD, 01h external monitor)
  2945. Note:    the deselected display is disabled
  2946. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
  2947. --------V-1012--BL93-------------------------
  2948. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  2949.     AH = 12h
  2950.     BL = 93h
  2951.     AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  2952. SeeAlso: AH=12h/BL=9Ah
  2953. --------V-1012--BL94-------------------------
  2954. INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
  2955.     AH = 12h
  2956.     BL = 94h
  2957.     AL = new state (00h wake up monitor, 01h shut down display)
  2958. Note:    AL=01h is reported not to work properly on the LCD panel
  2959. SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
  2960. --------V-1012--BL9A-------------------------
  2961. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  2962.     AH = 12h
  2963.     BL = 9Ah
  2964. Return: AX = options word 1 (see #0030)
  2965.     CX = options word 2 (see #0031)
  2966. SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
  2967. SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h
  2968.  
  2969. Bitfields for Cirrus Logic options word 1:
  2970. Bit(s)    Description    (Table 0030)
  2971.  0,1    reserved
  2972.  2-4    monitor type
  2973.  5-6    maximum vertical resolution
  2974.  7-9    reserved
  2975.  10    force 8-bit operation
  2976.  11-13    reserved
  2977.  14    vertical refresh frequency at 640x480
  2978.  15    reserved
  2979.  
  2980. Bitfields for Cirrus Logic options word 2:
  2981. Bit(s)    Description    (Table 0031)
  2982.  0-3    reserved
  2983.  4-5    vertical refresh frequency at 1280x1024
  2984.  6-10    reserved
  2985.  11-12    vertical refresh frequency at 800x600
  2986.  13-15    vertical refresh frequency at 1024x768
  2987. --------V-1012--BLA0-------------------------
  2988. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  2989.     AH = 12h
  2990.     BL = A0h
  2991.     AL = video mode number (00h-7Fh)
  2992. Return: AH bit 0: video mode supported
  2993.     BX = offset of BIOS subroutine to fixup standard video parameters
  2994.         (call subroutine with DS:SI and ES:DI as returned by this call)
  2995.     DS:SI -> standard video parameters or FFFFh:FFFFh
  2996.     ES:DI -> supplemental video parameters or FFFFh:FFFFh
  2997. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2998. --------V-1012--BLA1-------------------------
  2999. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  3000.     AH = 12h
  3001.     BL = A1h
  3002. Return: BH = monitor ID (see #0032)
  3003.     BL = monitor type (00h color, 01h grayscale, 02h no display)
  3004. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  3005.  
  3006. (Table 0032)
  3007. Values for Cirrus Logic monitor ID:
  3008.  00h-08h reserved
  3009.  09h    IBM 8604/8507 or equivalent
  3010.  0Ah    IBM 8514 or equivalent
  3011.  0Bh    IBM 8515 or equivalent
  3012.  0Dh    IBM 8503 or equivalent
  3013.  0Eh    IBM 8512/8513 or equivalent
  3014.  0Fh    no monitor
  3015. --------V-1012--BLA2-------------------------
  3016. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  3017.     AH = 12h
  3018.     BL = A2h
  3019.     AL = retrace rate
  3020.         00h standard VGA (31.5 kHz)
  3021.         01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  3022.         02h SuperVGA (31.5-35.1 kHz)
  3023.         03h extended SuperVGA (31.5-35.5 kHz)
  3024.         04h multi-frequency (31.5-37.8 kHz)
  3025.         05h extended multi-frequency (31.5-48.0 kHz)
  3026.         06h super multi-frequency (31.5-56.0 kHz)
  3027.         07h extended super multi-frequency (31.5-64.0 kHz)
  3028. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  3029. --------V-1012--BLA3-------------------------
  3030. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  3031.     AH = 12h
  3032.     BL = A3h
  3033.     AL = refresh rate for 640x480 (00h normal, 01h high)
  3034. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  3035. --------V-1012--BLA4-------------------------
  3036. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  3037.     AH = 12h
  3038.     BL = A4h
  3039.     AL bits 3-0 = maximum vertical resolution
  3040.         (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  3041.     AL bits 7-4 = vertical refresh at 640x480
  3042.         (0 = 60Hz, 1 = 72Hz, other reserved)
  3043.     BH bits 3-0 = vertical refresh at 800x600
  3044.         (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  3045.     BH bits 7-4 = vertical refresh at 1024x768
  3046.         (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  3047.     CH bits 4-7 = vertical refresh at 1280x1024
  3048.         (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  3049. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  3050. --------V-1012--BLBE-------------------------
  3051. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3052.     AH = 12h
  3053.     BL = BEh
  3054. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3055.       crash the system on this function
  3056. --------V-1012--BLC6-------------------------
  3057. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3058.     AH = 12h
  3059.     BL = C6h
  3060. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3061.       crash the system on this function
  3062. --------V-1012--BLF0-------------------------
  3063. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3064.     AH = 12h
  3065.     BL = F0h
  3066. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  3067.       crash the system on this function
  3068. --------V-1013-------------------------------
  3069. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  3070.     AH = 13h
  3071.     AL = write mode
  3072.        bit 0: update cursor after writing
  3073.        bit 1: string contains alternating characters and attributes
  3074.        bits 2-7: reserved (0)
  3075.     BH = page number
  3076.     BL = attribute if string contains only characters
  3077.     CX = number of characters in string
  3078.     DH,DL = row,column at which to start writing
  3079.     ES:BP -> string to write
  3080. Notes:    recognizes CR, LF, BS, and bell; for the ET4000 BIOS, scrolling,
  3081.       backspace, and CR only take place in the active page
  3082.     also available PC or XT with EGA or higher
  3083.     HP 95LX only supports write mode 00h
  3084. BUG:    on the IBM VGA Adapter, any scrolling which may occur is performed on
  3085.       the active page rather than the requested page
  3086. SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"
  3087. --------J-1013-------------------------------
  3088. INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
  3089.     AH = 13h
  3090.     AL = function
  3091.         10h read characters and standard attributes
  3092.         11h read characters and extended attributes
  3093.         12h write characters and standard attributes
  3094.         13h write characters and extended attributes
  3095.     BH = 00h
  3096.     CX = number of characters to transfer
  3097.     DH,DL = row,column at which to start transfer
  3098.     ES:BP -> buffer for/containing characters and attributes (see #0033)
  3099. Return: ES:BP buffer filled if reading
  3100. Program: DOS/V is a Japanese-language version of MS-DOS which can run on
  3101.       standard (non-Japanese) ATs and compatible equipped with a VGA or
  3102.       newer video adapter
  3103. Notes:    subfunctions 11h and 13h are only valid when DOS/V is using video
  3104.       mode 73h
  3105.     the cursor position is not changed by these functions
  3106.     extended attributes consist of three bytes; the first is the standard
  3107.       character attribute byte, the second is as described below, and the
  3108.       third is always zero in current versions
  3109. SeeAlso: AH=00h,AH=13h"VIDEO"
  3110.  
  3111. Bitfields for DOS/V second extended attribute byte:
  3112. Bit(s)    Description    (Table 0033)
  3113.  7    underline using foreground color
  3114.  6    reverse foreground/background specified in standard attribute byte
  3115.  5-4    unused
  3116.  3    vertical white grid line in cell
  3117.  2    horizontal white grid line in cell
  3118.  1-0    unused
  3119. SeeAlso: #0013,#0025
  3120. --------V-101400-----------------------------
  3121. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  3122.     AX = 1400h
  3123.     ES:DI -> character font
  3124.     BH = number of bytes per character
  3125.         08h or 10h (Compaq)
  3126.     BL = 00h load main font (block 0)
  3127.          01h load alternate font (block 1)
  3128.     CX = number of characters to store
  3129.     DX = character offset into RAM font area
  3130. SeeAlso: AH=11h,AX=1401h
  3131. --------V-101401-----------------------------
  3132. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  3133.     AX = 1401h
  3134.     BL = font to load
  3135.         00h main font (block 0)
  3136.         01h alternate font (block 1)
  3137. SeeAlso: AH=11h,AX=1400h
  3138. --------V-101402-----------------------------
  3139. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  3140.     AX = 1402h
  3141.     BL = function
  3142.         00h ignore high intensity attribute
  3143.         01h map high intensity to reverse video
  3144.         02h map high intensity to underscore
  3145.         03h map high intensity to selected alternate font
  3146.         B0h half intensity (Compaq)
  3147.         B1h toggle active intensity bit interpretation (CP386)
  3148. --------V-1015-------------------------------
  3149. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  3150.     AH = 15h
  3151. Return: AX = alternate display adapter type (see #0034)
  3152.     ES:DI -> parameter table (see #0035)
  3153. SeeAlso: AH=1Bh
  3154.  
  3155. (Table 0034)
  3156. Values for PC Convertible alternate display adapter type:
  3157.  0000h    none
  3158.  5140h    LCD
  3159.  5153h    CGA
  3160.  5151h    mono
  3161.  
  3162. Format of PC Convertible display parameter table:
  3163. Offset    Size    Description    (Table 0035)
  3164.  00h    WORD    monitor model number
  3165.  02h    WORD    vertical pixels per meter
  3166.  04h    WORD    horizontal pixels per meter
  3167.  06h    WORD    total vertical pixels
  3168.  08h    WORD    total horizontal pixels
  3169.  0Ah    WORD    horizontal pixel separation in micrometers
  3170.         (width, center-to-center)
  3171.  0Ch    WORD    vertical pixel separation in micrometers
  3172.         (height, center-to-center)
  3173. --------V-1015-------------------------------
  3174. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  3175.     AH = 15h
  3176.     AL = superimpose mode
  3177.         00h show graphics screen
  3178.         01h show text screen
  3179.         02h show text screen superimposed on graphics screen
  3180. --------J-1018-------------------------------
  3181. INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
  3182.     AH = 18h
  3183.     AL = function
  3184.         00h get font pattern
  3185.         01h set font pattern
  3186.     BX = 0000h
  3187.     CL = character size in bytes (01h,02h)
  3188.     CH = 00h
  3189.     DH = character width in pixels
  3190.     DL = character height in pixels
  3191.     ES:DI -> buffer for/containing font image
  3192. Return: AL = status (00h successful, else error)
  3193.     ES:DI buffer filled for function 00h if successful
  3194. Note:    the supported font sizes are 8x16 single-byte, 8x19 single-byte,
  3195.       16x16 double-byte, and 24x24 double-byte
  3196. SeeAlso: AH=19h,INT 16/AH=14h
  3197. --------V-1019-------------------------------
  3198. INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
  3199.     AH = 19h
  3200.     ???
  3201. Return: ???
  3202. SeeAlso: AH=18h,INT 16/AH=14h
  3203. --------V-101A00-----------------------------
  3204. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3205.     AX = 1A00h
  3206. Return: AL = 1Ah if function was supported
  3207.         BL = active display code (see #0036)
  3208.         BH = alternate display code (see #0036)
  3209. Notes:    this function is commonly used to check for the presence of a VGA
  3210.     this function is supported on the ATI EGA Wonder with certain
  3211.       undocumented configuration switch settings, even though the EGA
  3212.       Wonder does not support VGA graphics; to distinguish this case,
  3213.       call AX=1C00h with CX nonzero, which the EGA Wonder does not support
  3214. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh
  3215. Index:    installation check;VGA
  3216.  
  3217. (Table 0036)
  3218. Values for display combination code:
  3219.  00h    no display
  3220.  01h    monochrome adapter w/ monochrome display
  3221.  02h    CGA w/ color display
  3222.  03h    reserved
  3223.  04h    EGA w/ color display
  3224.  05h    EGA w/ monochrome display
  3225.  06h    PGA w/ color display
  3226.  07h    VGA w/ monochrome analog display
  3227.  08h    VGA w/ color analog display
  3228.  09h    reserved
  3229.  0Ah    MCGA w/ digital color display
  3230.  0Bh    MCGA w/ monochrome analog display
  3231.  0Ch    MCGA w/ color analog display
  3232.  FFh    unknown display type
  3233. --------V-101A01-----------------------------
  3234. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3235.     AX = 1A01h
  3236.     BL = active display code (see #0036)
  3237.     BH = alternate display code
  3238. Return: AL = 1Ah if function was supported
  3239. SeeAlso: AH=12h/BL=35h,AX=1A00h
  3240. --------V-101B-------------------------------
  3241. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  3242.     AH = 1Bh
  3243.     BX = implementation type
  3244.         0000h return funtionality/state information
  3245.     ES:DI -> 64-byte buffer for state information (see #0037)
  3246. Return: AL = 1Bh if function supported
  3247.         ES:DI buffer filled with state information
  3248. BUG:    Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  3249.       do not correctly set the fields at offsets 27h and 29h of the
  3250.       state information
  3251. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  3252.  
  3253. Format of MCGA+ state information:
  3254. Offset    Size    Description    (Table 0037)
  3255.  00h    DWORD    address of static funtionality table (see #0040)
  3256.  04h    BYTE    video mode in effect
  3257.  05h    WORD    number of columns
  3258.  07h    WORD    length of regen buffer in bytes
  3259.  09h    WORD    starting address of regen buffer
  3260.  0Bh    WORD    cursor position for page 0
  3261.  0Dh    WORD    cursor position for page 1
  3262.  0Fh    WORD    cursor position for page 2
  3263.  11h    WORD    cursor position for page 3
  3264.  13h    WORD    cursor position for page 4
  3265.  15h    WORD    cursor position for page 5
  3266.  17h    WORD    cursor position for page 6
  3267.  19h    WORD    cursor position for page 7
  3268.  1Bh    WORD    cursor "type" (start/stop scan lines)
  3269.  1Dh    BYTE    active display page
  3270.  1Eh    WORD    CRTC port address
  3271.  20h    BYTE    current setting of register (3?8)
  3272.  21h    BYTE    current setting of register (3?9)
  3273.  22h    BYTE    number of rows - 1
  3274.  23h    WORD    bytes/character
  3275.  25h    BYTE    display combination code of active display
  3276.  26h    BYTE    DCC of alternate display
  3277.  27h    WORD    number of colors supported in current mode (0000h = mono)
  3278.  29h    BYTE    number of pages supported in current mode
  3279.  2Ah    BYTE    number of scan lines active
  3280.         (0,1,2,3) = (200,350,400,480)
  3281.         Tseng ET3000: (4,5,6 = 512,600,768)
  3282.  2Bh    BYTE    primary character block
  3283.  2Ch    BYTE    secondary character block
  3284.  2Dh    BYTE    miscellaneous flags (see #0038)
  3285.  2Eh  3 BYTEs    reserved (00h)
  3286.  31h    BYTE    video memory available
  3287.         00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  3288.  32h    BYTE    save pointer state flags (see #0039)
  3289.  33h 13 BYTEs    reserved (00h)
  3290.  
  3291. Bitfields for miscellaneous flags:
  3292. Bit(s)    Description    (Table 0038)
  3293.  0    all modes on all displays on
  3294.  1    gray summing on
  3295.  2    monochrome display attached
  3296.  3    default palette loading disabled
  3297.  4    cursor emulation enabled
  3298.  5    0 = intensity; 1 = blinking
  3299.  6    PS/2 P70 plasma display (without 9-dot wide font) active
  3300.  7    unused (0)
  3301.  
  3302. Bitfields for save pointer state flags:
  3303. Bit(s)    Description    (Table 0039)
  3304.  0    512 character set active
  3305.  1    dynamic save area present
  3306.  2    alpha font override active
  3307.  3    graphics font override active
  3308.  4    palette override active
  3309.  5    DCC override active
  3310.  6-7    unused (0)
  3311.  
  3312. Format of Static Functionality Table:
  3313. Offset    Size    Description    (Table 0040)
  3314.  00h    BYTE    modes supported 1
  3315.         bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6,7 supported
  3316.  01h    BYTE    modes supported 2
  3317.         bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  3318.  02h    BYTE    modes supported 3
  3319.         bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  3320.         bit 4 to bit 7 unused (0)
  3321.  03h    BYTE    (IBM) reserved
  3322.         (Tseng ET3000/4000) modes supported 4
  3323.                 bit 0 to bit 7 = modes 18h-1Fh supported
  3324.  04h    BYTE    (IBM) reserved
  3325.         (Tseng ET3000/4000) modes supported 5
  3326.                 bit 0 to bit 7 = modes 20h-27h supported
  3327.  05h    BYTE    (IBM) reserved
  3328.         (Tseng ET3000/4000) modes supported 6
  3329.                 bit 0 to bit 7 = modes 28h-2Fh supported
  3330.  06h    BYTE    (IBM) reserved
  3331.         (Tseng ET3000/4000) modes supported 7
  3332.                 bit 0 to bit 7 = modes 30h-37h supported
  3333.  07h    BYTE    scan lines supported
  3334.         bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  3335.         bits 3-7 = unused (0)
  3336.  08h    BYTE    total number of character blocks available in text modes
  3337.  09h    BYTE    maximum number of active character blocks in text modes
  3338.  0Ah    WORD    miscellaneous function support flags (see #0041)
  3339.  0Ch    WORD    reserved
  3340.  0Eh    BYTE    save pointer function flags (see #0042)
  3341.  0Fh    BYTE    reserved
  3342.  
  3343. Bitfields for miscellaneous function support flags:
  3344. Bit(s)    Description    (Table 0041)
  3345.  0    all modes on all displays function supported
  3346.  1    gray summing function supported
  3347.  2    character font loading function supported
  3348.  3    default palette loading enable/disable supported
  3349.  4    cursor emulation function supported
  3350.  5    EGA palette present
  3351.  6    color palette present
  3352.  7    color-register paging function supported
  3353.  8    light pen supported (see AH=04h)
  3354.  9    save/restore state function 1Ch supported
  3355.  10    intensity/blinking function supported (see AX=1003h)
  3356.  11    Display Combination Code supported (see #0036)
  3357.  12-15    unused (0)
  3358.  
  3359. Bitfields for save pointer function flags:
  3360. Bit(s)    Description    (Table 0042)
  3361.  0    512 character set supported
  3362.  1    dynamic save area supported
  3363.  2    alpha font override supported
  3364.  3    graphics font override supported
  3365.  4    palette override supported
  3366.  5    DCC extension supported
  3367.  6-7    unused (0)
  3368. --------V-101C-------------------------------
  3369. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  3370.     AH = 1Ch
  3371.     AL = function
  3372.         00h return state buffer size
  3373.         Return: BX = number of 64-byte blocks needed
  3374.         01h save video state
  3375.         ES:BX -> buffer
  3376.         02h restore video state
  3377.         ES:BX -> buffer containing previously saved state
  3378.     CX = requested states (see #0043)
  3379. Return: AL = 1Ch if function supported
  3380. Notes:    many BIOSes corrupt the video registers when saving the state, so a
  3381.       program should restore the state immediately after saving it (the
  3382.       saved data is uncorrupted)
  3383.     the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  3384.     this function is not supported when DOS/V is running
  3385.  
  3386. Bitfields for requested states:
  3387. Bit(s)    Description    (Table 0043)
  3388.  0    video hardware (see #0044)
  3389.  1    BIOS data areas
  3390.  2    color registers and DAC state (see #0045)
  3391.  3-15    unused (0)
  3392.  
  3393. Format of VGA video hardware state:
  3394. Offset    Size    Description    (Table 0044)
  3395.  00h    BYTE    sequencer index register
  3396.  01h    BYTE    CRTC index register
  3397.  02h    BYTE    graphics controller index register
  3398.  03h    BYTE    attribute controller index register
  3399.  04h    BYTE    feature controller register
  3400.  05h  4 BYTEs    sequencer registers
  3401.  09h    BYTE    sequencer register 0
  3402.  0Ah 25 BYTEs    CRTC registers 0-8
  3403.  23h 16 BYTEs    palette registers 00h-0Fh
  3404.  33h  4 BYTEs    attribute registers 10h-13h
  3405.  37h  9 BYTEs    graphics controller registers 0-8
  3406.  40h    BYTE    CRTC base address (low)
  3407.  41h    BYTE    CRTC base address (high)
  3408.  42h    BYTE    plane 0 latch
  3409.  43h    BYTE    plane 1 latch
  3410.  44h    BYTE    plane 2 latch
  3411.  45h    BYTE    plane 3 latch
  3412.  
  3413. Format of VGA DAC state:
  3414. Offset    Size    Description    (Table 0045)
  3415.  00h    BYTE    read/write mode DAC
  3416.  01h    BYTE    pixel address
  3417.  02h    BYTE    pixel mask
  3418.  03h 768 BYTEs    color data (256 triples)
  3419. 303h    BYTE    color select register
  3420. --------J-101D-------------------------------
  3421. INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
  3422.     AH = 1Dh
  3423.     AL = function
  3424.         00h enable shift status line(s)
  3425.         BX = number of lines to reserve at bottom of screen (usu. 1)
  3426.         01h disable shift status line
  3427.         BX = number of lines reserved at bottom of screen (usually 1)
  3428.         02h get number of status lines
  3429.         Return: BX = number of lines reserved for shift status
  3430. SeeAlso: AH=19h
  3431. --------V-101D-------------------------------
  3432. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  3433.     AH = 1Dh
  3434.     AL = video mode
  3435.     ES = caller's segment
  3436. Return: nothing
  3437. Note:    the caller's segment contains at offset 5Ch (FCB field in PSP)
  3438.       or 100h a table with sync parameters (see #0046) (BIOS looks at both
  3439.       offsets)
  3440.  
  3441. Format of SpeedSTAR Plus sync table:
  3442. Offset    Size    Description    (Table 0046)
  3443.  00h  9 BYTEs    ID contains string 'ey5CENTER'
  3444.  09h  5 BYTEs    sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  3445.  0Bh  5 BYTEs    sync parameters for 800x600 modes 29h,30h,2Ah
  3446.  13h  5 BYTEs    sync parameters for 1024x768 modes 37h,38h
  3447. --------V-101D-------------------------------
  3448. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3449.     AH = 1Dh
  3450. Note:    these versions of the BIOS jump to a random location on this function
  3451.       due to a fencepost error
  3452. --------V-101F00-----------------------------
  3453. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  3454.     AX = 1F00h
  3455. Return: AL = 1Fh if supported
  3456.         BX = number of bytes of DMQS data
  3457. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3458.       and later models.
  3459. SeeAlso: AX=1F01h
  3460. --------V-101F01-----------------------------
  3461. INT 10 - VIDEO - XGA - READ DMQS DATA
  3462.     AX = 1F01h
  3463.     ES:DI -> user buffer for return data (call AX=1F00h for size)
  3464. Return: AL = 1Fh if function supported
  3465.     user buffer filled with DMQS data (see #0047)
  3466. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3467.       and later models.
  3468. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  3469.  
  3470. Format of XGA DMQS buffer:
  3471. Offset    Size    Description    (Table 0047)
  3472.  00h    WORD    offset (in bytes) to DMQS data for next XGA instance
  3473.  02h    BYTE    slot number
  3474.  03h    BYTE    XGA implementation function level identifier
  3475.  04h    BYTE    XGA implementation resolution level identifier
  3476.  05h    WORD    vendor identifier - identifies card vendor
  3477.  07h    WORD    vendor defined field
  3478.  09h    WORD    XGA adapter I/O register base address
  3479.  0Bh    WORD    XGA coprocessor register base address
  3480.         (paragraph--multiply by 10h to get physical address)
  3481.  0Dh    WORD    1 Megabyte system video memory aperture
  3482.         0000h if not allocated
  3483.         (Multiply by 100000h to get physical address)
  3484.  0Fh    WORD    4 Megabyte system video memory aperture
  3485.         0000h if not allocated
  3486.         (multiply by 100000h to get physical address)
  3487.  11h    WORD    video memory base address
  3488.         (multiply by 100000h to get physical address)
  3489.  13h    WORD    composite ID of the attached display
  3490.  15h    BYTE    amount of video memory available, in multiples of 256K bytes
  3491.  16h    DWORD    alternate XGA coprocessor register base address.  0 = none.
  3492.  1Ah    var    DMQS Data for further XGA Instances (as above)
  3493. Note:    "Instances" refers to the capability of having up to 8 XGA
  3494.       adapters in one computer.
  3495. --------V-103000CX0000-----------------------
  3496. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  3497.     AX = 3000h
  3498.     CX = 0000h
  3499.     DX = 0000h
  3500. Return: CX:DX -> 3270PC configuration table (see #0048)
  3501.     CX:DX = 0000h:0000h if 3270PC Control Program not active
  3502. SeeAlso: AX=1F01h
  3503.  
  3504. Format of 3270 PC configuration table:
  3505. Offset    Size    Description    (Table 0048)
  3506.  00h    BYTE    aspect ratio X
  3507.  01h    BYTE    aspect ratio Y
  3508.  02h    BYTE    monitor type (see #0049)
  3509.  03h    BYTE    reserved
  3510.  04h    BYTE    adapter ID
  3511.         00h = 5151/5272 adapter
  3512.         04h = 5151/5272 with XGA adapter
  3513.         30h = 3295 or 3270PC G/GX adapter
  3514.  05h    BYTE    reserved
  3515.  06h    BYTE    function flags 1 (see #0050)
  3516.  07h    BYTE    function flags 2
  3517.         bit 6: GPI graphics supported
  3518.  08h    WORD    segment address of Control Program Level table (see #0051)
  3519.  0Ah 10 BYTEs    reserved
  3520.  
  3521. (Table 0049)
  3522. Values for 3270 PC monitor type:
  3523.  00h    5151 (mono) or 5272 (color)
  3524.  01h    3295
  3525.  02h    5151 or 5272 with XGA (???) graphics adapter
  3526.  03h    5279 with 3270PC G adapter
  3527.  04h    5379 model C01 with 3270PC GX adapter
  3528.  05h    5379 model M01 with 3270PC GX adapter
  3529.  07h    non-3270PC with 3270 Workstation Program
  3530.  FFh    3270PC Control Program not loaded
  3531.  
  3532. Bitfields for 3270 PC function flags 1:
  3533. Bit(s)    Description    (Table 0050)
  3534.  7    mono text, 1 page
  3535.  6    color text, 1 page
  3536.  5    color text, 4 pages
  3537.  4    CGA color graphics
  3538.  3    720x350 two-color graphics
  3539.  2    360x350 four-color graphics
  3540.  1    720x350 eight-color graphics
  3541.  
  3542. Format of Control Program Level table:
  3543. Offset    Size    Description    (Table 0051)
  3544.  00h    WORD    program version
  3545.         02xxh = 3270PC Control Program v2.xx
  3546.         03xxh = 3270PC Control Program v3.xx
  3547.         04xxh = 3270 Workstation Program v1.xx
  3548.  02h    BYTE    Control Program ID (00h)
  3549.  03h 27 BYTEs    Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  3550. --------a-103800-----------------------------
  3551. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  3552.     AX = 3800h
  3553. Return: ES:DI -> configuration info (see #0052)
  3554. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3555. Notes:    this call is also used as the installation check by verifying that the
  3556.       returned ES:DI points at valid configuration info
  3557.     Tinytalk v1.09f ignores AL and always returns the configuration info;
  3558.       v1.10 adds several subfunctions selected with AL
  3559. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  3560. SeeAlso: INT 2F/FB00h"AutoBraille"
  3561. Index:    installation check;Tinytalk Personal
  3562.  
  3563. Format of Tinytalk Personal configuration info:
  3564. Offset    Size    Description    (Table 0052)
  3565.  00h  8 BYTEs    signature "TTCONFIG"
  3566.  08h    WORD    size of configuration data, not counting signature, this WORD,
  3567.           or the following byte
  3568.  0Ah    BYTE    ???
  3569.  0Bh    ???    configuration data
  3570. --------a-103801-----------------------------
  3571. INT 10 - Tinytalk Personal v1.10 - ???
  3572.     AX = 3801h
  3573.     DL = ???
  3574. Return: ???
  3575. SeeAlso: AX=3800h,AX=3802h
  3576. --------a-103802-----------------------------
  3577. INT 10 - Tinytalk Personal v1.10 - ???
  3578.     AX = 3802h
  3579.     DL = ???
  3580. Return: ???
  3581. SeeAlso: AX=3800h,AX=3801h
  3582. --------a-103803-----------------------------
  3583. INT 10 - Tinytalk Personal v1.10 - GET ???
  3584.     AX = 3803h
  3585. Return: AL = ???
  3586. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  3587. --------a-103804-----------------------------
  3588. INT 10 - Tinytalk Personal v1.10 - GET ???
  3589.     AX = 3804h
  3590. Return: AX = ???
  3591. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  3592. --------a-103805-----------------------------
  3593. INT 10 - Tinytalk Personal v1.10 - GET ???
  3594.     AX = 3805h
  3595. Return: AL = ???
  3596. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  3597. --------a-103806-----------------------------
  3598. INT 10 - Tinytalk Personal v1.10 - ???
  3599.     AX = 3806h
  3600.     ES:DX -> ASCIZ ???
  3601. Return: ???
  3602. SeeAlso: AX=3800h
  3603. --------a-1039-------------------------------
  3604. INT 10 - Tinytalk Personal v1.10 - ???
  3605.     AH = 39h
  3606. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3607. Note:    this function was a NOP in TTDEMO.EXE, but may be implemented in other
  3608.       variants of Tinytalk
  3609. --------V-1040-------------------------------
  3610. INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
  3611.     AH = 40h
  3612. Desc:    switch the Hercules Graphics Card into graphics mode (720x348)
  3613. SeeAlso: AH=00h,AH=41h
  3614. Index:    video modes;Hercules
  3615. --------V-1041-------------------------------
  3616. INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
  3617.     AH = 41h
  3618. Desc:    switch the Hercules Graphics Card into text mode
  3619. SeeAlso: AH=00h,AH=40h
  3620. Index:    video modes;Hercules
  3621. --------V-1042-------------------------------
  3622. INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
  3623.     AH = 42h
  3624. SeeAlso: AH=45h
  3625. --------V-1043-------------------------------
  3626. INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
  3627.     AH = 43h
  3628.     AL = page number (0,1)
  3629. Desc:    specify which of the two pages of video memory is to be used for
  3630.       output
  3631. SeeAlso: AH=05h,AH=44h,AH=45h
  3632. --------V-1044-------------------------------
  3633. INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
  3634.     AH = 44h
  3635.     AL = drawing function
  3636.         00h clear pixels
  3637.         01h set pixels
  3638.         02h invert pixels
  3639. Desc:    specify how graphics output will change the display
  3640. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  3641. --------V-1045-------------------------------
  3642. INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
  3643.     AH = 45h
  3644.     AL = page number (0,1)
  3645. Desc:    specify which of the two pages of video memory is visible on screen
  3646. SeeAlso: AH=05h,AH=42h,AH=43h
  3647. --------V-1046-------------------------------
  3648. INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
  3649.     AH = 46h
  3650.     DI = x (0-719)
  3651.     BP = y (0-347)
  3652. Note:    function 44h determines operation and function 43h which page to use
  3653. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  3654. --------V-1047-------------------------------
  3655. INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
  3656.     AH = 47h
  3657.     DI = x (0-719)
  3658.     BP = y (0-347)
  3659. Return: AL = 00h pixel clear
  3660.     AL = 01h pixel set
  3661. Note:    function 43h specifies which page is used
  3662. SeeAlso: AH=0Dh,AH=46h
  3663. --------V-1048-------------------------------
  3664. INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
  3665.     AH = 48h
  3666.     DI = x (0-719)
  3667.     BP = y (0-347)
  3668. Desc:    specify the location from which to start the next graphics output
  3669. SeeAlso: AH=49h
  3670. --------V-1049-------------------------------
  3671. INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
  3672.     AH = 49h
  3673.     DI = x (0-719)
  3674.     BP = y (0-347)
  3675. Note:    function 48h or 49h specify first point, 44h operation and 43h page to
  3676.       use
  3677. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  3678. --------V-104A-------------------------------
  3679. INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
  3680.     AH = 4Ah
  3681.     DI = x coordinate of lower left corner
  3682.     BP = y coordinate of lower left corner
  3683.     BX = height in pixels
  3684.     CX = width in pixels
  3685. Desc:    draw a solid rectangle of the specified size at the given location
  3686. SeeAlso: AH=4Eh
  3687. --------V-104B-------------------------------
  3688. INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
  3689.     AH = 4Bh
  3690.     AL = character to display
  3691.     DI = x (0-719)
  3692.     BP = y (0-347)
  3693. Note:    unlike the other BIOS character functions character position is
  3694.       specified in pixels rather than rows and columns
  3695. SeeAlso: AH=09h,AH=0Ah
  3696. ----------104B-------------------------------
  3697. INT 10 - FRIEZE - API
  3698.     AH = 4Bh
  3699.     CL = function
  3700.         00h (v6.x-) print window
  3701.         AL = mode
  3702.             00h character
  3703.             01h normal
  3704.             02h sideways
  3705.         01h load window
  3706.         ES:BX -> ASCIZ filename from which to read
  3707.         02h save window
  3708.         ES:BX -> ASCIZ filename to which to write
  3709.         03h set print width
  3710.         AL = width in 1/4 inches
  3711.         04h set print height
  3712.         AL = height in 1/4 inches
  3713.         05h reserved
  3714.         06h set left margin
  3715.         AL = printout margin in 1/4 inches
  3716.         07h set window size
  3717.         ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  3718.         08h reserved
  3719.         09h set patterns
  3720.         ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  3721.         0Ah get patterns
  3722.         ES:BX -> 16-BYTE buffer for color correspondences
  3723.         0Bh set mode
  3724.         AL = mode
  3725.         0Ch (v7.41) ???
  3726.         AL = ???
  3727.             00h ??? (calls original INT 05)
  3728.             else ???
  3729.         0Dh (v7.41) ???
  3730.         AL = ???
  3731.             00h ??? (calls original INT 05)
  3732.             else ???
  3733.         0Eh (v7.41) ???
  3734.         ???
  3735.         0Fh get window
  3736.         ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  3737.         10h set print options
  3738.         ES:BX -> printer options in same format as FRIEZE cmdline
  3739.         11h initialize
  3740.         ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  3741.         12h (v7.41) ???
  3742.         ???
  3743.         13h (v7.41) ???
  3744.         ???
  3745.         14h get version
  3746.         Return: AH = major version (00h if FRIEZE version before 7)
  3747.             AL = minor version
  3748.         15h set parameters
  3749.         ES:BX -> parameter table (see #0054)
  3750.         16h get parameters
  3751.         ES:BX -> buffer for parameter table (see #0054)
  3752.         17h get printer resolution
  3753.         ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  3754.         18h (v8.0 only) reserved
  3755.         50h (v7.41) get ???
  3756.         Return: AX = ???
  3757.         51h (v7.41) get ???
  3758.         Return: ES = ??? (seen 2348h)
  3759.             AX = ??? (seen 8432h)
  3760. Return: AX = status (see #0053)
  3761. SeeAlso: AH=0Fh/SI=F123h
  3762.  
  3763. (Table 0053)
  3764. Values for FRIEZE function status:
  3765.  00h    successful
  3766.  01h    user aborted printout with ESC
  3767.  02h    reserved
  3768.  03h    file read error
  3769.  04h    file write error or printer error
  3770.  05h    file not found
  3771.  06h    invalid header (not an image or wrong screen mode) or can't create file
  3772.  07h    file close error
  3773.  08h    disk error
  3774.  09h    (v7.0+) printer error
  3775.  0Ah    invalid function
  3776.  0Bh    (v7.0+) can't create file
  3777.  0Ch    (v7.0+) wrong video mode
  3778.  
  3779. Format of FRIEZE parameter table:
  3780. Offset    Size    Description    (Table 0054)
  3781.  00h    WORD    top margin (1/100 inch)
  3782.  02h    WORD    left margin (1/100 inch)
  3783.  04h    WORD    horizontal size (1/100 inch)
  3784.  06h    WORD    vertical size (1/100 inch)
  3785.  08h    WORD    quality/draft mode
  3786.         00h draft mode
  3787.         01h quality mode
  3788.         02h use horizontal/vertical resolution for output resolution
  3789.  0Ah    WORD    printer horizontal resolution (dots per inch)
  3790.  0Ch    WORD    printer vertical resolution (dots per inch)
  3791.  0Eh    WORD    reserved (FFFFh)
  3792. Note:    any field which should remain unchanged may be filled with FFFFh
  3793. --------V-104C-------------------------------
  3794. INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
  3795.     AH = 4Ch
  3796.     AL = quadrant (1 = upper right, 2 = upper left, etc)
  3797.     DI = x coordinate of center
  3798.     BP = y coordinate of center
  3799.     BX = radius
  3800. SeeAlso: AH=49h,AH=4Dh
  3801. --------V-104D-------------------------------
  3802. INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
  3803.     AH = 4Dh
  3804.     DI = x of center
  3805.     BP = y of center
  3806.     BX = radius
  3807. SeeAlso: AH=49h,AH=4Ch
  3808. --------V-104E-------------------------------
  3809. INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
  3810.     AH = 4Eh
  3811.     DI = x coordinate of an interior point
  3812.     BP = y coordinate of an interior point
  3813. Desc:    fill a convex polygonal area bounded by a contiguous line of the
  3814.       opposite color with the border color
  3815. Note:    the first fill makes the figure solid, the second erases it
  3816. SeeAlso: AH=4Ah
  3817. --------V-104E00-----------------------------
  3818. INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
  3819.     AX = 4E00h
  3820.     ES:DI -> 256-byte buffer for XGA information (see #0055)
  3821. Return: AL = 4Eh if function supported
  3822.         AH = status
  3823.         00h successful
  3824.         else error code
  3825. Desc:    determine whether VESA XGA extensions are present and the capabilities
  3826.       supported by the display adapter
  3827. SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
  3828. Index:    installation check;VESA XGA
  3829.  
  3830. Format of XGA information buffer:
  3831. Offset    Size    Description    (Table 0055)
  3832.  00h  4 BYTEs    signature ("VESA")
  3833.  04h    WORD    VESA version number
  3834.  06h    DWORD    pointer to ASCIZ OEM string
  3835.  0Ah    DWORD    environment flags (see #0056)
  3836.  0Eh    WORD    number of XGA adapters installed (other VESA XGA functions
  3837.           require a handle indicating which adapter to use)
  3838.  10h 240 BYTEs    reserved
  3839.  
  3840. Bitfields for XGA environment flags:
  3841. Bit(s)    Description    (Table 0056)
  3842.  0-1    system bus (00 = MCA, 01 = ISA, 10 = EISA)
  3843.  2    bus mastering available
  3844.  3-31    reserved
  3845. --------V-104E01----------------------------
  3846. INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
  3847.     AX = 4E01h
  3848.     DX = XGA handle (0 to number of XGAs-1)
  3849.     ES:DI -> 256-byte buffer for subsystem information (see #0057)
  3850. Return: AL = 4Eh if function supported
  3851.     AH = status
  3852.         00h     function successful
  3853.         else error code
  3854. SeeAlso: AX=4E00h,AX=4E02h
  3855.  
  3856. Format of XGA subsystem information:
  3857. Offset    Size    Description    (Table 0057)
  3858.  00h    DWORD    pointer to null-terminated board OEM string
  3859.  04h    DWORD    capabilities (see #0058)
  3860.  08h    DWORD    pointer to 8KB XGA ROM (or NULL)
  3861.  0Ch    DWORD    pointer to the XGA memory mapped registers
  3862.  10h    WORD    base address of XGA I/O registers (21x0h)
  3863.  12h    DWORD    pointer to start of physical video memory
  3864.         (A000h:0000h or B000h:0000h)
  3865.  16h    DWORD    physical address of 4MB aperture (or NULL if none)
  3866.  1Ah    DWORD    physical address of 1MB aperture (or NULL if none)
  3867.  1Eh    DWORD    physical address of 64KB aperture (or NULL if not enabled)
  3868.  22h    DWORD    physical address of OEM aperture (or NULL if none)
  3869.  26h    WORD    size of OEM aperture in 64KByte units
  3870.  28h    DWORD    pointer to list of video modes
  3871.         The list is a series of WORDs terminated by FFFFh
  3872.  2Ch    WORD    number of 64KB blocks on the board
  3873.  2Eh    DWORD    XGA manufacturer ID
  3874.         byte 0 POS data index 1
  3875.         byte 1 is index 2
  3876.         byte 2 is 21xAh index 75h
  3877.  32h 206 BYTEs    reserved
  3878.  
  3879. Bitfields for XGA capabilities:
  3880. Bit(s)    Description    (Table 0058)
  3881.  0-1    board bus architecture: 0=MCA, 1=ISA, 3=EISA
  3882.  2-3    reserved
  3883.  4-6    DMA Channel assigned for acquiring bus mastership (only for ISA bus)
  3884.  7    DMA Channel Status (ISA only). enabled if set
  3885.  8-31    reserved
  3886. --------V-104E02-----------------------------------
  3887. INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
  3888.     AX = 4E02h
  3889.     CX = Video mode
  3890.     DX = XGA handle
  3891.     ES:DI -> 256 byte buffer for mode information (see #0059)
  3892. Return: AL = 4Eh if function supported
  3893.     AH = status
  3894.         00h     function successful
  3895.         else error code
  3896. SeeAlso: AX=4E00h,AX=4E01h
  3897.  
  3898. Format of XGA mode information:
  3899. Offset    Size    Description    (Table 0059)
  3900.  00h    WORD    attributes of the mode (see #0060)
  3901.  02h    WORD    bytes per logical scanline
  3902.  04h    WORD    horizontal resolution in pixels
  3903.  06h    WORD    vertical resolution in scanlines
  3904.  08h    BYTE    character Width in pixels
  3905.  09h    BYTE    character Height in pixels
  3906.  0Ah    BYTE    number of planes
  3907.  0Bh    BYTE    bits per pixels
  3908.  0Ch    BYTE    memory model (see #0061)
  3909.  0Dh    BYTE    number of Image Pages
  3910.  0Eh    BYTE    number of Red bits
  3911.  0Fh    BYTE    bit position of Red bit field
  3912.  10h    BYTE    number of Green bits
  3913.  11h    BYTE    bit position of Green bit field
  3914.  12h    BYTE    number of Blue bits
  3915.  13h    BYTE    bit position of Blue bit field
  3916.  14h    BYTE    number of Reserved bits
  3917.  15h    BYTE    bit position of Reserved bit field
  3918.  16h 235 BYTEs    reserved
  3919.  
  3920. Bitfields for XGA mode attributes:
  3921. Bit(s)    Description    (Table 0060)
  3922.  0    set if mode is supported
  3923.  1    reserved
  3924.  2    output is supported by the BIOS
  3925.  3    reserved
  3926.  4    if set this is a graphics mode (VGA registers inactive, XGA active),
  3927.       if clear this is a text mode (VGA registers active, XGA inactive)
  3928.  
  3929. (Table 0061)
  3930. Values for XGA video memory model:
  3931.  00h    Text Mode
  3932.  01h    CGA graphics
  3933.  02h    Hercules graphics
  3934.  03h    4-planar graphics
  3935.  04h    Packed Pixel
  3936.  05h    Non-chain 4, 256 color
  3937.  06h    Direct Color
  3938.  07h    YUV-24
  3939. --------V-104E03-----------------------------------
  3940. INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
  3941.     AX = 4E03h
  3942.     BX = video mode
  3943.     CX = other command flags
  3944.          bit 0  If clear the feature connector is set to the default state
  3945.     DX = XGA handle
  3946.     ES:DI -> 256 byte buffer
  3947. Return: AL = 4Eh if function supported
  3948.     AH = status
  3949.         00h     function successful
  3950.         else error code
  3951. SeeAlso: AH=00h,AX=4E04h,AX=4F02h
  3952. --------V-104E04-----------------------------------
  3953. INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
  3954.     AX = 4E04h
  3955.     DX = XGA handle
  3956. Return: AL = 4Eh if function supported
  3957.     AH = status
  3958.         00h     function successful
  3959.         BX??? = current mode
  3960.         else error code
  3961. SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
  3962. --------V-104E05-----------------------------------
  3963. INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
  3964.     AX = 4E05h
  3965.     BX = Feature Connector State (see #0062)
  3966.     DX = XGA handle
  3967. Return: AL = 4Eh if function supported
  3968.     AH = status
  3969.         00h     function successful
  3970.         else error code
  3971. SeeAlso: AX=4E00h,AX=4E06h
  3972.  
  3973. Bitfields for XGA Feature Connector State:
  3974. Bit(s)    Description    (Table 0062)
  3975.  0    Feature Connector is enabled
  3976.  1    Feature Connector is in Output Mode rather than Input Mode
  3977.  2-15    reserved (0)
  3978. --------V-104E06-----------------------------------
  3979. INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
  3980.     AX = 4E06h
  3981.     DX = XGA handle
  3982. Return: AL = 4Eh if function supported
  3983.     AH = status
  3984.         00h     function successful
  3985.         else error code
  3986.     BX = Feature Connector State (see #0062)
  3987. SeeAlso: AX=4E00h,AX=4E05h
  3988. --------V-104F00-----------------------------
  3989. INT 10 - VESA SuperVGA BIOS (VBE) - GET SuperVGA INFORMATION
  3990.     AX = 4F00h
  3991.     ES:DI -> buffer for SuperVGA information (see #0063)
  3992. Return: AL = 4Fh if function supported
  3993.     AH = status
  3994.         00h successful
  3995.         ES:DI buffer filled
  3996.         01h failed
  3997.         ---VBE v2.0---
  3998.         02h function not supported by current hardware configuration
  3999.         03h function invalid in current video mode
  4000. Desc:    determine whether VESA BIOS extensions are present and the capabilities
  4001.       supported by the display adapter
  4002. SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h,AX=A00Ch
  4003. Index:    installation check;VESA SuperVGA
  4004.  
  4005. Format of SuperVGA information:
  4006. Offset    Size    Description    (Table 0063)
  4007.  00h  4 BYTEs    (ret) signature ("VESA")
  4008.         (call) VESA 2.0 request signature ("VBE2"), required to receive
  4009.           version 2.0 info
  4010.  04h    WORD    VESA version number (one-digit minor version)
  4011.  06h    DWORD    pointer to OEM name
  4012.         "761295520" for ATI
  4013.  0Ah    DWORD    capabilities flags (see #0064)
  4014.  0Eh    DWORD    pointer to list of supported VESA and OEM video modes
  4015.         (list of words terminated with FFFFh)
  4016.  12h    WORD    total amount of video memory in 64K blocks
  4017. ---VBE v1.x ---
  4018.  14h 236 BYTEs    reserved
  4019. ---VBE v2.0 ---
  4020.  14h    WORD    OEM software version
  4021.  16h    DWORD    pointer to vendor name
  4022.  1Ah    DWORD    pointer to product name
  4023.  1Eh    DWORD    pointer to product revision string
  4024.  22h 222 BYTEs    reserved
  4025. 100h 256 BYTEs    OEM scratchpad
  4026. Notes:    the list of supported video modes is stored in the reserved portion of
  4027.       the SuperVGA information record by some implementations, and it may
  4028.       thus be necessary to either copy the mode list or use a different
  4029.       buffer for all subsequent VESA calls
  4030.     the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  4031.       buffer should be 262 bytes to ensure that it is not overrun; for
  4032.       v2.0, the buffer should be 512 bytes
  4033.     the S3 specific video modes will most likely follow the FFFFH
  4034.       terminator at the end of the standard modes.    A search must then
  4035.       be made to find them, FFFFH will also terminate this second list
  4036.  
  4037. Bitfields for VESA capabilities:
  4038. Bit(s)    Description    (Table 0064)
  4039.  0    DAC can be switched into 8-bit mode
  4040.  1    non-VGA controller
  4041.  2    programmed DAC with blank bit
  4042.  3-31    reserved
  4043. --------V-104F01-----------------------------
  4044. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  4045.     AX = 4F01h
  4046.     CX = SuperVGA video mode
  4047.     ES:DI -> 256-byte buffer for mode information (see #0065)
  4048. Return: AL = 4Fh if function supported
  4049.     AH = status
  4050.         00h successful
  4051.         ES:DI buffer filled
  4052.         01h failed
  4053. Desc:    determine the attributes of the specified video mode
  4054. SeeAlso: AX=4F00h,AX=4F02h
  4055.  
  4056. Format of VESA SuperVGA mode information:
  4057. Offset    Size    Description    (Table 0065)
  4058.  00h    WORD    mode attributes (see #0066)
  4059.  02h    BYTE    window attributes, window A (see #0067)
  4060.  03h    BYTE    window attributes, window B (see #0067)
  4061.  04h    WORD    window granularity in KB
  4062.  06h    WORD    window size in KB
  4063.  08h    WORD    start segment of window A
  4064.  0Ah    WORD    start segment of window B
  4065.  0Ch    DWORD    -> FAR window positioning function (equivalent to AX=4F05h)
  4066.  10h    WORD    bytes per scan line
  4067. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  4068.  12h    WORD    width in pixels (graphics) or characters (text)
  4069.  14h    WORD    height in pixels (graphics) or characters (text)
  4070.  16h    BYTE    width of character cell in pixels
  4071.  17h    BYTE    height of character cell in pixels
  4072.  18h    BYTE    number of memory planes
  4073.  19h    BYTE    number of bits per pixel
  4074.  1Ah    BYTE    number of banks
  4075.  1Bh    BYTE    memory model type (see #0068)
  4076.  1Ch    BYTE    size of bank in KB
  4077.  1Dh    BYTE    number of image pages
  4078.  1Eh    BYTE    reserved (0)
  4079. ---VBE v1.2+---
  4080.  1Fh    BYTE    red mask size
  4081.  20h    BYTE    red field position
  4082.  21h    BYTE    green mask size
  4083.  22h    BYTE    green field size
  4084.  23h    BYTE    blue mask size
  4085.  24h    BYTE    blue field size
  4086.  25h    BYTE    reserved mask size
  4087.  26h    BYTE    reserved mask position
  4088.  27h    BYTE    direct color mode info
  4089.         bit 0: color ramp is programmable
  4090.         bit 1: bytes in reserved field may be used by application
  4091. ---VBE v2.0 ---
  4092.  28h    DWORD    physical address of linear video buffer
  4093.  2Ch    DWORD    pointer to start of offscreen memory
  4094.  30h    WORD    KB of offscreen memory
  4095.  32h 206 BYTEs    reserved (0)
  4096.  
  4097. Bitfields for VESA SuperVGA mode attributes:
  4098. Bit(s)    Description    (Table 0066)
  4099.  0    mode supported
  4100.  1    optional information available
  4101.  2    BIOS output supported
  4102.  3    set if color, clear if monochrome
  4103.  4    set if graphics mode, clear if text mode
  4104. ---VBE v2.0 ---
  4105.  5    mode is not VGA-compatible
  4106.  6    bank-switched mode not supported
  4107.  7    linear framebuffer mode supported
  4108.  
  4109. Bitfields for VESA SuperVGA window attributes:
  4110. Bit(s)    Description    (Table 0067)
  4111.  0    exists
  4112.  1    readable
  4113.  2    writable
  4114.  3-7    reserved
  4115.  
  4116. (Table 0068)
  4117. Values for VESA SuperVGA memory model type:
  4118.  00h    text
  4119.  01h    CGA graphics
  4120.  02h    HGC graphics
  4121.  03h    16-color (EGA) graphics
  4122.  04h    packed pixel graphics
  4123.  05h    "sequ 256" (non-chain 4) graphics
  4124.  06h    direct color (HiColor, 24-bit color)
  4125.  07h    YUV (luminance-chrominance, also called YIQ)
  4126.  08h-0Fh reserved for VESA
  4127.  10h-FFh OEM memory models
  4128. --------V-104F02-----------------------------
  4129. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  4130.     AX = 4F02h
  4131.     BX = mode (see #0069,#0070)
  4132.         bit 15 set means don't clear video memory
  4133.         bit 14 set means enable linear framebuffer mode (VBE v2.0+)
  4134. Return: AL = 4Fh if function supported
  4135.     AH = status
  4136.         00h successful
  4137.         01h failed
  4138. SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
  4139.  
  4140. (Table 0069)
  4141. Values for VESA video mode:
  4142.  00h-FFh OEM video modes (see #0009 at AH=00h)
  4143.  100h    640x400x256
  4144.  101h    640x480x256
  4145.  102h    800x600x16
  4146.  103h    800x600x256
  4147.  104h    1024x768x16
  4148.  105h    1024x768x256
  4149.  106h    1280x1024x16
  4150.  107h    1280x1024x256
  4151.  108h    80x60 text
  4152.  109h    132x25 text
  4153.  10Ah    132x43 text
  4154.  10Bh    132x50 text
  4155.  10Ch    132x60 text
  4156. ---VBE v1.2---
  4157.  10Dh    320x200x32K
  4158.  10Eh    320x200x64K
  4159.  10Fh    320x200x16M
  4160.  110h    640x480x32K
  4161.  111h    640x480x64K
  4162.  112h    640x480x16M
  4163.  113h    800x600x32K
  4164.  114h    800x600x64K
  4165.  115h    800x600x16M
  4166.  116h    1024x768x32K
  4167.  117h    1024x768x64K
  4168.  118h    1024x768x16M
  4169.  119h    1280x1024x32K
  4170.  11Ah    1280x1024x64K
  4171.  11Bh    1280x1024x16M
  4172. ---VBE 2.0---
  4173. 81FFh    special full-memory access mode
  4174. Note:    the special mode 81FFh preserves the contents of the video memory and
  4175.       gives access to all of the memory; VESA recommends that the special
  4176.       mode be a packed-pixel mode
  4177. SeeAlso: #0009,#0070
  4178. Index:    video modes;VESA
  4179.  
  4180. (Table 0070)
  4181. Values for S3 OEM video mode:
  4182.  201h    640x480x256
  4183.  202h    800x600x16
  4184.  203h    800x600x256
  4185.  204h    1024x768x16
  4186.  205h    1024x768x256
  4187.  206h    1280x960x16
  4188.  207h    1152x864x256 (Diamond Stealth 64)
  4189.  208h    1280x1024x16
  4190.  20Ah    1152x864x64K (Diamond Stealth 64)
  4191.  211h    640x480x64K (Diamond Stealth 24)
  4192.  212h    640x480x16M (Diamond Stealth 24)
  4193.  301h    640x480x32K
  4194. Note:    these modes are only available on video cards using S3's VESA driver
  4195. SeeAlso: #0069
  4196. Index:    video modes;S3
  4197. --------V-104F03-----------------------------
  4198. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  4199.     AX = 4F03h
  4200. Return: AL = 4Fh if function supported
  4201.     AH = status
  4202.         00h successful
  4203.         BX = video mode (see #0069,#0070)
  4204.             bit 14: linear frame buffer enabled (VBE v2.0+)
  4205.             bit 15: don't clear video memory
  4206.         01h failed
  4207. SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
  4208. --------V-104F04-----------------------------
  4209. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  4210.     AX = 4F04h
  4211.     DL = subfunction
  4212.         00h get state buffer size
  4213.         Return: BX = number of 64-byte blocks needed
  4214.         01h save video states
  4215.         ES:BX -> buffer
  4216.         02h restore video states
  4217.         ES:BX -> buffer
  4218.     CX = states to save/restore (see #0071)
  4219. Return: AL = 4Fh if function supported
  4220.     AH = status
  4221.         00h successful
  4222.         01h failed
  4223.  
  4224. Bitfields for VESA SuperVGA states to save/restore:
  4225. Bit(s)    Description    (Table 0071)
  4226.  0    video hardware state
  4227.  1    video BIOS data state
  4228.  2    video DAC state
  4229.  3    SuperVGA state
  4230. --------V-104F05-----------------------------
  4231. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  4232.     AX = 4F05h
  4233.     BH = subfunction
  4234.         00h select video memory window
  4235.         DX = window address in video memory (in granularity units)
  4236.         01h get video memory window
  4237.         Return: DX = window address in video memory (in gran. units)
  4238.     BL = window number
  4239.         00h window A
  4240.         01h window B
  4241. Return: AL = 4Fh if function supported
  4242.     AH = status
  4243.         00h successful
  4244.         01h failed
  4245. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  4246. --------V-104F06-----------------------------
  4247. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH (PIXELS)
  4248.     AX = 4F06h
  4249.     BL = function
  4250.         00h set scan line length
  4251.         CX = desired width in pixels
  4252.         01h get scan line length
  4253. Return: AL = 4Fh if function supported
  4254.     AH = status
  4255.         00h successful
  4256.         01h failed
  4257.     BX = bytes per scan line
  4258.     CX = number of pixels per scan line
  4259.     DX = maximum number of scan lines
  4260. Notes:    if the desired width is not achievable, the next larger width will be
  4261.       set
  4262.     the scan line may be wider than the visible area of the screen
  4263.     this function is valid in text modes, provided that pixel values are
  4264.       multiplied by the character cell width/height
  4265. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h/BL=02h,AX=4F06h/BL=03h,AX=4F07h
  4266. --------V-104F06BL02-------------------------
  4267. INT 10 - VESA SuperVGA BIOS v2.0+ - SET LOGICAL SCAN LINE LENGTH (BYTES)
  4268.     AX = 4F06h
  4269.     BL = 02h
  4270.     CX = desired scanline width in bytes
  4271. Return: AL = 4Fh if function supported
  4272.     AH = status
  4273.         00h successful
  4274.         01h failed
  4275.     BX = bytes per scan line
  4276.     CX = number of pixels per scan line
  4277.     DX = maximum number of scan lines
  4278. Notes:    if the desired width is not achievable, the next larger width will be
  4279.       set
  4280.     the scan line may be wider than the visible area of the screen
  4281.     this function is valid in text modes, provided that pixel values are
  4282.       multiplied by the character cell width/height
  4283. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=03h,AX=4F07h
  4284. --------V-104F06BL03-------------------------
  4285. INT 10 - VESA SuperVGA BIOS v2.0+ - GET MAXIMUM SCAN LINE LENGTH
  4286.     AX = 4F06h
  4287.     BL = 03h
  4288. Return: AL = 4Fh if function supported
  4289.     AH = status
  4290.         00h successful
  4291.         01h failed
  4292.     BX = maximum bytes per scan line
  4293.     CX = maximum number of pixels per scan line
  4294. Notes:    this function is valid in text modes, provided that pixel values are
  4295.       multiplied by the character cell width/height
  4296. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h,AX=4F06h/BL=02h,AX=4F07h
  4297. --------V-104F07-----------------------------
  4298. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  4299.     AX = 4F07h
  4300.     BL = function
  4301.         00h,80h set display start
  4302.         CX = leftmost displayed pixel in scan line
  4303.         DX = first displayed scan line
  4304.         01h get display start
  4305.         Return: BH = 00h
  4306.             CX = leftmost displayed pixel in scan line
  4307.             DX = first displayed scan line
  4308.     BH = 00h (reserved)
  4309. Return: AL = 4Fh if function supported
  4310.     AH = status
  4311.         00h successful
  4312.         01h failed
  4313. Notes:    this function is valid in text modes, provided that values are
  4314.       multiplied by the character cell width/height
  4315.     subfunction 80h waits until vertical retrace before changing the
  4316.       display start address (VBE v2.0+)
  4317. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  4318. --------V-104F08-----------------------------
  4319. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  4320.     AX = 4F08h
  4321.     BL = function
  4322.         00h set DAC palette width
  4323.         BH = desired number of bits per primary color
  4324.         01h get DAC palette width
  4325. Return: AL = 4Fh if function supported
  4326.     AH = status
  4327.         00h successful
  4328.         01h failed
  4329.     BH = current number of bits per primary (06h = standard VGA)
  4330. --------V-104F09-----------------------------
  4331. INT 10 - VESA SuperVGA BIOS v2.0+ - GET/SET PALETTE ENTRIES
  4332.     AX = 4F09h
  4333.     BL = function
  4334.         00h set palette
  4335.         01h get palette
  4336.         02h set secondary palette data
  4337.         03h get secondary palette data
  4338.         80h set palette during vertical retrace
  4339.     CX = number of entries to change
  4340.     DX = starting palette index
  4341.     ES:DI -> palette buffer (see #0072)
  4342. Return: AL = 4Fh if function supported
  4343.     AH = status
  4344.         00h successful
  4345.         01h failed
  4346.  
  4347. Format of VESA VBE palette entry:
  4348. Offset    Size    Description    (Table 0072)
  4349.  00h    BYTE    red
  4350.  01h    BYTE    green
  4351.  02h    BYTE    blue
  4352.  03h    BYTE    alpha or alignment byte
  4353. --------V-104F0A-----------------------------
  4354. INT 10 - VESA SuperVGA BIOS v2.0+ - GET PROTECTED-MODE CODE
  4355.     AX = 4F0Ah
  4356.     BX = function to be copied (see #0073)
  4357. Return: AL = 4Fh if function supported
  4358.     AH = status
  4359.         00h successful
  4360.         CX = number of bytes to copy
  4361.         ES:DI -> code for requested function
  4362.         01h failed
  4363.  
  4364. (Table 0073)
  4365. Values for VESA VBE protected-mode function identifiers:
  4366.  0001h    set bank (see AX=4F05h)
  4367.  0002h    set display start (see AX=4F07h)
  4368.  0003h    set palette (see AX=4F09h)
  4369. --------p-104F10BL00-------------------------
  4370. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
  4371.     AX = 4F10h
  4372.     BL = 00h
  4373.     ES:DI = 0000h:0000h (reserved for future use)
  4374. Return: AL = 4Fh if function supported (installed)
  4375.     AH = call status
  4376.         00h successful
  4377.         else failed
  4378.     ---if successful---
  4379.     BL = VBE/PM version (bits 7-4: major, bits 3-0: minor)
  4380.     BH = supported states (see #0074)
  4381.     ES:DI unchanged
  4382. Index:    installation check;VESA VBE/Power Management
  4383. SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h
  4384.  
  4385. Bitfields for VESA VBE/PM supported power states:
  4386. Bit(s)    Description    (Table 0074)
  4387.  0    standby
  4388.  1    suspend
  4389.  2    off
  4390.  3    reduced on
  4391. --------p-104F10BL01-------------------------
  4392. INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
  4393.     AX = 4F10h
  4394.     BL = 01h
  4395.     BH = new state (see #0075)
  4396. Return: AL = 4Fh if function supported
  4397.     AH = call status
  4398.         00h successful
  4399.         else failed
  4400. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch
  4401.  
  4402. (Table 0075)
  4403. Values for VESA VBE/PM power state:
  4404.  00h    On
  4405.  01h    standby
  4406.  02h    suspend
  4407.  04h    Off
  4408.  08h    reduced On (for flat screens)
  4409. --------p-104F10BL02-------------------------
  4410. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
  4411.     AX = 4F10h
  4412.     BL = 02h
  4413. Return: AL = 4Fh if function supported
  4414.     AH = call status
  4415.         00h successful
  4416.            BH = current power state (see #0075)
  4417.         else failed
  4418. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h
  4419. --------s-104F13BX0000-----------------------
  4420. INT 10 - VESA Audio Interface - VBE/AI INSTALLATION CHECK
  4421.     AX = 4F13h
  4422.     BX = 0000h
  4423. Return:    AL = 4Fh if function supported
  4424.         AH = status
  4425.         00h successful
  4426.             BX = version (0010h for 1.00 -- note nonstandard value!)
  4427.         01h failed
  4428. SeeAlso: AX=4F13h/BX=0001h,AX=4F13h/BX=0005h
  4429. --------s-104F13BX0001-----------------------
  4430. INT 10 - VESA Audio Interface - LOCATE DEVICE
  4431.     AX = 4F13h
  4432.     BX = 0001h
  4433.     CX = 0000h ???
  4434.     DX = type of device
  4435.         0001h Wave device
  4436.         0002h MIDI device
  4437.         0003h Volume device
  4438. Return:    AL = 4Fh if function supported
  4439.     AH = status
  4440.         00h successful
  4441.         CX = handle [returned 1 for DX=1 and 3, and 2 for DX=2]
  4442.         01h failed
  4443. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h
  4444. --------s-104F13BX0002-----------------------
  4445. INT 10 - VESA Audio Interface - QUERY DEVICE
  4446.     AX = 4F13h
  4447.     BX = 0002h
  4448.     CX = handle
  4449.     DX = query
  4450.         0001h return length of GeneralDeviceClass
  4451.         0002h return copy    of GeneralDeviceClass (see #0076)
  4452.         0003h return length of Volume Info Structure
  4453.         0004h return copy    of Volume Info Structure (see #0086)
  4454.         0005h return length of Volume Services Structure
  4455.         0006h return copy    of Volume Services Structure (see #0088)
  4456.         0007h-000Fh reserved
  4457.         0010h-FFFFh device-specific
  4458.     SI:DI -> buffer (functions 0002h,0004h,0006h)
  4459. Return:    AL = 4Fh if function supported
  4460.     AH = status
  4461.         00h successful
  4462.         SI:DI = length (functions 1,3,5)
  4463.         SI:DI buffer filled (functions 2,4,6)
  4464.         01h failed
  4465. Note:    functions 0003h to 0006h are only supported for the Volume device
  4466.  
  4467. Format of GeneralDeviceClass structure:
  4468. Offset    Size    Description    (Table 0076)
  4469.  00h    4 BYTEs    name of the structure ("GENI")
  4470.  04h    DWORD    structure length
  4471.  08h    WORD    type of device (1=Wave, 2=MIDI)
  4472.  0Ah    WORD    version of VESA driver support (0100h for 1.00)
  4473.  10h    var    for CX=handle for Wave device:
  4474.             Wave Info structure (see #0077)
  4475.             some bytes ???
  4476.         for CX=handle for MIDI device:
  4477.             MIDI Info Structure (see #0082)
  4478.             first 8 bytes of MIDI Service Structure ???
  4479. SeeAlso: #0086,#0088
  4480.  
  4481. Format of WAVE Info Structure:
  4482. Offset    Size    Description    (Table 0077)
  4483.  00h    4 BYTEs    name of the structure ("WAVI")
  4484.  04h    DWORD    structure length [0000007Eh]
  4485.  08h    DWORD    driver software version [00000003h]
  4486.  0Ch 32 BYTEs    vendor name, etc. (ASCIZ string)
  4487.  2Ch 32 BYTEs    vendor product name
  4488.  4Ch 32 BYTEs    vendor chip/hardware description
  4489.  6Ch    BYTE    installed board number
  4490.  6Dh    3 BYTEs    unused data
  4491.  70h    DWORD    feature bits (see #0078)
  4492.  74h    WORD    user determined preference field
  4493.  76h    WORD    memory required for driver use [0200h]
  4494.  78h    WORD    number of timer tick callbacks per second [0000h]
  4495.  7Ah    WORD    channels: 1 = mono, 2 = stereo
  4496.         stereo is assumed to be interleaved data
  4497.  7Ch    WORD    bitfield of max sample sizes (see #0079)
  4498. SeeAlso: #0082
  4499.  
  4500. Bitfields for Wave feature bits:
  4501. Bit(s)    Description    (Table 0078)
  4502.  0    8000hz Mono Playback
  4503.  1    8000hz Mono Record
  4504.  2    8000hz Stereo Record
  4505.  3    8000hz Stereo Playback
  4506.  4    8000hz Full Duplex Play/Record
  4507.  5    11025hz Mono Playback
  4508.  6    11025hz Mono Record
  4509.  7    11025hz Stereo Record
  4510.  8    11025hz Stereo Playback
  4511.  9    11025hz Full Duplex Play/Record
  4512.  10    22050hz Mono Playback
  4513.  11    22050hz Mono Record
  4514.  12    22050hz Stereo Record
  4515.  13    22050hz Stereo Playback
  4516.  14    22050hz Full Duplex Play/Record
  4517.  15    44100hz Mono Playback
  4518.  16    44100hz Mono Record
  4519.  17    44100hz Stereo Record
  4520.  18    44100hz Stereo Playback
  4521.  19    44100hz Full Duplex Play/Record
  4522.  20-26    reserved (0)
  4523.  27    driver must pre-handle the data
  4524.  28    Variable Sample mono   playback
  4525.  29    Variable Sample stereo playback
  4526.  30    Variable Sample mono   record
  4527.  31    Variable Sample stereo record
  4528.  
  4529. (Table 0079)
  4530. Values for Sample data size:
  4531.  01h    8bit play
  4532.  02h    16bit play
  4533.  10h    8bit record
  4534.  20h    16bit record
  4535.  
  4536. Format of WAVE Audio Services structure:
  4537. Offset    Size    Description    (Table 0080)
  4538.  00h    4 BYTEs    name of the structure
  4539.  04h    DWORD    structure length
  4540.  08h 16 BYTEs    for future expansion
  4541. ---entry points (details???)---
  4542.  18h    DWORD    DeviceCheck
  4543.         11h compression (see also #0081)
  4544.         12h driver state
  4545.         13h get current pos
  4546.         14h sample rate
  4547.         15h set preference
  4548.         16h get DMA,IRQ
  4549.         17h get IO address
  4550.         18h get mem address
  4551.         19h get mem free
  4552.         1Ah full duplex
  4553.         1Bh get block size
  4554.         1Ch get PCM format
  4555.         1Dh enable PCM format
  4556.         80h-.. vendors can add DevChks above 0x80
  4557.  1Ch    DWORD    PCMInfo
  4558.  20h    DWORD    PlayBlock
  4559.  24h    DWORD    PlayCont
  4560.  28h    DWORD    RecordBlock
  4561.  2Ch    DWORD    RecordCont
  4562.  30h    DWORD    PauseIO
  4563.  34h    DWORD    ResumeIO
  4564.  38h    DWORD    StopIO
  4565.  3Ch    DWORD    WavePrepare
  4566.  40h    DWORD    WaveRegister
  4567.  44h    DWORD    GetLastError
  4568.         01h unsupported feature/function
  4569.         02h bad sample rate
  4570.         03h bad block length
  4571.         04h bad block address
  4572.         05h app. missed an IRQ
  4573.         06h don't understand the PCM size/format
  4574.         80h-.. vendors specific errors
  4575.  48h    DWORD    TimerTick
  4576.  4Ch    DWORD    ApplPSyncCB: CallBack: play filled in by the app
  4577.  50h    DWORD    ApplRSyncCB: CallBack: rec filled in by the app
  4578. SeeAlso: #0084,#0088
  4579.  
  4580. (Table 0081)
  4581. Values for type of compression:
  4582.  01h    IMA play
  4583.  02h    ALAW play
  4584.  03h    ULAW play
  4585.  11h    IMA record
  4586.  12h    ALAW record
  4587.  13h    ULAW record
  4588.  
  4589. Format of MIDI Info Structure:
  4590. Offset    Size    Description    (Table 0082)
  4591.  00h    4 BYTEs    name of the structure ("MIDI")
  4592.  04h    DWORD    structure length
  4593.  08h    DWORD    driver software version [00000003h]
  4594.  0Ch 32 BYTEs    vendor name, etc. (ASCIZ string)
  4595.  2Ch 32 BYTEs    vendor product name
  4596.  4Ch 32 BYTEs    vendor chip/hardware description
  4597.  6Ch    BYTE    installed board number
  4598.  6Dh    3 BYTEs    unused data
  4599.  70h 14 BYTEs    the patch library file name [OPL2.BNK 00..]
  4600.  7Eh    DWORD    feature bits (see #0083)
  4601.  80h    WORD    user determined preference field
  4602.  82h    WORD    memory required for driver use
  4603.  84h    WORD    # of timer tick callbacks per second
  4604.  86h    WORD    max # of tones (voices, partials)
  4605. SeeAlso: #0076,#0084,#0086
  4606.  
  4607. Bitfields for MIDI feature bits:
  4608. Bit(s)    Description    (Table 0083)
  4609.  0-3    reserved for GM extensions
  4610.  4    Transmitter/Receiver only
  4611.  5    Patches preloaded
  4612.  6    MIDI receive has time stamp
  4613.  8    MIDI interrupt driven input supported
  4614.  9    MIDI polled input supported
  4615.  10    MIDI remote patches supported
  4616.  
  4617. Format of MIDI Service structure:
  4618. Offset    Size    Description    (Table 0084)
  4619.  00h    4 BYTEs    name of the structure ("MIDS")
  4620.  04h    DWORD    structure length
  4621.  08h 16 WORDs    patches loaded table bit field
  4622.  28h 16 BYTEs    for future expansion
  4623. ---entry points (details???)---
  4624.  38h    DWORD    device check
  4625.         11h return available tones
  4626.         12h return TRUE/FALSE if patch is understood
  4627.         13h set preference
  4628.         14h allow/disallow voice stealing
  4629.         15h get FIFO sizes
  4630.         16h get DMA,IRQ
  4631.         17h get IO address
  4632.         18h get mem address
  4633.         19h get mem free
  4634.         80h-.. vendors can add DevChks above 0x80
  4635.  3Ch    DWORD    global reset
  4636.  40h    DWORD    MIDI msg
  4637.  44h    DWORD    poll MIDI
  4638.  48h    DWORD    preload patch
  4639.  4Ch    DWORD    unload patch
  4640.  50h    DWORD    timer tick
  4641.  54h    DWORD    get last error
  4642.         01h unsupported feature/function
  4643.         02h unknown patch type (see #0085)
  4644.         03h all tones are used
  4645.         04h messages are out of sync
  4646.         05h an incoming patch was incomplete
  4647.         06h an incoming patch couldn't be stored
  4648.         07h had to drop an incoming byte
  4649.         08h driver is failing a patch download
  4650.         80h-.. vendors specific errors
  4651.  58h    DWORD    Patch Block free callback
  4652.  5Ch    DWORD    MIDI byte avail. callback
  4653. SeeAlso: #0080,#0088
  4654.  
  4655. (Table 0085)
  4656. Values for MIDI Registered Patch Types:
  4657.  10h    OPL2
  4658.  11h    OPL3
  4659.  
  4660. Format of Volume Info Structure:
  4661. Offset    Size    Description    (Table 0086)
  4662.  00h  4    BYTEs    name of the structure ("VOLI")
  4663.  04h    DWORD    structure length (00000092h)
  4664.  08h    DWORD    driver software version [00000001h]
  4665.  0Ch 32 BYTEs    vendor name, etc. (ASCIZ string)
  4666.  2Ch 32 BYTEs    vendor product name
  4667.  4Ch 32 BYTEs    vendor chip/hardware description
  4668.  6Ch    BYTE    installed board number (0 for 1st/only board)
  4669.  6Dh  3    BYTEs    unused data (0)
  4670.  70h 24 BYTEs    text name of the mixer channel
  4671.  88h    DWORD    features bits (see #0087)
  4672.  8Ch    WORD    minimum volume setting
  4673.  8Eh    WORD    maximum volume setting
  4674.  90h    WORD    attenuation/gain crossover
  4675. SeeAlso: #0076,#0088
  4676.  
  4677. Bitfields for Volume feature bits:
  4678. Bit(s)    Description    (Table 0087)
  4679.  0    Stereo Volume control available
  4680.  2    Low Pass Filter is available
  4681.  3    High Pass Filter is available
  4682.  4    Parametric Tone Control is available
  4683.  5    selectable output paths
  4684.  8    Azimuth Field positioning supported
  4685.  9    Phi Field positioning supported
  4686.  10-30    unused???
  4687.  31    Master Volume device
  4688.  
  4689. Format of Volume Services Structure:
  4690. Offset    Size    Description    (Table 0088)
  4691.  00h    4 BYTEs    name of the structure ("VOLS")
  4692.  04h    DWORD    structure length (00000038h)
  4693.  08h 16 BYTEs    16 bytes for future expansion (0)
  4694. ---entry points (details???)---
  4695.  18h    DWORD    device check
  4696.         0011h filter range
  4697.         0012h filter setting
  4698.         0013h filter current
  4699.         0014h tone range
  4700.         0015h tone setting
  4701.         0016h tone current
  4702.         0017h path
  4703.         0018h get IO address
  4704.         0080h-.. vendors can add DevChks above 0x80
  4705.  1Ch    DWORD    set vol to an absolute setting
  4706.         01h User master volume setting
  4707.         02h application master volume setting
  4708.  20h    DWORD    set 3D volume
  4709.  24h    DWORD    tone control
  4710.  28h    DWORD    filter control
  4711.  2Ch    DWORD    output path
  4712.  30h    DWORD    reset channel
  4713.  34h    DWORD    get last error
  4714.         01h unsupported feature/function
  4715.         02h out of range parameter value
  4716.         80h+ vendor-specific errors
  4717. SeeAlso: #0080,#0084
  4718. --------s-104F13BX0003-----------------------
  4719. INT 10 - VESA Audio Interface - OPEN DEVICE
  4720.     AX = 4F13h
  4721.     BX = 0003h
  4722.     CX = handle
  4723.     DX = API set (16/32-bit)
  4724.     SI = segment ???
  4725. Return:    AL = 4Fh if function supported
  4726.     AH = status
  4727.         00h successful
  4728.         SI:CX -> memory ???
  4729.         01h failed
  4730. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0002h,AX=4F13h/BX=0004h
  4731. --------s-104F13BX0004-----------------------
  4732. INT 10 - VESA Audio Interface - CLOSE DEVICE
  4733.     AX = 4F13h
  4734.     BX = 0004h
  4735.     CX = handle
  4736. Return:    AL = 4Fh if function supported
  4737.     AH = status
  4738.         00h successful
  4739.         01h failed
  4740. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0003h,AX=4F13h/BX=0005h
  4741. --------s-104F13BX0005-----------------------
  4742. INT 10 - VESA Audio Interface - UNINSTALL DRIVER
  4743.     AX = 4F13h
  4744.     BX = 0005h
  4745. Return:    AL = 4Fh if function supported
  4746.     AH = status
  4747.         00h successful
  4748.         01h failed
  4749. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0006h
  4750. --------s-104F13BX0006-----------------------
  4751. INT 10 - VESA Audio Interface - DRIVER CHAIN/UNCHAIN
  4752.     AX = 4F13h
  4753.     BX = 0006h
  4754. Return:    AL = 4Fh if function supported
  4755.     AH = status
  4756.         00h successful
  4757.         01h failed
  4758. SeeAlso: AX=4F13h/BX=0000h,AX=4F13h/BX=0005h
  4759. --------V-104F4D-----------------------------
  4760. INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
  4761.     AX = 4F4Dh
  4762.     BX = number of bytes available for VCI use
  4763.     DS:0000h -> buffer for VCI
  4764.     ES:DI -> VCI driver callback function
  4765. Return: AL = 4Fh if supported
  4766.         AH = status
  4767.         00h successful
  4768.             BX = number of bytes used by VCI
  4769.             ES:DI -> VCI request handler
  4770.         01h failed
  4771. Desc:    allow the VESA BIOS Extensions to cooperate with a pointing-device
  4772.       (typically mouse) driver
  4773. --------V-104FFF-----------------------------
  4774. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  4775.     AX = 4FFFh
  4776.     DL = new state (00h off, 01h on)
  4777. Return: AX = 0000h if successful
  4778. --------V-104FFF-----------------------------
  4779. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  4780.     AX = 4FFFh
  4781.     BX = dual display mode
  4782.         00h reset
  4783.         01h set dual display, 32KB VGA test
  4784.         02h set dual display, 64KB VGA test
  4785. Return: AX = 4F00h if successful
  4786.         BX = number of scanlines off screen for test mode
  4787. --------U-1050-------------------------------
  4788. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  4789.     AH = 50h
  4790. Return: BX = 1954h if installed
  4791.         AL = 00h if inactive, nonzero if active
  4792. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  4793. SeeAlso: AH=51h
  4794. --------J-105000-----------------------------
  4795. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  4796.     AX = 5000h
  4797.     BX = country code
  4798.         0001h USA (English), 0051h Japan
  4799. Return: AL = status
  4800.         00h successful
  4801.         01h bad country code
  4802.         02h other error
  4803. SeeAlso: AX=5001h,INT 16/AX=5000h
  4804. --------J-105001-----------------------------
  4805. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  4806.     AX = 5001h
  4807. Return: AL = status
  4808.         00h successful
  4809.         BX = country code
  4810.         02h error
  4811. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  4812. --------V-105049-----------------------------
  4813. INT 10 - VIDEO - SCREENR v1.55+ - API
  4814.     AX = 5049h ('PI')
  4815.     BX = function
  4816.         0000h installation check
  4817.         0001h lock mode
  4818.         0002h unlock mode
  4819.         0003h lock palette
  4820.         0004h unlock palette
  4821. Return: AX = 0000h if installed
  4822.         BX = TSR version (BH=major,BL=minor)
  4823.         CL = mode locking status
  4824.         00h mode not locked
  4825.         01h mode locked: INT 10/AH=00h disabled
  4826.         CH = palette locking status
  4827.         00h palette not locked
  4828.         01h palette locked, the following functions are disabled:
  4829.             AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  4830. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  4831.       utility.
  4832. Index:    installation check;SCREENR
  4833. --------U-1051-------------------------------
  4834. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  4835.     AH = 51h
  4836.     AL = state
  4837.         00h disable
  4838.         nonzero enable
  4839. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  4840. SeeAlso: AH=50h"SCROLOCK"
  4841. --------J-105100-----------------------------
  4842. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  4843.     AX = 5100h
  4844.     BH = character width in bits (10h)
  4845.     BL = character height (10h)
  4846.     DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  4847.     ES:BP -> character bitmap
  4848. Return: AL = status (00h successful, 01h failed)
  4849. SeeAlso: AX=5101h,INT 1F
  4850. --------J-105101-----------------------------
  4851. INT 10 - VIDEO - AX PC - READ CHARACTER
  4852.     AX = 5101h
  4853.     BH = character width in bits
  4854.     BL = character height
  4855.     DX = character code (DH = 00h if 8-bit character)
  4856.     ES:BP -> buffer for character bitmap
  4857. Return: AL = status (00h successful, 01h failed)
  4858. SeeAlso: AH=09h,AX=5100h
  4859. --------J-105200-----------------------------
  4860. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  4861.     AX = 5200h
  4862.     BX = segment of buffer
  4863. SeeAlso: AX=5201h
  4864. --------J-105201-----------------------------
  4865. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  4866.     AX = 5201h
  4867. Return: BX = segment of buffer or 0000h if failed
  4868. SeeAlso: AX=8300h,AH=FEh
  4869. ----------1053-------------------------------
  4870. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  4871.     AH = 53h
  4872.     DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  4873.         .PR2)
  4874. Return: ???
  4875. SeeAlso: AH=55h
  4876. ----------1055-------------------------------
  4877. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  4878.     AH = 55h
  4879. Return: FXSHOW.EXE removed from memory
  4880. SeeAlso: AH=53h
  4881. --------V-105555-----------------------------
  4882. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  4883.     AX = 5555h
  4884. Return: AX = AAAAh    if installed
  4885.     BX:CX -> ??? routine in SMS.COM resident portion
  4886.           -> data area (see #0089) in VCONFIG
  4887. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  4888.       ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  4889. SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
  4890. Index:    screen saver;ATI Wonder SMS.COM
  4891.  
  4892. Format of ATI Super Switch data area:
  4893. Offset    Size    Description    (Table 0089)
  4894.  00h    DWORD    original INT 09 vector
  4895.  04h    DWORD    original INT 10 vector
  4896.  08h    DWORD    original INT 1C vector
  4897.  0Ch    WORD    screen saver state, 0=off, 1=on
  4898.  0Eh    WORD    blanking interval in clock ticks
  4899. --------V-105F00-----------------------------
  4900. INT 10 - Chips & Technologies Extended BIOS - RETURN CHIP INFORMATION
  4901.     AX = 5F00h
  4902. Return: AL = 5Fh function supported
  4903.         BL = chip type (see #0090)
  4904.         BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
  4905.         CX = miscellaneous information (see #0091)
  4906. SeeAlso: AX=5F01h
  4907.  
  4908. Bitfields for Chips&Technologies chip type:
  4909. Bit(s)    Description    (Table 0090)
  4910.  7-4    chip type
  4911.     0000: 82c451
  4912.     0001: 82c452
  4913.     0010: 82c455
  4914.     0011: 82c453
  4915.     0101: 82c456
  4916.     0110: 82c457
  4917.     0111: F65520
  4918.     1000: F65530
  4919.     1100: F65535/F65545 ???
  4920.     1101: F65540
  4921.  3-0    revision number
  4922.  
  4923. Bitfields for Chips&Technologies miscellaneous information:
  4924. Bit(s)    Description    (Table 0091)
  4925.  0    DAC size (0=6-bit, 1=8-bit)
  4926.  1    system type (0=PC/AT, 1=PS/2)
  4927.  2    extended text modes supported by BIOS
  4928.  3    reserved
  4929.  4    extended graphics modes supported by BIOS
  4930.  5    reserved
  4931.  6    BIOS supports graphics cursor
  4932.  7    BIOS supports anti-aliased font
  4933.  8    BIOS supports pre-programmed emulation
  4934.  9    BIOS supports auto emulation
  4935.  10    BIOS supports variable mode set at cold boot
  4936.  11    BIOS supports variable mode set on warm boot
  4937.  12    BIOS supports emulation mode set at cold boot
  4938.  13    BIOS supports emulation mode set on warm boot
  4939.  14-15    reserved
  4940. --------V-105F00-----------------------------
  4941. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  4942.     AX = 5F00h
  4943. Return: AH = 00h, if successful
  4944.     AL = chip version (the same value that VTEST.EXE reads)
  4945.         00h RTG3103???
  4946.         01h RTG31030/RTG3105
  4947.         02h RTG3106???
  4948.         3Fh non-Realtek chip
  4949. BUG:    in v3.C10, AX=5F00h on return due to improper stack restoration code
  4950. SeeAlso: AX=5F01h"RTVGA"
  4951. --------V-105F01-----------------------------
  4952. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  4953.     AX = 5F01h
  4954.     BL = emulation type (see #0092)
  4955. Return: AL = 5Fh if function supported
  4956.         AH = status
  4957.         00h unsuccessful
  4958.         01h successful
  4959. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  4960.  
  4961. (Table 0092)
  4962. Values for Chips&Technologies emulation type:
  4963.  00h,01h reserved
  4964.  02h    CGA
  4965.  03h    MDA
  4966.  04h    Hercules
  4967.  05h    EGA
  4968.  06h    VGA
  4969. --------V-105F01-----------------------------
  4970. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  4971.     AX = 5F01h
  4972.     ES:DI -> zero-filled buffer for BIOS ID string
  4973. Return: AH = 00h if successful
  4974.     ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  4975. BUG:    in v3.C10, AX=5F01h on return due to improper stack restoration code
  4976. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  4977. --------V-105F02-----------------------------
  4978. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  4979.     AX = 5F02h
  4980.     BL = new state of autmatic emulation (00h enabled, 01h disabled)
  4981. Return: AL = 5Fh if function supported
  4982.         AH = status
  4983.         00h unsuccessful
  4984.         01h successful
  4985. SeeAlso: AX=5F01h,AX=5F03h
  4986. --------V-105F02-----------------------------
  4987. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  4988.     AX = 5F02h
  4989. Return: AH = 00h, if successful
  4990.     AL = on-board memory size
  4991.          (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  4992. BUG:    in v3.C10, AX=5F02h on return due to improper stack restoration code
  4993. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  4994. --------V-105F03-----------------------------
  4995. INT 10 - VIDEO - Realtek RTVGA - SET ???
  4996.     AX = 5F03h
  4997.     BL = 0-3 (???)
  4998. Return: AH = 00h if successful
  4999. BUG:    in v3.C10, AX=5F03h on return due to improper stack restoration code
  5000. SeeAlso: AX=5F02h"RTVGA"
  5001. --------V-105F03-----------------------------
  5002. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON VIDEO CONDITIONS
  5003.     AX = 5F03h
  5004.     BL = configuration
  5005.         00h power-up display mode
  5006.         CL = display mode
  5007.         CH = mode (see #0093)
  5008.         01h power-up emulation mode
  5009.         CL = emulation mode (see #0092)
  5010.         CH = permanence (00h reset after next boot, 01h until changed)
  5011. Return: AL = 5Fh if function supported
  5012.         AH = status
  5013.         00h unsuccessful
  5014.         01h successful
  5015. SeeAlso: AX=5F02h,AX=5F03h/BL=01h,AX=5F90h
  5016.  
  5017. Bitfields for Chips&Technologies display mode:
  5018. Bit(s)    Description    (Table 0093)
  5019.  1-0    scanlines (00 = 200, 01 = 350, 10 = 400)
  5020.  7    persistence (0 reset on next boot, 1 until changed)
  5021. --------V-105F03BL01-------------------------
  5022. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  5023.     AX = 5F03h
  5024.     BL = 01h
  5025.     CL = emulation mode
  5026.     CH = mode
  5027.         bit 7 persistence (0 reset on next boot, 1 until changed)
  5028. Return: AL = 5Fh if function supported
  5029.         AH = status
  5030.         00h unsuccessful
  5031.         01h successful
  5032. SeeAlso: AX=5F02h,AX=5F03h/BL=00h,AX=5F90h
  5033. --------V-105F10-----------------------------
  5034. INT 10 - Chips & Technologies Extended BIOS - ???
  5035.     AX = 5F10h
  5036.     DX = ???
  5037. Return: DX = ???
  5038. --------V-105F50-----------------------------
  5039. INT 10 - Chips & Technologies Extended BIOS - GET LAPTOP DISPLAY STATUS
  5040.     AX = 5F50h
  5041. Return: DL = display status (see #2710)
  5042. Note:    this call can be used on Toshiba laptops since ~1995 instead of
  5043.       INT 42/AX=7503h which is no longer supported with the F655xx chips
  5044. SeeAlso: INT 42/AX=7503h
  5045.  
  5046. Bitfields for display status:
  5047. Bit(s)    Description    (Table 2710)
  5048.  7-4    always 0 ???
  5049.  3    1: both displays active (bit 1 also set)
  5050.  2    1: normal (monochrome display only), 0: inverse or color
  5051.  1    1: internal display active, 0: external only
  5052.  0    always set ???
  5053. --------V-105F51-----------------------------
  5054. INT 10 - Chips & Technologies Extended BIOS - SET DISPLAY STATUS ???
  5055.     AX = 5F51h
  5056.     BX = ???
  5057. Return: nothing
  5058. --------V-105F5EBL00-------------------------
  5059. INT 10 - Chips & Technologies Extended BIOS - SET ???
  5060.     AX = 5F5Eh
  5061.     BL = 00h or 01h
  5062. Return: nothing
  5063. --------V-105F-------------------------------
  5064. INT 10 - Chips & Technologies Extended BIOS - SAVE/RESTORE SUPERVGA STATE
  5065.     AH = 5Fh
  5066.     AL = subfunction
  5067.         90h determine size of save buffer
  5068.         91h save state
  5069.         92h restore state
  5070.     CX = state mask (see #0094)
  5071.     ES:BX -> save buffer (subfunctions 91h,92h only)
  5072. Return: AL = 5Fh if function supported
  5073.         ---subfunction 90h---
  5074.         BX = number of 64-byte blocks required
  5075.         ---subfunction 92h---
  5076.         buffer at ES:BX filled
  5077. SeeAlso: AH=1Ch,AX=5F03h
  5078.  
  5079. Bitfields for Chips&Technologies state mask:
  5080. Bit(s)    Description    (Table 0094)
  5081.  0    video hardware
  5082.  1    BIOS data state
  5083.  2    DAC state
  5084.  15    type (0 all state info, 1 SuperVGA state only)
  5085. --------V-1060------------------------------------
  5086. INT 10 - HUNTER 16 - SET GRAPHICS FONT
  5087.     AH = 60h
  5088.     AL = new font
  5089.         bit 7    output characters in reverse video
  5090.         bits 0-6 font number (see #0108 at AH=77h)
  5091. Return: BH = cell width
  5092.     BL = cell height
  5093. Desc:    select the font to use for output in mode 6; this can be used to mix
  5094.       fonts on the screen
  5095. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  5096.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  5097. SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
  5098. --------V-1061------------------------------------
  5099. INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
  5100.     AH = 61h
  5101.     CX = column
  5102.     DX = row
  5103. Note:    this function is only valid in graphics modes
  5104. SeeAlso: AH=62h
  5105. --------V-1062------------------------------------
  5106. INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
  5107.     AH = 62h
  5108. Return: CX = column
  5109.     DX = row
  5110. Note:    this function is only valid in graphics modes
  5111. SeeAlso: AH=61h
  5112. --------V-1063------------------------------------
  5113. INT 10 - HUNTER 16 - SET CONTRAST
  5114.     AH = 63h
  5115.     AL = contrast (0..127)
  5116. Desc:    set the LCD screen contrast to improve visibility
  5117. SeeAlso: AH=64h,AH=75h
  5118. --------V-1064------------------------------------
  5119. INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
  5120.     AH = 64h
  5121.     AL = level (0..15)
  5122. Desc:    set the LCD backlight level to improve visibility in bad lighting
  5123. SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
  5124. --------V-106500----------------------------------
  5125. INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
  5126.     AX = 6500h
  5127. Return: BX = timeout in seconds (0-300)
  5128. Desc:    returns the time after which the backlight will turn off
  5129. SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
  5130. --------V-106501----------------------------------
  5131. INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
  5132.     AX = 6501h
  5133.     BX = timeout in seconds (0-300)
  5134. Desc:    set the idle time after which the backlight will turn off
  5135. SeeAlso: AH=64h,AX=6500h
  5136. --------V-1066------------------------------------
  5137. INT 10 - HUNTER 16 - SPLIT DISPLAY
  5138.     AH = 66h
  5139.     AL = control bits (see #0095)
  5140.     BH = top row of lower section of LCD (0..7)
  5141.     BL = top row of lower section of the virtual screen (0..24)
  5142. Desc:    split the LCD screen horizontally into two parts; each part may be
  5143.       individually scrollable or fixed.
  5144. Note:    the Hunter 16 has a 240x64 LCD display which serves as a window into
  5145.       a 640x200 virtual screen
  5146.  
  5147. Bitfields for HUNTER 16 control bits:
  5148. Bit(s)    Description    (Table 0095)
  5149.  0-1    01: no split, 10: allow split
  5150.  2    allow scrolling the upper part
  5151.  3    allow scrolling the lower part
  5152. --------V-106A00BX0000-----------------------
  5153. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  5154.     AX = 6A00h
  5155.     BX = 0000h
  5156.     CX = 0000h
  5157.     DX = buffer length (may be 0)
  5158.     ES:DI -> buffer
  5159. Return: BX = number of bytes stored in buffer
  5160.     CX = bytes required for all descriptions (0 if no DGIS)
  5161. Note:    buffer contains descriptions and addresses of DGIS-compatible
  5162.       display(s) and printer(s)
  5163. SeeAlso: AX=6A02h
  5164. --------V-106A01CX0000-----------------------
  5165. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  5166.     AX = 6A01h
  5167.     CX = 0000h
  5168.     ES:DI = address of device to send INT 10 output to
  5169. Return: CX = 0000h  output could not be redirected
  5170.          else INT 10h output now routed to requested display
  5171. SeeAlso: AX=6A02h
  5172. --------V-106A02-----------------------------
  5173. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  5174.     AX = 6A02h
  5175.     ES:DI = 0000h:0000h
  5176. Return: ES:DI = 0000h:0000h  if current display is non-DGIS
  5177.         else address of the current DGIS INT 10 display
  5178. SeeAlso: AX=6A00h,AX=6A01h
  5179. --------V-106E00-----------------------------
  5180. INT 10 - Paradise VGA internal - GET ???
  5181.     AX = 6E00h
  5182. Return: BX = 5744h ('WD') if supported
  5183.         DH:AH:AL = last three ASCII digits of ROM serial number
  5184.         CL = ???
  5185.         CH = ???
  5186. SeeAlso: AX=6E04h,AX=6E05h
  5187. --------V-106E04-----------------------------
  5188. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  5189.     AX = 6E04h
  5190. Return: BX = screen width (columns)
  5191.     CX = screen height (lines)
  5192.     AH = ??? (05h or FFh)
  5193.     AL = ??? (04h or video mode)
  5194. SeeAlso: AX=6E00h,AX=6E05h
  5195. --------V-106E05-----------------------------
  5196. INT 10 - Paradise VGA internal - SET MODE
  5197.     AX = 6E05h
  5198.     BL = mode
  5199. Note:    like AH=00h, AL=BL.
  5200. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  5201. --------V-106F00-----------------------------
  5202. INT 10 - HP Vectra EX-BIOS - INSTALLATION CHECK
  5203.     AX = 6F00h
  5204.     BX <> 4850h (usually set to 0000h for simplicity)
  5205. Return: BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  5206.     AX destroyed
  5207. SeeAlso: AX=6F00h"Video7",AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  5208. SeeAlso: INT 14/AX=6F00h,INT 16/AX=6F00h,INT 17/AX=6F00h,INT 33/AX=6F00h
  5209. --------V-106F00BX0000-----------------------
  5210. INT 10 - VIDEO - Video7 VGA,VEGA VGA - INSTALLATION CHECK
  5211.     AX = 6F00h
  5212.     BX = 0000h
  5213. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  5214. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  5215. --------V-106F01-----------------------------
  5216. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP EX-BIOS - GET MONITOR INFO
  5217.     AX = 6F01h
  5218. Return: AL = monitor type code (HP,VEGA VGA only) (see #0096)
  5219.     AH = status register information (see #0097)
  5220.     CL = current value of Extended Control register (HP Ext BIOS, and only
  5221.         if AL=41h) (see #0098)
  5222. Notes:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  5223.     supported by original HP Vectra AT and by ES/QS/RS series Vectras
  5224.  
  5225. (Table 0096)
  5226. Values for monitor type code (HP Extended BIOS):
  5227.  00h    non-HP card with ROM and possibly its own INT 10h driver
  5228.  41h    MultiMode video display adapter
  5229.  42h-44h reserved
  5230.  45h    industry standard monochrome display adapter
  5231.  46h    industry standard color display adapter
  5232.  51h    reserved
  5233.  
  5234. Bitfields for status register information:
  5235. Bit(s)    Description    (Table 0097)
  5236.  0    display enable
  5237.     0 = display enabled
  5238.     1 = vertical or horizontal retrace in progress
  5239.  1    light pen flip flop set
  5240.  2    light pen switch activated
  5241.  3    vertical sync
  5242.  4    monitor resolution
  5243.     0 = high resolution (>200 lines)
  5244.     1 = low resolution (<=200 lines)
  5245.  5    display type (0 = color, 1 = monochrome)
  5246.  6,7    diagnostic bits
  5247. Note:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  5248. --------V-106F02-----------------------------
  5249. INT 10 - HP Vectra EX-BIOS - SET MONITOR INFO
  5250.     AX = 6F02h
  5251.     BL = new value for extended control register (see #0098)
  5252. Return: AX,BL destroyed
  5253. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  5254.       is installed
  5255.     the Extended Control register is at I/O address 3DDh
  5256. SeeAlso: AX=6F01h,AX=6F03h
  5257.  
  5258. Bitfields for HP Vectra extended control register:
  5259. Bit(s)    Description    (Table 0098)
  5260.  0    screen resolution (0 = 200 lines, 1 = 400 lines)
  5261.  1    underline enable (if set, 'blue' of fg color = underline)
  5262.  2    font (0 = Standard-8, 1 = HP-Roman-8)
  5263.  3    memory disabled for CPU access
  5264.  4    allow access to full 32K memory instead of wrapping at 16K
  5265.  5    select second 16K page instead of first
  5266.  6,7    unused
  5267. --------V-106F03-----------------------------
  5268. INT 10 - HP Vectra EX-BIOS - MODIFY MONITOR INFO
  5269.     AX = 6F03h
  5270.     BH = exclude mask (set bits are not modified)
  5271.     BL = new values for bits indicated by BH (see #0098)
  5272. Return: AX destroyed
  5273. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  5274.       is installed
  5275.     supported by original HP Vectra AT and by ES/QS/RS series Vectras
  5276. SeeAlso: AX=6F01h,AX=6F02h
  5277. --------V-106F04-----------------------------
  5278. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  5279.     AX = 6F04h
  5280. Return: AL = current video mode (see #0099)
  5281.     BX = horizontal columns (text) or pixels (graphics)
  5282.     CX = vertical columns (text) or pixels (graphics)
  5283. SeeAlso: AX=6F05h
  5284. --------V-106F05-----------------------------
  5285. INT 10 - VIDEO - Video7 VGA,VEGA EXTENDED EGA/VGA,HP Vectra - SET VIDEO MODE
  5286.     AX = 6F05h
  5287.     BL = mode (see #0099)
  5288. Return: AX,BL destroyed
  5289. Notes:    also supported by the HP Vectra Extended BIOS on the original
  5290.       HP Vectra AT and by ES/QS/RS series Vectras
  5291.     on the HP Vectra, this function rather than AH=00h must be used to
  5292.       return to an IBM-standard mode after setting an HP-specified mode
  5293.       from 08h to 0Fh.
  5294. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  5295.  
  5296. (Table 0099)
  5297. Values for Video7/VEGA video mode:
  5298.      text/ text pixel    pixel    colors disply scrn  system
  5299.      grph resol     box  resolution       pages  addr
  5300.  00h-13h = standard IBM modes (see #0009 at AH=00h)
  5301.  08h = T  80x27      .      .    mono      .    .  HP MultiMode Video
  5302.  09h = T  80x27      .      .      .      .    .  HP MultiMode Video
  5303.  0Ah = T  40x27      .      .    mono      .    .  HP MultiMode Video
  5304.  0Bh = T  40x27      .      .      .      .    .  HP MultiMode Video
  5305.  0Ch = reserved                       HP MultiMode Video
  5306.  0Dh = G    .      .    640x400      .      .    .  HP MultiMode Video
  5307.  0Eh = G    .      .    320x400      .      .    .  HP MultiMode Video
  5308.  0Fh = G    .      .    320x400      .      .    .  HP MultiMode Video
  5309.  40h = T  80x43     8x8      .      .      .    .  Video7/VEGA VGA
  5310.  41h = T 132x25     8x14      .      .      .    .  Video7/VEGA VGA
  5311.  42h = T 132x43     8x8      .      .      .    .  Video7/VEGA VGA
  5312.  43h = T  80x60     8x8      .      .      .    .  Video7/VEGA VGA
  5313.  44h = T 100x60     8x8      .      .      .    .  Video7/VEGA VGA
  5314.  45h = T 132x28     8x8      .      .      .    .  Video7/VEGA VGA
  5315.  60h = G    .      .    752x410     16      .    .  Video7 VGA, VEGA VGA
  5316.  61h = G    .      .    720x540     16      .    .  Video7 VGA, VEGA VGA
  5317.      = G    .      .    720x540     16      .    .  Northgate, Headland 1024i
  5318.  62h = G    .      .    800x600     16      .    .  Video7 VGA, VEGA Ext EGA
  5319.      = G    .      .    800x600     16      .    .  Headland 1024i
  5320.  63h = G    .      .   1024x768      2      .    .  Video7 VGA
  5321.  64h = G    .      .   1024x768      4      .    .  Video7 VGA
  5322.  65h = G    .      .   1024x768     16      .    .  Video7 VGA, VEGA Ext EGA
  5323.      = G    .      .   1024x768     16      .    .  Headland 1024i
  5324.  66h = G    .      .    640x400    256      .    .  Video7 VGA, VEGA Ext VGA
  5325.      = G    .      .    640x400    256      .    .  Northgate, Headland 1024i
  5326.  67h = G    .      .    640x480    256      .    .  Video7 VGA, VEGA Ext VGA
  5327.      = G    .      .    640x480    256      .    .  Headland 1024i
  5328.  68h = G    .      .    720x540    256      .    .  Video7 VGA, VEGA Ext VGA
  5329.      = G    .      .    720x540    256      .    .  Headland 1024i
  5330.  69h = G    .      .    800x600    256      .    .  Video7 VGA, VEGA Ext VGA
  5331.      = G    .      .    800x600    256      .    .  Headland 1024i
  5332.  70h = G    .      .    752x410     16gray      .    .  Video7 VGA, VEGA VGA
  5333.  71h = G    .      .    720x540     16gray      .    .  Video7 VGA, VEGA VGA
  5334.  72h = G    .      .    800x600     16gray      .    .  Video7 VGA
  5335.  73h = G    .      .   1024x768      2gray      .    .  Video7 VGA
  5336.  74h = G    .      .   1024x768      4gray      .    .  Video7 VGA
  5337.  75h = G    .      .   1024x768     16gray      .    .  Video7 VGA
  5338.  76h = G    .      .    640x400    256gray      .    .  Video7 VGA
  5339.  77h = G    .      .    640x480    256gray      .    .  Video7 VGA
  5340.  78h = G    .      .    720x540    256gray      .    .  Video7 VGA
  5341.  79h = G    .      .    800x600    256gray      .    .  (future)
  5342. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  5343. Index:    video modes;Video 7|video modes;VEGA|video modes;Headland
  5344. --------V-106F06-----------------------------
  5345. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  5346.     AX = 6F06h
  5347.     BL = Autoswitch mode select
  5348.          00h select EGA/VGA-only modes
  5349.          01h select Autoswitched VGA/EGA/CGA/MGA modes
  5350.          02h select 'bootup' CGA/MGA modes
  5351.     BH = enable/disable (00h enable, 01h = disable selection)
  5352. --------V-106F07-----------------------------
  5353. INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  5354.     AX = 6F07h
  5355. Return: AL = 6Fh
  5356.     AH = memory configuration
  5357.         bits 0-6 = number of 256K blocks of video memory
  5358.         bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
  5359.     BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  5360.     BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  5361.     CX = 0000h
  5362. SeeAlso: AH=12h/BL=10h
  5363. --------V-1070-------------------------------
  5364. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  5365.     AH = 70h
  5366. Return: AX:BX -> WORD containing green plane's offset
  5367.     AX:CX -> WORD containing green plane's segment
  5368.     AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  5369.             4000) planes
  5370. SeeAlso: AH=71h
  5371. --------V-1070------------------------------------
  5372. INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
  5373.     AH = 70h
  5374.     DS:BX -> control block (see #0100)
  5375. Desc:    Draws a circle or ellipse. Only valid in graphics modes.
  5376. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  5377.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  5378. SeeAlso: AH=71h"HUNTER"
  5379.  
  5380. Format of HUNTER 16 control block:
  5381. Offset    Size    Description    (Table 0100)
  5382.  00h    WORD    center X co-ordinate
  5383.  02h    BYTE    center Y co-ordinate
  5384.  03h    WORD    radius in pixels
  5385.  05h    BYTE    color (00h white, 01h black, FFh invert)
  5386.  06h    BYTE    aspect ratio x:x (1-127)
  5387.  07h    BYTE    aspect ratio y:y (1-127)
  5388. --------V-107000BX0000-----------------------
  5389. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  5390.     AX = 7000h
  5391.     BX = 0000h
  5392. Return: AL = 70h if Trident-based Everex card
  5393.     CL = monitor type (see #0101)
  5394.     CH = feature bits (see #0102)
  5395.     DX = video board info
  5396.         bits 4-15: board ID model (see #0103)
  5397.         bits 0-3:  board ID revision
  5398.     DI = BCD BIOS version number
  5399. SeeAlso: AX=5F01h,AH=FF"Oak"
  5400.  
  5401. (Table 0101)
  5402. Values for Everex monitor type:
  5403.  00h    mono
  5404.  01h    CGA
  5405.  02h    EGA
  5406.  03h    digital multifrequency
  5407.  04h    IBM PS/2
  5408.  05h    IBM 8514
  5409.  06h    SuperVGA
  5410.  07h    analog multifrequency
  5411.  08h    super multifrequency
  5412.  
  5413. Bitfields for Everex feature bits:
  5414. Bit(s)    Description    (Table 0102)
  5415.  7-6    memory size
  5416.     00 = 256K
  5417.     01 = 512K
  5418.     10 = 1024K
  5419.     11 = 2048K
  5420.  5    special oscillator present
  5421.  4    VGA protect enabled
  5422.  0    6845 emulation
  5423.  
  5424. (Table 0103)
  5425. Values for board model for Trident-based Everex cards:
  5426.  0236h    Ultragraphics II
  5427.  0620h    Vision VGA
  5428.  0673h    EVGA
  5429.  0678h    Viewpoint
  5430. --------V-107000BX0004-----------------------
  5431. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  5432.     AX = 7000h
  5433.     BX = 0004h
  5434. Return: ES:DI -> FAR paging function (call with DL = page to set)
  5435. Note:    the word preceding ES:DI is the length of the function in bytes, and
  5436.       the last byte of the function is a FAR return instruction.
  5437. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  5438. --------V-107000BX0005-----------------------
  5439. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  5440.     AX = 7000h
  5441.     BX = 0005h
  5442.     CL = maximum number of modes to get info for
  5443.     CH = mode type to get info for (see #0104)
  5444.     DL = monitor type to get info for
  5445.     ES:DI -> buffer for mode info (see #0105)
  5446. Return: CL = total number of modes fitting criteria
  5447.     CH = size of each info record
  5448. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  5449.  
  5450. (Table 0104)
  5451. Values for Everex mode type:
  5452.  00h    all modes
  5453.  01h    monochrome text modes
  5454.  02h    color text modes
  5455.  03h    four-color CGA graphics modes
  5456.  04h    two-color CGA graphics modes
  5457.  05h    16-color graphics modes
  5458.  06h    256-color graphics modes
  5459.  
  5460. Format of Everex mode information record:
  5461. Offset    Size    Description    (Table 0105)
  5462.  00h    BYTE    mode number (bit 7 set if extended mode)
  5463.  01h    BYTE    mode type (see #0104)
  5464.  02h    BYTE    info bits (see #0106)
  5465.  03h    BYTE    font height
  5466.  04h    BYTE    text columns on screen
  5467.  05h    BYTE    text rows on screen
  5468.  06h    WORD    number of scan lines
  5469.  08h    BYTE    color information
  5470.         bits 7-4 reserved
  5471.              3-0 bits per pixel
  5472.  
  5473. Bitfields for Everex info bits:
  5474. Bit(s)    Description    (Table 0106)
  5475.  7,6    reserved
  5476.  5    monochrome mode
  5477.  4    interlaced display
  5478.  3    requires special oscillator
  5479.  2,1    memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
  5480.  0    reserved
  5481. --------V-1071-------------------------------
  5482. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  5483.     AH = 71h
  5484. Return: AX:BX -> WORD containing segment address of INCRAM
  5485.     AX:CX -> WORD containing offset of INCRAM
  5486. SeeAlso: AH=70h"TANDY"
  5487. --------V-1071------------------------------------
  5488. INT 10 - HUNTER 16 - DRAW LINE/BOX
  5489.     AH = 71h
  5490.     DS:BX -> control block (see #0107)
  5491. Desc:    Draws a line or box. Only valid in graphics modes.
  5492. SeeAlso: AH=70h"HUNTER"
  5493.  
  5494. Format of HUNTER 16 control block:
  5495. Offset    Size    Description    (Table 0107)
  5496.  00h    WORD    left edge X co-ordinate
  5497.  02h    BYTE    lower edge Y co-ordinate
  5498.  03h    WORD    right edge X co-ordinate
  5499.  05h    BYTE    upper edge Y co-ordinate
  5500.  06h    BYTE    color (00h white, 01h black, FFh invert)
  5501.  07h    BYTE    type (00h line, 01h box)
  5502.  08h    BYTE    if non-zero (and type is BOX) fill with color
  5503. --------V-1072-------------------------------
  5504. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  5505.     AH = 72h
  5506.     AL = number of columns to shift scroll area, 00h to clear entire area
  5507.     BH = new attributes for blanked columns at left
  5508.     CH,CL = row, column of upper left corner of scroll area
  5509.     DH,DL = row, column of lower right corner of scroll area
  5510. SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
  5511. --------V-1072------------------------------------
  5512. INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
  5513.     AH = 72h
  5514.     AL = mechanism to use
  5515.         00h do not use inverse video
  5516.         01h emulate MDA. Display attribute 07h is normal video and 70h is
  5517.         inverse video.
  5518.         02h use inverse video if background is non-black.
  5519.         03h use inverse video for high intensity text.
  5520.         04h use inverse video for text with background intensity greater
  5521.         than foreground intensity.
  5522.         05h use inverse video for text with background color other than
  5523.         black or high intensity foreground.
  5524. SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
  5525. --------V-1073-------------------------------
  5526. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  5527.     AH = 73h
  5528.     AL = number of columns to shift scroll area, 00h to clear entire area
  5529.     BH = new attributes for blanked columns at right
  5530.     CH,CL = row, column of upper left corner of scroll area
  5531.     DH,DL = row, column of lower right corner of scroll area
  5532. SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
  5533. --------V-1073------------------------------------
  5534. INT 10 - HUNTER 16 - SELECT TEXT FONT
  5535.     AH = 73h
  5536.     AL = new font
  5537.           00h  7x7 in a 8x8 cell
  5538.           01h  5x7 in a 6x8 cell
  5539.           06h  3x5 in a 4x6 cell
  5540. Retuen: BH = cell width
  5541.     BL = cell height
  5542. SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
  5543. --------V-1074------------------------------------
  5544. INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
  5545.     AH = 74h
  5546.     DH = row (0..24)
  5547.     DL = column (0..79)
  5548. Desc:    set the position in the virtual screen being displayed in the LCD
  5549.       screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
  5550.       position for the window which has the cursor.
  5551. SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
  5552. --------V-1075------------------------------------
  5553. INT 10 - HUNTER 16 - SET ZOOM
  5554.     AH = 75h
  5555.     AL = new Zoom state (00h off, nonzero on)
  5556. SeeAlso: AH=74h,AH=76h
  5557. --------V-1076------------------------------------
  5558. INT 10 - HUNTER 16 - LOOKING KEYS
  5559.     AH = 76h
  5560.     AL = Action
  5561.          00h home the window
  5562.          01h move up one line
  5563.          02h move down one line
  5564.          03h move left one character
  5565.          04h move right one character
  5566.          05h flip window to other side of virtual screen
  5567. Desc:    moves the displayed screen around the virtual screen
  5568. SeeAlso: AH=74h,AH=75h
  5569. --------V-1077------------------------------------
  5570. INT 10 - HUNTER 16 - GET GRAPHICS FONT
  5571.     AH = 77h
  5572. Return: AL = font number (see #0108)
  5573. SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
  5574.  
  5575. (Table 0108)
  5576. Values for HUNTER 16 graphics font number:
  5577.  00h     7x7  in a  8x8     cell
  5578.  01h     5x7  in a  6x8     cell
  5579.  02h     7x9  in a  8x10 cell
  5580.  03h    14x9  in a 16x10 cell
  5581.  04h     7x18 in a  8x20 cell
  5582.  05h    14x18 in a 16x20 cell
  5583.  06h     3x5  in a  4x6     cell
  5584. Note:    size is X * Y
  5585. --------V-1078------------------------------------
  5586. INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
  5587.     AH = 78h
  5588.     AL = new state of backlight (00h on, 01h off)
  5589. SeeAlso: AH=64h,INT 15/AH=74h
  5590. --------V-107F-------------------------------
  5591. INT 10 - Paradise SVGA - WD90C24 INSTALLATION CHECK
  5592.     AH = 7Fh
  5593. Return: AX = 1234h if WD90C24 chip installed
  5594. --------V-107F00-----------------------------
  5595. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  5596.     AX = 7F00h
  5597. Return: AL <> 7Fh if not supported
  5598.     AL = 7Fh if supported
  5599.         AH = status
  5600.         00h successful
  5601.             ES:DI -> info structure (see #0109)
  5602.         01h failed
  5603. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  5604.       an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  5605.       Seiko Epson Corporation intended to provided a standardized interface
  5606.       to SuperVGA functionality not addressed by the VESA standard
  5607. SeeAlso: AX=4F00h
  5608.  
  5609. Format of SOLLEX SuperVGA info structure:
  5610. Offset    Size    Description    (Table 0109)
  5611.  00h    DWORD    pointer to VESA function dispatch table
  5612.  04h    DWORD    pointer to SOLLEX function dispatch table
  5613.  08h    DWORD    pointer to VESA SuperVGA info (see #0063 at AX=4F00h)
  5614.  0Ch    DWORD    pointer to mode info structure table, consisting of
  5615.           alternating ResInfo (see #0110) and VESA mode information
  5616.           (see #0065 at AX=4F01h) blocks, terminated with an FFFFh word
  5617.  10h    DWORD    pointer to font info structure table (see #0111)
  5618.  14h    WORD    high resolution crystal frequency in Hz (0000h = not present)
  5619.  16h    DWORD    pointer to ASCIZ ID string
  5620.  1Ah    DWORD    pointer to timeout reset table
  5621.         array of bytes, each a multiple of the minimum time increment
  5622.  1Eh    WORD    minimum time increment in timer ticks
  5623.  20h    BYTE    inverse options supported
  5624.         bit 0: inverse supported
  5625.         bits 1-7: reserved
  5626.  21h    BYTE    normal color value
  5627.  22h    BYTE    inverse color value
  5628.  23h    WORD    port to be accessed for normal/inverse settings
  5629.  25h    WORD    type of interface chip (currently undefined)
  5630.  27h    WORD    program operational mode
  5631.         bits 1-0: 00 no preference
  5632.               01 terse (minimum detail in program messages)
  5633.               10 verbose
  5634.               11 use menus if supported, verbose mode otherwise
  5635.         bits 7-2: reserved
  5636.  29h    WORD    SOLLEX specification version
  5637.  2Bh    WORD    version of VESA/SOLLEX implementation
  5638.  2Dh    DWORD    offset to relocatable portion of SOLLEX extensions (for CONFIG)
  5639.  2Eh    DWORD    offset to unused section of the extensions ROM
  5640.  31h 16 BYTEs    reserved
  5641. Note:    all DWORD pointers initially require segment fixups; if the segment
  5642.       is 0000h, it should be changed to the returned ES, otherwise it
  5643.       may be assumed to be correct
  5644.  
  5645. Format of SOLLEX SuperVGA ResInfo:
  5646. Offset    Size    Description    (Table 0110)
  5647.  00h    WORD    16-bit mode number
  5648.  02h    WORD    adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  5649.  04h    WORD    display info (see #0114)
  5650.  06h    DWORD    pointer to video parameter table
  5651.  0Ah    BYTE    replacement entry in master Video Parameter
  5652.  0Bh    BYTE    mode requested for mode set by BIOS
  5653.  0Ch    DWORD    pointer to LoadReg table
  5654.  10h    BYTE    index into table of clock values (see #0112)
  5655.  
  5656. Format of SOLLEX SuperVGA font info table [array] entry:
  5657. Offset    Size    Description    (Table 0111)
  5658.  00h    BYTE    required font height
  5659.  01h    BYTE    parameter to load text mode font
  5660.  02h    BYTE    parameter to load graphics mode font
  5661.  
  5662. (Table 0112)
  5663. Values for SOLLEX SuperVGA clock value index:
  5664.  00h    25 MHz
  5665.  01h    28 MHz
  5666.  02h    PCLK
  5667.  03h    31.5 MHz (VESA 640x480)
  5668.  04h    reserved
  5669.  05h    16 MHz (EGA)
  5670.  06h    PCLK
  5671.  07h    24 MHz (EGA)
  5672.  08h    25 MHz
  5673.  09h    28 MHz
  5674.  0Ah    36 MHz
  5675.  0Bh    45 MHz (for 1024x768)
  5676.  0Ch    80 MHz
  5677.  0Dh    40 MHz
  5678.  0Eh    65 MHz
  5679.  0Fh     1 MHz (for powerdown)
  5680. --------V-107F00BX4000-----------------------
  5681. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  5682.     AX = 7F00h
  5683.     BX = 4000h
  5684. Return: AX = 007Fh if supported
  5685.         DX:BX -> DAC set mode routine
  5686. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h
  5687. --------V-107F00BX4001-----------------------
  5688. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  5689.     AX = 7F00h
  5690.     BX = 4001h
  5691. Return: AX = 007Fh if supported
  5692.         CX = current linear address base (high word)
  5693. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  5694. --------V-107F00BX4002-----------------------
  5695. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  5696.     AX = 7F00h
  5697.     BX = 4002h
  5698.     CX = new linear address base (high word)
  5699. Return: AX = 007Fh if supported
  5700. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  5701. --------V-107F01BL00-------------------------
  5702. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  5703.     AX = 7F01h
  5704.     BL = 00h
  5705.     CX = adapter request (see #0113)
  5706. Return:    AL <> 7Fh if not supported
  5707.     AL = 7Fh if supported
  5708.         AH = status
  5709.         00h successful
  5710.         01h failed
  5711. Note:    initializes video hardware to a particular standard
  5712. SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
  5713.  
  5714. Bitfields for SOLLEX SuperVGA adapter request:
  5715. Bit(s)    Description    (Table 0113)
  5716.  1-0    adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  5717.  2    reserved
  5718.  4-3    change displays (00 none, 01 analog 10 digital 11 panel)
  5719.  6-5    desired monitor sense (01 color, 10 mono, 11=8514)
  5720.  7    lock override
  5721.  8    alternate adapter mode
  5722.  15-9    reserved
  5723. --------V-107F01BL01-------------------------
  5724. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  5725.     AX = 7F01h
  5726.     BL = 01h
  5727. Return: AL <> 7Fh if not supported
  5728.     AL = 7Fh if supported
  5729.         AH = status
  5730.         00h successful
  5731.         01h failed
  5732.         BX = adapter type (see #0113)
  5733.         DX = display type (see #0114)
  5734. SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
  5735.  
  5736. Bitfields for SOLLEX SuperVGA display type:
  5737. Bit(s)    Description    (Table 0114)
  5738.  15-9    reserved
  5739.  8    alternate display active
  5740.  7    Enhanced Color Display monitor active
  5741.  6    multi-frequency digital monitor active
  5742.  5    PS/2-type monitor active
  5743.  4    plasma/electroluminescent panel active
  5744.  3    LCD panel active
  5745.  2    multi-frequency analog monitor active
  5746.  1-0    monitor sense (00 none, 01 color, 10 mono, 11=8514)
  5747. --------V-107F01BL02-------------------------
  5748. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  5749.     AX = 7F01h
  5750.     BL = 02h
  5751.     CX = adapter request (see #0113)
  5752. Return: AL <> 7Fh if not supported
  5753.     AL = 7Fh if supported
  5754.         AH = status
  5755.         00h requested setting can successfully be made
  5756.         01h requested setting not available in this configuration
  5757. SeeAlso: AX=7F00h,AX=7F01h/BL=00h
  5758. --------V-107F02BL00-------------------------
  5759. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  5760.     AX = 7F02h
  5761.     BL = 00h
  5762.     CX = display output setting (see #0115)
  5763. Return: AL <> 7Fh if not supported
  5764.     AL = 7Fh if supported
  5765.         AH = status
  5766.         00h successful
  5767.         01h failed
  5768. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  5769.  
  5770. Bitfields for SOLLEX SuperVGA display output setting:
  5771. Bit(s)    Description    (Table 0115)
  5772.  0    CRTC control in 2,1 valid
  5773.  1    enable digital output
  5774.  2    enable analog output
  5775.  3    panel control in 5,4 valid
  5776.  4    enable LCD output
  5777.  5    enable plasma/EL output
  5778.  6    inverse control in 7 valid
  5779.  7    0=normal, 1=inverse
  5780.  15-8    reserved
  5781. --------V-107F02BL01-------------------------
  5782. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  5783.     AX = 7F02h
  5784.     BL = 01h
  5785. Return: AL <> 7Fh if not supported
  5786.     AL = 7Fh if supported
  5787.         AH = status
  5788.         00h successful
  5789.             BX = display output setting (see #0115)
  5790.             CX = displays attached (see #0116)
  5791.         01h failed
  5792. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  5793.  
  5794. Bitfields for SOLLEX SuperVGA displays attached:
  5795. Bit(s)    Description    (Table 0116)
  5796.  0    PS/2 display on analog output
  5797.  1    multi-frequency monitor on analog output
  5798.  2    LCD panel attached
  5799.  3    plasma/electroluminescent panel attached
  5800.  4    multi-frequency monitor on digital output
  5801.  5    Enhanced Color Display attached to digital outpt
  5802.  6    alternate display
  5803.  15-7    reserved
  5804. --------V-107F03BL00-------------------------
  5805. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  5806.     AX = 7F03h
  5807.     BL = 00h
  5808.     CX = support type
  5809.         0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  5810.         0005h-0012h reserved for SOLLEX, 0013h Hercules,
  5811.         0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  5812. Return: AL <> 7Fh if not supported
  5813.     AL = 7Fh if supported
  5814.         AH = status
  5815.         00h successful
  5816.             CX = size of video support code
  5817.             DX = segment of physical video support (0000h if no ROM)
  5818.             ES = segment of active video support
  5819.             ES:DI -> information block (DI = 0000h if none available)
  5820.         01h failed
  5821. SeeAlso: AX=7F03h/BL=01h
  5822. --------V-107F03BL01-------------------------
  5823. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  5824.     AX = 7F03h
  5825.     BL = 01h
  5826.     CX = support request
  5827.     ES = segment of support code
  5828. Return: AL <> 7Fh if not supported
  5829.     AL = 7Fh if supported
  5830.         AH = status
  5831.         00h successful
  5832.         01h failed
  5833. Note:    initializes the indicated video support by calling ES:0003h; this
  5834.       function may be used to switch the active video support back to
  5835.       ROM after AX=7F03h/BL=02h
  5836. SeeAlso: AX=7F03h/BL=00h
  5837. --------V-107F03BL02-------------------------
  5838. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  5839.     AX = 7F03h
  5840.     BL = 02h
  5841.     CX = support request
  5842.     ES = destination segment
  5843. Return: AL <> 7Fh if not supported
  5844.     AL = 7Fh if supported
  5845.         AH = status
  5846.         00h successful
  5847.         01h failed
  5848. SeeAlso: AX=7F00h,AX=7F03h/BL=01h
  5849. --------V-107F04BL00-------------------------
  5850. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  5851.     AX = 7F04h
  5852.     BL = 00h
  5853.     CX = new power state
  5854. Return: AL <> 7Fh if not supported
  5855.     AL = 7Fh if supported
  5856.         AH = status
  5857.         00h successful
  5858.         01h failed
  5859. Note:    higher values progressively reduce the operations available on the
  5860.       video adapter while yielding increasing power savings
  5861. SeeAlso: AX=7F00h,AX=7F04h/BL=01h
  5862. --------V-107F04BL01-------------------------
  5863. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  5864.     AX = 7F04h
  5865.     BL = 01h
  5866. Return: AL <> 7Fh if not supported
  5867.     AL = 7Fh if supported
  5868.         AH = status
  5869.         00h successful
  5870.             CX = current power state
  5871.             DX = maximum state
  5872.         01h failed
  5873. SeeAlso: AX=7F00h,AX=7F04h/BL=00h
  5874. --------V-107F04BL02-------------------------
  5875. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  5876.     AX = 7F04h
  5877.     BL = 02h
  5878.     CX = timeout reset
  5879. Return: AL <> 7Fh if not supported
  5880.     AL = 7Fh if supported
  5881.         AH = status
  5882.         00h successful
  5883.         01h failed
  5884. SeeAlso: AX=7F00h,AX=7F04h/BL=03h
  5885. --------V-107F04BL03-------------------------
  5886. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  5887.     AX = 7F04h
  5888.     BL = 03h
  5889. Return: AL <> 7Fh if not supported
  5890.     AL = 7Fh if supported
  5891.         AH = status
  5892.         00h successful
  5893.             BX = time increment
  5894.             CX = current timeout reset
  5895.             DX = maximum timeout reset
  5896.             ES:DI -> timeout reset table (array of bytes)
  5897.         01h failed
  5898. Note:    the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  5899. SeeAlso: AX=7F00h,AX=7F04h/BL=02h
  5900. --------V-107F05-----------------------------
  5901. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  5902.     AX = 7F05h
  5903.     ES:DI -> register value table (see #0117)
  5904. Return: AL <> 7Fh if not supported
  5905.     AL = 7Fh if supported
  5906.         AH = status
  5907.         00h successful
  5908.         01h failed
  5909. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  5910.  
  5911. Format of SOLLEX SuperVGA register value table:
  5912. Offset    Size    Description    (Table 0117)
  5913.  00h    WORD    base I/O register (FFFFh = end of list)
  5914.  02h 2N BYTEs    pairs of values to be written to the base I/O register as an
  5915.           index value and the following register as a data byte
  5916.  2N+2    WORD    FFFFh (end of data list)
  5917.     ... (repeats until FFFFh base address)
  5918. --------V-107F06-----------------------------
  5919. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  5920.     AX = 7F06h
  5921.     BL = subfunction
  5922.         00h set multiple font state
  5923.         CX = new state (00h off, 01h on)
  5924.         01h get multiple font state
  5925.         Return: BL = current state (00h off, 01h on)
  5926. Return: AL <> 7Fh if not supported
  5927.     AL = 7Fh if supported
  5928.         AH = status
  5929.         00h successful
  5930.         01h failed
  5931. SeeAlso: AH=11h
  5932. --------V-107F07-----------------------------
  5933. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  5934.     AX = 7F07h
  5935.     BL = how much to fill
  5936.        00h regen size
  5937.        01h all video memory
  5938.     CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  5939. Return: AL <> 7Fh if not supported
  5940.     AL = 7Fh if supported
  5941.         AH = status
  5942.         00h successful
  5943.         01h failed
  5944. SeeAlso: AH=06h
  5945. --------A-1080-------------------------------
  5946. INT 10 - CU Writer v1.4 - GET OPTION
  5947.     AH = 80h
  5948.     AL = desired option
  5949. Return: ???
  5950. Program: CU Writer is a public-domain Thai-English word processor from
  5951.       Chulalongkorn University, Bangkok
  5952. SeeAlso: AH=81h"CU Writer"
  5953. --------Q-1080--DX4456-----------------------
  5954. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  5955.     AH = 80h
  5956.     DX = 4456h ('DV')
  5957.     ES:DI -> FAR subroutine to be called on ???
  5958. Return: DS = segment of DESQview data structure for video buffer
  5959. Note:    this function is probably meant for internal use only, due to the magic
  5960.       value required in DX
  5961.     the subroutine seems to be called when the DESQview menu is accessed;
  5962.       on entry, AL = 03h or 04h
  5963. --------A-1081-------------------------------
  5964. INT 10 - CU Writer v1.4 - SET OPTION
  5965.     AH = 81h
  5966.     ???
  5967. Return: ???
  5968. SeeAlso: AH=80h"CU Writer"
  5969. --------Q-1081--DX4456-----------------------
  5970. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  5971.     AH = 81h
  5972.     DX = 4456h ('DV')
  5973. Return: ES = segment of DESQview data structure for video buffer
  5974.         BYTE ES:[0] = current window number in DV 2.0x
  5975. Note:    this function is probably meant for internal use only, due to the magic
  5976.       value required in DX
  5977. SeeAlso: AH=82h"DESQview"
  5978. --------Q-1082--DX4456-----------------------
  5979. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  5980.     AH = 82h
  5981.     DX = 4456h ('DV')
  5982. Return: DS = segment in DESQview for data structure
  5983.          in DV 2.00,
  5984.           BYTE DS:[0] = window number
  5985.           WORD DS:[1] = segment of other data structure
  5986.           WORD DS:[3] = segment of window's object handle
  5987.     ES = segment of DESQview data structure for video buffer
  5988.     AL = current window number
  5989.     AH = ???
  5990.     BL = direct screen writes
  5991.         00h program does not do direct writes
  5992.         01h program does direct writes, so shadow buffer not usable
  5993.     BH = ???
  5994.     CL = current video mode
  5995.     CH = ???
  5996. Note:    this function is probably meant for internal use only, due to the magic
  5997.       value required in DX
  5998. SeeAlso: AH=81h"DESQview"
  5999. --------J-108200-----------------------------
  6000. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  6001.     AX = 8200h
  6002.     BL = new scroll mode or FFh to get current mode
  6003.         00h dynamic, 01h software
  6004. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  6005. SeeAlso: AH=06h,AH=07h
  6006. --------J-108300-----------------------------
  6007. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  6008.     AX = 8300h
  6009. Return: AX = offset of video RAM
  6010.     ES:BX -> virtual text RAM buffer
  6011. SeeAlso: AX=5201h
  6012. --------N-108B-------------------------------
  6013. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  6014.     AH = 8Bh
  6015. SeeAlso: AH=92h,AH=93h
  6016. --------N-1090-------------------------------
  6017. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  6018.     AH = 90h
  6019. Return: AL = current video mode (see #0009 at AH=00h)
  6020. SeeAlso: AH=91h
  6021. --------N-1091-------------------------------
  6022. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  6023.     AH = 91h
  6024. Return: AL = video adapter type (see #0118)
  6025. Note:    types less than 80h do not imply that the current user is on the host
  6026. SeeAlso: AH=90h
  6027.  
  6028. (Table 0118)
  6029. Values for Alloy MW386 video adapter type:
  6030.  00h    monochrome
  6031.  01h    Hercules monochrome graphics
  6032.  02h    CGA
  6033.  03h    EGA
  6034.  04h    VGA
  6035.  80h    monochrome text terminal
  6036.  81h    Hercules graphics terminal
  6037.  82h    color graphics terminal
  6038. --------N-1092-------------------------------
  6039. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  6040.     AH = 92h
  6041. Note:    the terminal will be updated even when screen updates are inhibited if
  6042.       TTY output is used
  6043. SeeAlso: AH=8Bh
  6044. --------N-1093-------------------------------
  6045. INT 10 - Alloy MW386 - REDRAW SCREEN
  6046.     AH = 93h
  6047. SeeAlso: AH=8Bh,AH=FFh
  6048. --------A-10A0-------------------------------
  6049. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  6050.     AH = A0h
  6051.     ???
  6052. Return: ???
  6053. Program: CU Writer is a public-domain Thai-English word processor from
  6054.       Chulalongkorn University, Bangkok
  6055. SeeAlso: AH=80h"CU Writer",AH=B0h
  6056. --------p-10A0-------------------------------
  6057. INT 10 - ATI Mach64 BIOS - Display Power Management Signalling API???
  6058.     AH = A0h
  6059.     AL = function (00h-13h)
  6060.     ???
  6061. Return: AH = status
  6062.         00h successful
  6063.         01h failed
  6064.     ???
  6065. SeeAlso: AX=4F10h/BL=00h
  6066. --------V-10A004-----------------------------
  6067. INT 10 - PhoenixVIEW/LC - VIDEO DISPLAY TYPE
  6068.     AX = A004h
  6069.     ???
  6070. Return: ???
  6071. Desc:    configure display parameters
  6072. SeeAlso: AX=A01Bh"PhoenixVIEW/LC"
  6073. --------p-10A00C-----------------------------
  6074. INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
  6075.     AX = A00Ch
  6076.     CL = new state
  6077.         01h standby
  6078.         02h suspend
  6079.         03h off
  6080. Return: AH = status
  6081.         00h successful
  6082.         01h failed
  6083. SeeAlso: AX=4F00h,AX=4F10h/BL=01h
  6084. --------V-10A01B-----------------------------
  6085. INT 10 - PhoenixVIEW/LC - CRT MONITOR DETECTION
  6086.     AX = A01Bh
  6087.     ???
  6088. Return: ???
  6089. Desc:    determine whether an external display is currently attached
  6090. SeeAlso: AX=A004h"PhoenixVIEW/LC"
  6091. --------A-10B0-------------------------------
  6092. INT 10 - CU Writer v1.4 - PUT PIXEL
  6093.     AH = B0h
  6094.     ???
  6095. Return: ???
  6096. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  6097. --------A-10B1-------------------------------
  6098. INT 10 - CU Writer v1.4 - MOVE TO
  6099.     AH = B1h
  6100.     ???
  6101. Return: ???
  6102. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  6103. --------A-10B2-------------------------------
  6104. INT 10 - CU Writer v1.4 - DRAW LINE TO
  6105.     AH = B2h
  6106.     ???
  6107. Return: ???
  6108. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  6109. --------A-10B3-------------------------------
  6110. INT 10 - CU Writer v1.4 - FLOOD FILL
  6111.     AH = B3h
  6112.     ???
  6113. Return: ???
  6114. SeeAlso: AH=B2h,AH=B5h
  6115. --------A-10B4-------------------------------
  6116. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  6117.     AH = B4h
  6118.     ???
  6119. Return: ???
  6120. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  6121. --------A-10B5-------------------------------
  6122. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  6123.     AH = B5h
  6124.     ???
  6125. Return: ???
  6126. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  6127. --------V-10BD44-----------------------------
  6128. INT 10 U - Compaq QVision - ???
  6129.     AX = BD44h
  6130.     ???
  6131. Return: ???
  6132. Note:    called by Compaq's MTX132.COM, which places the QVision in 132-column
  6133.       mode
  6134. --------V-10BF--CX0000-----------------------
  6135. INT 10 - Athena Digital HGCIBM.COM - INSTALLATION CHECK
  6136.     AH = BFh
  6137.     CX = 0000h (???)
  6138. Return: CX = 0202h
  6139.     DL = ??? (internal data, possibly version number)
  6140. --------b-10BF00-----------------------------
  6141. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  6142.     AX = BF00h
  6143. Desc:    specify that the external monitor become the active monitor
  6144. Note:    all registers preserved and the internal monitor is blanked
  6145. SeeAlso: AX=BF01h,AX=BF12h
  6146. --------b-10BF01-----------------------------
  6147. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  6148.     AX = BF01h
  6149. Desc:    specify that the internal monitor become the active monitor
  6150. Note:    all registers preserved and the external monitor is blanked
  6151. SeeAlso: AX=BF00h,AX=BF12h
  6152. --------b-10BF02-----------------------------
  6153. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
  6154.     AX = BF02h
  6155.     BH = master mode
  6156.         04h CGA
  6157.         05h EGA
  6158.         07h MDA
  6159. SeeAlso: AX=BF03h
  6160. --------b-10BF03BX0000-----------------------
  6161. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  6162.     AX = BF03h
  6163.     BX = 0000h
  6164. Return: BH = active monitor
  6165.         (00h = external, 01h = internal, 03h both, 04h neither)
  6166.     BL = master mode (see #0119)
  6167.     CH = ASIC type and version
  6168.         00h (reserved, very early Compaq VGCs)
  6169.         31h if QVision VGA
  6170.     CL = switchable VDU modes supported (see #0120)
  6171.     DH = internal monitor type (see #0121)
  6172.     DL = external monitor type (see #0121)
  6173. SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h
  6174.  
  6175. (Table 0119)
  6176. Values for Compaq video master mode:
  6177.  00h    switchable VDU not present
  6178.  04h    CGA
  6179.  05h    EGA
  6180.  07h    MDA
  6181.  08h    switchable LCD controller present
  6182.  09h    plasma VGA
  6183.  0Ah    TFT (active-matrix) VGA
  6184.  
  6185. Bitfields for Compaq switchable VDU modes support:
  6186. Bit(s)    Description    (Table 0120)
  6187.  0    CGA supported
  6188.  1,2    reserved (1)
  6189.  3    MDA supported
  6190.  4    BitBLT engine available
  6191.  5    132-column support availble
  6192.  6    640x480x256 mode available
  6193.  7    8-bit DAC mode available
  6194.  
  6195. (Table 0121)
  6196. Values for Compaq monitor type:
  6197.  00h    none
  6198.  01h    dual-mode monitor
  6199.  02h    5153 RGB monitor (RGBI 16-color)
  6200.  03h    Compaq Color monitor
  6201.  04h    640x400 flat panel (Plasma CGA)
  6202.  05h    VGC monochrome
  6203.  06h    VGC color
  6204.  07h    8-level mono LCD VGA (internal)
  6205.     1024x768 mono VGA (external)
  6206.  08h    16-level mono plasma VGA (internal)
  6207.     1024x768 color VGA (external)
  6208.  09h    4-level mono LCD CGA
  6209.  0Ah    16-level mono LCD VGA
  6210.  0Bh    active-matrix color VGA
  6211.  0Ch    active-matrix mono VGA
  6212.  0Dh    STN color VGA
  6213. --------b-10BF04-----------------------------
  6214. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  6215.     AX = BF04h
  6216.     BH = new state of delay (00h enabled, 01h disabled)
  6217. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  6218.       version of the list will provide more definite information
  6219. SeeAlso: AX=BF05h
  6220. --------b-10BF05-----------------------------
  6221. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  6222.     AX = BF05h
  6223.     BH = new state of video
  6224.         00h off
  6225.         01h on
  6226. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  6227.       version of the list will provide more definite information
  6228. SeeAlso: AH=12h/BL=36h,AX=BF04h
  6229. --------b-10BF06-----------------------------
  6230. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  6231.     AX = BF06h
  6232.     CL = address to be read from gray scale table
  6233. Return: AL = bit 3-0 - Value read from gray scale table
  6234.     CL = address to be read from gray scale table
  6235. SeeAlso: AH=12h/BL=33h,AX=BF07h
  6236. --------b-10BF07-----------------------------
  6237. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  6238.     AX = BF07h
  6239.     CH = value to write to gray scale table
  6240.     CL = address to be written to gray scale table
  6241. SeeAlso: AX=BF06h,AX=BF08h
  6242. --------b-10BF08-----------------------------
  6243. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  6244.     AX = BF08h
  6245.     CH = bits 7-4 green weight
  6246.          bits 3-0 blue weight
  6247.     CL = bits 7-4 unused
  6248.          bits 3-0 red weight
  6249. SeeAlso: AH=12h/BH=33h,AX=BF07h
  6250. --------b-10BF09-----------------------------
  6251. INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO
  6252.     AX = BF09h
  6253. Return: CF clear
  6254. Notes:    sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  6255.       to 6Fh and index 83h to 04h
  6256.     supported by at least the QVision board and the LTE Lite ROM BIOS
  6257. SeeAlso: AX=BF0Ah,AX=BF0Bh
  6258. --------b-10BF0A-----------------------------
  6259. INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO
  6260.     AX = BF0Ah
  6261. Return: CF clear
  6262. Notes:    clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  6263.       to 80h and index 83h to FBh
  6264.     supported by at least the QVision board and the LTE Lite ROM BIOS
  6265. SeeAlso: AX=BF09h,AX=BF0Bh
  6266. --------b-10BF0B-----------------------------
  6267. INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED
  6268.     AX = BF0Bh
  6269. Return: CF clear
  6270.     AX = state (0000h normal video, 0001h reverse video)
  6271. Note:    supported by at least the QVision board and the LTE Lite ROM BIOS
  6272. SeeAlso: AX=BF09h,AX=BF0Ah
  6273. --------b-10BF0C-----------------------------
  6274. INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE
  6275.     AX = BF0Ch
  6276. Return: CF clear
  6277. Desc:    specify that video DAC registers use only six bits of color info
  6278. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  6279. SeeAlso: AX=BF0Dh,AX=BF0Eh
  6280. --------b-10BF0D-----------------------------
  6281. INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE
  6282.     AX = BF0Dh
  6283. Return: CF clear
  6284. Desc:    specify that video DAC registers use all eight bits of color info
  6285. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  6286. SeeAlso: AX=BF0Ch,AX=BF0Eh
  6287. --------b-10BF0E-----------------------------
  6288. INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode
  6289.     AX = BF0Eh
  6290. Return: CF clear
  6291.     AL = DAC mode
  6292.         00h in 6-bit mode
  6293.         01h in 8-bit mode
  6294. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  6295. SeeAlso: AX=BF0Ch,AX=BF0Dh
  6296. --------b-10BF0F-----------------------------
  6297. INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER
  6298.     AX = BF0Fh
  6299.     BX = high address map location in megabytes, or
  6300.         0000h to disable high address map, or
  6301.         FFFFh to let ROM configure high address map
  6302. Return: CF clear
  6303.     AX = previous value of high address map register
  6304. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  6305.       Lite ROM BIOSes
  6306. SeeAlso: AX=BF10h
  6307. --------b-10BF10-----------------------------
  6308. INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER
  6309.     AX = BF10h
  6310. Return: CF clear
  6311.     AX = current value of high address map register
  6312. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  6313.       Lite ROM BIOSes
  6314.     the Compaq QVision documentation (October 1993) says the value is
  6315.       returned in BX, but this appears to be one of many typos
  6316. SeeAlso: AX=BF0Fh
  6317. --------b-10BF11-----------------------------
  6318. INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT
  6319.     AX = BF11h
  6320. Return: AL = BFh if supported
  6321.         CF clear
  6322.         ES:DI -> ASCII signature "COMPAQ"
  6323.         ES:SI -> advanced functionality table (see #0122)
  6324. Note:    supported by at least the QVision board and the LTE Lite and ProSignia
  6325.       ROM BIOSes
  6326. SeeAlso: AX=1A00h,AX=BF03h
  6327.  
  6328. Bitfields for Compaq advanced video functionality:
  6329. Bit(s)    Description    (Table 0122)
  6330.  31    future graphics extensions (reserved, set to 0)
  6331.  30-16    reserved
  6332.  15-12    available video memory in 256K blocks, less one (0000 = 256K, etc.)
  6333.  11-8    reserved
  6334.  7    QVision modes supported
  6335.  6    Advanced VGA modes supported
  6336.  5    Accelerated VGA modes supported
  6337.  4    standard VGA modes supported
  6338.  3-2    reserved
  6339.  1    132-column modes supported
  6340.  0    reserved
  6341. --------b-10BF12-----------------------------
  6342. INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR
  6343.     AX = BF12h
  6344.     BH reserved
  6345.     BL = function mask (see #0123)
  6346. Return: CF clear
  6347. Notes:    this function is a NOP if the VGA subsystem is inactive or the current
  6348.       Display Combination Code is 10h or higher
  6349.     supported by at least the QVision board and the LTE Lite and ProSignia
  6350.       ROM BIOSes
  6351. SeeAlso: AX=BF01h,AX=BF02h
  6352.  
  6353. Bitfields for function mask:
  6354. Bit(s)    Description    (Table 0123)
  6355.  7    command mode
  6356.     if set, bits 1 and 0 make the monitor active when set
  6357.     if clear, bits 1 and 0 toggle the monitor's state when set
  6358.  6-2    reserved
  6359.  1    internal monitor
  6360.  0    external monitor
  6361. --------b-10BF13-----------------------------
  6362. INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION
  6363.     AX = BF13h
  6364.     BL = subfunction
  6365.         00h load gamma correction table for true-color mode
  6366.         DS = BIOS data segment
  6367.         01h set palette RAM bypass
  6368.     BH = 00h
  6369. Return:    nothing
  6370. Note:    these functions must be called after a video mode set, and are in
  6371.       effect only for the current video mode
  6372. --------V-10BFA0BXADAD-----------------------
  6373. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  6374.     AX = BFA0h
  6375.     BX = ADADh
  6376. Return: AX = BDBDh if newer ADAPT.COM installed
  6377.         BX = BCD version (BH = major, BL = minor)
  6378.         CL = ???
  6379.         CH = ???
  6380.         DL = ???
  6381.     AX = ADADh if older version of ADAPT.COM installed
  6382. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  6383.       optionally-resident utility for setting display colors and cursor
  6384.       size; when resident, it also includes a screen blanker
  6385. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  6386. Index:    screen saver;ADAPT
  6387. --------V-10BFA1-----------------------------
  6388. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  6389.     AX = BFA1h
  6390. Return: AX = BDBEh if supported
  6391.         CH = current value of ???
  6392.         DL = current value of ???
  6393. SeeAlso: AX=BFA0h,AX=BFA2h
  6394. --------V-10BFA2-----------------------------
  6395. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  6396.     AX = BFA2h
  6397.     CH = new value for ???
  6398.     DL = new value for ???
  6399. Return: AX = BDBEh if supported
  6400. SeeAlso: AX=BFA0h,AX=BFA1h
  6401. --------A-10C0-------------------------------
  6402. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  6403.     AH = C0h
  6404.     ???
  6405. Return: ???
  6406. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  6407. --------A-10C1-------------------------------
  6408. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  6409.     AH = C1h
  6410.     ???
  6411. Return: ???
  6412. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  6413. --------A-10C2-------------------------------
  6414. INT 10 - CU Writer v1.4 - REVERSE TEXT
  6415.     AH = C2h
  6416.     ???
  6417. Return: ???
  6418. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  6419. --------A-10C3-------------------------------
  6420. INT 10 - CU Writer v1.4 - TEXT BAR
  6421.     AH = C3h
  6422.     ???
  6423. Return: ???
  6424. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  6425. --------A-10C4-------------------------------
  6426. INT 10 - CU Writer v1.4 - TEXT MENU
  6427.     AH = C4h
  6428.     ???
  6429. Return: ???
  6430. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  6431. --------V-10CB00-----------------------------
  6432. INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
  6433.     AX = CB00h
  6434. Note:    combined with AX=CB06h, this function permits the use of video mode
  6435.       13h together with the VGA's unchained mode
  6436. SeeAlso: AX=CB06h,AX=CBFFh
  6437. --------V-10CB01-----------------------------
  6438. INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
  6439.     AX = CB01h
  6440.     BX = offset of page 1
  6441. Desc:    inform UNCHAIN of the location of video page 1 in video memory; the
  6442.       default is 0000h
  6443. SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
  6444. --------V-10CB02-----------------------------
  6445. INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
  6446.     AX = CB02h
  6447.     BX = offset of page 2
  6448. Desc:    inform UNCHAIN of the location of video page 2 in video memory; the
  6449.       default is 3E80h (16000, for 320x200)
  6450. SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
  6451. --------V-10CB03-----------------------------
  6452. INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
  6453.     AX = CB03h
  6454.     BX = offset of page 3
  6455. Desc:    inform UNCHAIN of the location of video page 3 in video memory; the
  6456.       default is 7D00h (32000, for 320x200)
  6457. SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
  6458. --------V-10CB04-----------------------------
  6459. INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
  6460.     AX = CB04h
  6461.     BX = offset of page 4
  6462. Desc:    inform UNCHAIN of the location of video page 4 in video memory; the
  6463.       default is BB80h (48000, for 320x200)
  6464. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
  6465. --------V-10CB05-----------------------------
  6466. INT 10 - UNCHAIN - SAVE PALETTE
  6467.     AX = CB05h
  6468. SeeAlso: AX=CB00h,AX=CB06h
  6469. --------V-10CB06-----------------------------
  6470. INT 10 - UNCHAIN - RESTORE VGA REGISTERS
  6471.     AX = CB06h
  6472. SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
  6473. --------V-10CBFF-----------------------------
  6474. INT 10 - UNCHAIN - INSTALLATION CHECK
  6475.     AX = CBFFh
  6476. Return: AX = CCBBh if installed
  6477. Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
  6478.       development tools with Mode X video in the absence of a second
  6479.       monitor
  6480. SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
  6481. --------V-10CC00-----------------------------
  6482. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  6483.     AX = CC00h
  6484.     SI = magic value 0000h (if checking version)
  6485. Return: CX = product signature
  6486.         ABCDh UltraVision
  6487.         5546h ('UF') UltraFont
  6488.     AL = Ultravision extensions
  6489.         00h enabled
  6490.         FFh disabled
  6491.     AH = card designator
  6492.     BX:00F0h -> palette values (for compatibility with NEWFONT)
  6493.     DX = support for high resolution modes
  6494.         00h not active
  6495.         01h active
  6496.     SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  6497.         unchanged for versions <1.2
  6498. Note:    UltraFont is a simplified version of UltraVision for Toshiba;
  6499.       only the signature in CX and the status in AL will be returned
  6500. SeeAlso: AX=CC01h,AX=CC02h
  6501. --------V-10CC01-----------------------------
  6502. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  6503.     AX = CC01h
  6504. Notes:    subsequent BIOS calls will be passed through to previous handler
  6505.     should be followed immediately by mode set to restore normal EGA/VGA
  6506.       state
  6507. SeeAlso: AX=CC02h
  6508. --------V-10CC02-----------------------------
  6509. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  6510.     AX = CC02h
  6511. Note:    should be followed immediately by mode set to restore previous
  6512.       UltraVision state
  6513. SeeAlso: AX=CC01h
  6514. --------V-10CD00-----------------------------
  6515. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  6516.     AX = CD00h
  6517.     CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  6518.     DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  6519. Notes:    if palette locking is in effect for the current mode, the new colors
  6520.       will be displayed immediately; otherwise, the system reverts to the
  6521.       default palette
  6522.     palette table 0 is reserved for the default palette and cannot be set
  6523.     UltraVision always sets the border color to black
  6524. SeeAlso: AX=CD01h,AX=CD02h
  6525. --------V-10CD01-----------------------------
  6526. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  6527.     AX = CD01h
  6528.     CL = palette locking value
  6529.         00h none
  6530.         01h text modes only (02h,03h)
  6531.         FFh all modes (all standard color text and graphics modes)
  6532. Notes:    intended for video modes with 16 or fewer colors
  6533. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  6534. --------V-10CD02-----------------------------
  6535. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  6536.     AX = CD02h
  6537. Return: CL = palette table number
  6538.     DS:DX -> 17-byte palette register list (see #0124)
  6539.     DS:SI -> current font names table (see #0125,#0126)
  6540. Note:    only the font names are valid on monochrome EGA systems
  6541. SeeAlso: AX=1009h,AX=CD00h
  6542.  
  6543. Format of UltraVision palette register list:
  6544. Offset    Size    Description    (Table 0124)
  6545.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  6546.  10h    BYTE    border color
  6547.  
  6548. Format of UltraVision v2+ current font names table:
  6549. Offset    Size    standard EGA    HiRes EGA    VGA    (Table 0125)
  6550.  00h  8 BYTEs    N/A        F19 font    F20 font
  6551.  08h  8 BYTEs    F14 font    F14 font    F14 font
  6552.  10h  8 BYTEs    N/A        F11 font    F10 font
  6553.  18h  8 BYTEs    F8 font        F8 font        F8 font
  6554.  
  6555. Format of UltraVision v1.x current font names table:
  6556. Offset    Size    HiRes EGA    (Table 0126)
  6557.  00h  8 BYTEs    F19/F14 font
  6558.  08h  8 BYTEs    F11/F8 font
  6559. --------V-10CD03-----------------------------
  6560. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  6561.     AX = CD03h
  6562. Return: CL = palette locking value
  6563.         00h none
  6564.         01h text modes only
  6565.         FFh all modes
  6566. SeeAlso: AX=CD01h
  6567. --------V-10CD04-----------------------------
  6568. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  6569.     AX = CD04h
  6570. Return: AL = mode number (see #0127)
  6571. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  6572.  
  6573. (Table 0127)
  6574. Values for UltraVision video mode number:
  6575.  11h    80x25
  6576.  12h    80x43, 80x50
  6577.  13h    80x34, 80x36
  6578.  14h    80x60, 80x63
  6579.  19h    94x25
  6580.  1Ah    94x43, 94x50
  6581.  1Bh    94x36
  6582.  1Ch    94x63
  6583.  21h    108x25
  6584.  22h    108x43, 108x50
  6585.  23h    107x34, 108x36
  6586.  24h    108x60, 108x63
  6587.  31h    120x25
  6588.  32h    120x43, 120x50
  6589.  33h    132x25
  6590.  34h    132x44, 132x50
  6591.  39h    120x36
  6592.  3Ah    120x63
  6593.  3Bh    132x36
  6594.  3Ch    132x60
  6595. Index:    video modes;UltraVision
  6596. --------V-10CD05-----------------------------
  6597. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  6598.     AX = CD05h
  6599.     CL = type
  6600.         00h line cursor
  6601.         FFh box cursor
  6602. Note:    sets default cursor type for text-based programs
  6603. SeeAlso: AH=01h,AX=CD06h
  6604. --------V-10CD06-----------------------------
  6605. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  6606.     AX = CD06h
  6607. Return: CL = type
  6608.         00h line cursor
  6609.         FFh box cursor
  6610. SeeAlso: AH=03h,AX=CD05h
  6611. --------V-10CD07-----------------------------
  6612. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  6613.     AX = CD07h
  6614.     CL = hardware underline status (see #0128)
  6615.     BL = foreground color for normal text (FFh = current)
  6616.     BH = foreground color for bright text (FFh = current)
  6617. Return: CL = hardware underline status
  6618.     BL = current foreground color for normal text
  6619.     BH = current foreground color for bright text
  6620. Notes:    when underline or strikeout is enabled in color text modes, the
  6621.       specified colors will be assigned temporarily to colors 01h and 09h,
  6622.       allowing affected text to match non-underlined text.    The color
  6623.       remapping uses values from the current onscreen palette regardless
  6624.       of the palette locking status (see AX=CD01h)
  6625.     specify the standard colors (BL=01h,BH=09h) to enable underline or
  6626.       strikeout without color remapping
  6627. SeeAlso: AX=CD08h
  6628.  
  6629. (Table 0128)
  6630. Values for hardware underline status:
  6631.  00h    off (color systems only)
  6632.  01h    underline below characters
  6633.  02h    strike through characters
  6634. --------V-10CD08-----------------------------
  6635. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  6636.     AX = CD08h
  6637. Return: CL = hardware underline status (see #0128)
  6638.     BL = foreground color for normal text
  6639.     BH = foreground color for bright text
  6640. Note:    only CL is valid on monochrome EGA systems
  6641. SeeAlso: AX=CD07h
  6642. --------V-10CD10-----------------------------
  6643. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  6644.     AX = CD10h
  6645.     BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  6646.     CX = ABCDh load 9xN alternate font (v2+)
  6647.        else number of characters to load
  6648.         DX = character offset into font table
  6649.         DS:SI -> 8-byte ASCII font name
  6650.     ES:BP -> font definitions
  6651. Return: AX = FFFFh if invalid font parameters
  6652. Notes:    loads the designated characters into UltraVision's resident font area
  6653.     should be followed by a video mode set to reload character generator
  6654. SeeAlso: AX=1100h
  6655. --------V-10CD-------------------------------
  6656. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  6657.     AH = CDh
  6658.     AL = text mode number (see #0127)
  6659. Return: AX = CDCDh if invalid mode
  6660. SeeAlso: AX=CD04h
  6661. --------A-10D0-------------------------------
  6662. INT 10 - CU Writer v1.4 - LOAD PICTURE
  6663.     AH = D0h
  6664.     ???
  6665. Return: ???
  6666. SeeAlso: AH=B0h"CU Writer",AH=C4h
  6667. --------V-10D0-------------------------------
  6668. INT 10 U VIDEO - HP 100LX/200LX - SET ZOOM MODE
  6669.     AH = D0h
  6670.     AL = zoom mode
  6671.         02h 80x25 mono
  6672.         03h 80x25 color
  6673.         80h 64x18 mono
  6674.         81h 64x18 color
  6675.         82h 40x25 mono
  6676.         83h 40x25 color
  6677.         84h 40x16 mono
  6678.         85h 40x16 color
  6679. Note:    zoom mode can only be changed within zoom modes of the same color
  6680.       scheme; if needed, set to mono/color with AH=00h,AL=02h/03h; with
  6681.       mono video modes AL=07h or AL=21h only 80x25 and 40x16 will work
  6682.     the current zoom mode is stored in the BIOS data area at 0040h:009Fh
  6683. SeeAlso: AH=D1h,AH=D4h
  6684. --------V-10D1-------------------------------
  6685. INT 10 U VIDEO - HP 100LX/200LX - INTERNAL - ???
  6686.     AH = D1h
  6687.     AL = 01h
  6688. Return: ???
  6689. Note:    called by AH=D0h
  6690. SeeAlso: AH=D0h,AH=D4h
  6691. --------V-10D4-------------------------------
  6692. INT 10 U VIDEO - HP 100LX/200LX - INTERNAL - ???
  6693.     AH = D4h
  6694.     AL = 29h
  6695. Return: ???
  6696. Note:    called by AH=D0h
  6697. SeeAlso: AH=D0h,AH=D1h
  6698. --------V-10D5-------------------------------
  6699. INT 10 - Netroom SCRNCLK - ???
  6700.     AH = D5h
  6701.     ???
  6702. Return: ???
  6703. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  6704. --------V-10DFA5-----------------------------
  6705. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  6706.     AX = DFA5h
  6707. Return: AX = BDBFh if supported
  6708.         ES:DI -> ??? data area
  6709.         BX = ES
  6710. SeeAlso: AX=BFA0h
  6711. --------V-10EF-------------------------------
  6712. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  6713.     AH = EFh
  6714. Return: DL = video adapter type
  6715.         00h original Hercules
  6716.         01h Hercules Plus     (port 03BAh reads x001xxxxx)
  6717.         02h Hercules InColor (port 03BAh reads x101xxxxx)
  6718.         FFh not a Hercules-compatible card (port 03BAh bit 7 not pulsing)
  6719.     DH = memory mode byte
  6720.         00h "half" mode
  6721.         01h "full" mode
  6722.         FFh not a Hercules-compatible card
  6723. Program: MSHERC.COM is a support program for the Microsoft Quick languages
  6724.       which makes their graphics libraries compatible with a Hercules card
  6725.       by adding video modes 08h and 88h, and supporting text in the new
  6726.       graphics modes.
  6727. Notes:    while in mode 08h or 88h, INT 10 supports the Hercules card much like
  6728.       a CGA.
  6729.     MSHERC performs an installation check by setting DL=FFh and testing
  6730.       whether it has been changed on return, which causes it to reinstall
  6731.       itself when no HGC is present (or HGC emulation has temporarily been
  6732.       disabled); a better installation check would be to use DX=80FFh and
  6733.       check whether DX has been changed
  6734.     reportedly returns DH=00h on some not-entirely-Hercules-compatible
  6735.       cards
  6736. Index:    installation check;MSHERC
  6737. --------V-10F0-------------------------------
  6738. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  6739.     AH = F0h
  6740.     BL = register number
  6741.     BH = 00h
  6742.     DX = group index (see #0129)
  6743. Return: BL = data
  6744. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6745.       compatibility box, and others
  6746. SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
  6747.  
  6748. (Table 0129)
  6749. Values for group index:
  6750.  Pointer/data chips
  6751.  00h    CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  6752.  08h    Sequencer (5 registers) 3C4h
  6753.  10h    Graphics Controller (9 registers) 3CEh
  6754.  18h    Attribute Controller (20 registers) 3C0h
  6755.  Single registers
  6756.  20h    Miscellaneous Output register 3C2h
  6757.  28h    Feature Control register (3BAh mono modes, 3DAh color modes)
  6758.  30h    Graphics 1 Position register 3CCh
  6759.  38h    Graphics 2 Position register 3CAh
  6760. --------V-10F1-------------------------------
  6761. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  6762.     AH = F1h
  6763.     DX = group index (see #0129)
  6764.         if single register:
  6765.         BL = value to write
  6766.         otherwise
  6767.         BL = register number
  6768.         BH = value to write
  6769. Return: BL = data
  6770. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6771.       compatibility box, and others
  6772. SeeAlso: AX=7F05h,AH=F0h,AH=F3h
  6773. --------V-10F2-------------------------------
  6774. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  6775.     AH = F2h
  6776.     CH = starting register number
  6777.     CL = number of registers (>1)
  6778.     DX = group index (00h,08h,10h,18h) (see #0129)
  6779.     ES:BX -> buffer, CL bytes
  6780. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6781.       compatibility box, and others
  6782. SeeAlso: AH=F0h,AH=F3h
  6783. --------V-10F3-------------------------------
  6784. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  6785.     AH = F3h
  6786.     CH = starting register
  6787.     CL = number of registers (>1)
  6788.     DX = group index (00h,08h,10h,18h) (see #0129)
  6789.     ES:BX -> buffer, CL bytes
  6790. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6791.       compatibility box, and others
  6792. SeeAlso: AX=7F05h,AH=F1h,AH=F2h
  6793. --------V-10F4-------------------------------
  6794. INT 10 - EGA Register Interface Library - READ REGISTER SET
  6795.     AH = F4h
  6796.     CX = number of registers to read (>1)
  6797.     ES:BX -> table of register records (see #0130)
  6798. Return: register values in table filled in
  6799. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6800.       compatibility box, and others
  6801. SeeAlso: AH=F0h,AH=F2h,AH=F5h
  6802.  
  6803. Format of EGA RIL entries in table of register records:
  6804. Offset    Size    Description    (Table 0130)
  6805.  00h    WORD    group index
  6806.         Pointer/data chips
  6807.            00h CRTC (3B4h mono modes, 3D4h color modes)
  6808.            08h Sequencer 3C4h
  6809.            10h Graphics Controller 3CEh
  6810.            18h Attribute Controller 3C0h
  6811.         Single registers
  6812.            20h Miscellaneous Output register 3C2h
  6813.            28h Feature Control register (3BAh mono modes, 3DAh color)
  6814.            30h Graphics 1 Position register 3CCh
  6815.            38h Graphics 2 Position register 3CAh
  6816.  02h    BYTE    register number (0 for single registers)
  6817.  03h    BYTE    register value
  6818. --------V-10F5-------------------------------
  6819. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  6820.     AH = F5h
  6821.     CX = number of registers to write (>1)
  6822.     ES:BX -> table of records (see #0130)
  6823. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6824.       compatibility box, and others
  6825. SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
  6826. --------V-10F6-------------------------------
  6827. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  6828.     AH = F6h
  6829. Note:    provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  6830.       others
  6831. SeeAlso: AH=F7h
  6832. --------V-10F7-------------------------------
  6833. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  6834.     AH = F7h
  6835.     DX = port number
  6836.        Pointer/data chips
  6837.           00h CRTC (3B4h mono modes, 3D4h color modes)
  6838.           08h Sequencer 3C4h
  6839.           10h Graphics Controller 3CEh
  6840.           18h Attribute Controller 3C0h
  6841.        Single registers
  6842.           20h Miscellaneous Output register 3C2h
  6843.           28h Feature Control register (3BAh mono modes, 3DAh color modes)
  6844.           30h Graphics 1 Position register 3CCh
  6845.           38h Graphics 2 Position register 3CAh
  6846.     ES:BX -> table of one-byte entries, one byte to be written to each
  6847.          register
  6848. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6849.       compatibility box, and others
  6850. SeeAlso: AH=F6h
  6851. --------V-10FA--BX0000-----------------------
  6852. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  6853.     AH = FAh
  6854.     BX = 0000h
  6855. Return: BX = 0000h if RIL driver not present
  6856.     ES:BX -> EGA Register Interface version number, if present:
  6857.         byte 0 = major release number
  6858.         byte 1 = minor release number
  6859. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6860.       compatibility box, and others
  6861. SeeAlso: AH=F6h,INT 2F/AX=BC00h
  6862. --------K-10FA-------------------------------
  6863. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  6864.     AH = FAh
  6865. Return: AX = 00FAh if installed
  6866.         ES = segment of resident code
  6867. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  6868.       Steiner
  6869. Index:    screen saver;FASTBUFF
  6870. --------V-10FE-------------------------------
  6871. INT 10 - TopView - GET SHADOW BUFFER
  6872.     AH = FEh
  6873.     ES:DI -> assumed video buffer
  6874.         B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  6875.           or A000h:0000h EGA/VGA graphics (RSIS environments only)
  6876. Return: ES:DI -> actual video buffer for calling process
  6877. Desc:    Determine the address of the virtual screen to which the program
  6878.       should write instead of the actual video memory; this permits
  6879.       programs to be multitasked without interfering with each other's
  6880.       output, and allows memory managers to move the video memory to
  6881.       permit larger programs to be loaded.
  6882. Notes:    if no multitasker or RSIS-compliant environment is installed, ES:DI is
  6883.       returned unchanged; RSIS is the Relocated Screen Interface
  6884.       Specification
  6885.     for display pages other than 0, use AH=05h and AH=0Fh to determine
  6886.       whether a particular page exists
  6887.     TopView requires a call to AH=FFh to notify it that the screen has
  6888.       changed; DESQview will check for changes itself until the first call
  6889.       to AH=FFh
  6890. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  6891. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  6892. --------V-10FF-------------------------------
  6893. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  6894.     AH = FFh
  6895.     CX = number of consecutive changed characters
  6896.     ES:DI -> first changed character in shadow buffer
  6897. Notes:    avoid CX=0000h
  6898.     DESQview will discontinue the automatic screen updating initiated by
  6899.       AH=FEh after this call
  6900.     not supported (ignored) by DESQview/X 1.0x
  6901. SeeAlso: AH=93h,AH=FEh
  6902. --------E-10FF-------------------------------
  6903. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  6904.     AH = FFh
  6905.     AL = video mode (see #0131)
  6906. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  6907.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  6908. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  6909.  
  6910. (Table 0131)
  6911. Values for GO32 video mode number:
  6912.  00h    80x25 text
  6913.  01h    default text
  6914.  02h    CXxDX text
  6915.  03h    biggest text
  6916.  04h    320x200 graphics
  6917.  05h    default graphics
  6918.  06h    CXxDX graphics
  6919.  07h    biggest non-interlaced graphics
  6920.  08h    biggest graphics
  6921. Index:    video modes;GO32
  6922. --------V-10FF-------------------------------
  6923. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  6924.     AH = FFh
  6925.     AL = emulation
  6926.         43h ('C') CGA emulation
  6927.         45h ('E') EGA emulation
  6928.         4Dh ('M') Hercules emulation
  6929.         56h ('V') VGA emulation
  6930.     ES:DI -> signature string "Calamity"
  6931. Return: VGA switched to suggested mode
  6932. SeeAlso: AH=00h,AX=007Fh,AX=5F01h
  6933. --------R-10FF00-----------------------------
  6934. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  6935.     AX = FF00h
  6936. Return: BL = state
  6937.         00h not connected
  6938.         01h connected
  6939. SeeAlso: AX=FF01h,AX=FF02h
  6940. --------R-10FF01-----------------------------
  6941. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  6942.     AX = FF01h
  6943. SeeAlso: AX=FF00h,AX=FF02h
  6944. --------R-10FF02-----------------------------
  6945. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  6946.     AX = FF02h
  6947. Return: ES:DI -> ASCIZ phone number
  6948. SeeAlso: AX=FF00h,AX=FF01h
  6949. --------C-11---------------------------------
  6950. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  6951. Desc:    automatically generated by the CPU when the AC flag is set, the current
  6952.       privilege level is 3, and a misaligned memory access (WORD not on an
  6953.       even address or DWORD not on a multiple of 4) is made
  6954. Note:    not all V86 monitors allow the AC flag to be set, such as Turbo
  6955.       Debugger 386
  6956. --------B-11---------------------------------
  6957. INT 11 - BIOS - GET EQUIPMENT LIST
  6958. Return: (E)AX = BIOS equipment list word (see #0132)
  6959. Note:    since older BIOSes do not know of the existence of EAX, the high word
  6960.       of EAX should be cleared before this call if any of the high bits
  6961.       will be tested
  6962.  
  6963. Bitfields for BIOS equipment list:
  6964. Bit(s)    Description    (Table 0132)
  6965.  0    floppy disk(s) installed (see 6-7)
  6966.  1    80x87 coprocessor installed
  6967.  3-2    number of 16K banks of RAM on motherboard (PC only)
  6968.     number of 64K banks of RAM on motherboard (XT only)
  6969.  2    pointing device installed (PS)
  6970.  3    unused (PS)
  6971.  5-4    initial video mode
  6972.     00 EGA, VGA, or PGA
  6973.     01 40x25 color
  6974.     10 80x25 color
  6975.     11 80x25 monochrome
  6976.  7-6    number of floppies installed less 1 (if 0 set)
  6977.  8    DMA support installed (PCjr, Tandy 1400LT)
  6978.     DMA support *not* installed (Tandy 1000's)
  6979.  11-9    number of serial ports installed
  6980.  12    game port installed
  6981.  13    serial printer attached (PCjr)
  6982.     internal modem installed (PC/Convertible)
  6983.  15-14    number of parallel ports installed
  6984. ---Compaq, Dell, and many other 386/486 machines--
  6985.  23    page tables set so that Weitek coprocessor addressable in real mode
  6986.  24    Weitek math coprocessor present
  6987. ---Compaq Systempro---
  6988.  25    internal DMA parallel port available
  6989.  26    IRQ for internal DMA parallel port (if bit 25 set)
  6990.     0 = IRQ5
  6991.     1 = IRQ7
  6992.  28-27    parallel port DMA channel
  6993.     00 DMA channel 0
  6994.     01 DMA channel 0 ???
  6995.     10 reserved
  6996.     11 DMA channel 3
  6997. SeeAlso: INT 12
  6998. --------d-11----SI6A6A-----------------------
  6999. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  7000.     SI = 6A6Ah
  7001.     AH = command (see #0133)
  7002.     AL = SCSI Addressing (see #0134)
  7003. Return: CF clear if successful
  7004.         DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  7005.         AH = ??? for command 01h
  7006.     CF set on error
  7007.         AL = error code
  7008. SeeAlso: INT 21/AX=4402h"ASPI"
  7009.  
  7010. (Table 0133)
  7011. Values for SDLP command:
  7012.  00h    SDLP initialization
  7013.  01h    SDLP System Identify
  7014.  02h    simple read sectors
  7015.  03h    simple write sectors
  7016.  04h    simple verify sectors/seek to sector
  7017.  05h    get device size/type
  7018.  06h    ready unit
  7019.  07h    format unit
  7020.  08h    diagnostics
  7021.  09h    rewind
  7022.  0Ah    erase
  7023.  0Bh    write filemarks
  7024.  0Ch    space
  7025.  0Dh    prevent/allow media removal
  7026.  0Eh    load/unload media
  7027.  0Fh    reserved - returns good status
  7028.  10h    set block size
  7029.  11h    write setmark
  7030.  12h    set error level
  7031.  13h    get address of Request Sense Buffer
  7032.  14h    get SDLP error via Request Sense
  7033.  F0h    Vendor Unique Function (WD7000-FASST2 only)
  7034.  FDh    reset current SCSI HAC
  7035.  FEh    get/set current SCSI HAC
  7036.  FFh    execute SCSI command
  7037.  
  7038. Bitfields for SDLP SCSI addressing:
  7039. Bit(s)    Description    (Table 0134)
  7040.  7-6    Host Adapter
  7041.  5-3    SCSI Target ID
  7042.  2-0    SCSI Target LUN (logical unit number)
  7043. --------V-110225BX6900-----------------------
  7044. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  7045.     AX = 0225h
  7046.     BX = 6900h
  7047. Return: BL = 23h
  7048.     ES:DI -> ASCIZ "BLNKIT"
  7049. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  7050.       Inc.
  7051. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h
  7052. Index:    screen saver;Blank-It
  7053. --------V-110225BX6901-----------------------
  7054. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  7055.     AX = 0225h
  7056.     BX = 6901h
  7057.     CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  7058.          largest value is 59 minutes (FBACh or 64428)
  7059. Return: CF clear if successful
  7060.         DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  7061.         AH = ???
  7062.     CF set on error
  7063.         AL = error code
  7064. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6904h
  7065. Index:    screen saver;Blank-It
  7066. --------V-110225BX6902-----------------------
  7067. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  7068.     AX = 0225h
  7069.     BX = 6902h
  7070. Return: CF clear if successful
  7071.     CF set on error
  7072.         AL = error code
  7073. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6903h
  7074. Index:    screen saver;Blank-It
  7075. --------V-110225BX6903-----------------------
  7076. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  7077.     AX = 0225h
  7078.     BX = 6903h
  7079. Return: CF clear if successful
  7080.     CF set on error
  7081.         AL = error code
  7082. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6902h
  7083. Index:    screen saver;Blank-It
  7084. --------V-110225BX6904-----------------------
  7085. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  7086.     AX = 0225h
  7087.     BX = 6904h
  7088. Return: CF clear if successful
  7089.         BX = timeout (see BX=6901h)
  7090.     CF set on error
  7091.         AL = error code
  7092. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6901h
  7093. Index:    screen saver;Blank-It
  7094. --------V-110225BX6905-----------------------
  7095. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  7096.     AX = 0225h
  7097.     BX = 6905h
  7098. Return: CF clear if successful
  7099.     CF set on error
  7100.         AL = error code
  7101. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6906h
  7102. Index:    screen saver;Blank-It
  7103. --------V-110225BX6906-----------------------
  7104. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  7105.     AX = 0225h
  7106.     BX = 6906h
  7107. Return: CF clear if successful
  7108.     CF set on error
  7109.         AL = error code
  7110. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  7111.       Inc.
  7112. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6905h
  7113. Index:    screen saver;Blank-It
  7114. --------V-110225BX6907-----------------------
  7115. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  7116.     AX = 0225h
  7117.     BX = 6907h
  7118. Return: CF clear if successful
  7119.     CF set on error
  7120.         AL = error code
  7121. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6908h
  7122. Index:    screen saver;Blank-It
  7123. --------V-110225BX6908-----------------------
  7124. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  7125.     AX = 0225h
  7126.     BX = 6908h
  7127. Return: CF clear if successful
  7128.     CF set on error
  7129.         AL = error code
  7130. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6907h
  7131. Index:    screen saver;Blank-It
  7132. --------V-110225BX6909-----------------------
  7133. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  7134.     AX = 0225h
  7135.     BX = 6909h
  7136.     CL = key scan code (see #0135)
  7137. Return: CF clear if successful
  7138.     CF set on error
  7139.         AL = error code
  7140. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  7141.       Inc.
  7142. SeeAlso: AX=0225h/BX=6900h
  7143. Index:    screen saver;Blank-It|hotkeys;Blank-It
  7144.  
  7145. (Table 0135)
  7146. Values for Blank-It hotkey scan code:
  7147.  00h    No hot key
  7148.  1Dh    Left CTRL
  7149.  2Ah    Left Shift
  7150.  36h    Right Shift
  7151.  57h    F11
  7152.  58h    F12
  7153. --------G-1105D7-----------------------------
  7154. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  7155.     AX = 05D7h
  7156.     BX = product ID (0088h)
  7157. Note:    called by the BC++ IDE when an application calls
  7158.       INT 12/AX=05D7h/BX=05D7h
  7159. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  7160. Index:    installation check;Borland C++ IDE
  7161. --------F-1177-------------------------------
  7162. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  7163.     AH = 77h
  7164.     AL = subfunction
  7165.         01h request SFENGINE start
  7166.         Return: AX = 0001h
  7167.         02h check if SFENGINE started
  7168.         Return: AX = 0000h or 0001h
  7169.         03h request SFENGINE stop
  7170.         Return: AX = 0001h
  7171.         04h check if SFENGINE stopped
  7172.         Return: AX = 0000h or 0001h
  7173.         05h installation check
  7174.         Return: AX = 0001h
  7175.         06h uninstall???
  7176.         BX:DX -> return address for successful uninstall???
  7177.         Return: (at caller's address)
  7178.             AX = 0000h
  7179.         else
  7180.         Return: AX = FFFFh
  7181. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  7182.         followed by internal data area???
  7183. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  7184. Index:    installation check;RainbowFAX|installation check;SFENGINE
  7185. Index:    uninstall;RainbowFAX|uninstall;SFENGINE
  7186. --------F-1178-------------------------------
  7187. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  7188.     AH = 78h
  7189.     AL = subfunction
  7190.         7801h set ???
  7191.         BX = new state for ???
  7192.             0000h ???
  7193.             else ???
  7194.         Return: AX = 0001h
  7195.         7802h set ???
  7196.         BX = ???
  7197.         CX = ???
  7198.         Return: AX = 0001h
  7199.         7803h set ???
  7200.         BX = new state for ???
  7201.             0000h ???
  7202.             else ???
  7203.         Return: AX = 0001h
  7204.         78XXh invalid subfunction
  7205.         Return: AX = FFFFh
  7206. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  7207. --------F-1179-------------------------------
  7208. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  7209.     AH = 79h
  7210.     AL = subfunction
  7211.         01h set ??? flag
  7212.         Return: AX = previous state (0000h already set, 0001h clear)
  7213.         02h clear ??? flag (see subfunc 01h)
  7214.         Return: AX = 0001h
  7215.         03h set ??? flag (different from subfn 02h or 04h)
  7216.         Return: AX = 0001h
  7217.         04h clear ??? flag (different from subfn 02h or 03h)
  7218.         Return: AX = 0001h
  7219.         else
  7220.         Return: AX = FFFFh
  7221. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  7222. --------F-117A-------------------------------
  7223. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  7224.     AH = 7Ah
  7225.     AL = subfunction
  7226.         01h set ??? flag
  7227.         Return: AX = previous state (0000h already set, 0001h clear)
  7228.         02h clear ??? flag
  7229.         Return: AX = 0001h
  7230.         03h set ??? flag (different from subfn 02h)
  7231.         Return: AX = 0001h
  7232.         else
  7233.         Return: AX = FFFFh
  7234. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  7235. --------F-117C-------------------------------
  7236. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  7237.     AH = 7Ch
  7238.     AL = subfunction
  7239.         01h set ??? flag (see also subfn 02h)
  7240.         Return: AX = 0001h
  7241.         02h clear ??? flag (see also subfn 01h)
  7242.         Return: AX = 0001h
  7243.         else
  7244.         Return: AX = FFFFh
  7245. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah
  7246. --------S-11BC--DX1954-----------------------
  7247. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  7248.     AH = BCh
  7249.     DX = 1954h
  7250. Return: AX = 1954h
  7251.     ES:DX -> entry point of driver (instead of INT 14)
  7252. SeeAlso: INT 14/AH=04h"FOSSIL"
  7253. --------d-11FF--SI6A6A-----------------------
  7254. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  7255.     AH = FFh
  7256.     SI = 6A6Ah
  7257.     AL = SCSI Addressing (see #0136)
  7258.     CX = bytes of data to be transmitted (max FFF0h)
  7259.     DH = 00h
  7260.     DL = length of SCSI Command Descriptor Block
  7261.     DS:DI -> SCSI Command Descriptor Block
  7262.     ES:BX -> data buffer
  7263. Return: CF set on error
  7264.         AL = error code
  7265.     CF clear if successful
  7266. Note:    because of busmaster operations with WD7000FASST avoid accessing
  7267.       video memory directly; check 386 memory manager for VDS support.
  7268.       The WD7000XTAT works with programmed IO and does not have this
  7269.       limitation.
  7270. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  7271.  
  7272. Bitfields for SDLP SCSI addressing:
  7273. Bit(s)    Description    (Table 0136)
  7274.  2-0    SCSI Target LUN (logical unit number)
  7275.  5-3    SCSI Target ID
  7276.  7    write flag, set for write operations, clear otherwise
  7277. --------T-11FFFECXFFFE-----------------------
  7278. INT 11 - BACK&FORTH (before v1.62) API
  7279.     AX = FFFEh
  7280.     CX = FFFEh
  7281.     BX = function
  7282.         00h installation check
  7283.         Return: AX = installation state
  7284.                 0001h BNFHIGH and BNFLOW both loaded
  7285.                 0003h only BNFHIGH loaded
  7286.                 else neither loaded
  7287.         01h ???
  7288.         Return: DX:AX -> ???
  7289.         02h ???
  7290.         03h ???
  7291.         04h ???
  7292.         05h ??? switches current PSP segment and stack if BNFLOW has not
  7293.             yet announced itself installed
  7294.         06h ???
  7295.         Return: AX = ???
  7296. SeeAlso: INT 12/AX=FFFEh
  7297. Index:    installation check;BACK&FORTH
  7298. --------B-12---------------------------------
  7299. INT 12 - BIOS - GET MEMORY SIZE
  7300. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  7301. Note:    this call returns the contents of the word at 0040h:0013h; in PC and
  7302.       XT, this value is set from the switches on the motherboard
  7303. SeeAlso: INT 11,INT 2F/AX=4A06h
  7304. --------K-12----CX1806-----------------------
  7305. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  7306.     CX = 1806h
  7307. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  7308.     CX = 1960h if installed
  7309. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  7310.       accented characters and box drawing on standard QWERTY keyboards; it
  7311.       also provides break-to-DOS and screen blanking capabilities
  7312. SeeAlso: INT 14/AX=AA01h
  7313. Index:    screen saver;KEYBUI
  7314. --------d-12----CX1807-----------------------
  7315. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  7316.     CX = 1807h
  7317. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  7318.     CX = 1961h if installed
  7319. Program: PARKER is an optionally-resident hard disk parking program by Johan
  7320.       Zwiekhorst
  7321. --------G-1205D7BX05D7-----------------------
  7322. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  7323.     AX = 05D7h (1495d)
  7324.     BX = 05D7h
  7325. Note:    the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  7326. SeeAlso: INT 11/AX=05D7h/BX=0088h
  7327. --------v-124350BX4920-----------------------
  7328. INT 12 C - CPI-standard virus - "FRIEND" CHECK
  7329.     AX = 4350h
  7330.     BX = 4920h
  7331.     CX = AB46h
  7332.     DX = 554Eh
  7333. Return: if friendly (not to be infected)
  7334.         CX:DX -> ASCIZ identity code (changes yearly)
  7335. SeeAlso: AX=EC00h"VIRUS",INT 13/AX=5001h,INT 21/AX=0B56h
  7336. --------T-12FFFECXFFFE-----------------------
  7337. INT 12 - Back&Forth v1.62+ - API
  7338.     AX = FFFEh
  7339.     CX = FFFEh
  7340.     BX = function
  7341.         00h installation check
  7342.         Return: AX = 0001h installed
  7343.                  else  not loaded
  7344.         01h (reserved)
  7345.         02h build program ID list (shareware Back&Forth)
  7346.         ES:DI -> buffer of at least 100 bytes, to be filled with words
  7347.         Return: AX = number of programs defined
  7348.             ES:DI buffer filled with AX words
  7349.         02h get memory statistics (Back&Forth Professional)
  7350.         Return: AX = available swap memory, KBytes
  7351.             BX = maximum task size, KBytes
  7352.             DX = fixed overhead per task, excluding video/macro
  7353.                   storage
  7354.         03h switch to specified task (task need not be open yet)
  7355.         DX = two-letter program ID
  7356.         Return: AX = status
  7357.                 0000h if task undefined
  7358.                 0001h task switch will occur when safe
  7359.         04h (reserved)
  7360.         05h (reserved)
  7361.         06h get version (documented only for Back&Forth Professional)
  7362.         Return: AX = version * 100 (v1.71 = 00ABh)
  7363.         07h spawn program (Back&Forth Professional only???)
  7364.         ES:DI -> BF_SPAWN record (see #0138)
  7365.         Return: AX = status
  7366.                 0000h if no task handles free
  7367.                 0001h spawn will occur when safe
  7368.         08h get open tasks (documented only for Back&Forth Professional)
  7369.         ES:DI -> task info buffer (see #0137,#0139)
  7370.         Return: AX = number of open tasks (max 20)
  7371.         Note:    the supplied buffer must be large enough to hold 21
  7372.               task entries
  7373.         09h (reserved)
  7374.         ---Back&Forth Professional---
  7375.         0Ah get active clipboard filename
  7376.         Return: DX:AX -> ASCIZ clipboard filename
  7377.         0Bh get active task number
  7378.         AX = active task number (00h-13h)
  7379.         BX = number of tasks allocated
  7380.         DX = maximum number of tasks
  7381.         0Ch (reserved)
  7382.         0Dh (reserved)
  7383.         0Eh (reserved)
  7384.         0Fh stuff string into keyboard buffer
  7385.         ES:DI -> ASCIZ string to be stuffed
  7386.         Return: nothing
  7387.         10h check if in graphics mode
  7388.         Return: AX = state
  7389.                 0000h color text mode
  7390.                 0004h mono text mode
  7391.                 FFFFh graphics mode
  7392.         11h get Back&Forth Professional user number
  7393.         Return: AX = user number (0000h-00FFh)
  7394.         12h switch task by task number
  7395.         DX = task number
  7396.         Return: AX = status
  7397.                 0000h attempted to switch to active task
  7398.                 0001h task switch will occur when safe
  7399.                 FFFFh invalid task number
  7400.         13h delete (kill) task
  7401.         DX = task number
  7402.         Return: AX = status
  7403.                 0000h attempted to delete the active task
  7404.                 0001h successfully deleted
  7405.                 FFFFh invalid task number
  7406.         Note:    the active task number will change if the deleted task
  7407.               was lower in the task list than the active task
  7408.         14h get next available task handle
  7409.         Return:    AX = next available task handle
  7410.                 FFFFh if task table is full
  7411. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  7412. SeeAlso: INT 11/AX=FFFEh
  7413. Index:    installation check;BACK&FORTH
  7414.  
  7415. Format of Back&Forth task info buffer:
  7416. Offset    Size    Description    (Table 0137)
  7417.  00h 21 BYTEs    ASCIZ task name
  7418.  15h    BYTE    hotkey shift state (as for INT 16/AH=02h)
  7419.  16h    WORD    hotkey scan code
  7420.  18h    WORD    program ID
  7421. Index:    hotkeys;Back&Forth
  7422. SeeAlso: #0138,#0139
  7423.  
  7424. Format of Back&Forth Professional BF_SPAWN record:
  7425. Offset    Size    Description    (Table 0138)
  7426.  00h 21 BYTEs    task description
  7427.  15h    BYTE    flag: disable hotkeys
  7428.  16h    WORD    environment size in bytes
  7429.  18h    BYTE    hotkey shift flags
  7430.  19h    WORD    hotkey scancode
  7431.  1Bh    WORD    maximum number of EMS pages
  7432.  1Dh    WORD    required memory in KBytes
  7433.  1Fh  3 BYTEs    DESQview-style two-letter program ID
  7434.  22h 13 BYTEs    base name of program to be run (no path or extension)
  7435.  2Fh 66 BYTEs    directory from which to start program
  7436.  71h 66 BYTEs    initial current directory for program
  7437. SeeAlso: #0137,#0139
  7438.  
  7439. Format of Back&Forth Professional BF_TASK record:
  7440. Offset    Size    Description    (Table 0139)
  7441.  00h    DWORD    Unix-style task start time (seconds since 1/1/1970)
  7442.  04h 21 BYTEs    task description
  7443.  19h    DWORD    elapsed time in task (seconds)
  7444.  1Dh    WORD    task ID
  7445.  1Fh    BYTE    task hotkey keyboard flags
  7446.  20h    WORD    task hotkey scan code
  7447.  22h    DWORD    time task was suspended/exited
  7448.  26h    WORD    task handle
  7449. SeeAlso: #0137,#0138
  7450. --------B-1300-------------------------------
  7451. INT 13 - DISK - RESET DISK SYSTEM
  7452.     AH = 00h
  7453.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  7454. Return: AH = status (see #0140)
  7455.     CF clear if successful (returned AH=00h)
  7456.     CF set on error
  7457. Note:    forces controller to recalibrate drive heads (seek to track 0)
  7458.     for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
  7459.       both the master drive and the slave drive respond to the Reset
  7460.       function that is issued to either drive
  7461. SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4D/AH=00h"TI Professional"
  7462. --------B-1301-------------------------------
  7463. INT 13 - DISK - GET STATUS OF LAST OPERATION
  7464.     AH = 01h
  7465.     DL = drive (bit 7 set for hard disk)
  7466. Return: CF clear if successful (returned status 00h)
  7467.     CF set on error
  7468.     AH = status of previous operation (see #0140)
  7469. Note:    some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  7470.       status in both AH and AL
  7471. SeeAlso: AH=00h,INT 4D/AH=01h,MEM 0040h:0074h
  7472.  
  7473. (Table 0140)
  7474. Values for disk operation status:
  7475.  00h    successful completion
  7476.  01h    invalid function in AH or invalid parameter
  7477.  02h    address mark not found
  7478.  03h    disk write-protected
  7479.  04h    sector not found/read error
  7480.  05h    reset failed (hard disk)
  7481.  05h    data did not verify correctly (TI Professional PC)
  7482.  06h    disk changed (floppy)
  7483.  07h    drive parameter activity failed (hard disk)
  7484.  08h    DMA overrun
  7485.  09h    data boundary error (attempted DMA across 64K boundary or >80h sectors)
  7486.  0Ah    bad sector detected (hard disk)
  7487.  0Bh    bad track detected (hard disk)
  7488.  0Ch    unsupported track or invalid media
  7489.  0Dh    invalid number of sectors on format (PS/2 hard disk)
  7490.  0Eh    control data address mark detected (hard disk)
  7491.  0Fh    DMA arbitration level out of range (hard disk)
  7492.  10h    uncorrectable CRC or ECC error on read
  7493.  11h    data ECC corrected (hard disk)
  7494.  20h    controller failure
  7495.  31h    no media in drive (IBM/MS INT 13 extensions)
  7496.  32h    incorrect drive type stored in CMOS (Compaq)
  7497.  40h    seek failed
  7498.  80h    timeout (not ready)
  7499.  AAh    drive not ready (hard disk)
  7500.  B0h    volume not locked in drive (INT 13 extensions)
  7501.  B1h    volume locked in drive (INT 13 extensions)
  7502.  B2h    volume not removable (INT 13 extensions)
  7503.  B3h    volume in use (INT 13 extensions)
  7504.  B4h    lock count exceeded (INT 13 extensions)
  7505.  B5h    valid eject request failed (INT 13 extensions)
  7506.  BBh    undefined error (hard disk)
  7507.  CCh    write fault (hard disk)
  7508.  E0h    status register error (hard disk)
  7509.  FFh    sense operation failed (hard disk)
  7510. --------B-1302-------------------------------
  7511. INT 13 - DISK - READ SECTOR(S) INTO MEMORY
  7512.     AH = 02h
  7513.     AL = number of sectors to read (must be nonzero)
  7514.     CH = low eight bits of cylinder number
  7515.     CL = sector number 1-63 (bits 0-5)
  7516.          high two bits of cylinder (bits 6-7, hard disk only)
  7517.     DH = head number
  7518.     DL = drive number (bit 7 set for hard disk)
  7519.     ES:BX -> data buffer
  7520. Return: CF set on error
  7521.         if AH = 11h (corrected ECC error), AL = burst length
  7522.     CF clear if successful
  7523.     AH = status (see #0140)
  7524.     AL = number of sectors transferred
  7525. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  7526.       enough; the read should be retried at least three times, resetting
  7527.       the disk with AH=00h between attempts
  7528.     most BIOSes support "multitrack" reads, where the value in AL
  7529.       exceeds the number of sectors remaining on the track, in which
  7530.       case any additional sectors are read beginning at sector 1 on
  7531.       the following head in the same cylinder; the CONFIG.SYS command
  7532.       MULTITRACK can be used to force DOS to split disk accesses which
  7533.       would wrap across a track boundary into two separate calls
  7534.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  7535.       DH (head number) since the WD-1003 controller which is the standard
  7536.       AT controller (and the controller that IDE emulates) only supports
  7537.       16 heads
  7538.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  7539.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  7540.       into bits 6 and 7 of DH
  7541. SeeAlso: AH=03h,AH=0Ah,AH=06h"V10DISK.SYS",AH=21h"PS/1",INT 4D/AH=02h
  7542. --------B-1303-------------------------------
  7543. INT 13 - DISK - WRITE DISK SECTOR(S)
  7544.     AH = 03h
  7545.     AL = number of sectors to write (must be nonzero)
  7546.     CH = low eight bits of cylinder number
  7547.     CL = sector number 1-63 (bits 0-5)
  7548.          high two bits of cylinder (bits 6-7, hard disk only)
  7549.     DH = head number
  7550.     DL = drive number (bit 7 set for hard disk)
  7551.     ES:BX -> data buffer
  7552. Return: CF set on error
  7553.     CF clear if successful
  7554.     AH = status (see #0140)
  7555.     AL = number of sectors transferred
  7556. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  7557.       enough; the write should be retried at least three times, resetting
  7558.       the disk with AH=00h between attempts
  7559.     most BIOSes support "multitrack" writes, where the value in AL
  7560.       exceeds the number of sectors remaining on the track, in which
  7561.       case any additional sectors are written beginning at sector 1 on
  7562.       the following head in the same cylinder; the CONFIG.SYS command
  7563.       MULTITRACK can be used to force DOS to split disk accesses which
  7564.       would wrap across a track boundary into two separate calls
  7565.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  7566.       DH (head number) since the WD-1003 controller which is the standard
  7567.       AT controller (and the controller that IDE emulates) only supports
  7568.       16 heads
  7569.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  7570.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  7571.       into bits 6 and 7 of DH
  7572. SeeAlso: AH=02h,AH=0Bh,AH=07h"V10DISK.SYS",AH=22h"PS/1",INT 4D/AH=03h
  7573. --------B-1304-------------------------------
  7574. INT 13 - DISK - VERIFY DISK SECTOR(S)
  7575.     AH = 04h
  7576.     AL = number of sectors to verify (must be nonzero)
  7577.     CH = low eight bits of cylinder number
  7578.     CL = sector number 1-63 (bits 0-5)
  7579.          high two bits of cylinder (bits 6-7, hard disk only)
  7580.     DH = head number
  7581.     DL = drive number (bit 7 set for hard disk)
  7582.     ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
  7583. Return: CF set on error
  7584.     CF clear if successful
  7585.     AH = status (see #0140)
  7586.     AL = number of sectors verified
  7587. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  7588.       enough; the write should be retried at least three times, resetting
  7589.       the disk with AH=00h between attempts
  7590.     this function does not compare the disk with memory, it merely
  7591.       checks whether the sector's stored CRC matches the data's actual CRC
  7592.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  7593.       DH (head number) since the WD-1003 controller which is the standard
  7594.       AT controller (and the controller that IDE emulates) only supports
  7595.       16 heads
  7596.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  7597.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  7598.       into bits 6 and 7 of DH
  7599. SeeAlso: AH=02h,INT 4D/AH=04h,INT 4D/AH=06h
  7600. --------B-1305-------------------------------
  7601. INT 13 - FLOPPY - FORMAT TRACK
  7602.     AH = 05h
  7603.     AL = number of sectors to format
  7604.     CH = track number
  7605.     DH = head number
  7606.     DL = drive number
  7607.     ES:BX -> address field buffer (see #0141)
  7608. Return: CF set on error
  7609.     CF clear if successful
  7610.     AH = status (see #0140)
  7611. Notes:    on AT or higher, call AH=17h first
  7612.     the number of sectors per track is read from the diskette parameter
  7613.       table pointed at by INT 1E
  7614. SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
  7615.  
  7616. Format of floppy format address field buffer entry (one per sector in track):
  7617. Offset    Size    Description    (Table 0141)
  7618.  00h    BYTE    track number
  7619.  01h    BYTE    head number (0-based)
  7620.  02h    BYTE    sector number
  7621.  03h    BYTE    sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
  7622. --------B-1305-------------------------------
  7623. INT 13 - FIXED DISK - FORMAT TRACK
  7624.     AH = 05h
  7625.     AL = interleave value (XT-type controllers only)
  7626.     ES:BX -> 512-byte format buffer
  7627.         the first 2*(sectors/track) bytes contain F,N for each sector
  7628.            F = sector type
  7629.             00h for good sector
  7630.             20h to unassign from alternate location
  7631.             40h to assign to alternate location
  7632.             80h for bad sector
  7633.            N = sector number
  7634.     CH = cylinder number (bits 8,9 in high bits of CL)
  7635.     CL = high bits of cylinder number (bits 7,6)
  7636.     DH = head
  7637.     DL = drive
  7638. Return: CF set on error
  7639.     CF clear if successful
  7640.     AH = status code (see #0140)
  7641. Notes:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  7642.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  7643.       into bits 6 and 7 of DH
  7644.     for XT-type controllers on an AT or higher, AH=0Fh should be called
  7645.       first
  7646.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  7647.       DH (head number) since the WD-1003 controller which is the standard
  7648.       AT controller (and the controller that IDE emulates) only supports
  7649.       16 heads
  7650.     not all controller support sector types 20h and 40h
  7651. SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
  7652. --------d-1305-------------------------------
  7653. INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
  7654.     AH = 05h
  7655.     DL = hard drive ID
  7656.     ES:BX -> mode select data (see #0142)
  7657. Return: CF set on error
  7658.     CF clear if successful
  7659.     AH = status code (see #0140)
  7660. Notes:    this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  7661.       format a SCSI disk with the desired parameters
  7662.     the mode select data below is from the SCSI-1 specification
  7663.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7664.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7665. SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
  7666.  
  7667. Format of Future Domain SCSI mode select data:
  7668. Offset    Size    Description    (Table 0142)
  7669.  00h    BYTE    number of bytes of remaining data (12 + vendor unique length)
  7670.  01h    BYTE    reserved (0)
  7671.  02h    BYTE    medium type (0 for hard disk)
  7672.  03h    BYTE    reserved (0)
  7673.  04h    BYTE    block descriptor length (8)
  7674.  05h    BYTE    density code (0 for hard disk)
  7675.  06h  3 BYTEs    (big-endian) number of blocks (000000h for entire disk)
  7676.  09h    BYTE    reserved (0)
  7677.  0Ah  3 BYTEs    (big-endian) block length (512 standard, or 256)
  7678.  0Dh    ???    vendor-specific parameter bytes (optional)
  7679. --------B-13057FSI324D-----------------------
  7680. INT 13 - 2M - FORMAT TRACK
  7681.     AX = 057Fh
  7682.     SI = 324Dh ("2M")
  7683.     CH = track number
  7684.     DH = head number
  7685.     DL = drive number
  7686.     ES:BX -> boot sector of future 2M diskette
  7687. Return:    CF set on error
  7688.     CF clear if successful
  7689.     AH = status (see #0140)
  7690. Program: 2M is a TSR developed by Ciriaco Garcia de Celis to support
  7691.       non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
  7692.       and 984-1066/1804-1886K/3608-3772K (3.5 DD/HD/ED)
  7693. Notes:    it is not necessary to call AH=17h/AH=18h first (will be ignored)
  7694.     the diskette format must always begin on cylinder 0 head 0
  7695.     the boot sector can be obtained from an already-formatted 2M diskette
  7696.       (by calling AH=02h with head number 00h in 2M v1.x and with head
  7697.       number 80h for 2M v2+)
  7698.     the installation check for 2M must search for a "CiriSOFT:2M:1.3" or
  7699.       "CiriSOFT:2MX:3.0" or similar (recomended ":2M:", ":2MX:", or ":2MB:"
  7700.       substrings) in CiriSOFT TSR interface
  7701.     since 2M v2.0, the BOOT sector is emulated using the first physical
  7702.       sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED
  7703.       diskettes store the SuperBOOT code. To skip the FAT2 emulation (using
  7704.       FAT1) of 2M, in order to read the SuperBOOT code, head number must be
  7705.       80h-81h instead 0-1 (bit 7 active) in standard read/write functions.
  7706.       This lets diskcopy programs format 2M target diskettes copying
  7707.       SuperBOOT code. If the target diskette is already 2MF formatted
  7708.       (containing boot code) this trick it is not necessary.
  7709.     when using STV technology (offset 65 of boot sector equal to 1) it is
  7710.       necessary to write the full track before formatting (except track 0
  7711.       side 0) to complete the format and skip future CRC errors on read; in
  7712.       track 0 side 1 the head used must be 81h instead 1. Diskcopy programs
  7713.       may do a format-write-verify sequential phases to improve performance
  7714. SeeAlso: AH=05h"FLOPPY",INT 2F"CiriSOFT TSR interface"
  7715. --------B-1306-------------------------------
  7716. INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
  7717.     AH = 06h
  7718.     AL = interleave value
  7719.     CH = cylinder number (bits 8,9 in high bits of CL)
  7720.     CL = sector number
  7721.     DH = head
  7722.     DL = drive
  7723. Return: AH = status code (see #0140)
  7724. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  7725.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  7726.       into bits 6 and 7 of DH
  7727. SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
  7728. --------d-1306-------------------------------
  7729. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
  7730.     AH = 06h
  7731.     AL = interleave
  7732.          (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
  7733.     DL = hard drive ID
  7734.     DH = defect list info (see #0143)
  7735.     ES:BX -> defect table A, B or C (see #0144,#0145,#0146)
  7736. Return: CF set on error
  7737.     CF clear if successful
  7738.     AH = status code (see #0140)
  7739. Notes:    block addresses must be in ascending order (for table B, cylinder is
  7740.       most significant, byte from index least significant; for table C,
  7741.       cylinder is most significant, sector number least significant)
  7742.     table B defect bytes from index of FFFFFFFFh indicates that the entire
  7743.       track shall be reassigned
  7744.     table C defect sector number of FFFFFFFFh indicates that the entire
  7745.       track shall be reassigned
  7746.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7747.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7748. SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
  7749.  
  7750. Bitfields for Future Domain SCSI defect list info:
  7751. Bit(s)    Description    (Table 0143)
  7752.  7-5    drive LUN
  7753.  4    defect list is available
  7754.  3    defect list is complete (erase drive's defect list)
  7755.  2-0    defect table format
  7756.     (000=use defect table A, 100=use defect table B,
  7757.      101=use defect table C)
  7758.  
  7759. Format of Future Domain SCSI defect table A:
  7760. Offset    Size    Description    (Table 0144)
  7761.  00h    WORD    number of bytes remaining in table
  7762.  02h    BYTE    reserved (0)
  7763.  03h    BYTE    reserved (0)
  7764.  04h    WORD    (big-endian) defect list length (4*number of defects)
  7765.  06h  4 DWORDs    (big-endian) defect block addresses
  7766.  
  7767. Format of Future Domain SCSI defect table B:
  7768. Offset    Size    Description    (Table 0145)
  7769.  00h    WORD    number of bytes remaining in table
  7770.  02h    BYTE    reserved (0)
  7771.  03h    BYTE    reserved (0)
  7772.  04h    WORD    (big-endian) defect list length (8*number of defects)
  7773.  06h 8N BYTEs    defect list [array] (see #0147)
  7774.  
  7775. Format of Future Domain SCSI defect table C:
  7776. Offset    Size    Description    (Table 0146)
  7777.  00h    WORD    number of bytes remaining in table
  7778.  02h    BYTE    reserved (0)
  7779.  03h    BYTE    reserved (0)
  7780.  04h    WORD    (big-endian) defect list length (8*number of defects)
  7781.  06h 8N BYTEs    defect list [array] (see #0147)
  7782.  
  7783. Format of Future Domain SCSI defect list entry:
  7784. Offset    Size    Description    (Table 0147)
  7785.  00h  3 BYTEs    (big-endian) cylinder number of defect
  7786.  03h    BYTE    head number of defect
  7787.  04h    DWORD    (big-endian) defect bytes from index
  7788. --------d-1306-------------------------------
  7789. INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
  7790.     AH = 06h
  7791. Return: AH = status code (see #0140)
  7792.     CF clear if successful
  7793.         AL = first drive supported
  7794.         (80h nonconcurrent operation, 81h concurrent operation)
  7795.     CF set on error
  7796. Desc:    determine the number of the first supported SCSI drive
  7797. Note:    the return value is 80h when two SCSI drives are supported, 81h if
  7798.       only one SCSI drive is installed
  7799. SeeAlso: AH=08h
  7800. --------d-1306-------------------------------
  7801. INT 13 - V10DISK.SYS - READ DELETED SECTORS
  7802.     AH = 06h
  7803.     AL = number of sectors
  7804.     CH = cylinder number (bits 8,9 in high bits of CL)
  7805.     CL = sector number
  7806.     DH = head
  7807.     DL = drive
  7808.     ES:BX -> buffer
  7809. Return: AH = status code (see #0140)
  7810. Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
  7811. SeeAlso: AH=02h,AH=07h"V10DISK.SYS"
  7812. --------B-1307-------------------------------
  7813. INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
  7814.     AH = 07h
  7815.     AL = interleave value (XT only)
  7816.     ES:BX = 512-byte format buffer (see AH=05h)
  7817.     CH = cylinder number (bits 8,9 in high bits of CL)
  7818.     CL = sector number
  7819.     DH = head
  7820.     DL = drive
  7821. Return: AH = status code (see #0140)
  7822. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  7823.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  7824.       into bits 6 and 7 of DH
  7825. SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
  7826. --------d-1307-------------------------------
  7827. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
  7828.     AH = 07h
  7829.     AL = interleave (0 = default, 1 = consecutive sectors,
  7830.            2 - 255 = vendor unique)
  7831.     DL = hard drive ID
  7832. Return: CF set on error
  7833.     CF clear if successful
  7834.     AH = status code (see #0140)
  7835. SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
  7836. --------d-1307-------------------------------
  7837. INT 13 - V10DISK.SYS - WRITE DELETED SECTORS
  7838.     AH = 07h
  7839.     AL = number of sectors
  7840.     CH = cylinder number (bits 8,9 in high bits of CL)
  7841.     CL = sector number
  7842.     DH = head
  7843.     DL = drive
  7844.     ES:BX -> buffer
  7845. Return: AH = status code (see #0140)
  7846. Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
  7847. SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
  7848. --------B-1308-------------------------------
  7849. INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
  7850.     AH = 08h
  7851.     DL = drive (bit 7 set for hard disk)
  7852. Return: CF set on error
  7853.         AH = status (07h) (see #0140)
  7854.     CF clear if successful
  7855.         AH = 00h
  7856.         BL = drive type (AT/PS2 floppies only) (see #0148)
  7857.         CH = low eight bits of maximum cylinder number
  7858.         CL = maximum sector number (bits 5-0)
  7859.          high two bits of maximum cylinder number (bits 7-6)
  7860.         DH = maximum head number
  7861.         DL = number of drives
  7862.         ES:DI -> drive parameter table (floppies only)
  7863. Notes:    may return successful even though specified drive is greater than the
  7864.       number of attached drives of that type (floppy/hard); check DL to
  7865.       ensure validity
  7866.     for systems predating the IBM AT, this call is only valid for hard
  7867.       disks, as it is implemented by the hard disk BIOS rather than the
  7868.       ROM BIOS
  7869.     Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  7870.       but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.
  7871.     may indicate only two drives present even if more are attached; to
  7872.       ensure a correct count, one can use AH=15h to scan through possible
  7873.       drives
  7874.     for BIOSes which reserve the last cylinder for testing purposes, the
  7875.       cylinder count is automatically decremented
  7876. SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=48h,AH=15h,INT 1E,INT 41
  7877.  
  7878. (Table 0148)
  7879. Values for diskette drive type:
  7880.  01h    360K
  7881.  02h    1.2M
  7882.  03h    720K
  7883.  04h    1.44M
  7884.  05h    ??? (reportedly an obscure drive type shipped on some IBM machines)
  7885.     2.88M on some machines (at least AMI 486 BIOS)
  7886.  06h    2.88M
  7887. --------d-1308-------------------------------
  7888. INT 13 - V10DISK.SYS - SET FORMAT
  7889.     AH = 08h
  7890.     AL = number of sectors
  7891.     CH = cylinder number (bits 8,9 in high bits of CL)
  7892.     CL = sector number
  7893.     DH = head
  7894.     DL = drive
  7895. Return: AH = status code (see #0140)
  7896. Program: V10DISK.SYS is a driver for the Flagstaff Engineering 8" floppies
  7897. Note:    details not available
  7898. SeeAlso: AH=03h,AH=06h"V10DISK.SYS"
  7899. --------y-130800DLF0-------------------------
  7900. INT 13 - SecureDrive - INSTALLATION CHECK
  7901.     AX = 08000h
  7902.     DL = F0h
  7903. Return: AX = EDCBh for version 1.0-1.2
  7904.     AX = EDCCh for version 1.3
  7905.     CX = code segment
  7906.     DX = data address within code segment
  7907. Program: SecureDrive by Mike Ingle <mikeingle@delphi.com> allows you to create
  7908.       an encrypted partition on your harddisk.
  7909. --------B-1309-------------------------------
  7910. INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
  7911.     AH = 09h
  7912.     DL = drive (80h for first, 81h for second)
  7913. Return: CF clear if successful
  7914.     CF set on error
  7915.     AH = status (see #0140)
  7916. Notes:    on the PC and XT, this function uses the parameter table pointed at by
  7917.       INT 41
  7918.     on the AT and later, this function uses the parameter table pointed at
  7919.       by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  7920.       DL=81h
  7921. SeeAlso: INT 41,INT 46
  7922. --------B-130A-------------------------------
  7923. INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
  7924.     AH = 0Ah
  7925.     AL = number of sectors
  7926.     CH = low eight bits of cylinder number
  7927.     CL = sector number (bits 5-0)
  7928.          high two bits of cylinder number (bits 7-6)
  7929.     DH = head number
  7930.     DL = drive number (80h = first, 81h = second)
  7931.     ES:BX -> data buffer
  7932. Return: CF clear if successful
  7933.     CF set on error
  7934.     AH = status (see #0140)
  7935.     AL = number of sectors transferred
  7936. Notes:    this function reads in four to seven bytes of error-correcting code
  7937.       along with each sector's worth of information
  7938.     data errors are not automatically corrected, and the read is aborted
  7939.       after the first sector with an ECC error
  7940.     used for diagnostics only on PS/2 systems
  7941. SeeAlso: AH=02h,AH=0Bh
  7942. --------B-130B-------------------------------
  7943. INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
  7944.     AH = 0Bh
  7945.     AL = number of sectors
  7946.     CH = low eight bits of cylinder number
  7947.     CL = sector number (bits 5-0)
  7948.          high two bits of cylinder number (bits 7-6)
  7949.     DH = head number
  7950.     DL = drive number (80h = first, 81h = second)
  7951.     ES:BX -> data buffer
  7952. Return: CF clear if successful
  7953.     CF set on error
  7954.     AH = status (see #0140)
  7955.     AL = number of sectors transferred
  7956. Notes:    each sector's worth of data must be followed by four to seven bytes of
  7957.       error-correction information
  7958.     used for diagnostics only on PS/2 systems
  7959. SeeAlso: AH=03h,AH=0Ah
  7960. --------B-130C-------------------------------
  7961. INT 13 - HARD DISK - SEEK TO CYLINDER
  7962.     AH = 0Ch
  7963.     CH = low eight bits of cylinder number
  7964.     CL = sector number (bits 5-0)
  7965.         high two bits of cylinder number (bits 7-6)
  7966.     DH = head number
  7967.     DL = drive number (80h = first, 81h = second hard disk)
  7968. Return: CF set on error
  7969.     CF clear if successful
  7970.     AH = status (see #0140)
  7971. SeeAlso: AH=00h,AH=02h,AH=0Ah,AH=47h
  7972. --------d-130D-------------------------------
  7973. INT 13 - HARD DISK - RESET HARD DISKS
  7974.     AH = 0Dh
  7975.     DL = drive number (80h = first, 81h = second hard disk)
  7976. Return: CF set on error
  7977.     CF clear if successful
  7978.     AH = status (see #0140)
  7979. Notes:    reinitializes the hard disk controller, resets the specified drive's
  7980.       parameters, and recalibrates the drive's heads (seek to track 0)
  7981.     for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
  7982.       both the master drive and the slave drive respond to the Reset
  7983.       function that is issued to either drive
  7984.     not for PS/2 ESDI drives
  7985. SeeAlso: AH=00h,INT 21/AH=0Dh
  7986. --------B-130E-------------------------------
  7987. INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
  7988.     AH = 0Eh
  7989.     DL = drive number (80h = first, 81h = second hard disk)
  7990.     ES:BX -> buffer
  7991. Return: CF set on error
  7992.     CF clear if successful
  7993.     AH = status code (see #0140)
  7994. Notes:    transfers controller's sector buffer.  No data is read from the drive
  7995.     used for diagnostics only on PS/2 systems
  7996. SeeAlso: AH=0Ah
  7997. --------B-130F-------------------------------
  7998. INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
  7999.     AH = 0Fh
  8000.     DL = drive number (80h = first, 81h = second hard disk)
  8001.     ES:BX -> buffer
  8002. Return: CF set on error
  8003.     CF clear if successful
  8004.     AH = status code (see #0140)
  8005. Notes:    does not write data to the drive
  8006.     should be called before formatting to initialize an XT-type
  8007.       controller's sector buffer
  8008.     used for diagnostics only on PS/2 systems
  8009. SeeAlso: AH=0Bh
  8010. --------B-1310-------------------------------
  8011. INT 13 - HARD DISK - CHECK IF DRIVE READY
  8012.     AH = 10h
  8013.     DL = drive number (80h = first, 81h = second hard disk)
  8014. Return: CF set on error
  8015.     CF clear if successful
  8016.     AH = status (see #0140 at AH=01h)
  8017. --------B-1311-------------------------------
  8018. INT 13 - HARD DISK - RECALIBRATE DRIVE
  8019.     AH = 11h
  8020.     DL = drive number (80h = first, 81h = second hard disk)
  8021. Return: CF set on error
  8022.     CF clear if successful
  8023.     AH = status (see #0140 at AH=01h)
  8024. Note:    causes hard disk controller to seek the specified drive to cylinder 0
  8025. SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
  8026. --------B-1312-------------------------------
  8027. INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
  8028.     AH = 12h
  8029.     DL = drive number (80h = first, 81h = second hard disk)
  8030. Return: CF set on error
  8031.     CF clear if successful
  8032.     AH = status code (see #0140 at AH=01h)
  8033.     AL = 00h
  8034. SeeAlso: AH=13h,AH=14h
  8035. --------d-1312-------------------------------
  8036. INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
  8037.     AH = 12h
  8038.     DL = hard drive ID
  8039. Return: CF set on error
  8040.     CF clear if successful
  8041.     AH = status code (see #0140 at AH=01h)
  8042. Notes:    available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
  8043.     if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  8044.       and either "Disk prepared for shipping" or "Disk Stop command failed"
  8045.       is displayed
  8046.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  8047.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  8048. --------d-1312-------------------------------
  8049. INT 13 - SyQuest - START/STOP SCSI DISK
  8050.     AH = 12h
  8051.     AL = subfunction
  8052.         00h start disk
  8053.         01h stop disk
  8054.     CX = wait flag
  8055.         00h wait for ready
  8056.         01h don't wait for ready
  8057.     DL = hard drive ID (bit 7 for hard disks must be set)
  8058. Return: CF set on error
  8059.     CF clear if successful
  8060.     AH = status
  8061.         00h successful
  8062.         01h invalid function request
  8063.         80h timeout
  8064. SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"
  8065. --------B-1313-------------------------------
  8066. INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
  8067.     AH = 13h
  8068.     DL = drive number (80h = first, 81h = second hard disk)
  8069. Return: CF set on error
  8070.     CF clear if successful
  8071.     AH = status code (see #0140 at AH=01h)
  8072.     AL = 00h
  8073. SeeAlso: AH=12h"HARD DISK",AH=14h"HARD DISK"
  8074. --------d-1313-------------------------------
  8075. INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
  8076.     AH = 13h
  8077.     DL = drive ID (bit 7 set for hard disks)
  8078. Return: CF set on error
  8079.         AH = status (07h) (see #0140 at AH=01h)
  8080.     CF clear if successful
  8081.         AH = 00h
  8082.         BL = drive type (AT/PS2 floppies only) (see #0148)
  8083.         CH = low eight bits of maximum cylinder number
  8084.         CL = maximum sector number (bits 5-0)
  8085.          high two bits of maximum cylinder number (bits 7-6)
  8086.         DH = maximum head number
  8087.         DL = number of drives
  8088.         ES:DI -> drive parameter table (floppies only)
  8089. Notes:    the return values are identical to the standard INT 13/AH=08h, but the
  8090.       number of drives is not limited to 2, so
  8091.     scanning all possible drive numbers with the Read DASD Type call
  8092.       (AH=15h) should generally be preferred to determine the number of
  8093.       drives attached to the system.
  8094. SeeAlso: AH=08h,AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"
  8095. --------B-1314-------------------------------
  8096. INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
  8097.     AH = 14h
  8098. Return: CF set on error
  8099.     CF clear if successful
  8100.     AH = status code (see #0140 at AH=01h)
  8101.     AL = 00h
  8102. SeeAlso: AH=12h,AH=13h
  8103. --------B-1315-------------------------------
  8104. INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
  8105.     AH = 15h
  8106.     DL = drive number (bit 7 set for hard disk)
  8107. Return: CF clear if successful
  8108.         AH = type code
  8109.         00h no such drive
  8110.         01h floppy without change-line support
  8111.         02h floppy with change-line support
  8112.         03h hard disk
  8113.             CX:DX = number of 512-byte sectors
  8114.     CF set on error
  8115.         AH = status (see #0140 at AH=01h)
  8116. Note:    SyQuest can report type 01h or 02h for 'hard disks', since its media
  8117.       is removable
  8118. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
  8119. --------B-1316-------------------------------
  8120. INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
  8121.     AH = 16h
  8122.     DL = drive number (00h-7Fh)
  8123. Return: CF clear if change line inactive
  8124.         AH = 00h (disk not changed)
  8125.     CF set if change line active
  8126.         AH = status
  8127.         01h invalid command (SyQuest)
  8128.         06h change line active or not supported
  8129.         80h drive not ready or not present
  8130. Notes:    call AH=15h first to determine whether the drive supports a change
  8131.       line
  8132.     this call also clears the media-change status, so that a disk change
  8133.       is only reported once
  8134. SeeAlso: AH=15h,AH=49h
  8135. --------B-1317-------------------------------
  8136. INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
  8137.     AH = 17h
  8138.     AL = format type
  8139.         01h = 320/360K disk in 360K drive
  8140.         02h = 320/360K disk in 1.2M drive
  8141.         03h = 1.2M disk in 1.2M drive
  8142.         04h = 720K disk in 720K or 1.44M drive
  8143.     DL = drive number
  8144. Return: CF set on error
  8145.     CF clear if successful
  8146.     AH = status (see #0140 at AH=01h)
  8147. Note:    this function does not handle 1.44M drives; use AH=18h instead
  8148. SeeAlso: AH=15h,AH=18h
  8149. --------d-131700-----------------------------
  8150. INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
  8151.     AX = 1700h
  8152.     CL = length of buffer
  8153.     DL = hard drive ID
  8154.     ES:BX -> buffer for info (see #0149)
  8155. Return: CF clear if successful
  8156.         CH = number of bytes returned in buffer???
  8157.     CF set on error
  8158.         AH = status code (see #0140 at AH=01h)
  8159. Notes:    this function is not available with 8-bit controller ROM versions < 7.0
  8160.     information block bytes 5-n are vendor-specific in older SCSI devices
  8161.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  8162.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  8163. SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
  8164.  
  8165. Format of Future Domain SCSI inquiry information block:
  8166. Offset    Size    Description    (Table 0149)
  8167.  00h    BYTE    device type
  8168.         bits 0-4: peripheral device type (see #0150)
  8169.         bits 5-7: peripheral qualifier (see #0151)
  8170.  01h    BYTE    device type modifier
  8171.         bits 0-6: device type modifier
  8172.         bit 7: removable medium
  8173.  02h    BYTE    SCSI version (see #0152)
  8174.  03h    BYTE    data format/capabilities (see #0153)
  8175.  04h    BYTE    additional data length (total remaining bytes)
  8176.  05h  2 BYTEs    reserved
  8177.  07h    BYTE    device capabilities (see #0154)
  8178.  08h  8 BYTEs    vendor identification (space-padded ASCII)
  8179.  10h  8 BYTEs    product identification (space-padded ASCII)
  8180.  20h  4 BYTEs    product revision level (space-padded ASCII)
  8181.  24h 20 BYTEs    vendor specific
  8182.  38h 40 BYTEs    reserved
  8183.  60h    var    vendor specific parameters
  8184.  
  8185. (Table 0150)
  8186. Values for Future Domain SCSI peripheral device type:
  8187.  00h    direct-access device (e.g., magnetic disk)
  8188.  01h    sequential-access device (e.g., magnetic tape)
  8189.  02h    printer device
  8190.  03h    processor device
  8191.  04h    write-once device (e.g., some optical disks)
  8192.  05h    CD-ROM device
  8193.  06h    scanner device
  8194.  07h    optical memory device (e.g., some optical disks)
  8195.  08h    medium changer device (e.g., jukeboxes)
  8196.  09h    communications device
  8197.  0Ah    (defined by ASC IT8)
  8198.  0Bh    (defined by ASC IT8)
  8199.  0Ch-1Eh reserved
  8200.  1Fh    unknown or no device type
  8201.  
  8202. (Table 0151)
  8203. Values for Future Domain SCSI peripheral qualifier:
  8204.  000b    device is currently connected to this logical unit and available
  8205.  001b    target is capable of supporting the specified peripheral, but the
  8206.       physical device is not currently connected to this logical unit
  8207.  010b    reserved
  8208.  011b    target can't support a physical device on this logical unit
  8209.  1xxb    vendor specific
  8210.  
  8211. Bitfields for Future Domain SCSI version:
  8212. Bit(s)    Description    (Table 0152)
  8213.  0-2    ANSI-approved version
  8214.     000 device might or might not comply to ANSI standard
  8215.     001 device complies to ANSI SCSI-1
  8216.     010 device complies to ANSI SCSI-2
  8217.     other reserved
  8218.  3-5    ECMA version
  8219.  6-7    ISO version
  8220.  
  8221. Bitfields for Future Domain SCSI data format/capabilities:
  8222. Bit(s)    Description    (Table 0153)
  8223.  0-2    response data format
  8224.     000 information block is as specified in SCSI-1
  8225.     001 information block is as specified in CCS
  8226.     010 information block is as specified in SCSI-2
  8227.     other reserved
  8228.  4-5    reserved
  8229.  6    terminate I/O process supported
  8230.  7    asynchronous event notification supported
  8231.  
  8232. Bitfields for Future Domain SCSI device capabilities:
  8233. Bit(s)    Description    (Table 0154)
  8234.  0    device responds to RESET with a hard RESET
  8235.  1    tagged command queuing supported
  8236.  2    reserved
  8237.  3    linked commands supported
  8238.  4    synchronous data transfer supported
  8239.  5    16-transfers supported
  8240.  6    32-transfers supported
  8241.  7    relative addressing supported
  8242. --------B-1318-------------------------------
  8243. INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
  8244.     AH = 18h
  8245.     DL = drive number
  8246.     CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
  8247.     CL = sectors per track (bits 0-5)
  8248.          top 2 bits of highest cylinder number (bits 6,7)
  8249. Return: AH = status
  8250.         00h requested combination supported
  8251.         01h function not available
  8252.         0Ch not supported or drive type unknown
  8253.         80h there is no disk in the drive
  8254.     ES:DI -> 11-byte parameter table (see #0572 at INT 1E)
  8255. SeeAlso: AH=05h,AH=07h,AH=17h
  8256. --------d-1318-------------------------------
  8257. INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
  8258.     AH = 18h
  8259.     DL = hard drive ID
  8260. Return: CF set on error
  8261.         AH = status code (see #0140 at AH=01h)
  8262.     CF clear if successful
  8263.         AX = 4321h (magic number)
  8264.         CX = controller family code (see #0155)
  8265.         ---if family code=0200h
  8266.         DH = number of exclusively ROM-controlled SCSI devices
  8267.         DL = canonical SCSI device number for specified drive
  8268.         ---if family code <> 0200h
  8269.         BH = number of exclusively ROM-controlled SCSI devices
  8270.         BL = canonical SCSI device number for specified drive
  8271. Notes:    also sets an internal flag (non-resettable) which prevents some
  8272.       controller messages from being displayed, allows writes to
  8273.       removable devices (use caution!), and enables the INT 13 interface
  8274.       for more than one drive (i.e. DL >= 81h) in at least some ROM
  8275.       versions
  8276.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  8277.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  8278. SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
  8279.  
  8280. (Table 0155)
  8281. Values for Future Domain SCSI controller family code:
  8282.  0200h    TMC-1680/? (ROM 3.0)
  8283.  0203h    TMC-1650/1660/1670/1680 (ROM 2.0)
  8284.  040Ah    TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
  8285.  050Dh    TMC-840/841/880/881 (ROM 5.2D)
  8286.  0700h    TMC-830/850/860/875/885 (ROM 7.0)
  8287. --------B-1318--CXD2C9-----------------------
  8288. INT 13 - XDF.COM - API
  8289.     AH = 18h
  8290.     CX = D2C9h ("R"+80h, "I"+80h = Roger Ivey)
  8291.     DX = 0
  8292.     BX = function
  8293.         0000h installation check
  8294.           Return: AH =     0Ch
  8295.               CX = 7269h ("ri" = Roger Ivey)
  8296.               ES = segment of driver
  8297.               CF set
  8298.         2F64h ("/d") disable the driver
  8299.           Return: AH =     0Ch
  8300.               ES:BX = pointer to activation flag (it is set to 0:
  8301.                   set it to 1 to enable the driver again)
  8302.               CX = 7269h
  8303.               CF set
  8304.         2F75h ("/u") unload the driver (restore interrupts & free memory)
  8305.           Return: AH =     0Ch
  8306.               DL =     55h ("U") if successful
  8307.                  =      0h       if fails
  8308.               CX = 7269h
  8309.               ES = segment of driver
  8310.               CF set
  8311.               AL, BX, DH, and DI destroyed
  8312. Program: XDF is a TSR provided with PC-DOS 7.0 to support XDF 1.84M disks,
  8313.       developed by Roger D. Ivey
  8314. Note:    After disabling or enabling the driver, a disk change must be performed
  8315.       or simulated to reset the driver.
  8316. --------B-1319-------------------------------
  8317. INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
  8318.     AH = 19h
  8319.     DL = drive
  8320. Return: CF set on error
  8321.     CF clear if successful
  8322.     AH = status (see #0140 at AH=01h)
  8323. SeeAlso: AH=11h
  8324. --------d-1319-------------------------------
  8325. INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
  8326.     AH = 19h
  8327.     DL = hard drive ID
  8328. Return: CF set on error
  8329.         AH = status code (see #0140 at AH=01h)
  8330.     CF clear if successful
  8331.         AH = disk type (03h = fixed disk)
  8332.         CX:DX = number of 512-byte sectors
  8333. Notes:    sends SCSI Read Capacity command to get number of logical blocks and
  8334.       adjusts the result for 512-byte sectors
  8335.     displays either "Error in Read Capacity Command" or "nnn Bytes per
  8336.       sector" (nnn=256 or 512, the only sizes supported in the translation
  8337.       code)
  8338.     should probably be called when a removable device has its media changed
  8339.     returns the same values as AH=15h
  8340.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  8341.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  8342. SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
  8343. --------d-131A-------------------------------
  8344. INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
  8345.     AH = 1Ah
  8346.     AL = defect table entry count
  8347.     CL = format modifiers (see #0156)
  8348.     DL = drive (80h,81h)
  8349.     ES:BX -> defect table (see #0157), ignored if AL=00h
  8350. Return: CF set on error
  8351.     CF clear if successful
  8352.     AH = status (see #0140 at AH=01h)
  8353. Note:    if periodic interrupt selected, INT 15/AH=0Fh is called after each
  8354.       cylinder is formatted
  8355. SeeAlso: AH=07h,INT 15/AH=0Fh
  8356.  
  8357. Bitfields for ESDI format modifiers:
  8358. Bit(s)    Description    (Table 0156)
  8359.  4    generate periodic interrupt
  8360.  3    perform surface analysis
  8361.  2    update secondary defect map
  8362.  1    ignore secondary defect map
  8363.  0    ignore primary defect map
  8364.  
  8365. Format of defect table entry [array]:
  8366. Offset    Size    Description    (Table 0157)
  8367.  00h  3 BYTEs    relative sector address (little-endian)
  8368.  03h    BYTE    flags and defect count
  8369.         bit 7: last logical sector on track
  8370.         bit 6: first logical sector on track
  8371.         bit 5: last logical sector on cylinder
  8372.         bit 4: logical sectors are pushed onto next track
  8373.         bits 3-0: number of defects pushed from previous cylinder
  8374. --------d-131A-------------------------------
  8375. INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
  8376.     AH = 1Ah
  8377.     CH = track (bits 8,9 in high bits of CL)
  8378.     CL = sector (01h to number of sectors/track for drive)
  8379.     DH = head
  8380.     DL = hard drive ID
  8381. Return: CF set on error
  8382.     AH = status code (see #0140 at AH=01h)
  8383.     CX:DX = logical block number of last quickly-accessible block after
  8384.         given block
  8385. Notes:    sends SCSI Read Capacity command with the PMI bit set to obtain the
  8386.       logical block address of the last block after which a substantial
  8387.       delay in data transfer will be encountered (usually the last block
  8388.       on the current cylinder).  No translation to 512 byte sectors is
  8389.       performed on the result if data is stored on the disk in other than
  8390.       512 byte sectors.
  8391.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  8392.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  8393. SeeAlso: AH=15h,AH=19h"SCSI"
  8394. --------d-131B-------------------------------
  8395. INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
  8396.     AH = 1Bh
  8397.     AL = number of sectors to read
  8398.     DL = drive
  8399.     ES:BX -> buffer for manufacturing header (defect list)
  8400. Return: CF set on error
  8401.     CF clear if successful
  8402.     AH = status
  8403. Note:    manufacturing header format (Defect Map Record format) can be found
  8404.       in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
  8405.     the first sector read contains the manufacturing header with the number
  8406.       of defect entries and the beginning of the defect map; the remaining
  8407.       sectors contain the remainder of the defect map
  8408. --------d-131B-------------------------------
  8409. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
  8410.     AH = 1Bh
  8411.     DL = hard drive ID
  8412. Return: CF set on error
  8413.         AH = status code (see #0140 at AH=01h)
  8414.     CF clear if successful
  8415.         ES:BX -> SCSI disk information block (see #0158)
  8416. Notes:    also sets a non-resettable flag which prevents some controller messages
  8417.       from being displayed
  8418.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  8419.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  8420. SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
  8421.  
  8422. Format of Future Domain SCSI disk information block:
  8423. Offset    Size    Description    (Table 0158)
  8424.  00h    BYTE    drive physical information (see #0159)
  8425.  01h    WORD    translated number of cylinders
  8426.  03h    BYTE    translated number of heads
  8427.  04h    BYTE    translated number of sectors per track (17, 34, or 63)
  8428.  05h    BYTE    drive address
  8429.         bits 0-2: logical unit number
  8430.         bits 3-5: device number
  8431.  06h    BYTE    01h at initialization
  8432.  07h    BYTE    sense code byte 00h, or extended sense code byte 0Ch
  8433.  08h    BYTE    00h
  8434.  09h    BYTE    00h or extended sense code byte 02h (sense key)
  8435.  0Ah    BYTE    00h
  8436.  0Bh 10 BYTEs    copy of Command Descriptor Block (CDB)
  8437.  15h    DWORD    translated number of sectors on device
  8438.  
  8439. Bitfields for Future Domain SCSI device physical information:
  8440. Bit(s)    Description    (Table 0159)
  8441.  0    ???
  8442.  1    device uses parity
  8443.  2    256 bytes per sector instead of 512
  8444.  3    don't have capacity yet???
  8445.  4    disk is removable
  8446.  5    logical unit number is not present
  8447. --------d-131C-------------------------------
  8448. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
  8449.     AH = 1Ch
  8450.     DL = hard drive ID (any valid SCSI hard disk)
  8451. Return: CF set on error
  8452.         AH = status code (see #0140 at AH=01h)
  8453.     CF clear if successful
  8454.         ES:BX -> first byte of free RAM on controller
  8455. Notes:    the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
  8456.       to 1BFFh on-board the controller for storing drive information and
  8457.       controller status; ES:BX points to the first byte available for other
  8458.       uses
  8459.     ES contains the segment at which the controller resides; the
  8460.       controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
  8461. SeeAlso: AH=1Bh"SCSI"
  8462. --------d-131C-------------------------------
  8463. INT 13 U - ESDI FIXED DISK - ???
  8464.     AH = 1Ch
  8465.     AL = subfunction (01h-06h)
  8466.     DL = drive (80h,81h)
  8467.     ???
  8468. Return: ???
  8469. Note:    these functions perform a controller command 0612h without DMA
  8470. --------d-131C08-----------------------------
  8471. INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
  8472.     AX = 1C08h
  8473.     DL = drive (80h,81h)
  8474.     ES:BX -> buffer for Command Complete Status Block (see #0160)
  8475. Return: CF set on error
  8476.     CF clear if successful
  8477.     AH = status (see #0140 at AH=01h)
  8478. SeeAlso: AX=1C09h,AX=1C0Ah
  8479.  
  8480. Format of ESDI Command Complete Status Block:
  8481. Offset    Size    Description    (Table 0160)
  8482.  00h    BYTE    07h
  8483.  01h    BYTE    size of block in words (07h)
  8484.  02h    BYTE    command error code (see #0161)
  8485.  03h    BYTE    command status code (see #0162)
  8486.  04h    BYTE    device error code, group 1 (see #0163)
  8487.  05h    BYTE    device error flags, group 2 (see #0164)
  8488.  06h    WORD    number of unprocessed sectors due to abnormal termination
  8489.  08h    DWORD    last Relative Sector Address processed by command
  8490.  0Ch    WORD    number of sectors corrected by ECC codes
  8491.  
  8492. (Table 0161)
  8493. Values for ESDI command error code:
  8494.  00h    successful
  8495.  01h    parameter invalid
  8496.  02h    unknown function
  8497.  03h    unsupported command
  8498.  04h    command cancelled
  8499.  05h    unknown function
  8500.  06h    controller diagnostics failed
  8501.  07h    formatting failed
  8502.  08h    format error in primary map
  8503.  09h    format error in secondary map
  8504.  0Ah    diagnostic failure during formatting
  8505.  0Bh    warning: secondary map too large during formatting
  8506.  0Ch    warning: non-zero defect
  8507.  0Dh    system checksum error during formatting
  8508.  0Eh    warning: incompatible device
  8509.  0Fh    warning: push table overflowed
  8510.  10h    warning: more than 15 sectors pushed to next cylinder
  8511.  11h    internal hardware error
  8512.  12h    warning: errors found while verifying sectors
  8513.  13h    invalid device
  8514.  FFh    device error
  8515.  
  8516. (Table 0162)
  8517. Values for ESDI command status code:
  8518.  01h    successful
  8519.  03h    successful after ECC
  8520.  05h    successful after retries
  8521.  06h    format partially completed
  8522.  07h    successful after ECC and retries
  8523.  08h    command completed with warning (see #0161)
  8524.  09h    abort complete
  8525.  0Ah    reset complete
  8526.  0Bh    data transfer ready (no status block)
  8527.  0Ch    command completed with failure (see #0163,#0164)
  8528.  0Dh    DMA error
  8529.  0Eh    command block error (see #0161)
  8530.  0Fh    bad attention code
  8531.  
  8532. (Table 0163)
  8533. Values for ESDI device error code, group 1:
  8534.  00h    successful
  8535.  01h    seek fault detected by device
  8536.  02h    interface fault
  8537.  03h    sector ID not found
  8538.  04h    disk not formatted
  8539.  05h    unrecoverable ECC error
  8540.  06h    ECC error in sector ID
  8541.  07h    invalid relative sector address
  8542.  08h    timeout
  8543.  09h    sector defective
  8544.  0Ah    disk changed (removable media)
  8545.  0Bh    selection error
  8546.  0Ch    write protected (removable media)
  8547.  0Dh    write fault
  8548.  0Eh    read fault
  8549.  0Fh    no index or sector pulse
  8550.  10h    device not ready
  8551.  11h    seek error detected by adapter
  8552.  12h    bad format
  8553.  13h    volume overflow
  8554.  14h    data address mark not found
  8555.  15h    sector ID not found
  8556.  16h    missing device configuration data
  8557.  17h    first/last relative sector flags missing
  8558.  18h    track empty
  8559.  81h    timeout while waiting for stop
  8560.  82h    timeout while waiting for end of data transfer
  8561.  84h    stopped awaiting data transfer during formatting
  8562.  85h    timeout while waiting for head switch
  8563.  86h    timeout while awaiting DMA completion
  8564.  
  8565. Bitfields for ESDI device error flags, group 2:
  8566. Bit(s)    Description    (Table 0164)
  8567.  7-5    unused
  8568.  4    ready
  8569.  3    selected
  8570.  2    write fault
  8571.  1    on track 0
  8572.  0    seek/command complete
  8573. --------d-131C09-----------------------------
  8574. INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
  8575.     AX = 1C09h
  8576.     DL = drive (80h,81h)
  8577.     ES:BX -> buffer for Device Status Block (see #0165)
  8578. Return: CF set on error
  8579.     CF clear if successful
  8580.     AH = status (see #0140 at AH=01h)
  8581. SeeAlso: AX=1C08h,AX=1C0Ah
  8582.  
  8583. Format of ESDI Device Status Block:
  8584. Offset    Size    Description    (Table 0165)
  8585.  00h    BYTE    08h
  8586.  01h    BYTE    number of words in block (09h)
  8587.  02h    BYTE    error flags
  8588.  03h    BYTE    unused
  8589.  04h    BYTE    command error code (see #0161)
  8590.  05h    BYTE    command status code (see #0162)
  8591.  06h    WORD    ESDI standard status
  8592.  08h  5 WORDs    ESDI vendor-specific status codes
  8593. --------d-131C0A-----------------------------
  8594. INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
  8595.     AX = 1C0Ah
  8596.     DL = drive (80h,81h)
  8597.     ES:BX -> buffer for Drive Configuration Status Block (see #0166)
  8598. Return: CF set on error
  8599.     CF clear if successful
  8600.     AH = status (see #0140 at AH=01h)
  8601. Note:    device configuration format can be found in IBM ESDI Fixed Disk Drive
  8602.       Adapter/A Technical Reference
  8603. SeeAlso: AX=1C08h,AX=1C0Bh,AX=1C0Ch
  8604.  
  8605. Format of ESDI Drive Configuration Status Block:
  8606. Offset    Size    Description    (Table 0166)
  8607.  00h    BYTE    09h
  8608.  01h    BYTE    number of words in block (06h)
  8609.  02h    BYTE    flags
  8610.  03h    BYTE    number of spare sectors per cylinder
  8611.  04h    DWORD    total number of usable sectors
  8612.  08h    WORD    total number of cylinders
  8613.  0Ah    BYTE    tracks per cylinder
  8614.  0Bh    BYTE    sectors per track
  8615. --------d-131C0B-----------------------------
  8616. INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
  8617.     AX = 1C0Bh
  8618.     ES:BX -> buffer for Controller Configuration Status Block (see #0167)
  8619. Return: CF set on error
  8620.     CF clear if successful
  8621.     AH = status (see #0140 at AH=01h)
  8622. SeeAlso: AX=1C0Ch
  8623.  
  8624. Format of ESDI Controller Configuration Status Block:
  8625. Offset    Size    Description    (Table 0167)
  8626.  00h    BYTE    E9h
  8627.  01h    BYTE    number of words in block (06h)
  8628.  02h    WORD    unused (0000h)
  8629.  04h    DWORD    controller microcode revision level
  8630.  08h  2 WORDs    unused (0000h)
  8631. --------d-131C0C-----------------------------
  8632. INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
  8633.     AX = 1C0Ch
  8634.     ES:BX -> buffer for POS Information Status Block (see #0168)
  8635. Return: CF set on error
  8636.     CF clear if successful
  8637.     AH = status (see #0140 at AH=01h)
  8638. SeeAlso: AX=1C0Bh
  8639.  
  8640. Format of ESDI POS Information Status Block:
  8641. Offset    Size    Description    (Table 0168)
  8642.  00h    BYTE    EAh
  8643.  01h    BYTE    number of words in block (05h)
  8644.  02h    WORD    magic value FFDDh
  8645.  04h    BYTE    POS register 3
  8646.  05h    BYTE    POS register 2
  8647.  06h    BYTE    POS register 5 (unused, FFh)
  8648.  07h    BYTE    POS register 4 (unused, FFh)
  8649.  08h    BYTE    POS register 7 (unused, FFh)
  8650.  09h    BYTE    POS register 6 (unused, FFh)
  8651. --------d-131C0D-----------------------------
  8652. INT 13 U - ESDI FIXED DISK - ???
  8653.     AX = 1C0Dh
  8654.     DL = drive (80h,81h)
  8655.     ???
  8656. Return: ???
  8657. Note:    invokes controller command 0614h without DMA
  8658. SeeAlso: AH=1Ch"ESDI",AX=1C0Fh
  8659. --------d-131C0E-----------------------------
  8660. INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
  8661.     AX = 1C0Eh
  8662.     CH = low 8 bits of cylinder number
  8663.     CL = sector number, high two bits of cylinder number in bits 6 and 7
  8664.     DH = head number
  8665.     DL = drive number (80h,81h)
  8666.     ES:BX -> ABA number
  8667. Return: CF set on error
  8668.     CF clear if successful
  8669.     AH = status (see #0140 at AH=01h)
  8670. Note:    ABA (absolute block address) format can be found in IBM ESDI Adapter
  8671.       Technical Reference by using its Device Configuration Status Block
  8672. --------d-131C0F-----------------------------
  8673. INT 13 U - ESDI FIXED DISK - ???
  8674.     AX = 1C0Fh
  8675.     DL = drive (80h,81h)
  8676.     ???
  8677. Return: ???
  8678. Note:    invokes controller command 0614h without DMA
  8679. SeeAlso: AH=1Ch"ESDI",AX=1C0Dh,AX=1C12h
  8680. --------d-131C12-----------------------------
  8681. INT 13 U - ESDI FIXED DISK - ???
  8682.     AX = 1C12h
  8683.     DL = drive (80h,81h)
  8684.     ???
  8685. Return: ???
  8686. Note:    invokes controller command 0612h without DMA
  8687. SeeAlso: AH=1Ch"ESDI",AX=1C0Fh
  8688. --------c-131D-------------------------------
  8689. INT 13 - IBMCACHE.SYS - CACHE STATUS
  8690.     AH = 1Dh
  8691.     AL = subfunction
  8692.         01h get status record
  8693.         DL = drive???
  8694.         Return: ES:BX -> status record (see #0169)
  8695.             CF set on error
  8696.                 AH = error code
  8697.         02h set cache status
  8698.         ES:BX -> status record (see #0169)
  8699.         DL = drive???
  8700.         Return: CF set on error
  8701.  
  8702. Format of IBMCACHE.SYS status record:
  8703. Offset    Size    Description    (Table 0169)
  8704.  00h    DWORD    total number of read requests
  8705.  04h    DWORD    total number of hits
  8706.  08h    DWORD    number of physical disk reads
  8707.  0Ch    DWORD    total number of sectors requested by physical disk reads
  8708.  10h  6 BYTEs    ???
  8709.  16h    DWORD    pointer to start of error list (see #0170)
  8710.  1Ah    DWORD    pointer to end of error list
  8711.  1Eh    WORD    ???
  8712.  20h    BYTE    using extended memory if nonzero
  8713.  21h    BYTE    ???
  8714.  22h  4 BYTEs    ASCII version number
  8715.  26h    WORD    cache size in KB
  8716.  28h    WORD    sectors per page
  8717.  
  8718. Format of IBMCACHE.SYS error list:
  8719. Offset    Size    Description    (Table 0170)
  8720.  00h    DWORD    relative block address of bad page
  8721.  04h    BYTE    drive
  8722.  05h    BYTE    sector bit-map
  8723.  06h    WORD    next error
  8724. --------d-131F-------------------------------
  8725. INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
  8726.     AH = 1Fh
  8727.     AL = subfunction
  8728.         00h allow media removal
  8729.         01h prevent media removal (lock door)
  8730.     DL = drive ID (bit 7 set for hard disks)
  8731. Return:    CF clear if successful
  8732.         AH = 00h
  8733.     CF set on error
  8734.         AH = error code
  8735.         00h successful
  8736.         01h invalid function request
  8737.         80h timeout
  8738.         DDh media change requested
  8739. SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=59h"SyQuest"
  8740. --------d-1320-------------------------------
  8741. INT 13 - DISK - ??? (Western Digital "Super BIOS")
  8742.     AH = 20h
  8743.     ???
  8744. Return: ???
  8745. Notes:    returns some kind of status related to whether the drive contains its
  8746.       default media type
  8747.     QEMM v6.00 calls INT 13/AX=2000h/DL=81h in some cases
  8748. --------b-1320-------------------------------
  8749. INT 13 U - Compaq DESKPRO/i - GET CURRENT MEDIA FORMAT
  8750.     AH = 20h
  8751.     DL = drive number (00h,01h)
  8752. Return: CF clear if successful
  8753.         AL = media type (see #0171)
  8754.     CF set on error
  8755.         AH = error code
  8756.         31h no such drive
  8757.         32h incorrect drive type stored in CMOS
  8758. Note:    this function is supported by the 3/8/93 ROM BIOS, but only partially
  8759.       (AL is always 00h when successful) by the 8/3/93 version
  8760.  
  8761. (Table 0171)
  8762. Values for Compaq diskette media type:
  8763.  03h    720K
  8764.  04h    1.44M
  8765.  06h    2.88M
  8766.  0Ch    360K
  8767.  0Dh    1.2M
  8768.  0Eh    ???
  8769.  0Fh    ??? (1024-byte sectors)
  8770. --------c-1320-------------------------------
  8771. INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
  8772.     AH = 20h
  8773.     AL = drive (00h = A:, etc. or 7Fh for all removable drives???
  8774.                    or FFh for all drives)
  8775. Return: AX = status (0000h successful)
  8776. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  8777.       Associates, Inc.
  8778. Desc:    flush any dirty buffers for the specified drive(s) and then discard
  8779.       those sector buffers
  8780. SeeAlso: AH=21h"QUICKCACHE",AH=22h"QUICKCACHE",AH=28h
  8781. --------d-1321-------------------------------
  8782. INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
  8783.     AH = 21h
  8784.     AL = number of sectors to write
  8785.     CH = low byte of 12-bit cylinder number
  8786.     CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
  8787.     DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
  8788.     DL = drive number (80h,81h)
  8789.     ES:BX -> buffer for data to be read
  8790. Return: CF clear if successful
  8791.         ES:BX buffer filled
  8792.     CF set on error
  8793.     AH = status (see #0140 at AH=01h)
  8794. Desc:    read from the disk using the Multiple Block mode available on newer
  8795.       IDE drives and some hard disk controllers, which generates an
  8796.       interrupt only after the end of transferring a group of sectors
  8797.       rather than after each sector
  8798. Notes:    must call AH=24h"PS/1" before using this function
  8799.     input values in CL and DH are not range-checked
  8800.     the byte at address 0040h:0074h is set to the status of the operation
  8801. SeeAlso: AH=02h,AH=22h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
  8802. --------c-1321-------------------------------
  8803. INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
  8804.     AH = 21h
  8805. Return: AX = status (0000h successful)
  8806. Desc:    immediately write all dirty sectors back to disk
  8807. SeeAlso: AH=25h"QUICKCACHE",AH=2Eh,AH=2Fh
  8808. --------d-1322-------------------------------
  8809. INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
  8810.     AH = 22h
  8811.     AL = number of sectors to write
  8812.     CH = low byte of 12-bit cylinder number
  8813.     CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
  8814.     DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
  8815.     DL = drive number (80h,81h)
  8816.     ES:BX -> buffer containing data to be written
  8817. Return: CF clear if successful
  8818.     CF set on error
  8819.     AH = status (see #0140 at AH=01h)
  8820. Desc:    write to the disk using the Multiple Block mode available on newer
  8821.       IDE drives and some hard disk controllers, which generates an
  8822.       interrupt only after the end of transferring a group of sectors
  8823.       rather than after each sector
  8824. Notes:    must call AH=24h"PS/1" before using this function
  8825.     input values in CL and DH are not range-checked
  8826.     the byte at address 0040h:0074h is set to the status of the operation
  8827. SeeAlso: AH=03h,AH=21h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
  8828. --------c-1322-------------------------------
  8829. INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
  8830.     AH = 22h
  8831.     AL = new state (00h disabled, 01h enabled)
  8832. Return: AX = status (0000h successful)
  8833. Note:    enables/disables caching of all drives
  8834. SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
  8835. --------d-1323-------------------------------
  8836. INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
  8837.     AH = 23h
  8838.     AL = feature number (see #0172)
  8839.     DL = drive number (80h,81h)
  8840.     ???
  8841. Return: CF clear if successful
  8842.     CF set on error
  8843.     AH = status (see #0140 at AH=01h)
  8844. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=24h"PS/1",AH=25h"PS/1"
  8845.  
  8846. (Table 0172)
  8847. Values for PS/1 hard disk feature number:
  8848.  01h    select 8-bit data transfers instead of 16-bit
  8849.  02h    enable write cache
  8850.  22h    Write Same, user-specified area
  8851.  33h    disable retries
  8852.  44h    set number of ECC bytes for read long/write long (see AH=0Ah,AH=0Bh)
  8853.  54h    set cache segments
  8854.  55h    disable lookahead
  8855.  66h    disable reverting to power-on defaults
  8856.  77h    disable error correctioni
  8857.  81h    select 16-bit data transfers (default)
  8858.  82h    disable write cache
  8859.  88h    enable error correction (default)
  8860.  99h    enable retries (default)
  8861.  AAh    enable lookahead
  8862.  BBh    set ECC length for read long/write long to four bytes
  8863.  CCh    enable reverting to power-on defaults
  8864.  DDh    Write Same, entire disk
  8865. --------c-1323-------------------------------
  8866. INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
  8867.     AH = 23h
  8868. Return: AX = status (0000h successful)
  8869.     ES = segment of ??? data
  8870. --------d-1324-------------------------------
  8871. INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
  8872.     AH = 24h
  8873.     AL = number of sectors per block (2,4,8,16)
  8874.     DL = drive number (80h,81h)
  8875. Return: CF clear if successful
  8876.     CF set onerror
  8877.     AH = status (see #0140 at AH=01h)
  8878. Desc:    specify how many sectors the controller should transfer as a group
  8879.       between operation-complete interrupts when using the Read Multiple
  8880.       and Write Multiple functions (AH=21h,AH=22h)
  8881. Notes:    set the number of sectors to 0 to disable multiple-transfer mode
  8882.     the maximum value for the block size depends on the fixed disk
  8883.       drive type.  The value is stored in byte 15h of the fixed disk
  8884.       drive parameter table that is created by POST.
  8885.     the byte at address 0040h:0074h is set to status of operation.
  8886. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=23h"PS/1",AH=25h"PS/1"
  8887. --------c-1324-------------------------------
  8888. INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
  8889.     AH = 24h
  8890.     BX = new number of sector buffers in cache
  8891. Return: AX = status
  8892.         0000h successful
  8893.         0001h failed--size adjusted
  8894.         8000h cache cannot be resized while enabled
  8895. SeeAlso: AH=36h
  8896. --------d-1325-------------------------------
  8897. INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
  8898.     AH = 25h
  8899.     DL = drive number (80h,81h)
  8900.     ES:BX-> 512 byte buffer for reply packet
  8901. Return:    CF clear if successful
  8902.     CF set on error
  8903.     AH = status (see #0140 at AH=01h)
  8904.     buffer filled with ATA/IDE-style drive information block (see #0173)
  8905. Desc:    retrieves the 256 words of drive data stored on an IDE hard disk
  8906. Note:    the byte at address 0040h:0074h is set to the status of the operation
  8907. SeeAlso: AH=23h"PS/1"
  8908.  
  8909. Format of drive information block:
  8910. Offset    Size    Description    (Table 0173)
  8911.  00h    WORD    general drive configuration (see #0174)
  8912.  02h    WORD    number of cylinders
  8913.  04h    WORD    reserved
  8914.  06h    WORD    number of heads
  8915.  08h    WORD    number of unformatted bytes per track
  8916.  0Ah    WORD    number of unformatted bytes per sector
  8917.  0Ch    WORD    number of sectors per track
  8918.  0Eh  6 BYTEs    vendor unique
  8919.  14h 20 BYTEs    serial number in ASCII, 0000h=not specified)
  8920.  28h    WORD    buffer type
  8921.  2Ah    WORD    buffer size in 512 byte increments (0000h=not specified)
  8922.  2Ch    WORD    number of ECC bytes passed on Read/Write Long cmds
  8923.         0000h = not specified
  8924.  2Eh  8 BYTEs    firmware revision in ASCII, 0000h=not specified
  8925.  36h 40 BYTEs    model number in ASCII, 0000h=not specified
  8926.  5Eh    WORD    bits 15-8  Vendor Unique
  8927.         bits 7-0  00h = Read/Write Multiple commands not implemented
  8928.               xxh = Maximum number of sectors that can be
  8929.               transferred per interrupt on Read and Write
  8930.               Multiple commands
  8931.  60h    WORD    0000h = cannot perform doubleword I/O
  8932.         0001h = can perform doubleword I/O
  8933.  62h    WORD    capabilities
  8934.         bit 15-9  0=reserved
  8935.         bit 8  1=DMA Supported
  8936.         bit 7-0     Vendor Unique
  8937.  64h    WORD    reserved
  8938.  66h    WORD    bits 15-8 PIO data transfer cycle timing mode
  8939.         bits 7-0  Vendor Unique
  8940.  68h    WORD    bits 15-8 DMA data transfer cycle timing mode
  8941.         bits 7-0  Vendor Unique
  8942.  6Ah    WORD    bits 15-1 reserved
  8943.         bit 0    1=the fields reported in tranlation mode are valid
  8944.             0=the fields reported in translation mode may be valid
  8945.  6Ch    WORD    number of current cylinders
  8946.  6Eh    WORD    number of current heads
  8947.  70h    WORD    number of current sectors per track
  8948.  72h    DWORD    current capacity in sectors
  8949.  76h    WORD    reserved
  8950.  78h 136 BYTEs    not defined by ATA spec 2.6
  8951. 100h 64 BYTEs    vendor unique
  8952. 140h 96 BYTEs    reserved
  8953. Note:    the above description is as in the ATA (AT Attachment) Specification.
  8954.  
  8955. Bitfields for general drive configuration:
  8956. Bit(s)    Description    (Table 0174)
  8957.  15    0   reserved for non-magnetic drives
  8958.  14    format speed tolerance gap required
  8959.  13    track offset option available
  8960.  12    data strobe offset option available
  8961.  11    rotational speed tolerance is > 0.5%
  8962.  10    disk transfer rate > 10 Mbs
  8963.  9    disk transfer rate > 5Mbs but <= 10Mbs
  8964.  8    disk transfer rate <= 5Mbs
  8965.  7    removable cartridge drive
  8966.  6    fixed drive
  8967.  5    spindle motor control option implemented
  8968.  4    head switch time > 15 usec
  8969.  3    not MFM encoded
  8970.  2    soft sectored
  8971.  1    hard sectored
  8972.  0    reserved (0)
  8973. --------c-1325-------------------------------
  8974. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
  8975.     AH = 25h
  8976.     BX = interval
  8977. Return: AX = status (0000h successful)
  8978. Desc:    specify how often the cache should write dirty buffers to disk when
  8979.       buffered writes are enabled
  8980. SeeAlso: AH=21h"QUICKCACHE",AH=2Ch,AH=2Eh
  8981. --------c-1326-------------------------------
  8982. INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
  8983.     AH = 26h
  8984. Return: AX = status
  8985.         0000h successful
  8986.         0001h-00FFh interrupt vector which was hooked by another TSR
  8987. SeeAlso: AH=27h
  8988. --------c-1327--BX0000-----------------------
  8989. INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
  8990.     AH = 27h
  8991.     BX = 0000h
  8992. Return: AX = 0000h if installed
  8993.     BX nonzero if installed
  8994.         BH = major version
  8995.         BL = binary minor version
  8996. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  8997.       Associates, Inc.
  8998. SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
  8999. --------c-1328-------------------------------
  9000. INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
  9001.     AH = 28h
  9002.     AL = new state (00h disabled, 01h enabled)
  9003. Return: AX = status (0000h successful)
  9004. SeeAlso: AH=20h"QUICKCACHE"
  9005. --------c-1329-------------------------------
  9006. INT 13 U - QUICKCACHE II v4.20 - NOP
  9007.     AH = 29h
  9008. Return: AX = 0000h
  9009. --------c-132A-------------------------------
  9010. INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
  9011.     AH = 2Ah
  9012.     AL = buffer size (1-30)
  9013. Return: AX = status (0000h successful)
  9014. Desc:    specify the number of cache sector buffers to dedicate to buffered read
  9015.       and write operations
  9016. SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
  9017. --------c-132B-------------------------------
  9018. INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
  9019.     AH = 2Bh
  9020.     AL = new state (00h disabled, 01h enabled)
  9021. Return: AX = status (0000h successful)
  9022. --------c-132C-------------------------------
  9023. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
  9024.     AH = 2Ch
  9025.     AL = new state (00h disabled, 01h enabled)
  9026. Return: AX = status (0000h successful)
  9027. Desc:    specify whether the cache should delay disk writes
  9028. Note:    this function enables or disables delayed writes for all drives; use
  9029.       AH=38h to change a single drive
  9030. SeeAlso: AH=25h"QUICKCACHE",AH=2Dh,AH=2Eh,AH=38h
  9031. --------c-132D-------------------------------
  9032. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
  9033.     AH = 2Dh
  9034.     AL = new state (00h disabled, 01h enabled)
  9035. Return: AX = status (0000h successful)
  9036. Desc:    specify whether the cache should attempt to read ahead of actual
  9037.       requests
  9038. Note:    this function enables or disables read-ahead for all drives; use AH=37h
  9039.       to change a single drive
  9040. SeeAlso: AH=2Ch,AH=37h
  9041. --------c-132E-------------------------------
  9042. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
  9043.     AH = 2Eh
  9044.     BX = flush count
  9045. Return: AX = status (0000h successful)
  9046. Desc:    specify how many dirty sectors the cache should write after each flush
  9047.       interval (see AH=25h"QUICKCACHE") when buffered writes are enabled
  9048. SeeAlso: AH=21h"QUICKCACHE",AH=25h"QUICKCACHE",AH=2Ch
  9049. --------c-132F-------------------------------
  9050. INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
  9051.     AH = 2Fh
  9052. Return: AX = status (0000h successful)
  9053. Desc:    immediately flush up to "flushcount" dirty sectors to disk as if the
  9054.       flush interval had expired
  9055. SeeAlso: AH=21h"QUICKCACHE"
  9056. --------!---Section--------------------------
  9057.