home *** CD-ROM | disk | FTP | other *** search
/ Power CD-ROM!! 7 / POWERCD7.ISO / prgmming / inter43 / interrup.a < prev    next >
Text File  |  1994-11-06  |  362KB  |  9,287 lines

  1. Interrupt List        Release 43            Last change 11/6/94
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  3. --------!---FILELIST-------------------------
  4. Please redistribute the following files unmodified as a group, in a trio of
  5. archives named INTER43A through INTER43C (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      \
  9.     INTERRUP.B    INT 14 through INT 15/7F   \
  10.     INTERRUP.C    INT 15/80 through INT 1F    \  
  11.     INTERRUP.D    INT 20 through INT 21/44     \     total 1620 pages at
  12.     INTERRUP.E    INT 21/45 through INT 21/BF   \     60 lines per page,
  13.     INTERRUP.F    INT 21/C0 through INT 2D       > 1726 with INTPRINT -p
  14.     INTERRUP.G    INT 2E through INT 2F/7F      /     (6565 entries)
  15.     INTERRUP.H    INT 2F/80 through INT 2F/FF  /     (2431 tables)
  16.     INTERRUP.I    INT 30 through INT 60        /
  17.     INTERRUP.J    INT 61 through INT 67       /
  18.     INTERRUP.K    INT 68 through INT 7E      /
  19.     INTERRUP.L    INT 7F through INT FF     /
  20.     INTERRUP.PRI    a brief introduction to interrupts
  21.     INTPRINT.COM    a simple formatter that also generates a list summary
  22.     INTPRINT.DOC    instructions for INTPRINT
  23.     OVERVIEW.LST    brief listing of major uses of each interrupt
  24.     86BUGS.LST    a listing of CPU bugs and undocumented features
  25.     CMOS.LST    a description of the CMOS RAM data bytes
  26.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  27.     MEMORY.LST    format of the BIOS data area
  28.     OPCODES.LST    a listing of recent and undocumented CPU instructions
  29.     PORTS.LST    a listing of I/O ports
  30.     CATEGORY.KEY    descriptions of divider-line category letters
  31.     COMBINE.BAT    combine the pieces of the list into a single file
  32. The following files should be distributed in an archive called INTER43D:
  33.     INT.*        invoke interrupts from commandline
  34.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  35.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  36.     INT2QH.*    program to convert list into QuickHelp database
  37.     INT2WHLP.*    convert list into Windows Help database
  38.     INTERVUE.EXE    indexed interrupt list browser
  39.     INTHELP.*    convert list into TurboPower GUIDE database
  40.     INTLIST.E    Epsilon extension for handling list
  41.     INTLIST.ICO    Windows icon for INTERVUE
  42.     INTPRINT.C    source code for INTPRINT
  43.     RB2NG.*        convert list into Norton Guides database
  44. --------!---CONTACT_INFO---------------------
  45. If you notice any mistakes or omissions, please let me know!  It is only with
  46. YOUR help that the list can continue to grow at the current rate.  Please send
  47. all changes to me rather than distributing a modified version of the list.
  48.  
  49. Please read the file INTERRUP.1ST before asking me any questions.  You may find
  50. that they have already been addressed.
  51.  
  52.      Ralf Brown
  53.  
  54. Internet: ralf@telerama.lm.com
  55. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  56. FIDO: Ralf Brown 1:129/26.1
  57.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  58.     unless you address it to me)
  59. CIS:  >INTERNET:ralf@telerama.lm.com
  60.  
  61. I reply to all e-mail submissions and inquiries, but some of my replies bounce
  62. because of bad return paths.  If you don't get a response from me within a
  63. reasonable period of time, send it again with a better return path (starting at
  64. harvard or ucbvax for UUCP, from the Internet for others).
  65. --------!------------------------------------
  66. See INTERRUP.1ST for the key to system abbreviations and a list of the
  67. trademarks mentioned here.
  68. --------!---DISCLAIMER-----------------------
  69. DISCLAIMER:  THIS MATERIAL IS PROVIDED "AS IS".     I verify the information
  70. contained in this list to the best of my ability, but I cannot be held
  71. responsible for any problems caused by use or misuse of the information,
  72. especially for those functions not officially documented.  If it is marked
  73. "internal" or undocumented, you should check it carefully to make sure it
  74. works the same way in your version of the software (and please let me know
  75. whether or not it works the same way).    Information marked with "???" is
  76. known to be incomplete or guesswork.
  77. --------!---FLAGS----------------------------
  78. The use of -> instead of = signifies that the indicated register or register
  79. pair contains a pointer to the specified item, rather than the item itself.
  80. One or more letters may follow the interrupt number; they have the following
  81. meanings:  U - undocumented function, u - partially documented function,
  82. P - available only in protected mode, R - available only in real or V86 mode,
  83. C - callout or callback (usually hooked rather than called),
  84. O - obsolete (no longer present in current versions)
  85. --------!---CATEGORIES-----------------------
  86. The ninth column of the divider line preceding an entry usually contains a
  87. classification code (the entry has not been classified if that character is
  88. a dash).  The codes currently in use are:
  89.     A - applications, a - access software (screen readers, etc),
  90.     B - BIOS, b - vendor-specific BIOS extensions,
  91.     C - CPU-generated, c - caches/spoolers,
  92.     D - DOS kernel, d - disk I/O enhancements,
  93.     E - DOS extenders, e - electronic mail, F - FAX,
  94.     f - file manipulation, G - debuggers/debugging tools, g - games,
  95.     H - hardware, h - vendor-specific hardware,
  96.     I - IBM workstation/terminal emulators, i - system info/monitoring
  97.     J - Japanese, j - joke programs,
  98.     K - keyboard enhancers, k - file/disk compression,
  99.     l - shells/command interpreters,
  100.     M - mouse/pointing device, m - memory management,
  101.     N - network, n - non-traditional input devices,
  102.     O - other operating systems,
  103.     P - printer enhancements, p - power management,
  104.     Q - DESQview/TopView and Quarterdeck programs,
  105.     R - remote control/file access, r - runtime support,
  106.     S - serial I/O, s - sound/speech,
  107.     T - DOS-based task switchers/multitaskers, t - TSR libraries
  108.     U - resident utilities, u - emulators,
  109.     V - video, v - virus/antivirus,
  110.     W - MS Windows, X - expansion bus BIOSes,
  111.     y - security, * - reserved (and not otherwise classified)
  112. --------C-00---------------------------------
  113. INT 00 - CPU-generated - DIVIDE ERROR
  114. Desc:    generated if the divisor of a DIV or IDIV instruction is zero or the
  115.       quotient overflows the result register; DX and AX will be unchanged.
  116. Notes:    on an 8086/8088, the return address points to the following instruction
  117.     on an 80286+, the return address points to the divide instruction
  118.     an 8086/8088 will generate this interrupt if the result of a division
  119.       is 80h (byte) or 8000h (word)
  120. SeeAlso: INT 04
  121. --------G-00---------------------------------
  122. INT 00 - Zenith - ROM DEBUGGER
  123. Desc:    invokes the ROM Debugger when at the BIOS level; equivalent to
  124.       pressing Ctrl-Alt-Ins on booting.
  125. Note:    since DOS revectors INT 00, it is necessary to restore this vector to
  126.       its original ROM BIOS value in order to invoke the debugger once DOS
  127.       loads
  128. SeeAlso: INT 03"Columbia"
  129. --------C-01---------------------------------
  130. INT 01 - CPU-generated - SINGLE STEP
  131. Desc:    generated after each instruction if TF (trap flag) is set; TF is
  132.       cleared on invoking the single-step interrupt handler
  133. Notes:    interrupts are prioritized such that external interrupts are invoked
  134.       after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  135.       first instruction of the handler executes
  136.     used by debuggers for single-instruction execution tracing, such as
  137.       MS-DOS DEBUG's T command
  138. SeeAlso: INT 03
  139. --------C-01---------------------------------
  140. INT 01 - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
  141. Desc:    generated by the CPU on various occurrences which may be of interest
  142.       to a debugger program
  143. Note:    events which may trigger the interrupt:
  144.       Instruction address breakpoint fault - will return to execute inst
  145.       Data address breakpoint trap - will return to following instruction
  146.       General detect fault, debug registers in use
  147.       Task-switch breakpoint trap
  148.       undocumented 386/486 opcode F1h - will return to following instruc
  149. SeeAlso: INT 03
  150. --------H-02---------------------------------
  151. INT 02 - external hardware - NON-MASKABLE INTERRUPT
  152. Desc:    generated by the CPU when the input to the NMI pin is asserted
  153. Notes:    return address points to start of interrupted instruction on 80286+
  154.     on the 80286+, further NMIs are disabled until the next IRET
  155.       instruction, but one additional NMI is remembered by the hardware
  156.       and will be serviced after the IRET instruction reenables NMIs
  157.     maskable interrupts may interrupt the NMI handler if interrupts are
  158.       enabled
  159.     although the Intel documentation states that this interrupt is
  160.       typically used for power-failure procedures, it has many other uses
  161.       on IBM-compatible machines:
  162.         Memory parity error: all except Jr, CONV, and some machines
  163.                   without memory parity
  164.         Breakout switch on hardware debuggers
  165.         Coprocessor interrupt: all except Jr and CONV
  166.         Keyboard interrupt: Jr, CONV
  167.         I/O channel check: CONV, PS50+
  168.         Disk-controller power-on request: CONV
  169.         System suspend: CONV
  170.         Real-time clock: CONV
  171.         System watch-dog timer, time-out interrupt: PS50+
  172.         DMA timer time-out interrupt: PS50+
  173.         Low battery: HP 95LX
  174.         Module pulled: HP 95LX
  175. --------C-03---------------------------------
  176. INT 03 - CPU-generated - BREAKPOINT
  177. Desc:    generated by the one-byte breakpoint instruction (opcode CCh)
  178. Notes:    used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
  179.       command
  180.     also used by Turbo Pascal versions 1,2,3 when {$U+} specified
  181.     return address points to byte following the breakpoint instruction
  182. SeeAlso: INT 01
  183. --------G-03---------------------------------
  184. INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
  185. Desc:    invokes the ROM Debugger if INT 03 has not been revectored; equivalent
  186.       to pressing Esc on booting.
  187. SeeAlso: INT 00"Zenith",INT 03"Realia"
  188. --------G-03---------------------------------
  189. INT 03 - Realia COBOL - DEBUGGER SUPPORT
  190. Note:    Realia COBOL checks for a signature eight bytes prior to the interrupt
  191.       handler when it starts up
  192. BUG:    if the offset of the INT 03 vector is less than 8, the compiler and
  193.       all executables generated by it will crash the system
  194. SeeAlso: INT 03"Columbia"
  195. --------G-030910-----------------------------
  196. INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
  197.     AX = 0910h
  198.     SI = magic value 4647h ('FG')
  199.     DI = magic value 4A4Dh ('JM')
  200.     DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
  201. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  202. --------G-030911-----------------------------
  203. INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
  204.     AX = 0911h
  205.     SI = magic value 4647h ('FG')
  206.     DI = magic value 4A4Dh ('JM')
  207.     DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
  208. --------G-030912-----------------------------
  209. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
  210.     AX = 0912h
  211.     SI = magic value 4647h ('FG')
  212.     DI = magic value 4A4Dh ('JM')
  213. Return: BH = entry number of last breakpoint set
  214.     BL = type of last breakpoint set (see #0001)
  215.     DH = entry number of last breakpoint to be triggered
  216.     DL = type of last triggered breakpoint (see #0001)
  217. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  218. SeeAlso: AX=0913h,AX=0914h
  219.  
  220. (Table 0001)
  221. Values for Soft-ICE breakpoint type:
  222.  00h    BPM (breakpoint register types)
  223.  01h    I/O
  224.  02h    INTerrupt
  225.  03h    BPX (INT 03h-style breakpoint)
  226.  04h    reserved
  227.  05h    range
  228. --------G-030913-----------------------------
  229. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
  230.     AX = 0913h
  231.     SI = magic value 4647h ('FG')
  232.     DI = magic value 4A4Dh ('JM')
  233.     DS:DX -> breakpoint structure (see #0002)
  234. Return: AX = status
  235.         00h successful
  236.         BX = breakpoint number
  237.         03h breakpoint table full
  238.         06h memory limit error
  239.         07h I/O limit error
  240.         09h range limit error
  241.         16h duplicate breakpoint
  242. SeeAlso: AX=0912h,AX=0914h
  243.  
  244. Format of Soft-ICE breakpoint structure:
  245. Offset    Size    Description    (Table 0002)
  246.  00h    BYTE    breakpoint type (see #0003)
  247.  01h    DWORD    breakpoint address 1
  248.         (lower range limit for memory BPs,
  249.         interrupt number for interrupt BPs,
  250.         address of BP for execution BPs,
  251.         I/O address (only word)    for I/O BPs)
  252.  05h    DWORD    breakpoint address 2
  253.         (upper range limit for memory BPs,
  254.         optional value to check for for interrupt BPs,
  255.         overlay number (0 = root) for execution BPs)
  256.  09h    DWORD    breakpoint address 3
  257.  0Dh    BYTE    breakpoint mode 1 (see #0004)
  258.         (for interrupt BPs = register to check
  259.             00h     no value checking
  260.             01h     check AL
  261.             02h     check AH
  262.             03h     check AX)
  263.  0Eh    BYTE    breakpoint mode 2 (see #0004)
  264.  0Fh    BYTE    breakpoint size (00h byte, 01h word, 03h dword)
  265.  10h    BYTE    breakpoint pass count before program stop
  266.  11h    BYTE    breakpoint state
  267. Note:    all unused fields should contain zeros
  268.  
  269. (Table 0003)
  270. Values for Soft-ICE breakpoint type:
  271.  00h    memory location
  272.  01h    memory range
  273.  03h    I/O
  274.  04h    interrupt
  275.  05h    execution break
  276.  
  277. (Table 0004)
  278. Values for Soft-ICE breakpoint mode:
  279.  01h    read
  280.  02h    write
  281.  04h    execution
  282. --------G-030914-----------------------------
  283. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
  284.     AX = 0914h
  285.     SI = magic value 4647h ('FG')
  286.     DI = magic value 4A4Dh ('JM')
  287.     BX = breakpoint number (returned by AX=0913h)
  288. Return: BX = ???
  289. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  290. SeeAlso: AX=0912h,AX=0913h
  291. --------C-04---------------------------------
  292. INT 04 - CPU-generated - INTO DETECTED OVERFLOW
  293. Desc:    the INTO instruction will generate this interrupt if OF (Overflow Flag)
  294.       is set; otherwise, INTO is effectively a NOP
  295. Note:    may be used for convenient overflow testing (to prevent errors from
  296.       propagating) instead of JO or a JNO/JMP combination
  297. SeeAlso: INT 00
  298. --------B-05---------------------------------
  299. INT 05 - PRINT SCREEN
  300. Desc:    dump the current text screen to the first printer
  301. Notes:    normally invoked by the INT 09 handler when PrtSc key is pressed, but
  302.       may be invoked directly by applications
  303.     byte at 0050h:0000h contains status used by default handler
  304.       00h not active
  305.       01h PrtSc in progress
  306.       FFh last PrtSc encountered error
  307.     default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
  308. SeeAlso: INT 10/AH=12h/BL=20h
  309. --------C-05---------------------------------
  310. INT 05 - CPU-generated (80186+) - BOUND RANGE EXCEEDED
  311. Desc:    generated by BOUND instruction when the value to be tested is less than
  312.       the indicated lower bound or greater than the indicated upper bound.
  313. Note:    returning from this interrupt re-executes the failing BOUND instruction
  314. --------P-05454A-----------------------------
  315. INT 05 U - PSPS v2.01 - EJECT PAGE
  316.     AX = 454Ah ('EJ')
  317. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  318.       Technologies
  319. Note:    sends a ^D to the current printer
  320. SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
  321. --------P-054E57-----------------------------
  322. INT 05 U - PSPS v2.01 - SET PARAMETERS
  323.     AX = 4E57h ('NW')
  324.     ES:SI -> 11-byte buffer containing new settings
  325. Return: buffer filled
  326. SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
  327. --------P-055053-----------------------------
  328. INT 05 U - PSPS v2.01 - GET PARAMETERS
  329.     AX = 5053h ('PS')
  330.     ES:SI -> 11-byte buffer for settings
  331. Return: buffer filled
  332. SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
  333. --------P-05554E-----------------------------
  334. INT 05 U - PSPS v2.01 - UNINSTALL
  335.     AX = 554Eh ('UN')
  336. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  337.       Technologies
  338. SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
  339. --------C-06---------------------------------
  340. INT 06 - CPU-generated (80286+) - INVALID OPCODE
  341. Desc:    this interrupt is generated when the CPU attempts to execute an
  342.       invalid opcode (most protected-mode instructions are considered
  343.       invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  344.       which specifies a register rather than a memory address
  345. Notes:    return address points to beginning of invalid instruction
  346.     with proper programming, this interrupt may be used to emulate
  347.       instructions which do not exist; many 386 BIOSes emulate the 80286
  348.       undocumented LOADALL instruction which was removed from the 80386+
  349.     generated by the 80386+ when the LOCK prefix is used with instructions
  350.       other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
  351.       NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
  352.       not accessing memory.
  353. SeeAlso: INT 0C"CPU",INT 0D"CPU"
  354. --------b-06---------------------------------
  355. INT 06 C - HP 95LX - SLEEP/WAKEUP
  356. Desc:    this interrupt is called just before going into light or deep
  357.       (shutdown) sleep and just after returning from light or deep sleep
  358. SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
  359. --------C-07---------------------------------
  360. INT 07 - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
  361. Desc:    this interrupt is automatically called if a coprocessor instruction is
  362.       encountered when no coprocessor is installed
  363. Note:    can be used to emulate a numeric coprocessor in software
  364. SeeAlso: INT 09"MATH UNIT PROTECTION"
  365. --------H-08---------------------------------
  366. INT 08 - IRQ0 - SYSTEM TIMER
  367. Desc:    generated 18.2 times per second by channel 0 of the 8254 system timer,
  368.       this interrupt is used to keep the time-of-day clock updated
  369. Notes:    programs which need to be invoked regularly should use INT 1C unless
  370.       they need to reprogram the timer while still keeping the time-of-day
  371.       clock running at the proper rate
  372.     default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
  373.     may be masked by setting bit 0 on I/O port 21h
  374. SeeAlso: INT 1C,INT 4A,INT 50"DESQview",INT 58"DoubleDOS",INT 70,INT 78"GO32"
  375. SeeAlso: INT D8"Screen Thief"
  376. --------C-08---------------------------------
  377. INT 08 - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
  378. Desc:    called when multiple exceptions occur on one instruction, or an
  379.       exception occurs in an exception handler
  380. Notes:    called in protected mode if an interrupt above the defined limit of
  381.       the interrupt vector table occurs
  382.     return address points at beginning of instruction with errors or the
  383.       beginning of the instruction which was about to execute when the
  384.       external interrupt caused the exception
  385.     if an exception occurs in the double fault handler, the CPU goes into
  386.       SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  387.       this "triple fault" is a faster way of returning to real mode on
  388.       many 80286 machines than the standard keyboard controller reset
  389. --------H-09---------------------------------
  390. INT 09 - IRQ1 - KEYBOARD DATA READY
  391. Desc:    this interrupt is generated when data is received from the keyboard.
  392.       This is normally a scan code (from either a keypress *or* a key
  393.       release), but may also be an ACK or NAK of a command on AT-class
  394.       keyboards.
  395. Notes:    this IRQ may be masked by setting bit 1 on I/O port 21h
  396.     if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  397.       INT 15/AH=4Fh after reading the scan code (see #0005) from the
  398.       keyboard and before further processing; all further processing uses
  399.       the scan code returned from INT 15/AH=4Fh
  400.     the default interrupt handler is at F000h:E987h in 100%-compatible
  401.       BIOSes
  402.     the interrupt handler performs the following actions for certain
  403.       special keystrokes:
  404.         Ctrl-Break     clear keyboard buffer, place word 0000h in buffer,
  405.              invoke INT 1B, and set flag at 0040h:0071h
  406.         SysReq     invoke INT 15/AH=85h (SysReq is often labeled SysRq)
  407.         Ctrl-Numlock place system in a tight wait loop until next INT 09
  408.         Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
  409.                destination of the jump at that address)
  410.         Shift-PrtSc     invoke INT 05
  411.     DRDOS hooks this interrupt to control the cursor shape (underscore/
  412.       half block) for overwrite/insert mode
  413.     DR Multiuser DOS hooks this interrupt for cursor shape control and to
  414.       control whether Ctrl-Alt-Del reboots the current session or the
  415.       entire system
  416. SeeAlso: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B
  417. SeeAlso: INT 2F/AX=A901h,INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
  418.  
  419. (Table 0005)
  420. Values for keyboard scan code:
  421.  01h    Esc         31h    N
  422.  02h    1 !         32h    M
  423.  03h    2 @         33h    , <         63h    F16
  424.  04h    3 #         34h    . >         64h    F17
  425.  05h    4 $         35h    / ?         65h    F18
  426.  06h    5 %         36h    Right Shift     66h    F19
  427.  07h    6 ^         37h    Grey*         67h    F20
  428.  08h    7 &         38h    Alt         68h    F21
  429.  09h    8 *         39h    SpaceBar     69h    F22
  430.  0Ah    9 (         3Ah    CapsLock     6Ah    F23
  431.  0Bh    0 )         3Bh    F1         6Bh    F24
  432.  0Ch    - _         3Ch    F2         6Ch    --
  433.  0Dh    = +         3Dh    F3         6Dh    EraseEOF
  434.  0Eh    Backspace     3Eh    F4
  435.  0Fh    Tab         3Fh    F5         6Fh    Copy/Play
  436.  10h    Q         40h    F6
  437.  11h    W         41h    F7
  438.  12h    E         42h    F8         72h    CrSel
  439.  13h    R         43h    F9
  440.  14h    T         44h    F10         74h    ExSel
  441.  15h    Y         45h    NumLock         75h    --
  442.  16h    U         46h    ScrollLock     76h    Clear
  443.  17h    I         47h    Home
  444.  18h    O         48h    UpArrow
  445.  19h    P         49h    PgUp
  446.  1Ah    [ {         4Ah    Grey-
  447.  1Bh    ] }         4Bh    LeftArrow
  448.  1Ch    Enter         4Ch    Keypad 5
  449.  1Dh    Ctrl         4Dh    RightArrow
  450.  1Eh    A         4Eh    Grey+
  451.  1Fh    S         4Fh    End
  452.  20h    D         50h    DownArrow     E0h    prefix code
  453.  21h    F         51h    PgDn         E1h    prefix code
  454.  22h    G         52h    Ins         FAh    ACK
  455.  23h    H         53h    Del         FEh    RESEND
  456.  24h    J         54h    SysReq         FFh    kbd error/buffer full
  457.  25h    K
  458.  26h    L         56h    left \| (102-key)
  459.  27h    ; :         57h    F11
  460.  28h    ' "         58h    F12
  461.  29h    ` ~
  462.  2Ah    Left Shift     5Ah    PA1
  463.  2Bh    \ |         5Bh    F13
  464.  2Ch    Z         5Ch    F14
  465.  2Dh    X         5Dh    F15
  466.  2Eh    C
  467.  2Fh    V
  468.  30h    B
  469. Notes:    scan codes 56h-E1h are only available on the extended (101/102-key)
  470.       keyboard and Host Connected (122-key) keyboard; scan codes 5Ah-76h
  471.       are only available on the 122-key keyboard
  472.     the SysReq key is often labeled SysRq
  473. --------C-09---------------------------------
  474. INT 09 - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
  475. Desc:    called if the coprocessor attempts to access memory outside a segment
  476.       boundary; it may occur at an arbitrary time after the coprocessor
  477.       instruction was issued
  478. Notes:    until the condition is cleared or the coprocessor is reset, the only
  479.       coprocessor instruction which may be used is FNINIT; WAIT or other
  480.       coprocessor instructions will cause a deadlock because the
  481.       coprocessor is still busy waiting for data
  482.     for the 486+, a coprocessor protection error generates an INT 0D
  483. SeeAlso: INT 07"CPU"
  484. --------*-09---------------------------------
  485. INT 09 P - internal hardware - RESERVED BY Intel (80486)
  486. Note:    this exception has been moved to INT 0D
  487. SeeAlso: INT 09"MATH",INT 0D
  488. --------H-0A---------------------------------
  489. INT 0A - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
  490. Notes:    the TOPS and PCnet adapters use this interrupt request line by default
  491.     DOS 3.2 revectors IRQ2 to a stack-switching routine
  492.     on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  493.       connects to the slave 8259.  The BIOS redirects the interrupt for
  494.       IRQ9 back here.
  495.     under DESQview, only the INT 15h vector and BASIC segment address (the
  496.       word at 0000h:0510h) may be assumed to be valid for the handler's
  497.       process
  498.     many VGA boards do not implement the vertical retrace interrupt,
  499.       including the IBM VGA Adapter where the traces are either cut or
  500.       removed
  501. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  502. --------H-0A---------------------------------
  503. INT 0A - IRQ2 - Tandy 1000-series HARD DISK
  504. Notes:    this interrupt may be masked by setting bit 2 on I/O port 21h
  505.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  506.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  507.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  508.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  509.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  510.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  511.       interrupt use IRQ5 for vertical retrace.
  512. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  513. --------H-0A---------------------------------
  514. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  515. Note:    newer Roland cards and MIDI interfaces by other manufacturers use
  516.       a jumper-selectable IRQ, but software and hardware generally defaults
  517.       to IRQ2
  518. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  519. --------C-0A---------------------------------
  520. INT 0A P - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  521. Desc:    automatically called during a task switch if the new TSS specified by
  522.       the task gate is invalid for any of the following reasons:
  523.         TSS limit is less than 43 (80286) or 103 (80386/80486)
  524.         LDT selector invalid or segment not present
  525.         null SS selector, or SS selector outside LDT/GDT limit
  526.         stack segment is read-only
  527.         stack segment DPL differs from new CPL, or RPL <> CPL
  528.         CS selector is outside LDT/GDT limit or not code
  529.         non-conforming code segment's DPL differs from CPL
  530.         conforming code segment's DPL > CPL
  531.         DS/ES selectors outside LDT/GDT limit or not readable segments
  532. Note:    the handler must use a task gate in order to have a valid TSS under
  533.       which to execute; it must also reset the busy bit in the new TSS
  534. SeeAlso: INT 0B"CPU"
  535. --------H-0B---------------------------------
  536. INT 0B - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  537. Desc:    automatically asserted by the UART when COM2 needs attention, if the
  538.       UART has been programmed to generate interrupts
  539. Notes:    the TOPS and PCnet adapters use this interrupt request line as an
  540.       alternate
  541.     on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  542.       shares this interrupt
  543.     may be masked by setting bit 3 on I/O port 21h
  544. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  545. --------C-0B---------------------------------
  546. INT 0B P - CPU-generated (80286+) - SEGMENT NOT PRESENT
  547. Desc:    generated when loading a segment register if the segment descriptor
  548.       indicates that the segment is not currently in memory, unless the
  549.       segment is an LDT (see INT 0A"CPU") or stack segment (see
  550.       INT 0C"CPU") needed by a task switch
  551. Note:    may be used to implement virtual memory by loading in segments as they
  552.       are accessed, clearing the "not present" bit after loading
  553. SeeAlso: INT 0A"CPU",INT 0E"hardware"
  554. --------h-0B---------------------------------
  555. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  556. Desc:    this is the lowest-level keyboard handler on an HP 95LX palmtop
  557. Note:    debounces key, places the keycode in I/O register 60h, and calls INT 09
  558. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  559. --------H-0C---------------------------------
  560. INT 0C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  561. Desc:    automatically asserted by the UART when COM1 needs attention, if the
  562.       UART has been programmed to generate interrupts
  563. BUG:    this vector is modified but not restored by Direct Access v4.0, and
  564.       may be left dangling by other programs written with the same version
  565.       of compiled BASIC
  566. Notes:    on many PC's, COM3 shares this interrupt
  567.     may be masked by setting bit 4 on I/O port 21h
  568. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  569. --------C-0C---------------------------------
  570. INT 0C - CPU-generated (80286+) - STACK FAULT
  571. Desc:    this interrupt is generated in protected mode on a stack overflow or
  572.       underflow, or if an inter-level transition or task switch references
  573.       a stack segment marked "not present"; it is generated in real mode
  574.       on accessing a word operand at SS:FFFFh
  575. Note:    the 80286 will shut down in real mode if SP=1 before a push.  On the
  576.       PC AT and compatibles, external circuitry generates a reset on
  577.       shutdown.
  578. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  579. --------I-0C---------------------------------
  580. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  581. Desc:    the IBM System 36/38 emulator may be invoked through a private API,
  582.       whose entry point address (see #0006) is offset 100h in the segment
  583.       pointed at by this vector
  584.  
  585. (Table 0006)
  586. Call the System 36/38 emulator API entry point with:
  587.     AH = function
  588.         03h update screen
  589.         05h select next session
  590.         AL = session number (00h-03h)
  591.         Return: AL = session type code
  592.                 00h not active
  593.                 01h display session
  594.                 02h printer session
  595.                 FEh invalid session number
  596.             DS = requested session's data segment (0 if not active)
  597.                 (see #0007)
  598. Return: ???
  599.  
  600. Format of System 36/38 emulator's data area:
  601. Offset    Size    Description    (Table 0007)
  602. 13Eh    BYTE    bit flags for status line indicators turned on since this byte
  603.         last zerod
  604. 13Fh    BYTE    bit flags for status line indicators turned off since this
  605.         byte last set to FFh
  606. 140h    WORD    offset of EBCDIC to ASCII translation
  607. 146h    WORD    offset of EBCDIC screen buffer
  608. 148h    WORD    offset of EC (engineering change) level signature
  609. 150h    BYTE    "KEYI"
  610. 151h    BYTE    5250 key scan code to be sent to remote
  611. 15Bh    BYTE    "SYSAV"
  612. 15Dh    BYTE    5250 cursor column
  613. 15Eh    BYTE    5250 cursor row
  614. 167h    BYTE    "DVCTAD"
  615. 178h    BYTE    "FLAGS"
  616. 184h    BYTE    "SESSNOAD"
  617. 193h    BYTE    "STNAD"
  618. 198h    BYTE    "NSDS"
  619. Note:    offsets are from the interrupt handler's segment
  620. --------H-0D---------------------------------
  621. INT 0D - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  622. Notes:    under DESQview, only the INT 15h vector and BASIC segment address (the
  623.       word at 0000h:0510h) may be assumed to be valid for the handler's
  624.       process
  625.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  626.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  627.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  628.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  629.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  630.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  631.       interrupt use IRQ5 for vertical retrace.
  632.     may be masked by setting bit 5 on I/O port 21h
  633. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  634. SeeAlso: INT 7D"GO32"
  635. --------H-0D---------------------------------
  636. INT 0D - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  637. Desc:    used to ensure that the dynamic RAM retains its contents in earlier
  638.       1000-series models; later models use normal DMA for RAM refresh
  639.       (some early models have no DMA unless it is added via an expansion
  640.       card)
  641. SeeAlso: INT 55
  642. --------h-0D---------------------------------
  643. INT 0D - HP 95LX - INFRARED INTERRUPT
  644. Desc:    this interrupt is used to perform communications over the infrared
  645.       data link
  646. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  647. --------C-0D---------------------------------
  648. INT 0D - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  649. Desc:    the CPU generates this interrupt when it detects a protection violation
  650.       which does not fit under any other category having a separate
  651.       interrupt
  652. Notes:    called in real mode when
  653.         an instruction accesses a memory operand extending beyond offset
  654.           FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  655.           CS, DS, ES, FG, or GS
  656.         a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  657.           in the second byte
  658.         an instruction exceeds the maximum length allowed (10 bytes for
  659.           80286, 15 bytes for 80386/80486)
  660.         an instruction wraps from offset FFFFh to offset 0000h
  661.     called in protected mode on protection violations not covered by INT 06
  662.       through INT 0C, including
  663.         segment limit violations
  664.         write to read-only segments
  665.         accesses using null DS or ES selectors
  666.         accesses to segments with privilege greater than CPL
  667.         wrong descriptor type
  668.     called on 80486 protected-mode floating-point protection fault
  669. SeeAlso: INT 09"80486",INT 0C"STACK"
  670. --------H-0E---------------------------------
  671. INT 0E - IRQ6 - DISKETTE CONTROLLER
  672. Desc:    this interrupt is generated by the floppy disk controller on
  673.       completion of an operation
  674. Notes:    default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  675.     may be masked by setting bit 6 on I/O port 21h
  676. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  677. --------C-0E---------------------------------
  678. INT 0E - CPU-generated (80386+ native mode) - PAGE FAULT
  679. Desc:    this interrupt is generated in protected and virtual-86 modes on
  680.       attempting to access a 4K memory page whose page table entry has
  681.       the "present" bit cleared
  682. Note:    used to implement virtual memory
  683. SeeAlso: INT 0B"hardware"
  684. --------h-0E---------------------------------
  685. INT 0E - HP 95LX - EXTERNAL CARD INTERRUPT
  686. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  687. --------H-0F---------------------------------
  688. INT 0F - IRQ7 - PARALLEL PRINTER
  689. Desc:    this interrupt is generated by the LPT1 printer adapter when the
  690.       printer becomes ready
  691. Notes:    most printer adapters do not reliably generate this interrupt
  692.     the 8259 interrupt controller generates an interrupt corresponding to
  693.       IRQ7 when an error condition occurs
  694. SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  695. --------h-0F---------------------------------
  696. INT 0F - HP 95LX - REAL-TIME CLOCK
  697. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
  698. --------C-10---------------------------------
  699. INT 10 - CPU-generated (80286+) - COPROCESSOR ERROR
  700. Desc:    this interrupt is generated by the CPU when the -ERROR pin is asserted
  701.       by the coprocessor
  702. Note:    AT's and clones usually wire the coprocessor to use IRQ13, but not all
  703.       get it right
  704. SeeAlso: INT 09"hardware",INT 75
  705. --------V-1000-------------------------------
  706. INT 10 - VIDEO - SET VIDEO MODE
  707.     AH = 00h
  708.     AL = mode (see #0009)
  709. Return: AL = video mode flag (Phoenix, AMI BIOS)
  710.         20h mode > 7
  711.         30h modes 0-5 and 7
  712.         3Fh mode 6
  713.     AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  714. Desc:    specify the display mode for the currently active display adapter
  715. Notes:    IBM standard modes do not clear the screen if the high bit of AL is set
  716.       (EGA or higher only)
  717.     the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  718.       SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  719.       Everex EV-673
  720.     the installation check for Ahead adapters is the signature "AHEAD" at
  721.       C000h:0025h
  722.     the installation check for Paradise adapters is the signature "VGA=" at
  723.       C000h:007Dh
  724.     the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  725.       signature "OAK VGA" at C000h:0008h
  726.     the installation check for ATI adapters is the signature "761295520" at
  727.       C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
  728.         31h for 18800
  729.         32h for 18800-1
  730.         33h for 18800-2
  731.         34h for 18800-4
  732.         35h for 18800-5
  733.       the two bytes at C000h:0040h indicate the adapter type
  734.         "22" EGA Wonder
  735.         "31" VGA Wonder
  736.         "32" EGA Wonder800+
  737.       the byte at C000h:0042h contains feature flags
  738.         bit 1: mouse port present
  739.         bit 4: programmable video clock
  740.       the byte at C000h:0044h contains additional feature flags if chipset
  741.         byte > 30h (see #0008)
  742.     the installation check for Genoa video adapters is the signature
  743.       77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
  744.       and XXh is
  745.         00h for Genoa 6200/6300
  746.         11h for Genoa 6400/6600
  747.         22h for Genoa 6100
  748.         33h for Genoa 5100/5200
  749.         55h for Genoa 5300/5400
  750.       for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  751.       for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  752.         "EXTMODE", indicating support for extended modes
  753. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  754. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
  755. Index:    installation check;Tseng ET4000|installation check;Ahead video cards
  756. Index:    installation check;Oak Technologies|installation check;ATI video cards
  757. Index:    installation check;Paradise video|installation check;Genoa video cards
  758.  
  759. Bitfields for ATI additional feature flags:
  760. Bit(s)    Description    (Table 0008)
  761.  0    70 Hz non-interlaced display
  762.  1    Korean (double-byte) characters
  763.  2    45 MHz memory clock rather than 40 MHz
  764.  3    zero wait states
  765.  4    paged ROMs
  766.  6    no 8514/A monitor support
  767.  7    HiColor DAC
  768.  
  769. (Table 0009)
  770. Values for video mode:
  771.      text/ text pixel    pixel    colors disply scrn  system
  772.      grph resol     box  resolution       pages  addr
  773.  00h = T  40x25     8x8   320x200    16gray      8   B800 CGA,PCjr,Tandy
  774.      = T  40x25     8x14  320x350    16gray      8   B800 EGA
  775.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  776.      = T  40x25     9x16  360x400     16      8   B800 VGA
  777.  01h = T  40x25     8x8   320x200     16      8   B800 CGA,PCjr,Tandy
  778.      = T  40x25     8x14  320x350     16      8   B800 EGA
  779.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  780.      = T  40x25     9x16  360x400     16      8   B800 VGA
  781.  02h = T  80x25     8x8   640x200    16gray      4   B800 CGA,PCjr,Tandy
  782.      = T  80x25     8x14  640x350    16gray      8   B800 EGA
  783.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  784.      = T  80x25     9x16  720x400     16      8   B800 VGA
  785.  03h = T  80x25     8x8   640x200     16      4   B800 CGA,PCjr,Tandy
  786.      = T  80x25     8x14  640x350     16/64      8   B800 EGA
  787.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  788.      = T  80x25     9x16  720x400     16      8   B800 VGA
  789.  04h = G  40x25     8x8   320x200      4      .   B800 CGA,PCjr,EGA,MCGA,VGA
  790.  05h = G  40x25     8x8   320x200     4gray      .   B800 CGA,PCjr,EGA
  791.      = G  40x25     8x8   320x200      4      .   B800 MCGA,VGA
  792.  06h = G  80x25     8x8   640x200      2      .   B800 CGA,PCjr,EGA,MCGA,VGA
  793.  07h = T  80x25     9x14  720x350    mono     var  B000 MDA,Hercules,EGA
  794.      = T  80x25     9x16  720x400    mono      .   B000 VGA
  795.  08h = T 132x25     8x8  1056x200     16      .   B800 ATI EGA/VGA Wonder [2]
  796.      = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA/VGA Wonder [2]
  797.      = G  20x25     8x8   160x200     16      .    .  PCjr, Tandy 1000
  798.      = G  90x43     8x8   720x352    mono      .   B000 Hercules + MSHERC.COM
  799.      = G  90x45     8x8   720x360    mono      .   B000 Hercules + HERKULES [11]
  800.  09h = G  40x25     8x8   320x200     16      .    .  PCjr, Tandy 1000
  801.  0Ah = G  80x25     8x8   640x200      4      .    .  PCjr, Tandy 1000
  802.  0Bh =     reserved                   (EGA BIOS internal use)
  803.      = G  80x25     8x8   640x200     16      .    .  Tandy 1000 SL/TL [13]
  804.  0Ch =     reserved                   (EGA BIOS internal use)
  805.  0Dh = G  40x25     8x8   320x200     16      8   A000 EGA,VGA
  806.  0Eh = G  80x25     8x8   640x200     16      4   A000 EGA,VGA
  807.  0Fh = G  80x25     8x14  640x350    mono      2   A000 EGA,VGA
  808.  10h = G  80x25     8x14  640x350      4      2   A000 64k EGA
  809.      = G    .      .    640x350     16      .   A000 256k EGA,VGA
  810.  11h = G  80x30     8x16  640x480    mono      .   A000 VGA,MCGA,ATI EGA,ATI VIP
  811.  12h = G  80x30     8x16  640x480     16/256K  .   A000 VGA,ATI VIP
  812.      = G  80x30     8x16  640x480     16/64      .   A000 ATI EGA Wonder
  813.      = G    .      .    640x480     16      .    .  UltraVision+256K EGA
  814.  13h = G  40x25     8x8   320x200    256/256K  .   A000 VGA,MCGA,ATI VIP
  815.  14h = T 132x25     Nx16      .     16      .    .  XGA, IBM Enhanced VGA [3]
  816.      = T 132x25     8x16 1056x400     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  817.      = G  80x25     8x8   640x200      .      .    .  Lava Chrome II EGA
  818.      = G    .      .    640x400     16      .    .  Tecmar VGA/AD
  819.  15h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  820.  16h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  821.      = G    .      .    800x600     16      .    .  Tecmar VGA/AD
  822.  17h = T 132x25      .      .      .      .    .  Tecmar VGA/AD
  823.      = T  80x43     8x8   640x348     16      4   B800 Tseng ET4000 BIOS [10]
  824.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  825.  18h = T  80x30     9x16  720x480     16      1   A000 Realtek RTVGA [12]
  826.      = T 132x25      .      .    mono      .   B000 Cirrus 5320 chipset
  827.      = T 132x44     8x8  1056x352    mono      .   B000 Tseng Labs EVA
  828.      = T 132x44     9x8  1188x352     4gray      2   B000 Tseng ET3000 chipset
  829.      = T 132x44     8x8  1056x352     16/256      2   B000 Tseng ET4000 chipset
  830.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  831.      = G          1024x768     16      .    .  Tecmar VGA/AD
  832.  19h = T  80x43     9x11  720x473     16      1   A000 Realtek RTVGA [12]
  833.      = T 132x25     8x14 1056x350    mono      .   B000 Tseng Labs EVA
  834.      = T 132x25     9x14 1188x350     4gray      4   B000 Tseng ET3000 chipset
  835.      = T 132x25     8x14 1056x350     16/256      4   B000 Tseng ET4000 chipset
  836.      = T 132x34      .      .    mono      .   B000 Cirrus 5320 chipset
  837.  1Ah = T  80x60     9x8   720x480     16      1   A000 Realtek RTVGA [12]
  838.      = T 132x28     8x13 1056x364    mono      .   B000 Tseng Labs EVA
  839.      = T 132x28     9x13 1188x364     4gray      4   B000 Tseng ET3000 chipset
  840.      = T 132x28     8x13 1056x364     16/256      4   B000 Tseng ET4000 chipset
  841.      = T 132x44      .      .    mono      .   B000 Cirrus 5320 chipset
  842.      = G    .      .    640x350    256      .    .  Tecmar VGA/AD
  843.  1Bh = T 132x25     9x14 1188x350     16      1   A000 Realtek RTVGA [12]
  844.      = G    .      .    640x400    256      .    .  Tecmar VGA/AD
  845.  1Ch = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  846.      = T 132x30     9x16 1188x480     16      1   A000 Realtek RTVGA [12]
  847.      = G    .      .    640x480    256      .    .  Tecmar VGA/AD
  848.  1Dh = T 132x43      .      .      .      .    .  Cirrus 5320 chipset
  849.      = T 132x43     9x11 1188x473     16      1   A000 Realtek RTVGA [12]
  850.      = G    .      .    800x600    256      .    .  Tecmar VGA/AD
  851.  1Eh = T 132x44      .      .      .      .    .  Cirrus 5320 chipset
  852.      = T 132x60     9x8  1188x480     16      1   A000 Realtek RTVGA [12]
  853.  1Fh = G 100x75     8x8   800x600     16      1   A000 Realtek RTVGA
  854.  20h = T 132x25      .      .     16      .    .  Avance Logic AL2101
  855.      = G    .      .    240x128      .      .   B000 HP 95LX
  856.      = G 120x45     8x16  960x720     16      1   A000 Realtek RTVGA
  857.  21h = T 132x30      .      .     16      .    .  Avance Logic AL2101
  858.      = T 132x44     9x9  1188x396     16/256K  .   B800 WD90C
  859.      = T 132x44     9x9  1188x396     16      .   B800 Diamond Speedstar 24X
  860.      = T 132x60      .      .     16      2   B800 Tseng ET4000 chipset [10]
  861.      = G  80x43     8x8   720x348    mono      .   B000 DESQview 2.x+Hercules [4]
  862.      = G 128x48     8x16 1024x768     16      1   A000 Realtek RTVGA [12]
  863.  22h = T 132x43      .      .      .      .    .  Allstar Peacock (VGA)
  864.      = T 132x43      .      .     16      .    .  Avance Logic AL2101
  865.      = T 132x44     8x8  1056x352      .      .   B800 Tseng Labs EVA
  866.      = T 132x44     9x8  1188x352     16/256K  2   B800 Tseng ET3000 chipset
  867.      = T 132x44     8x8  1056x352     16/256K  2   B800 Tseng ET4000 chipset
  868.      = T 132x44     8x8  1056x352      .      .    .  Ahead Systems EGA2001
  869.      = T 132x44     8x8  1056x352     16      2   B800 Ahead B
  870.      = T 132x44     8x9  1056x398     16      .    .  STB Lightspeed ET4000/W32P
  871.      = T 132x44      .      .     16      .    .  Orchid Prodesigner VGA
  872.      = G  80x43     8x8   720x348    mono      .   B800 DESQview 2.x+Hercules [4]
  873.      = G  96x64     8x16  768x1024     16      1   A000 Realtek RTVGA
  874.  23h = T 132x25     6x14  792x350      .      .   B800 Tseng Labs EVA
  875.      = T 132x25     9x14 1188x350     16/256K  4   B800 Tseng ET3000 chipset
  876.      = T 132x25     8x14 1056x350     16/256      4   B800 Tseng ET4000 chipset
  877.      = T 132x25     8x14 1056x350      .      .    .  Ahead Systems EGA2001
  878.      = T 132x25     8x14 1056x350     16      4   B800 Ahead B
  879.      = T 132x25     8x8  1056x200     16      .   B800 ATI EGA Wonder,ATI VIP
  880.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  881.      = T 132x28      .      .      .      .    .  Allstar Peacock (VGA)
  882.      = T 132x28      .      .     16      .    .  Orchid Prodesigner VGA
  883.      = T 132x60      .      .     16      .    .  Avance Logic AL2101
  884.      = G 128x48     8x16 1024x768      4      1   A000 Realtek RTVGA
  885.  24h = T  80x30      .      .     16      .    .  Avance Logic AL2101
  886.      = T 132x25      .      .      .      .    .  Allstar Peacock (VGA)
  887.      = T 132x25      .      .     16      .    .  Orchid Prodesigner VGA
  888.      = T 132x28     6x13  792x364      .      .   B800 Tseng Labs EVA
  889.      = T 132x28     9x13 1188x364     16/256K  4   B800 Tseng ET3000 chipset
  890.      = T 132x28     8x12 1056x336     16      1   B800 Ahead B
  891.      = T 132x28     8x13 1056x364     16/256K  4   B800 Tseng ET4000 chipset
  892.      = T 132x28     8x14 1056x392     16      .    .  STB Lightspeed ET4000/W32P
  893.      = T 132x28      .      .      .      .    .  Cirrus 5320 chipset
  894.      = G  64x32     8x16  512x512    256      1   A000 Realtek RTVGA
  895.  25h = T  80x43      .      .     16      .    .  Avance Logic AL2101
  896.      = G  80x60     8x8   640x480      .      .   A000 Tseng Labs EVA
  897.      = G  80x60     8x8   640x480     16/256K  1   A000 Tseng ET3000/4000 chipset
  898.      = G    .      .    640x480     16      .    .  VEGA VGA
  899.      = G  80x60     8x8   640x480     16      .   A000 Orchid Prodesigner VGA
  900.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 26h)
  901.      = G    .      .    640x480     16      .    .  NEC GB-1
  902.      = G    .      .    640x480     16      .    .  Cirrus 5320 chipset
  903.      = G    .      .    640x400    256      .    .  Realtek RTVGA
  904.  26h = T  80x60     8x8   640x480      .      .    .  Tseng Labs EVA
  905.      = T  80x60     8x8   640x480     16/256K  3   B800 Tseng ET3000/4000 chipset
  906.      = T  80x60      .      .      .      .    .  Allstar Peacock (VGA)
  907.      = T  80x60      .      .     16      .    .  Orchid ProDesigner VGA
  908.      = T  80x60      .      .     16      .    .  Avance Logic AL2101
  909.      = G  80x60     8x8   640x480      .      .    .  Ahead Systems EGA2001
  910.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 25h)
  911.      = G    .      .    640x480    256      .    .  Realtek RTVGA
  912.  27h = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA Wonder,ATI VIP
  913.      = G    .      .    720x512     16      .    .  VEGA VGA
  914.      = G    .      .    720x512     16      .    .  Genoa
  915.      = G 100x75     8x8   800x600    256      1   A000 Realtek RTVGA [12]
  916.      = G    .      .    960x720     16      .    .  Avance Logic AL2101
  917.  28h = T ???x???  .      .      .      .    .  VEGA VGA
  918.      = G    .      .    512x512    256      .    .  Avance Logic AL2101
  919.      = G    .      .   1024x768    256      .    .  Realtek RTVGA (1meg)
  920.  29h = G    .      .    640x400    256      .    .  Avance Logic AL2101
  921.      = G    .      .    800x600     16      .    .  VEGA VGA
  922.      = G 100x37     8x16  800x600     16      .   A000 Orchid
  923.      = G    .      .    800x600     16      .   A000 STB,Genoa,Sigma
  924.      = G    .      .    800x600     16      .    .  Allstar Peacock (VGA)
  925.      = G 100x37     8x16  800x600     16/256K  1   A000 Tseng ET3000/4000 chipset
  926.      = G    .      .    800x600    ???      .    .  EIZO MDB10
  927.      = G    .      .    800x600     16      .    .  Cirrus 5320 chipset
  928.      = G   NA      .    800x600     16      .    .  Compaq QVision 1024/1280
  929.      = G    .      .   1024x1024 256      .    .  Realtek RTVGA BIOS v3.C10
  930.  2Ah = T 100x40      .      .      .      .    .  Allstar Peacock (VGA)
  931.      = T 100x40     8x16  800x640     16      .    .  Orchid Prodesigner VGA
  932.      = T 100x40     8x15  800x600     16/256K  4   B800 Tseng ET3000/4000 chipset
  933.      = T 100x40     8x15  800x600     16      .    .  STB Lightspeed ET4000/W32P
  934.      = G    .      .    640x480    256      .    .  Avance Logic AL2101
  935.      = G    .      .   1280x1024     16      .    .  Realtek RTVGA
  936.  2Bh = G    .      .    800x600     16      .    .  Avance Logic AL2101
  937.  2Ch = G    .      .    800x600    256      .    .  Avance Logic AL2101
  938.  2Dh = G    .      .    640x350    256      .    .  VEGA VGA
  939.      = G    .      .    640x350    256/256K  .   A000 Orchid, Genoa, STB
  940.      = G  80x25     8x14  640x350    256/256K  1   A000 Tseng ET3000/4000 chipset
  941.      = G    .      .    640x350    256      .    .  Cirrus 5320 chipset
  942.      = G  80x25     8x14  640x350    256      .    .  STB Lightspeed ET4000/W32P
  943.      = G    .      .    768x1024     16      .    .  Avance Logic AL2101
  944.  2Eh = G    .      .    640x480    256      .    .  VEGA VGA
  945.      = G  80x30     8x16  640x480 256/256K      .   A000 Orchid
  946.      = G    .      .    640x480 256/256K      .   A000 STB,Genoa,Sigma
  947.      = G  80x30     8x16  640x480 256/256K      1   A000 Tseng ET3000/4000 chipset
  948.      = G    .      .    640x480 256/256K      .    .  Compaq QVision 1024/1280
  949.      = G    .      .    768x1024 256      .    .  Avance Logic AL2101
  950.  2Fh = T 160x50     8x8  1280x400     16      4   B800 Ahead B (Wizard/3270)
  951.      = G    .      .    720x512    256      .    .  VEGA VGA
  952.      = G    .      .    720x512    256      .    .  Genoa
  953.      = G  80x25     8x16  640x400 256/256K      1   A000 Tseng ET4000 chipset
  954.      = G    .      .   1024x768      4      .    .  Avance Logic AL2101
  955.  30h = G    .      .    800x600    256      .    .  VEGA VGA
  956.      = G 100x37     8x16  800x600 256/256K      .   A000 Orchid
  957.      = G    .      .    800x600 256/256K      .   A000 STB,Genoa,Sigma
  958.      = G    .      .    720x350      2      .    .  3270 PC
  959.      = G    .      .    800x600    256      .    .  Cardinal
  960.      = G    .      .      .      .      .   B800 AT&T 6300
  961.      = G 100x37     8x16  800x600 256/256K      1   A000 Tseng ET3000/4000 chipset
  962.      = G    .      .   1024x768     16      .    .  Avance Logic AL2101
  963.  31h = G    .      .   1024x768    256      .    .  Avance Logic AL2101
  964.  32h = T  80x34     8x10      .     16      4   B800 Ahead B (Wizard/3270)
  965.      = G    .      .    640x480    256      .    .  Compaq QVision 1024/1280
  966.  33h = T 132x44     8x8      .     16      .   B800 ATI EGA Wonder,ATI VIP
  967.      = T  80x34     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  968.  34h = T  80x66     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  969.      = G    .      .    800x600    256      .    .  Compaq QVision 1024/1280
  970.  36h = G    .      .    960x720     16      .    .  VEGA VGA, STB
  971.      = G    .      .    960x720     16      .   A000 Tseng ET3000 only
  972.      = G    .      .   1280x1024     16      .    .  Avance Logic AL2101
  973.  37h = T 132x44     8x8      .    mono      .   B800 ATI EGA Wonder,ATI VIP
  974.      = G    .      .   1024x768     16      .    .  VEGA VGA
  975.      = G 128x48     8x16 1024x768     16      .   A000 Orchid
  976.      = G    .      .   1024x768     16      .   A000 STB,Genoa,Sigma
  977.      = G    .      .   1024x768     16      .    .  Definicon
  978.      = G 128x48     8x16 1024x768     16      1   A000 Tseng ET3000/4000 chipset
  979.      = G    .      .   1024x768     16      .    .  Compaq QVision 1024/1280
  980.      = G    .      .   1280x1024 256      .    .  Avance Logic AL2101
  981.  38h = G    .      .   1024x768    256      .    .  STB VGA/EM-16 Plus (1MB)
  982.      = G 128x48     8x16 1024x768    256/256K  1   A000 Tseng ET4000 chipset
  983.      = G    .      .   1024x768    256      .    .  Orchid ProDesigner II
  984.      = G    .      .   1024x768    256      .    .  Compaq QVision 1024/1280
  985.  39h = G    .      .   1280x1024     16      .    .  Compaq QVision 1280
  986.  3Ah = G    .      .   1280x1024    256      .    .  Compaq QVision 1280
  987.  3Bh = G    .      .    512x480    256      .    .  Compaq QVision 1024/1280
  988.  3Ch = G    .      .    640x400     64K      .    .  Compaq QVision 1024/1280
  989.  3Dh = G    .      .   1280x1024     16      .    .  Definicon
  990.      = G 128x64     8x16 1280x1024     16      1   A000 Tseng ET4000 v3.00 [1,7]
  991.  3Eh = G    .      .   1280x961     16      .    .  Definicon
  992.      = G    .      .    640x480     64K      .    .  Compaq QVision 1024/1280
  993.  3Fh = G    .      .   1280x1024 256      .    .  Hercules ??? (ET4000W32)
  994.      = G    .      .    800x600     64K      .    .  Compaq QVision 1024/1280
  995.  40h = T  80x43      .      .      .      .    .  VEGA VGA, Tecmar VGA/AD
  996.      = T  80x43      .      .      .      .    .  Video7 V-RAM VGA
  997.      = T  80x43      .      .      .      .    .  Tatung VGA
  998.      = T 100x30      .      .     16      .    .  MORSE VGA
  999.      = T 100x30      .      .      .      .    .  Cirrus 510/520 chipset
  1000.      = T  80x25      .    720x350    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1001.      = G    .      .    320x200     64K      .    .  Avance Logic AL2101
  1002.      = G  80x25     8x16  640x400      2      1   B800 AT&T 6300, AT&T VDC600
  1003.      = G  80x25     8x16  640x400      2      1   B800 Olivetti Quaderno
  1004.      = G  80x25     8x16  640x400      2      1   B800 Compaq Portable
  1005.      = G    .      .   1024x768     64K      .    .  Compaq QVision 1280
  1006.  41h = T 132x25      .      .      .      .    .  VEGA VGA
  1007.      = T 132x25      .      .      .      .    .  Tatung VGA
  1008.      = T 132x25      .      .      .      .    .  Video7 V-RAM VGA
  1009.      = T 100x50      .      .     16      .    .  MORSE VGA
  1010.      = T 100x50      .      .      .      .    .  Cirrus 510/520 chipset
  1011.      = T  80x34     9x14  720x476     16/256K  .   B800 WD90C
  1012.      = T  80x34     9x14      .     16      .   B800 Diamond Speedstar 24X
  1013.      = G    .      .    512x512     64K      .    .  Avance Logic AL2101
  1014.      = G    .      .    640x200     16      1    .  AT&T 6300
  1015.      = G  80x25      .    720x348    mono      .   B000 Genoa SuperEGA BIOS 3.0+
  1016.  42h = T 132x43      .      .      .      .    .  VEGA VGA
  1017.      = T 132x43      .      .      .      .    .  Tatung VGA
  1018.      = T 132x43      .      .      .      .    .  Video7 V-RAM VGA
  1019.      = T  80x34     9x10      .      4      4   B800 Ahead B (Wizard/3270)
  1020.      = T 100x60      .      .     16      .    .  MORSE VGA
  1021.      = T 100x60      .      .      .      .    .  Cirrus 510/520 chipset
  1022.      = G  80x25     8x16  640x400     16      .    .  AT&T 6300, AT&T VDC600
  1023.      = G    .      .    640x400     64K      .    .  Avance Logic AL2101
  1024.      = G  80x25      .    720x348    mono      .   B800 Genoa SuperEGA BIOS 3.0+
  1025.  43h = T  80x60      .      .      .      .    .  VEGA VGA
  1026.      = T  80x60      .      .      .      .    .  Tatung VGA
  1027.      = T  80x60      .      .      .      .    .  Video7 V-RAM VGA
  1028.      = T  80x45     9x8      .      4      4   B800 Ahead B (Wizard/3270)
  1029.      = T 100x75      .      .     16      .    .  MORSE VGA
  1030.      = T  80x29      .    720x348    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1031.      = G    .      . 640x200 of 640x400 viewport       AT&T 6300 (unsupported)
  1032.      = G    .      .    640x480     64K      .    .  Avance Logic AL2101
  1033.  44h =    disable VDC and DEB output        .  AT&T 6300
  1034.      = T 100x60      .      .      .      .    .  VEGA VGA
  1035.      = T 100x60      .      .      .      .    .  Tatung VGA
  1036.      = T 100x60      .      .      .      .    .  Video7 V-RAM VGA
  1037.      = T  80x32      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1038.      = G    .      .    800x600     64K      .    .  Avance Logic AL2101
  1039.  45h = T 132x28      .      .      .      .    .  Tatung VGA
  1040.      = T 132x28      .      .      .      .    .  Video7 V-RAM VGA
  1041.      = T  80x44      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1042.  46h = T 132x25     8x14      .    mono      .    .  Genoa 6400
  1043.      = T 132x25     9x14      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1044.      = G 100x40     8x15  800x600      2      .    .  AT&T VDC600
  1045.  47h = T 132x29     8x12      .    mono      .    .  Genoa 6400
  1046.      = T 132x29     9x12      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1047.      = T 132x28     9x16 1188x448     16/256K  .   B800 WD90C
  1048.      = T 132x28     9x16      .     16      .   B800 Diamond Speedstar 24X
  1049.      = G 100x37     8x16  800x600     16      .    .  AT&T VDC600
  1050.  48h = T 132x32     8x12      .    mono      .    .  Genoa 6400
  1051.      = T 132x32     9x11      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1052.      = G  80x50     8x8   640x400      2      .   B800 AT&T 6300, AT&T VDC600
  1053.      = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno
  1054.  49h = T 132x44     8x8      .    mono      .    .  Genoa 6400
  1055.      = T 132x44     9x8      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1056.      = G  80x30     8x16  640x480      .      .    .  Lava Chrome II EGA
  1057.  4Dh = T 120x25      .      .      .      .    .  VEGA VGA
  1058.      = G    .      .    512x480     16M      .    .  Compaq QVision 1024/1280
  1059.  4Eh = T 120x43      .      .      .      .    .  VEGA VGA
  1060.      = T  80x60     8x8      .     16/256K  .   B800 Oak OTI-067/OTI-077 [8]
  1061.      = G    .      .    640x400     16M      .    .  Compaq QVision 1024/1280
  1062.  4Fh = T 132x25      .      .      .      .    .  VEGA VGA
  1063.      = T 132x60      .      .      .      .    .  some Oak Tech VGA [8]
  1064.      = G    .      .    640x480     16M      .    .  Compaq QVision 1280
  1065.  50h = T  80x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1066.      = T  80x34      .      .      .      .    .  Lava Chrome II EGA
  1067.      = T  80x43      .      .    mono      .    .  VEGA VGA
  1068.      = T 132x25     9x14      .    mono      .    .  Ahead Systems EGA2001
  1069.      = T 132x25     9x14      .      4      4   B800 Ahead B
  1070.      = T 132x25     8x14      .     16      8   B800 OAK Technologies VGA-16
  1071.      = T 132x25     8x14      .     16/256K  .   B800 Oak OTI-037/067/077 [8]
  1072.      = T 132x25     8x14 1056x350     16      8   B800 UM587 chipset
  1073.      = T 132x30      .      .     16      .    .  MORSE VGA
  1074.      = T 132x30      .      .      .      .    .  Cirrus 510/520 chipset
  1075.      = G  80x30     8x16  640x480     16      .    .  Paradise EGA-480
  1076.      = G  80x30     8x16  640x480     16      .    .  NEL Electronics BIOS
  1077.      = G    .      .    640x480    mono???      .    .  Taxan 565 EGA
  1078.      = G  40x25     8x8   320x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1079.  51h = T  80x30     8x16      .      .      .    .  Paradise EGA-480
  1080.      = T  80x30     9x16      .      .      .    .  NEL Electronics BIOS
  1081.      = T  80x30      .      .      .      .    .  Lava Chrome II EGA
  1082.      = T  80x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1083.      = T 132x25      .      .    mono      .    .  VEGA VGA
  1084.      = T 132x28     9x12      .      4      4   B800 Ahead B
  1085.      = T 132x43     8x8      .     16      5   B800 OAK Technologies VGA-16
  1086.      = T 132x43     8x8      .     16/256K  .   B800 Oak OTI-037/067/077
  1087.      = T 132x43     8x8  1056x344     16      5   B800 UM587 chipset
  1088.      = T 132x50      .      .     16      .    .  MORSE VGA
  1089.      = T 132x50      .      .      .      .    .  Cirrus 510/520 chipset
  1090.      = G  80x34     8x14  640x480     16      .    .  ATI EGA Wonder
  1091.      = G  80x25     8x8   640x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1092.  52h = T  80x60      .      .      .      .    .  Lava Chrome II EGA
  1093.      = T  80x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1094.      = T 132x43      .      .    mono      .    .  VEGA VGA
  1095.      = T 132x44     9x8      .    mono      .    .  Ahead Systems EGA2001
  1096.      = T 132x44     9x8      .      4      2   B800 Ahead B
  1097.      = T 132x60      .      .     16      .    .  MORSE VGA
  1098.      = T 132x60      .      .      .      .    .  Cirrus 510/520 chipset
  1099.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji&superimpose)
  1100.      = G  94x29     8x14  752x410     16      .    .  ATI EGA Wonder
  1101.      = G 100x75     8x8   800x600     16      1   A000 OAK Technologies VGA-16
  1102.      = G 100x75     8x8   800x600     16      .   A000 Oak OTI-037 chipset [8]
  1103.      = G 100x37     8x16  800x600     16      .   A000 Oak OTI-067/077 chips [8]
  1104.      = G 100x75     8x8   800x600     16      .   A000 UM587 chipset
  1105.      = G 128x30     8x16 1024x480     16      .    .  NEL Electronics BIOS
  1106.  53h = T  80x25     8x16      .      .      .    .  NEL Electronics BIOS
  1107.      = T  80x60      .      .     16      .    .  MORSE VGA
  1108.      = T  80x60      .      .      .      .    .  Cirrus 510/520 chipset
  1109.      = T 132x25     8x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1110.      = T 132x43      .      .      .      .    .  Lava Chrome II EGA
  1111.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji, no superimp.)
  1112.      = G    .      .    640x480    256      .    .  Oak VGA
  1113.      = G  80x30     8x16  640x480    256      .   A000 Oak OTI-067/OTI-077 [8]
  1114.      = G 100x40     8x14  800x560     16      .    .  ATI EGA Wonder,ATI VIP
  1115.      = G    .      .      .      .      .    .  AX PC
  1116.  54h = T 132x25      .      .      .      .    .  Lava Chrome II EGA
  1117.      = T 132x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1118.      = T 132x43     8x8      .      .      .    .  Paradise EGA-480
  1119.      = T 132x43     8x8      .      .      .    .  NEL Electronics BIOS
  1120.      = T 132x43     7x9      .     16/256K  .   B800 Paradise VGA
  1121.      = T 132x43     8x9      .     16/256K  .   B800 Paradise VGA on multisync
  1122.      = T 132x43      .      .      .      .    .  Taxan 565 EGA
  1123.      = T 132x43      .      .      .      .    .  AST VGA Plus
  1124.      = T 132x43      .      .      .      .    .  Hewlett-Packard D1180A
  1125.      = T 132x43     7x9      .     16      .    .  AT&T VDC600
  1126.      = T 132x43     9x9  1188x387     16/256K  .   B800 WD90C
  1127.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Speedstar 24X
  1128.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Stealth 24
  1129.      = T 132x43     8x8  1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1130.      = T 132x50     8x8      .     16      .   A000 NCR 77C22 [9]
  1131.      = G 100x42     8x14  800x600     16      .   A000 ATI EGA Wonder, VGA Wonder
  1132.      = G 100x42     8x14  800x600     16      .   A000 ATI Ultra 8514A, ATI XL
  1133.      = G    .      .    800x600    256      .   A000 Oak VGA
  1134.      = G 100x37     8x16  800x600    256      .   A000 Oak OTI-067/077 chips [8]
  1135.  55h = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1136.      = T 132x25     8x14      .      .      .    .  Paradise EGA-480
  1137.      = T 132x25     8x14      .      .      .    .  NEL Electronics BIOS
  1138.      = T 132x25     7x16      .     16/256K  .   B800 Paradise VGA
  1139.      = T 132x25     8x16      .     16/256K  .   B800 Paradise VGA on multisync
  1140.      = T 132x25      .      .      .      .    .  Taxan 565 EGA
  1141.      = T 132x25      .      .      .      .    .  AST VGA Plus
  1142.      = T 132x25      .      .      .      .    .  Hewlett-Packard D1180A
  1143.      = T 132x25     7x16      .     16      .    .  AT&T VDC600
  1144.      = T 132x25     8x16      .     16      .   A000 NCR 77C22 [9]
  1145.      = T 132x25     9x16 1188x400     16/256K  .   B800 WD90C
  1146.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Speedstar 24X
  1147.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Stealth 24
  1148.      = T 132x25     8x14 1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1149.      = T 132x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1150.      = G  94x29     8x14  752x410      .      .    .  Lava Chrome II EGA
  1151.      = G 128x48     8x16 1024x768     16/256K  .   A000 ATI VGA Wonder v4+  [5]
  1152.      = G    .      .   1024x768     16/256K  .    .  ATI VGA Wonder Plus
  1153.      = G    .      .   1024x768     16/256K  .    .  ATI Ultra 8514A,ATI XL
  1154.      = G 128x48     8x16 1024x768      4      .   A000 Oak OTI-067/077 chips [8]
  1155.  56h = T 132x43     8x8      .      3???      2   B000 NSI Smart EGA+
  1156.      = T 132x43     7x9      .      4      .   B000 Paradise VGA
  1157.      = T 132x43     8x9      .      4      .   B000 Paradise VGA on multisync
  1158.      = T 132x43      .      .    mono      .    .  Taxan 565 EGA
  1159.      = T 132x43     7x9      .      2      .    .  AT&T VDC600
  1160.      = T 132x43     9x8      .      .      .    .  NEL Electronics BIOS
  1161.      = T 132x50     8x8      .      4      .   A000 NCR 77C22 [9]
  1162.      = T 132x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1163.      = G    .      .   1024x768     16      .   A000 Oak VGA
  1164.      = G 128x48     8x16 1024x768     16      .   A000 Oak OTI-067/077 chips [8]
  1165.  57h = T 132x25     8x14      .      3???      4   B000 NSI Smart EGA+
  1166.      = T 132x25     7x16      .      4      .   B000 Paradise VGA
  1167.      = T 132x25     8x16      .      4      .   B000 Paradise VGA on multisync
  1168.      = T 132x25     9x14      .      .      .    .  NEL Electronics BIOS
  1169.      = T 132x25      .      .    mono      .    .  Taxan 565 EGA
  1170.      = T 132x25     7x16      .      2      .    .  AT&T VDC600
  1171.      = T 132x25     9x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1172.      = T 132x25     8x16      .      4      .   A000 NCR 77C22 [9]
  1173.      = G  96x48     8x16  768x1024     16      .   A000 Oak OTI-067/077 chips [8]
  1174.  58h = T  80x33     8x14      .     16      .   B800 ATI EGA Wonder,ATI VIP
  1175.      = T  80x32     9x16      .     16      .    .  Genoa 6400
  1176.      = T  80x43     8x8      .      .      .    .  NEL Electronics BIOS
  1177.      = T 132x30     9x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1178.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA
  1179.      = G 100x75     8x8   800x600     16      .    .  AT&T VDC600
  1180.      = G 100x75     8x8   800x600     16      .   A000 NCR 77C22 [9]
  1181.      = G 100x75     8x8   800x600     16      .    .  Diamond Speedstar 24X
  1182.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA, WD90C
  1183.      = G    .      .    800x600     16      .    .  AST VGA Plus, Compaq VGA
  1184.      = G    .      .    800x600     16      .    .  Dell VGA
  1185.      = G    .      .    800x600     16      .    .  Hewlett-Packard D1180A
  1186.      = G    .      .    800x600    ???      .    .  ELT VGA PLUS 16
  1187.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1188.      = G 160x64     8x16 1280x1024     16      .   A000 Oak OTI-077 chipset [8]
  1189.  59h = T  80x43     9x8      .      .      .    .  NEL Electronics BIOS
  1190.      = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1191.      = T 132x43     9x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1192.      = G 100x75     8x8   800x600      2      .   A000 Paradise VGA
  1193.      = G 100x75     8x8   800x600      2      .    .  AT&T VDC600
  1194.      = G    .      .    800x600      2      .    .  AST VGA Plus, Compaq VGA
  1195.      = G    .      .    800x600      2      .    .  Dell VGA
  1196.      = G    .      .    800x600      2      .    .  Hewlett-Packard D1180A
  1197.      = G 100x75     8x8   800x600      2      .   A000 NCR 77C22 [9]
  1198.      = G 128x48     8x16 1024x768    256      .   A000 Oak OTI-077 chipset [8]
  1199.  5Ah = T  80x60     8x8      .      .      .    .  NEL Electronics BIOS
  1200.      = T 132x60     9x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1201.      = G 128x48     8x16 1024x768      2      .   A000 NCR 77C22 [9]
  1202.  5Bh = T  80x30     8x16      .      .      .   B800 ATI VGA Wonder (undoc)
  1203.      = G    .      .    640x350    256      .    .  Genoa 6400
  1204.      = G  80x25     8x16  640x400     32K      .   A000 Oak OTI-067/077 chips [8]
  1205.      = G    .      .    800x600     16      .    .  Maxxon, SEFCO TVGA, Imtec
  1206.      = G 100x75     8x8   800x600     16/256K  .   A000 Trident TVGA 8800, 8900
  1207.      = G    .      .    800x600    ???      .    .  Vobis MVGA
  1208.      = G 100x37     8x16  800x600      .      .    .  NEL Electronics BIOS
  1209.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [1,9]
  1210.  5Ch = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1211.      = G    .      .    640x400    256      .    .  Logix, ATI Prism Elite
  1212.      = G    .      .    640x400    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1213.      = G  80x25     8x16  640x400    256/256K  .   A000 Zymos Poach, Hi Res 512
  1214.      = G  80x25     8x16  640x400    256/256K  .   A000 Trident TVGA 8800/8900
  1215.      = G  80x30     8x16  640x480    256      .    .  Genoa 6400
  1216.      = G  80x30     8x16  640x480     32K      .   A000 Oak OTI-077 chipset [8]
  1217.      = G 100x75     8x8   800x600    256      .   A000 NCR 77C22 [9]
  1218.      = G 100x75     8x8   800x600    256/256K  .   A000 WD90C
  1219.      = G 100x75     8x8   800x600    256/256K  .   A000 Diamond Speedstar 24X
  1220.      = G 100x37     8x16  800x600    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1221.  5Dh = T 100x75     8x8      .      .      .    .  NEL Electronics BIOS
  1222.      = G  80x25     8x14  640x350     64K      .    .  STB Lightspeed ET4000/W32P
  1223.      = G    .      .    640x480    256      .    .  Logix, ATI Prism Elite
  1224.      = G    .      .    640x480    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1225.      = G  80x30     8x16  640x480    256/256K  .   A000 Zymos Poach, Hi Res 512
  1226.      = G  80x30     8x16  640x480    256/256K  .   A000 Trident TVGA 8800 (512K)
  1227.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [9]
  1228.      = G 128x48     8x16 1024x768     16/256K  .   A000 WD90C
  1229.      = G 128x48     8x16 1024x768     16      .    .  Diamond Speedstar 24X
  1230.      = G 128x48     8x16 1024x768     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1231.  5Eh = G    .      .    640x400    256      .    .  Paradise VGA,VEGA VGA
  1232.      = G    .      .    640x400    256      .    .  AST VGA Plus, NCR 77C22
  1233.      = G    .      .    640x400    256      .    .  Compaq VGA, Dell VGA
  1234.      = G  80x25     8x16  640x400    256      .    .  AT&T VDC600
  1235.      = G  80x25     8x16  640x400    256      .   A000 NCR 77C22 [9]
  1236.      = G  80x25     8x16  640x400    256/256K  .   A000 WD90C
  1237.      = G  80x25     8x16  640x400    256/256K  .   A000 Diamond Speedstar 24X
  1238.      = G    .      .    800x600     16      .    .  Logix, ATI Prism Elite
  1239.      = G 100x37     8x16  800x600     16      .    .  NEL Electronics BIOS
  1240.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1241.      = G 100x75     8x8   800x600    256/256K  .   A000 Zymos Poach, Trident 8900
  1242.      = G 100x75     8x8   800x600    256/256K  .   A000 Hi Res 512
  1243.  5Fh = G  80x25     8x16  640x400     64K      .    .  STB Lightspeed ET4000/W32P
  1244.      = G    .      .    640x480    256      .    .  Paradise VGA
  1245.      = G    .      .    640x480    256      .    .  AST VGA Plus, NCR 77C22
  1246.      = G    .      .    640x480    256      .    .  Compaq VGA, Dell VGA
  1247.      = G    .      .    640x480    256      .    .  Hewlett-Packard D1180A
  1248.      = G  80x30     8x16  640x480    256      .    .  AT&T VDC600 (512K)
  1249.      = G  80x30     8x16  640x480    256      .   A000 NCR 77C22 [9]
  1250.      = G  80x30     8x16  640x480    256/256K  .   A000 WD90C
  1251.      = G  80x30     8x16  640x480    256/256K  .   A000 Diamond Speedstar 24X
  1252.      = G  80x30     8x16  640x480    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1253.      = G    .      .   1024x768     16      .    .  Logix, ATI Prism Elite
  1254.      = G    .      .   1024x768     16      .    .  Maxxon, Imtec
  1255.      = G 128x48     8x16 1024x768     16      .    .  Genoa 6400
  1256.      = G 128x48     8x16 1024x768     16/256K  .   A000 Zymos Poach, Hi Res 512
  1257.      = G 128x48     8x16 1024x768     16/256K  .   A000 Trident TVGA 88/8900 512K
  1258.  60h = T 132x25     8x14      .     16/64      8   B800 Quadram Ultra VGA
  1259.      = T 132x25     8x14      .     16      .    .  Genoa 6400
  1260.      = T 132x25     8x14      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1261.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  1262.      = T 132x25      .      .     16      .    .  Chips&Technologies chipset
  1263.      = G  80x???  .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1264.      = G  80x25     8x16  640x400    256      1   A000 Ahead A, Ahead B
  1265.      = G    .      .    752x410      .      .    .  VEGA VGA
  1266.      = G    .      .    752x410     16      .    .  Tatung VGA
  1267.      = G    .      .    752x410     16      .    .  Video7 V-RAM VGA
  1268.      = G 128x48     8x16 1024x768      4/256K  .   A000 Trident TVGA 8900
  1269.      = G 128x48     8x16 1024x768    256/256K  .   A000 WD90C
  1270.      = G 128x48     8x16 1024x768    256/256K  .   A000 Diamond Speedstar 24X
  1271.      = G 128x48     8x16 1024x768    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1272.  61h = T 132x29     8x12      .     16/64      8   B800 Quadram Ultra VGA
  1273.      = T 132x29     8x8      .     16      .    .  Genoa 6400
  1274.      = T 132x29     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1275.      = T 132x50      .      .      .      .    .  Cirrus 5320 chipset
  1276.      = T 132x50      .      .     16      .    .  Chips&Technologies chipset
  1277.      = G    .      .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1278.      = G  80x25     8x16  640x400    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1279.      = G  80x25     8x16  640x400    256      .   A000 ATI Ultra 8514A,ATI XL
  1280.      = G  80x30     8x16  640x480    256      1   A000 Ahead A, Ahead B (512K)
  1281.      = G    .      .    720x540      .      .    .  VEGA VGA
  1282.      = G    .      .    720x540     16      .    .  Tatung VGA
  1283.      = G    .      .    720x540     16      .    .  Video7 V-RAM VGA
  1284.      = G  96x64     8x16  768x1024     16/256K  .   A000 Trident TVGA 88/8900 512K
  1285.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [1,9]
  1286.  62h = T 132x32     8x11      .     16/64      6   B800 Quadram Ultra VGA
  1287.      = T 132x32     8x12      .     16      .    .  Genoa 6400
  1288.      = T 132x32     8x11      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1289.      = G    .      .    640x450     16      .    .  Cirrus 510/520 chipset
  1290.      = G  80x30     8x16  640x480    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1291.      = G  80x30     8x16  640x480    256      .   A000 ATI Ultra 8514A,ATI XL
  1292.      = G  80x30     8x16  640x480    32K      .   A000 WD90C
  1293.      = G  80x30     8x16  640x480    32K      .   A000 Diamond Speedstar 24X
  1294.      = G    .      .    800x600      .      .    .  VEGA VGA
  1295.      = G    .      .    800x600     16      .    .  Tatung VGA
  1296.      = G    .      .    800x600     16      .    .  Video7 V-RAM VGA
  1297.      = G 100x75     8x8   800x600    256      1   A000 Ahead A, Ahead B (512K)
  1298.      = G 128x48     8x16 1024x768    256/256K  .   A000 Trident TVGA 8900, Zymos
  1299.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [9]
  1300.  63h = T 132x44     8x8      .     16/64      5   B800 Quadram Ultra VGA
  1301.      = T 132x44     8x8      .     16      .    .  Genoa 6400
  1302.      = T 132x44     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1303.      = G    .      .    720x540     16      .    .  MORSE VGA
  1304.      = G    .      .    720x540     16      .    .  Cirrus 510/520 chipset
  1305.      = G 100x42     8x14  800x600    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1306.      = G 100x42     8x14  800x600    256      .   A000 ATI Ultra 8514A,ATI XL
  1307.      = G    .      .    800x600    32K      .   A000 WD90C
  1308.      = G    .      .    800x600    32K      .   A000 Diamond Speedstar 24X
  1309.      = G 128x48     7x16 1024x768    256      1   A000 Ahead B (1MB)
  1310.      = G    .      .   1024x768      2      .    .  Video7 V-RAM VGA
  1311.  64h = T 132x60     8x8      .     16      .    .  Genoa 6400
  1312.      = G    .      .    640x480    64K      .   A000 Cirrus CL-GD 5422/5426
  1313.      = G    .      .    800x600     16      .    .  MORSE VGA
  1314.      = G    .      .    800x600     16      .    .  Cirrus 510/520 chipset
  1315.      = G    .      .    800x600    ???      .    .  SAMPO-Mira VGA
  1316.      = G    .      .   1024x768      4      .    .  Video7 V-RAM VGA
  1317.      = G 128x48     8x16 1024x768    256      .   A000 ATI VGA Wonder Plus,ATI XL
  1318.      = G 160x64     8x16 1280x1024     16/256K  .   A000 WD90C [1]
  1319.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Diamond Speedstar 24X [1]
  1320.  65h = G    .      .    800x600    64K      .   A000 Cirrus CL-GD 5422/5426
  1321.      = G    .      .   1024x768     16      .    .  Video7 V-RAM VGA
  1322.      = G 128x48     8x16 1024x768     16      .   A000 ATI VGA Wonder
  1323.  66h = T  80x50     8x8   640x400     16/256K  .   B800 WD90C
  1324.      = T  80x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1325.      = G    .      .    640x400    256      .    .  Tatung VGA
  1326.      = G    .      .    640x400    256      .    .  Video7 V-RAM VGA
  1327.      = G    .      .    640x480    32K      .   A000 Cirrus CL-GD 5422/5426
  1328.  67h = T  80x43     8x8   640x344     16/256K  .   B800 WD90C
  1329.      = T  80x43     8x8      .     16      .   B800 Diamond Speedstar 24X
  1330.      = G    .      .    640x480    256      .    .  Video7 V-RAM VGA
  1331.      = G    .      .    800x600    32K      .   A000 Cirrus CL-GD 5422/5426
  1332.      = G 128x48     8x16 1024x768      4      .   A000 ATI VGA Wonder
  1333.      = G 160x64     8x16 1280x1024     16      .   A000 NCR 77C22 [1,9]
  1334.  69h = T 132x50     8x8  1056x400     16/256K  .   B800 WD90C
  1335.      = T 132x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1336.      = G    .      .    720x540    256      .    .  Video7 V-RAM VGA
  1337.  6Ah = G    .      .    800x600     16      .   A000 VESA standard interface
  1338.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1339.      = G 100x75     8x8   800x600     16      .    .  Diamond Speedstar 24X
  1340.      = G    .      .    800x600     16      .   A000 Ahead A
  1341.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (VESA) (see 71h)
  1342.      = G    .      .    800x600     16      .    .  Zymos Poach, Hi Res 512
  1343.      = G    .      .    800x600     16      .    .  Epson LT-386SX in CRT Mode
  1344.      = G    .      .    800x600     16      .    .  Compuadd 316SL in CRT Mode
  1345.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1346.      = G 100x42     8x14  800x600      .      .   A000 ATI VGA Wonder (undoc)
  1347.      = G    .      .    800x600     16      .    .  Chips&Technologies chipset
  1348.      = G 160x64     8x16 1280x1024 256      .   A000 NCR 77C22 [1,9]
  1349.  6Bh = T 100x37     8x16      .     16      .    .  Genoa 6400
  1350.      = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1351.  6Ch = G  80x30     8x16  640x480     16M      .   A000 Trident 8900CL/BIOS C04
  1352.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1353.      = G 160x60     8x16 1280x960     16/256K  .   A000 WD90C [1]
  1354.      = G 160x60     8x16 1280x960     16/256K  .   A000 Diamond Speedstar 24X [1]
  1355.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1356.  6Dh = G  80x25     8x14  640x350     64K      .    .  STB Lightspeed ET4000/W32P
  1357.      = G 160x64     8x16 1280x1024 256/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1358.  6Eh = G  40x25     8x8   320x200     64K      .   A000 Cirrus CL-GD 5422/5426
  1359.  6Fh = G  40x25     8x8   320x200     16M      .   A000 Cirrus CL-GD 5422/5426
  1360.  70h =    extended mode set (see AX=0070h)    .  Everex Micro Enhancer EGA
  1361.      = T  40x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1362.      = T  40x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1363.      = G    .      .    360x480    256      .    .  Cirrus 510/520/5320 chips
  1364.      = G  90x28     8x14  720x392     16      1   A000 Ahead B
  1365.      = G    .      .    800x600     16      .    .  C&T chipset, Cardinal
  1366.      = G    .      .   1024x480    256      .    .  Trident 8900C BIOS C3.0
  1367.  71h = T  80x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1368.      = T  80x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1369.      = G    .      .    528x400    256      .    .  Cirrus 510/520 chipset
  1370.      = G  80x30     8x16  640x480     16M      .   A000 Cirrus CL-GD 5422/5426
  1371.      = G 100x35     8x16  800x600     16/64      .   A000 NSI Smart EGA+
  1372.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (same as 6Ah)
  1373.      = G    .      .    960x720     16      .    .  C&T chipset, Cardinal
  1374.      = G    .      .   1024x480    256      .    .  Trident 8900C BIOS C3.0
  1375.  72h = T  80x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1376.      = T  80x60     8x8      .     16      .   B800 Genoa 6400
  1377.      = T  80x60     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1378.      = G    .      .    528x480    256      .    .  Cirrus 510/520 chipset
  1379.      = G  80x25     8x19  640x480     16      1   A000 DOS/V w/ any VGA
  1380.      = G    .      .    640x480    32K      .   A000 ATI
  1381.      = G    .      .    640x480    16M      .   A000 WD90C
  1382.      = G    .      .    640x480    16M      .   A000 Diamond Speedstar 24X
  1383.      = G    .      .   1024x768     16      .    .  C&T chipset, Cardinal
  1384.  73h = G  80x60     8x8   640x480     16      .   A000 Quadram Ultra VGA
  1385.      = G  80x60     8x8   640x480     16      .    .  Genoa 6400
  1386.      = G  80x60     8x8   640x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1387.      = T  80x25     8x19  640x475     16      1   none DOS/V, emulated in VGA graph
  1388.  74h = T  80x66     8x8      .     16      .   B800 Quadram Ultra VGA
  1389.      = T  80x66     8x8      .     16      .   B800 Genoa 6400
  1390.      = T  80x66     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1391.      = G    .      .    640x400      2      .   B800 Toshiba 3100 AT&T mode
  1392.      = G  80x30     8x16  640x480     32K      .   A000 Trident 8900C/BIOS C03
  1393.      = G 128x48     8x16 1024x768     16      1   A000 Ahead A, Ahead B (512K)
  1394.      = G    .      .   1024x768     64K      .   A000 Cirrus CL-GD 5422/5426 [1]
  1395.  75h = G  80x30     8x16  640x480     64K      .   A000 Trident 8900C/BIOS C03
  1396.      = G  80x66      .    640x528     16???      .   A000 Quadram Ultra VGA
  1397.      = G  80x66      .    640x528     16      .    .  Genoa SuperEGA BIOS 3.0+
  1398.      = G 128x48     8x16 1024x768      4      1   A000 Ahead B
  1399.  76h = T  94x29     8x14      .     16      .   B800 Quadram Ultra VGA
  1400.      = T  94x29     8x14      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1401.      = G 100x75     8x8   800x600     32K      .   A000 Trident 8900C/BIOS C03
  1402.      = G 128x48     8x16 1024x768      2      1   A000 Ahead B
  1403.  77h = G  94x29      .    752x410     16???      .   A000 Quadram Ultra VGA
  1404.      = G  94x29      .    752x410     16      .    .  Genoa SuperEGA BIOS 3.0+
  1405.      = G 100x75     8x8   800x600     64K      .   A000 Trident 8900C/BIOS C03
  1406.  78h = T 100x37     8x16      .     16      .    .  Genoa 6400
  1407.      = T 100x75     8x8      .     16      .   B800 Quadram Ultra VGA
  1408.      = T 100x75     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1409.      = G    .      .    640x400    256      .    .  STB VGA/EM-16 Plus
  1410.      = G    .      .    640x400    256      .    .  Cardinal, C&T chipset
  1411.      = G    .      .    640x400    256      .    .  Cirrus 5320 chipset
  1412.  79h = G    .      .    640x480    256      .    .  Cardinal, C&T chipset
  1413.      = G 100x75      .    800x600     16???      .   A000 Quadram Ultra VGA
  1414.      = G 100x75     8x8   800x600     16      .    .  Genoa SuperEGA BIOS 3.0+
  1415.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1416.  7Ah = T 114x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1417.      = T 114x60     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1418.      = G    .      .    720x540    256      .    .  C&T chipset, Cardinal
  1419.  7Bh = G    .      .    800x600    256      .    .  C&T chipset, Cardinal
  1420.      = G 114x60      .    912x480     16???      .   A000 Quadram Ultra VGA
  1421.      = G    .      .    912x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1422.  7Ch = G    .      .    512x512     16      .    .  Genoa
  1423.      = G    .      .    800x600    256      .    .  C&T 82C453 chipset
  1424.  7Dh = G  64x32     8x16  512x512    256      .    .  Genoa
  1425.  7Eh =    special mode set (see AX=007Eh)        .  Paradise VGA, AT&T VDC600
  1426.      = G  80x25     8x16  640x400    256      .    .  Genoa 6400
  1427.      = G    .      .   1024x768    256      .    .  C&T 82C453 chipset
  1428.  7Fh =    special function set (see AX=007Fh)    .  Paradise VGA, AT&T VDC600
  1429.      = G 128x48     8x16 1024x768      4      .    .  Genoa 6400
  1430.  82h = T  80x25      .      .    B&W      .    .  AT&T VDC overlay mode [6]
  1431.  83h = T  80x25      .      .      .      .    .  AT&T VDC overlay mode [6]
  1432.  86h = G    .      .    640x200    B&W      .    .  AT&T VDC overlay mode [6]
  1433.  88h = G  90x43     8x8   720x352    mono      .   B000 Hercules + MSHERC.COM
  1434.  C0h = G    .      .    640x400    2/prog palette    .  AT&T VDC overlay mode [6]
  1435.      = G    .      .    640x400    2/prog palette    .  Olivetti Quaderno overlay
  1436.  C4h =    disable output      .      .      .    .  AT&T VDC overlay mode [6]
  1437.  C8h = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno overlay
  1438.  D0h = G    .      .    640x400      2      .   B800 DEC VAXmate AT&T mode
  1439. Notes:
  1440. [1] interlaced only
  1441. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1442.       SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1443.       otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1444.       color) 132x25 character mode.
  1445.     for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1446.       resident
  1447. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1448. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1449.       22h is page 1) even if there is no Hercules graphics board installed
  1450. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1451. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1452.       40h, or 44h
  1453. [7] BIOS text support is broken in this undocumented mode; scrolling moves only
  1454.       about 1/3 of the screen (and does even that portion incorrectly), while
  1455.       screen clears only clear about 3/4.
  1456. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1457.       may choose to use only partially or not at all; thus, not all Oak boards
  1458.       support all "Oak" modes listed here
  1459. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1460.       precluding the use of a monochrome adapter in the same system
  1461. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1462.       v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1463.       09/14/90 version
  1464. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1465.       installation check for HERKULES.COM is the signature "Herkules" two bytes
  1466.       beyond the INT 10 handler
  1467. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into modes
  1468.       21h or 27h; this version of the BIOS also sets the BIOS data area
  1469.       incorrectly for extended text modes, resulting in scrolling after only
  1470.       24 lines (the VMODE.EXE    utility does set the data area correctly)
  1471. [13] The Tandy 1000SL/TL BIOS does not actually support this mode
  1472. Index:    video modes
  1473. Index:    installation check|HERKULES
  1474. --------V-100070-----------------------------
  1475. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1476.     AX = 0070h
  1477.     BL = mode (see #0010)
  1478. Desc:    specify a proprietary display mode on the Everex Micro Enhancer or
  1479.       Viewpoint video adapters
  1480. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1481.  
  1482. (Table 0010)
  1483. Values for Everex video mode:
  1484.      text/ text pixel    pixel    colors disply scrn monitor    adapter
  1485.      grph resol     box  resolution       pages  addr
  1486.  00h = G    .      .    640x480     16      .    .  multisync  EGA,VGA
  1487.  01h = G    .      .    752x410     16      .    .  multisync  EGA,VGA
  1488.  02h = G    .      .    800x600     16      .    .  multisync  EGA,VGA
  1489.  03h = T  80x34      .      .      .      .    .  multisync  EGA,VGA
  1490.  04h = T  80x60      .      .      .      .    .  multisync  EGA,VGA
  1491.  05h = T  94x29      .      .      .      .    .  multisync  EGA only
  1492.  06h = T  94x51      .      .      .      .    .  multisync  EGA only
  1493.  07h = T 100x43     8x14      .     16      .    .  .          VGA only
  1494.  08h = T 100x75     8x8      .     16      .    .  .          VGA only
  1495.  09h = T  80x44      .      .      .      .    .  EGA          EGA only
  1496.  0Ah = T 132x25      .      .      .      .    .  EGA          EGA,VGA
  1497.  0Bh = T 132x44      .      .      .      .    .  EGA          EGA,VGA
  1498.  0Ch = T 132x25      .      .      .      .    .  CGA          EGA only
  1499.  0Dh = T  80x44      .      .      .      .    .  mono          EGA only
  1500.  0Eh = T 132x25      .      .      .      .    .  mono
  1501.  0Fh = T 132x44      .      .      .      .    .  mono
  1502.  10h =    reserved
  1503.  11h = G    .      .   1280x350      4      .    .  .          EGA only
  1504.  12h = G    .      .   1280x600      4      .    .  .          EGA only
  1505.  13h = G    .      .    640x350    256      .    .  .          EGA,EV673
  1506.  14h = G    .      .    640x400    256      .    .  .
  1507.  15h = G    .      .    512x480    256      .    .  .
  1508.  16h = T  80x30     8x16      .    256      .    .  .          VGA only
  1509.  18h = T 100x27     8x16      .     16      .    .  .          VGA only
  1510.  20h = G    .      .   1024x768     16      .    .  .          Everex 629,678
  1511.         .      .      .      .      .    .  .          Everex EV-673
  1512.  21h = T 160x64     8x16 1280x1024     16      .    .  .          1MB VGA only
  1513.  30h = G    .      .    640x480    256      .    .  .          Everex 629,678
  1514.         .      .      .      .      .    .  .          Everex EV-673
  1515.  31h = G    .      .    800x600    256      .    .  .          Everex 629,678
  1516.         .      .      .      .      .    .  .          Everex EV-673
  1517.  32h = G 128x48     8x16 1024x768    256      .    .  .          1MB VGA only
  1518.  40h = T 132x30     8x16      .     16      .    .  .          VGA only
  1519.  50h = T 132x32     8x16      .    mono      .    .  .          VGA only
  1520.  62h = G  40x25     8x8   320x200    32K      .    .  .          Vwpt TC (EV629)
  1521.  70h = G  64x30     8x16  512x480    32K      .    .  .          Viewpoint TC
  1522.  71h = G  80x30     8x16  640x480    32K      .    .  .          Viewpoint TC
  1523.  76h = G  64x30     8x16  512x480    16M      .    .  .          Viewpoint TC
  1524.  77h = G  80x30     8x16  640x480    16M      .    .  .          Viewpoint TC
  1525. Index:    video modes;Everex
  1526. --------V-10007E-----------------------------
  1527. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1528.     AX = 007Eh
  1529.     BX = horizontal dimension of the mode desired
  1530.     CX = vertical dimension of the mode desired
  1531.         (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1532.     DX = number of colors of the mode desired (0000h for monochrome modes)
  1533. Return: BH = 7Eh if successful (Paradise VGA)
  1534.     AL = 7Eh if successful (AT&T VDC600)
  1535. Desc:    specify a display mode by resolution rather than mode number
  1536. SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
  1537. Index:    video modes;Paradise|video modes;AT&T
  1538. --------V-10007FBH00-------------------------
  1539. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
  1540.     AX = 007Fh
  1541.     BH = 00h
  1542. Return: AL = 7Fh if successful (AT&T VDC600)
  1543.     BH = status (Paradise/Dell)
  1544.         00h invalid function
  1545.         7Fh successful
  1546. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1547. --------V-10007FBH01-------------------------
  1548. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
  1549.     AX = 007Fh
  1550.     BH = 01h
  1551. Return: AL = 7Fh if successful (AT&T VDC600)
  1552.     BH = status (Paradise/Dell)
  1553.         00h invalid function
  1554.         7Fh successful
  1555. Note:    color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
  1556.       mode 7 will set non-VGA MDA/Hercules operation
  1557. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
  1558. --------V-10007FBH02-------------------------
  1559. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
  1560.     AX = 007Fh
  1561.     BH = 02h
  1562. Return: AL = 7Fh if successful (AT&T VDC600)
  1563.     BH = status (Paradise/Dell)
  1564.         00h invalid function
  1565.         7Fh successful
  1566.     ---if successful---
  1567.     BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1568.     CH = total video RAM size in 64k byte units
  1569.     CL = video RAM used by the current mode
  1570. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1571. --------V-10007F-----------------------------
  1572. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
  1573.     AX = 007Fh
  1574.     BH = function
  1575.         03h     lock current mode
  1576.         allows current mode (VGA or non-VGA) to survive re-boot
  1577.         04h     enter MDA mode
  1578.         05h     enter CGA mode
  1579.         06h     enter monochrome VGA mode (also switches to video mode 7)
  1580.         07h     enter color VGA mode (also switches to video mode 3)
  1581.         0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1582.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1583.         BL = value to set in the paradise register
  1584.         1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1585.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1586.         Return: BL = value of the paradise register
  1587.             BH = 7Fh if successful
  1588.         29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
  1589. Return: AL = 7Fh if successful (AT&T VDC600)
  1590.     BH = status (Paradise/Dell)
  1591.         00h invalid function
  1592.         7Fh successful
  1593. Desc:    set emulation mode or access proprietary extended data registers
  1594. SeeAlso: AX=007Eh,AH=FF"Oak"
  1595. --------V-10007FBH60-------------------------
  1596. INT 10 - Paradise VGA - ???
  1597.     AX = 007Fh
  1598.     BH = 60h
  1599.     BL = ??? (00h-13h)
  1600.     ???
  1601. Return: BH = status (00h failed or not supported, 7Fh successful)
  1602.     ???
  1603. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1604. --------V-10007FBH61-------------------------
  1605. INT 10 - Paradise VGA - ???
  1606.     AX = 007Fh
  1607.     BH = 61h
  1608.     ES:DI -> buffer for list of ??? (see #0011)
  1609. Return: BH = status (00h failed or not supported, 7Fh successful)
  1610.     ???
  1611. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1612.  
  1613. Format of Paradise VGA list entry:
  1614. Offset    Size    Description    (Table 0011)
  1615.  00h    BYTE    ??? or 00h if end of list
  1616.  01h    BYTE    ???
  1617.  02h    WORD    ???
  1618.  04h    WORD    ???
  1619.  06h    WORD    ???
  1620. --------V-10007FBXA500-----------------------
  1621. INT 10 - Paradise VGA - ???
  1622.     AX = 007Fh
  1623.     BX = A500h
  1624.     ???
  1625. Return: BH = status (00h failed or not supported, 7Fh successful)
  1626.     ???
  1627. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1628. --------V-10007FBHA5-------------------------
  1629. INT 10 - Paradise VGA - ???
  1630.     AX = 007Fh
  1631.     BH = A5h
  1632.     BL = ???
  1633.         bits 3-0: ??? (0-4)
  1634.         bits 5,4: ???
  1635.     ???
  1636. Return: BH = status (00h failed or not supported, 7Fh successful)
  1637.     ???
  1638. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1639. --------V-10007FBHA6-------------------------
  1640. INT 10 - Paradise VGA - ???
  1641.     AX = 007Fh
  1642.     BH = A6h
  1643.     ???
  1644. Return: BH = status (00h failed or not supported, 7Fh successful)
  1645.     ???
  1646. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1647. --------V-1001-------------------------------
  1648. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1649.     AH = 01h
  1650.     CH = cursor start and options (see #0012)
  1651.     CL = bottom scan line containing cursor (bits 0-4)
  1652. Desc:    specify the starting and ending scan lines to be occupied by the
  1653.       hardware cursor in text modes
  1654. Notes:    buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1655.       returns unmapped cursor shape
  1656.     UltraVision scales size to the current font height by assuming 14-line
  1657.       monochrome and 8-line color fonts; this call is not valid if cursor
  1658.       emulation has been disabled
  1659.     applications which wish to change the cursor by programming the
  1660.       hardware directly on EGA or above should call INT 10/AX=1130h or
  1661.       read 0040h:0085h first to determine the current font height
  1662.     on some adapters, setting the end line greater than the number of lines
  1663.       in the font will result in the cursor extending to the top of the
  1664.       next character cell on the right
  1665. BUG:    AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1666.       is not equal to the current video mode
  1667. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h,#2288
  1668.  
  1669. Bitfields for cursor start and options:
  1670. Bit(s)    Description    (Table 0012)
  1671.  7    should be zero
  1672.  6,5    cursor blink
  1673.     (00=normal, 01=invisible, 10=erratic, 11=slow)
  1674.     (00=normal, other=invisible on EGA/VGA)
  1675.  4-0    topmost scan line containing cursor
  1676. --------V-1002-------------------------------
  1677. INT 10 - VIDEO - SET CURSOR POSITION
  1678.     AH = 02h
  1679.     BH = page number
  1680.         0-3 in modes 2&3
  1681.         0-7 in modes 0&1
  1682.         0 in graphics modes
  1683.     DH = row (00h is top)
  1684.     DL = column (00h is left)
  1685. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh
  1686. --------V-1003-------------------------------
  1687. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1688.     AH = 03h
  1689.     BH = page number
  1690.         0-3 in modes 2&3
  1691.         0-7 in modes 0&1
  1692.         0 in graphics modes
  1693. Return: AX = 0000h (Phoenix BIOS)
  1694.     CH = start scan line
  1695.     CL = end scan line
  1696.     DH = row (00h is top)
  1697.     DL = column (00h is left)
  1698. Notes:    a separate cursor is maintained for each of up to 8 display pages
  1699.     many ROM BIOSes incorrectly return the default size for a color display
  1700.       (start 06h, end 07h) when a monochrome display is attached
  1701. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h
  1702. --------V-1004-------------------------------
  1703. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  1704.     AH = 04h
  1705. Return: AH = light pen trigger flag
  1706.         00h not down/triggered
  1707.         01h down/triggered
  1708.         DH,DL = row,column of character light pen is on
  1709.         CH = pixel row (graphics modes 04h-06h)
  1710.         CX = pixel row (graphics modes with >200 rows)
  1711.         BX = pixel column
  1712. Desc:    determine the current position and status of the light pen (if
  1713.       present)
  1714. Notes:    on a CGA, returned column numbers are always multiples of 2 (320-
  1715.       column modes) or 4 (640-column modes)
  1716.     returned row numbers are only accurate to two lines
  1717. --------V-1004------------------------------------
  1718. INT 10 - HUNTER 16 - GET CURSOR ADDRESS
  1719.     AH = 04h
  1720.     BH = page
  1721. Return: DH = row (0..24)
  1722.     DL = column (0..79)
  1723.     CH = cursor pixel Y-address (0..199)
  1724.     CL = cursor pixel X-address (0..639)
  1725. Notes:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  1726.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  1727.     pixel coordinates are for the lower left corner of the character cell
  1728.       containing the cursor
  1729. SeeAlso: AH=60h"HUNTER"
  1730. --------V-1005-------------------------------
  1731. INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE
  1732.     AH = 05h
  1733.     AL = new page number (00h to number of pages - 1) (see #0009)
  1734. Desc:    specify which of possibly multiple display pages will be visible
  1735. Note:    to determine whether the requested page actually exists, use AH=0Fh
  1736.       to query the current page after making this call
  1737. SeeAlso: AH=0Fh,AH=43h,AH=45h
  1738. --------V-1005-------------------------------
  1739. INT 10 - VIDEO - PCjr, Tandy 1000 - MANIPULATE CRT/CPU PAGE REGISTERS
  1740.     AH = 05h
  1741.     AL = subfunction
  1742.         80h read CRT and CPU page registers
  1743.         Return: BH = CRT page register
  1744.             BL = CPU page register
  1745.         81h set CPU page register
  1746.         BL = CPU page
  1747.         82h set CRT page register
  1748.         BH = CRT page
  1749.         83h set both CPU and CRT page registers
  1750.         BL = CPU page
  1751.         BH = CRT page
  1752. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1753.       memory will be mapped at B800h by the hardware
  1754.     the CRT page determines the start address of the memory used by the
  1755.       video controller
  1756. --------V-1005-------------------------------
  1757. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER
  1758.     AH = 05h
  1759.     AL = function
  1760.         00h set address of graphics bitmap buffer (video modes 60h,61h)
  1761.         BX = segment of buffer
  1762.         0Fh get address of graphics bitmap buffer (video modes 60h,61h)
  1763.         Return: DX = segment of graphics bitmap buffer
  1764. --------V-1006-------------------------------
  1765. INT 10 - VIDEO - SCROLL UP WINDOW
  1766.     AH = 06h
  1767.     AL = number of lines by which to scroll up (00h = clear entire window)
  1768.     BH = attribute used to write blank lines at bottom of window
  1769.     CH,CL = row,column of window's upper left corner
  1770.     DH,DL = row,column of window's lower right corner
  1771. Note:    affects only the currently active page (see AH=05h)
  1772. BUGS:    some implementations (including the original IBM PC) have a bug which
  1773.       destroys BP
  1774.     the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  1775.       scrolling in an SVGA mode (800x600 or higher)
  1776. SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  1777. --------V-1007-------------------------------
  1778. INT 10 - VIDEO - SCROLL DOWN WINDOW
  1779.     AH = 07h
  1780.     AL = number of lines by which to scroll down (00h=clear entire window)
  1781.     BH = attribute used to write blank lines at top of window
  1782.     CH,CL = row,column of window's upper left corner
  1783.     DH,DL = row,column of window's lower right corner
  1784. Note:    affects only the currently active page (see AH=05h)
  1785. BUGS:    some implementations (including the original IBM PC) have a bug which
  1786.       destroys BP
  1787.     the Trident TVGA8900CL (BIOS dated 9/8/92) clears DS to 0000h when
  1788.       scrolling in an SVGA mode (800x600 or higher)
  1789. SeeAlso: AH=06h,AH=72h,AH=73h,INT 50/AX=0014h
  1790. --------V-1008-------------------------------
  1791. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1792.     AH = 08h
  1793.     BH = page number (00h to number of pages - 1) (see #0009)
  1794. Return: AH = charater's attribute (see #0013)
  1795.     AL = character
  1796. Notes:    for monochrome displays, a foreground of 1 with background 0 is
  1797.       underlined
  1798.     the blink bit may be reprogrammed to enable intense background colors
  1799.       using AX=1003h or by programming the CRT controller
  1800.     the foreground intensity bit (3) can be programmed to switch between
  1801.       character sets A and B on EGA and VGA cards, thus enabling 512
  1802.       simultaneous characters on screen.  In this case the bit's usual
  1803.       function (intensity) is regularly turned off.
  1804. SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
  1805.  
  1806. Bitfields for character's display attribute:
  1807. Bit(s)    Description    (Table 0013)
  1808.  7    foreground blink or (alternate) background bright (see also AX=1003h)
  1809.  6-4    background color (see #0014)
  1810.  3    foreground bright or (alternate) alternate character set (see AX=1103h)
  1811.  2-0    foreground color (see #0014)
  1812. SeeAlso: #0025
  1813.  
  1814. (Table 0014)
  1815. Values for character color:
  1816.     Normal        Bright
  1817.  000b    black        dark gray
  1818.  001b    blue        light blue
  1819.  010b    green        light green
  1820.  011b    cyan        light cyan
  1821.  100b    red        light red
  1822.  101b    magenta        light magenta
  1823.  110b    brown        yellow
  1824.  111b    light gray    white
  1825. --------V-1009-------------------------------
  1826. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1827.     AH = 09h
  1828.     AL = character to display
  1829.     BH = page number (00h to number of pages - 1) (see #0009)
  1830.     BL = attribute (text mode) or color (graphics mode)
  1831.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1832.     CX = number of times to write character
  1833. Notes:    all characters are displayed, including CR, LF, and BS
  1834.     replication count in CX may produce an unpredictable result in graphics
  1835.       modes if it is greater than the number of positions remaining in the
  1836.       current row
  1837. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F,INT 43,INT 44
  1838. --------V-100A-------------------------------
  1839. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  1840.     AH = 0Ah
  1841.     AL = character to display
  1842.     BH = page number (00h to number of pages - 1) (see #0009)
  1843.     BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
  1844.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1845.     CX = number of times to write character
  1846. Notes:    all characters are displayed, including CR, LF, and BS
  1847.     replication count in CX may produce an unpredictable result in graphics
  1848.       modes if it is greater than the number of positions remaining in the
  1849.       current row
  1850. SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
  1851. --------V-100B--BH00-------------------------
  1852. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  1853.     AH = 0Bh
  1854.     BH = 00h
  1855.     BL = background/border color (border only in text modes)
  1856. SeeAlso: AH=0Bh/BH=01h
  1857. --------V-100B--BH01-------------------------
  1858. INT 10 - VIDEO - SET PALETTE
  1859.     AH = 0BH
  1860.     BH = 01h
  1861.     BL = palette ID
  1862.         00h background, green, red, and brown/yellow
  1863.         01h background, cyan, magenta, and white
  1864. SeeAlso: AH=0Bh/BH=00h
  1865. --------V-100C-------------------------------
  1866. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  1867.     AH = 0Ch
  1868.     BH = page number
  1869.     AL = pixel color (if bit 7 set, value is xor'ed onto screen)
  1870.     CX = column
  1871.     DX = row
  1872. Desc:    set a single pixel on the display in graphics modes
  1873. Notes:    valid only in graphics modes
  1874.     BH is ignored if the current video mode supports only one page
  1875. SeeAlso: AH=0Dh,AH=46h
  1876. --------V-100D-------------------------------
  1877. INT 10 - VIDEO - READ GRAPHICS PIXEL
  1878.     AH = 0Dh
  1879.     BH = page number
  1880.     CX = column
  1881.     DX = row
  1882. Return: AL = pixel color
  1883. Desc:    determine the current color of the specified pixel in grahics modes
  1884. Notes:    valid only in graphics modes
  1885.     BH is ignored if the current video mode supports only one page
  1886. SeeAlso: AH=0Ch,AH=47h
  1887. --------V-100E-------------------------------
  1888. INT 10 - VIDEO - TELETYPE OUTPUT
  1889.     AH = 0Eh
  1890.     AL = character to write
  1891.     BH = page number
  1892.     BL = foreground color (graphics modes only)
  1893. Desc:    display a character on the screen, advancing the cursor and scrolling
  1894.       the screen as necessary
  1895. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  1896.       and do the expected things
  1897.     IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  1898.       the current active page
  1899. SeeAlso: AH=02h,AH=0Ah
  1900. --------V-100F-------------------------------
  1901. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  1902.     AH = 0Fh
  1903. Return: AH = number of character columns
  1904.     AL = display mode (see #0009 at AH=00h)
  1905.     BH = active page (see AH=05h)
  1906. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1907.       also have bit 7 set
  1908.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1909.       (monochrome) in all extended-row text modes
  1910. SeeAlso: AH=00h,AH=05h,AX=10F2h/BL=00h,AX=1130h,AX=CD04h
  1911. --------V-100F56BX4756-----------------------
  1912. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  1913.     AX = 0F56h
  1914.     BX = 4756h
  1915.     CX = 4944h
  1916.     DL = function
  1917.         01h installation check
  1918.         Return: AX = 5649h
  1919.             BX = 4443h
  1920.             CX = 5647h
  1921.             DH = 01h
  1922.         02h get first video mode's parameters
  1923.         Return: AX = BIOS mode number
  1924.             BX = width in pixels
  1925.             CX = height in pixels
  1926.             DX = number of colors
  1927.         03h get next video mode's parameters
  1928.         Return: as for DL=02h
  1929.         04h display line???
  1930.         ES:DI -> record (see #0015)
  1931.         ???
  1932.         Return: ???
  1933. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  1934. Note:    the use of TSR display drivers was discontinued after v2.20
  1935. Index:    installation check;VUIMAGE display driver
  1936.  
  1937. Format of record for VUIMAGE Function 04h:
  1938. Offset    Size    Description    (Table 0015)
  1939.  00h    WORD    row number
  1940.  02h    WORD    starting column???
  1941.  04h    WORD    ending column???
  1942.     ???
  1943. --------V-100F--SIF123-----------------------
  1944. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  1945.     AH = 0Fh
  1946.     SI = F123h
  1947.     DI = 321Fh
  1948. Return: AH = number of character columns
  1949.     AL = display mode (see #0009 at AH=00h)
  1950.     BH = active page (see AH=05h)
  1951.     SI = DI = F345h if installed
  1952. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1953.       also have bit 7 set
  1954.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1955.       (monochrome) in all extended-row text modes
  1956. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  1957. --------V-1010-------------------------------
  1958. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  1959.     AH = 10h
  1960.     CH,CL = row,column of upper left corner of window
  1961.     DH,DL = row,column of lower right corner of window
  1962. Return: AL = status
  1963.         00h successful
  1964.         01h failed
  1965.     AH destroyed
  1966. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  1967. Note:    when a window has been set, all output via AH=0Eh is restricted to
  1968.       the specified window
  1969. SeeAlso: AH=11h"Window",AH=12h"Window"
  1970. --------V-1010-------------------------------
  1971. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  1972.     AH = 10h
  1973.     AL = speed
  1974.         00h fast
  1975.         01h slow (scrolling only moves characters during vertical retrace)
  1976. Return: AH = previous speed
  1977. --------V-101000-----------------------------
  1978. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
  1979.     AX = 1000h
  1980.     BL = palette register number (00h-0Fh)
  1981.        = attribute register number (undocumented) (see #0016)
  1982.     BH = color or attribute register value
  1983. Notes:    on MCGA, only BX = 0712h is supported
  1984.     under UltraVision, the palette locking status (see AX=CD01h)
  1985.       determines the outcome
  1986. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  1987.  
  1988. (Table 0016)
  1989. Values for attribute register number:
  1990.  10h    attribute mode control register (should let BIOS control this)
  1991.  11h    overscan color register (see also AX=1001h)
  1992.  12h    color plane enable register (bits 3-0 enable corresponding
  1993.       text attribute bit)
  1994.  13h    horizontal PEL panning register
  1995.  14h    color select register
  1996. --------V-101001-----------------------------
  1997. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
  1998.     AX = 1001h
  1999.     BH = border color (00h-3Fh)
  2000. BUG:    the original IBM VGA BIOS incorrectly updates the parameter save area
  2001.       and places the border color at offset 11h of the palette table
  2002.       rather than offset 10h
  2003. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  2004.       determines the outcome
  2005. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  2006. --------V-101002-----------------------------
  2007. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
  2008.     AX = 1002h
  2009.     ES:DX -> palette register list
  2010. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  2011.       determines the outcome
  2012. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  2013.  
  2014. Format of palette register list:
  2015. Offset    Size    Description    (Table 0017)
  2016.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  2017.  10h    BYTE    border color
  2018. --------V-101003-----------------------------
  2019. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  2020.     AX = 1003h
  2021.     BL = new state
  2022.         00h background intensity enabled
  2023.         01h blink enabled
  2024.     BH = 00h to avoid problems on some adapters
  2025. Notes:    although there is no function to get the current status on adapters
  2026.       prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  2027.       VGA, use AH=1Bh and check offset 2Dh of the returned data (see #0037)
  2028.     when configured for a monochrome display, the Boca Research Multi-EGA
  2029.       with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  2030.     this call is reported to be "Get Cursor Position" on the Tandy
  2031.       1000SL/TL
  2032. SeeAlso: AH=08h,AH=1Bh
  2033. --------V-101007-----------------------------
  2034. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  2035.     AX = 1007h
  2036.     BL = palette or attribute (undoc) register number (see #0016)
  2037. Return: BH = palette or attribute register value
  2038. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2039.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2040.       registers will cause incorrect results because the EGA registers are
  2041.       write-only.  To guard against older versions or unsupported video
  2042.       modes, programs which expect to use this function on EGA systems
  2043.       should set BH to FFh on entry.
  2044. SeeAlso: AX=1000h,AX=1009h
  2045. --------V-101008-----------------------------
  2046. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  2047.     AX = 1008h
  2048. Return: BH = border color (00h-3Fh)
  2049. Note:    (see AX=1007h)
  2050. SeeAlso: AX=1001h
  2051. --------V-101009-----------------------------
  2052. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  2053.     AX = 1009h
  2054.     ES:DX -> 17-byte buffer for palette register list (see #0017)
  2055. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2056.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2057.       registers will cause incorrect results because the EGA registers are
  2058.       write-only.  To guard against older versions or unsupported video
  2059.       modes, programs which expect to use this function on EGA systems
  2060.       should set the ES:DX buffer to FFh before calling.
  2061. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  2062. --------V-101010-----------------------------
  2063. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2064.     AX = 1010h
  2065.     BX = register number
  2066.     CH = new value for green (0-63)
  2067.     CL = new value for blue (0-63)
  2068.     DH = new value for red (0-63)
  2069. SeeAlso: AX=1012h,AX=1015h
  2070. --------V-101012-----------------------------
  2071. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  2072.     AX = 1012h
  2073.     BX = starting color register
  2074.     CX = number of registers to set
  2075.     ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  2076.          byte each of red, green and blue (0-63)
  2077. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  2078. --------V-101013-----------------------------
  2079. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  2080.     AX = 1013h
  2081.     BL = subfunction
  2082.         00h select paging mode
  2083.         BH = 00h select 4 blocks of 64
  2084.         BH = 01h select 16 blocks of 16
  2085.         01h select page
  2086.         BH = page number (00h to 03h) or (00h to 0Fh)
  2087. Note:    this function is not valid in mode 13h
  2088. SeeAlso: AX=101Ah
  2089. --------V-101015-----------------------------
  2090. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2091.     AX = 1015h
  2092.     BL = palette register number
  2093. Return: DH = red value
  2094.     CH = green value
  2095.     CL = blue value
  2096. SeeAlso: AX=1010h,AX=1017h
  2097. --------V-101017-----------------------------
  2098. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  2099.     AX = 1017h
  2100.     BX = starting palette register
  2101.     CX = number of palette registers to read
  2102.     ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  2103. Return: buffer filled with CX red, green and blue triples
  2104. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  2105. --------V-101018-----------------------------
  2106. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  2107.     AX = 1018h
  2108.     BL = new PEL value
  2109. SeeAlso: AX=1019h
  2110. --------V-101019-----------------------------
  2111. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  2112.     AX = 1019h
  2113. Return: BL = value read
  2114. SeeAlso: AX=1018h
  2115. --------V-10101A-----------------------------
  2116. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  2117.     AX = 101Ah
  2118. Return: BL = paging mode
  2119.         00h four pages of 64
  2120.         01h sixteen pages of 16
  2121.     BH = current page
  2122. SeeAlso: AX=1013h
  2123. --------V-10101B-----------------------------
  2124. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  2125.     AX = 101Bh
  2126.     BX = starting palette register
  2127.     CX = number of registers to convert
  2128. Desc:    convert the RGB values of one or more palette registers such that the
  2129.       resulting values are grays with the same intensities as the original
  2130.       colors
  2131. SeeAlso: AH=12h/BL=33h
  2132. --------V-1010E0-----------------------------
  2133. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  2134.     AX = 10E0h
  2135.     BL = video mode (see also #0009 at AH=00h)
  2136.         2Eh = 640x480
  2137. Return: ???
  2138. SeeAlso: AH=00h,AX=10F0h
  2139. --------V-1010F0-----------------------------
  2140. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  2141.     AX = 10F0h
  2142.     BL = video mode (see also #0009 at AH=00h)
  2143.         13h = 320x200x32K
  2144.         2Dh = 640x350x32K
  2145.         2Eh = 640x480x32K
  2146.         2Fh = 640x400x32K
  2147.         30h = 800x600x32K
  2148.         3Eh = 640x480x16M (Genoa 7900)
  2149.         FFh Tseng 24-bit color mode
  2150.         BH = mode
  2151.             2Dh = 640x480
  2152.             2Eh = 640x480x16M
  2153.             2Fh = 640x400
  2154.             30h = 800x600
  2155.             38h = 1024x768??? (Tseng ET4000/W32i)
  2156. Return: AL = 10h if supported
  2157.     AH = status
  2158.         00h if successful
  2159.         other on error
  2160. Desc:    switch the display into a graphics mode with 15 or more bits per pixel
  2161. Note:    the Tseng HiColor BIOS extensions are supported by:
  2162.       Diamond Computer Systems    SpeedStar HiColor VGA
  2163.       Everex Systems        HC VGA
  2164.       Focus Information Systems    2theMax 4000
  2165.       Cardinal Technologies        VGA732
  2166.       Orchid ProDesigner IIs    Genoa 7900
  2167. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  2168. Index:    video modes;Tseng Hi-Color
  2169. --------V-1010F1-----------------------------
  2170. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  2171.     AX = 10F1h
  2172. Return: AL = 10h if supported
  2173.     BL = type of digital/analog converter (see #0018)
  2174. Desc:    determine which type of digital-to-analog converter is installed on the
  2175.       display board
  2176. SeeAlso: AX=10F0h,AX=10F2h
  2177.  
  2178. (Table 0018)
  2179. Values for type of DAC:
  2180.  00h normal VGA DAC
  2181.  01h Sierra SC1148x HiColor DAC
  2182.  ---Diamond SpeedStar 24---
  2183.  02h new Sierra SS24 DAC (24-bit)
  2184.  ---generic Tseng BIOS v8+ ---
  2185.  02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
  2186.  03h ATT20c490/1/2 (15/16/24-bit)
  2187.  04h AcuMos ADAC1 (15/16/24-bit)
  2188.  05h unknown 15/16/24-bit DAC
  2189.  06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
  2190.  07h Diamond SS2410 (15/24-bit)
  2191.  08h unknown 15/16/24-bit DAC
  2192.  09h unknown 15/16/24-bit DAC
  2193.  else other HiColor DAC
  2194. --------V-1010F2-----------------------------
  2195. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
  2196.     AX = 10F2h
  2197.     BL = function
  2198.         00h get current HiColor mode
  2199.         01h set 15-bit HiColor mode
  2200.         02h set 16-bit HiColor mode
  2201. Return: AX = 0010h if supported
  2202.     BL = video mode type
  2203.         00h not in HiColor mode
  2204.         01h 15-bit RGB mode
  2205.         02h 16-bit RGB mode
  2206.         03h 24-bit RGB mode
  2207. Desc:    determine whether the display is in a graphics mode with 15 or more
  2208.       bits per pixel color resolution
  2209. Note:    set (BL=01h/02h) only works if already in a HiColor mode
  2210. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  2211. --------V-1011-------------------------------
  2212. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  2213.     AH = 11h
  2214. Return: CH,CL = row,column of upper left corner
  2215.     DH,DL = row,column of lower right corner
  2216. Desc:    determine the portion of the display to which output is restricted
  2217. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2218. SeeAlso: AH=10h"Window",AH=12h"Window"
  2219. --------V-1011-------------------------------
  2220. INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
  2221.     AH = 11h
  2222.     The following functions will cause a mode set, completely resetting
  2223.     the video environment, but without clearing the video buffer
  2224.     AL = 00h, 10h: load user-specified patterns
  2225.         ES:BP -> user table
  2226.         CX      = count of patterns to store
  2227.         DX      = character offset into map 2 block
  2228.         BL      = block to load in map 2
  2229.         BH      = number of bytes per character pattern
  2230.     AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
  2231.         BL      = block to load
  2232.     AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
  2233.         BL      = block to load
  2234.     AL = 03h: set block specifier (allows dual character sets on screen)
  2235.         BL      = block specifier (see #0019)
  2236.     AL = 04h, 14h: load ROM 8x16 character set (VGA)
  2237.         BL    = block to load
  2238. Notes:    The routines called with AL=1xh are designed to be called only
  2239.       immediately after a mode set and are similar to the routines called
  2240.       with AL=0xh, except that:
  2241.           Page 0 must be active.
  2242.           Bytes/character is recalculated.
  2243.           Max character rows is recalculated.
  2244.           CRT buffer length is recalculated.
  2245.           CRTC registers are reprogrammed as follows:
  2246.              R09 = bytes/char-1 ; max scan line (mode 7 only)
  2247.              R0A = bytes/char-2 ; cursor start
  2248.              R0B = 0        ; cursor end
  2249.              R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2250.              R14 = bytes/char    ; underline loc
  2251.                (*** BUG: should be 1 less ***)
  2252.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2253.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2254.       (see AH=1Bh,#0037)
  2255. SeeAlso: AH=1Bh,AX=CD10h
  2256.  
  2257. Bitfields for block specifier:
  2258. Bit(s)    Description    (Table 0019)
  2259. ---EGA/MCGA---
  2260.  0,1    block selected by characters with attribute bit 3 clear
  2261.  2,3    block selected by characters with attribute bit 3 set
  2262. ---VGA---
  2263.  0,1,4    block selected by characters with attribute bit 3 clear
  2264.  2,3,5    block selected by characters with attribute bit 3 set
  2265. --------V-1011-------------------------------
  2266. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2267.     AH = 11h
  2268.     AL = 07h load user-specified paterns and recalculate mode parms
  2269.          parameters are the same as for AL = 10h
  2270.     AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2271.          parameters are the same as for AL = 11h
  2272.     AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2273.          parameters are the same as for AL = 12h
  2274.     AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2275.          parameters are the same as for AL = 14h
  2276. Note:    these functions should only be called under the same conditions as
  2277.       AL=1xh (see entry above)
  2278. SeeAlso: AH=11h
  2279. --------V-10110F-----------------------------
  2280. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2281.     AX = 110Fh
  2282.     ES:BP -> user table for INT 1F
  2283. Note:    this function is meant to be called immediately after a mode set;
  2284.       results are unpredictable at other times
  2285. SeeAlso: AX=1110h,AX=1111h,AX=1112h,AX=1120h
  2286. --------V-101110-----------------------------
  2287. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2288.     AX = 1110h
  2289.     ES:BP -> user table
  2290.     CX = bytes per character
  2291.     BL = row specifier
  2292.         00h user set
  2293.         DL = number of rows
  2294.         01h 14 rows
  2295.         02h 25 rows
  2296.         03h 43 rows
  2297. Note:    this function is meant to be called immediately after a mode set;
  2298.       results are unpredictable at other times
  2299. SeeAlso: AX=110Fh,AX=1112h,AX=1121h
  2300. --------V-101111-----------------------------
  2301. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2302.     AX = 1111h
  2303.     BL = row specifier (see AX=1121h)
  2304. Note:    this function is meant to be called immediately after a mode set;
  2305.       results are unpredictable at other times
  2306. SeeAlso: AX=110Fh,AX=1110h,AX=1122h
  2307. --------V-101112-----------------------------
  2308. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2309.     AX = 1112h
  2310.     BL = row specifier (see AX=1121h)
  2311. Note:    this function is meant to be called immediately after a mode set;
  2312.       results are unpredictable at other times
  2313. SeeAlso: AX=110Fh,AX=1110h,AX=1111h,AX=1123h
  2314. --------V-101120-----------------------------
  2315. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2316.     AX = 1120h
  2317.     ES:BP -> user table for INT 1F
  2318. Note:    this function is meant to be called immediately after a mode set;
  2319.       results are unpredictable at other times
  2320. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1125h,INT 1F,INT 43
  2321. --------V-101121-----------------------------
  2322. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2323.     AX = 1121h
  2324.     ES:BP -> user table
  2325.     CX = bytes per character
  2326.     BL = row specifier
  2327.         00h user set
  2328.         DL = number of rows
  2329.         01h 14 rows
  2330.         02h 25 rows
  2331.         03h 43 rows
  2332. Note:    this function is meant to be called immediately after a mode set;
  2333.       results are unpredictable at other times
  2334. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2335. --------V-101122-----------------------------
  2336. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2337.     AX = 1122h
  2338.     BL = row specifier (see AX=1121h)
  2339. Notes:    this function is meant to be called immediately after a mode set;
  2340.       results are unpredictable at other times
  2341.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2342. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2343. --------V-101123-----------------------------
  2344. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2345.     AX = 1123h
  2346.     BL = row specifier (see AX=1121h)
  2347. Notes:    this function is meant to be called immediately after a mode set;
  2348.       results are unpredictable at other times
  2349.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2350. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h,INT 1F,INT 43
  2351. --------V-101124-----------------------------
  2352. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2353.     AX = 1124h
  2354.     BL = row specifier (see AX=1121h)
  2355. Notes:    this function is meant to be called immediately after a mode set;
  2356.       results are unpredictable at other times
  2357.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2358. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h,INT 1F,INT 43
  2359. --------V-101129-----------------------------
  2360. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2361.     AX = 1129h
  2362.     BL = row specifier (see AX=1121h)
  2363. Notes:    this function is meant to be called immediately after a mode set;
  2364.       results are unpredictable at other times
  2365.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2366. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F, INT 43
  2367. --------V-101130-----------------------------
  2368. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2369.     AX = 1130h
  2370.     BH = pointer specifier
  2371.         00h INT 1Fh pointer
  2372.         01h INT 43h pointer
  2373.         02h ROM 8x14 character font pointer
  2374.         03h ROM 8x8 double dot font pointer
  2375.         04h ROM 8x8 double dot font (high 128 characters)
  2376.         05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2377.         06h ROM 8x16 font (MCGA, VGA)
  2378.         07h ROM alternate 9x16 font (VGA only) (see #0020)
  2379.         11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2380.         12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2381. Return: ES:BP = specified pointer
  2382.     CX    = bytes/character of on-screen font (not the requested font!)
  2383.     DL    = highest character row on screen
  2384. Note:    for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2385.       8xN font at ES:BP+256N
  2386. BUG:    the IBM EGA and some other EGA cards return in DL the number of rows on
  2387.       screen rather than the highest row number (which is one less).
  2388. SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
  2389.  
  2390. Format of alternate font table [array]:
  2391. Offset    Size    Description    (Table 0020)
  2392.  00h    BYTE    character to be replaced (00h = end of table)
  2393.  01h  N BYTEs    graphics data for character, one byte per scan line
  2394. --------V-101130BX4D4F-----------------------
  2395. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2396.     AX = 1130h
  2397.     BX = 4D4Fh
  2398. Return: CX = 4F4Dh if installed
  2399.         ES:BP -> M10_SCR INT 10 handler
  2400. Program: M10_SCR is a shareware extended text mode and font driver by
  2401.       I.V. Morozov
  2402. SeeAlso: INT 16/AX=4D4Fh
  2403. --------V-1012-------------------------------
  2404. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2405.     AH = 12h
  2406. Return: BH = attribute to use on blanked lines when scrolling
  2407. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2408. SeeAlso: AH=11h"Window",AH=12h"Window"
  2409. --------V-1012--BL10-------------------------
  2410. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2411.     AH = 12h
  2412.     BL = 10h
  2413. Return: BH = 00h color mode in effect (I/O port 3Dxh)
  2414.          01h mono mode in effect (I/O port 3Bxh)
  2415.     BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2416.     CH = feature connector bits (see #0021)
  2417.     CL = switch settings (see #0022,#0023)
  2418. Note:    one possible check for the presence of an EGA or later display card
  2419.       is to call this function with BH=FFh; if not present, BH will be
  2420.       unchanged on return
  2421.  
  2422. Bitfields for feature connector bits:
  2423. Bit(s)    Description    (Table 0021)
  2424.  0    FEAT 1 line, state 2
  2425.  1    FEAT 0 line, state 2
  2426.  2    FEAT 1 line, state 1
  2427.  3    FEAT 0 line, state 1
  2428.  4-7    unused (0)
  2429.  
  2430. Bitfields for switch settings:
  2431. Bit(s)    Description    (Table 0022)
  2432.  0    switch 1 OFF
  2433.  1    switch 2 OFF
  2434.  2    switch 3 OFF
  2435.  3    switch 4 OFF
  2436.  4-7    unused
  2437.  
  2438. (Table 0023)
  2439. Values for switch settings on original EGA/VGA:
  2440.  00h        primary MDA/HGC,    secondary EGA+ 40x25
  2441.  01h-03h    primary MDA/HGC,    secondary EGA+ 80x25
  2442.  04h        primary CGA 40x25,    secondary EGA+ 80x25 mono
  2443.  05h        primary CGA 80x25,    secondary EGA+ 80x25 mono
  2444.  06h        primary EGA+ 40x25,    secondary MDA/HGC (optional)
  2445.  07h-09h    primary EGA+ 80x25,    secondary MDA/HGC (optional)
  2446.  0Ah        primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
  2447.  0Bh        primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
  2448. --------V-1012--BL11-------------------------
  2449. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2450.     AH = 12h
  2451.     BL = 11h
  2452. Return: AL = 12h if function supported
  2453.         ES:BP -> BIOS info structure (see #0024)
  2454. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2455.  
  2456. Format of Trident BIOS Info structure:
  2457. Offset    Size     Description    (Table 0024)
  2458.  00h    BYTE     ??? (=0)
  2459.  01h    BYTE     OEM Code (00h for original Trident)
  2460.  02h    WORD     ID??? (1073h for 8800BR, 1074 for 8800CS)
  2461.  04h  8 BYTEs     BIOS date ('mm/dd/yy')
  2462.  0Ch    WORD     ???
  2463.  0Eh  8 BYTEs     BIOS Version (' C3-128 ', ' C3-129 ')
  2464. --------V-1012--BL12-------------------------
  2465. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  2466.     AH = 12h
  2467.     BL = 12h
  2468. Return: AL = 12h if function supported
  2469.         AH = number of 256K banks of RAM installed
  2470. SeeAlso: AH=12h/BL=11h"TRIDENT"
  2471. --------V-1012--BL20-------------------------
  2472. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  2473.     AH = 12h
  2474.     BL = 20h  select alternate print screen routine
  2475. Desc:    installs a PrtSc routine from the video card's BIOS to replace the
  2476.       default PrtSc handler from the ROM BIOS, which usually does not
  2477.       understand screen heights other than 25 lines
  2478. Note:    some adapters disable print-screen instead of enhancing it
  2479. SeeAlso: INT 05
  2480. --------V-1012--BL2E-------------------------
  2481. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2482.     AH = 12h
  2483.     BL = 2Eh
  2484. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2485.       crash the system on this function
  2486. --------V-1012--BL30-------------------------
  2487. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  2488.     AH = 12h
  2489.     BL = 30h
  2490.     AL = vertical resolution
  2491.          00h 200 scan lines
  2492.          01h 350 scan lines
  2493.          02h 400 scan lines
  2494. Return: AL = 12h if function supported
  2495. Desc:    specify the number of scan lines used to display text modes
  2496. Note:    the specified resolution will take effect on the next mode set
  2497. SeeAlso: AH=00h
  2498. --------V-1012--BL31-------------------------
  2499. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  2500.     AH = 12h
  2501.     BL = 31h
  2502.     AL = new state
  2503.         00h enable default palette loading
  2504.         01h disable default palette loading
  2505. Return: AL = 12h if function supported
  2506. Desc:    specify whether a default palette should be loaded when the display
  2507.       mode is set
  2508. SeeAlso: AH=00h
  2509. --------V-1012--BL32-------------------------
  2510. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  2511.     AH = 12h
  2512.     BL = 32h
  2513.     AL = new state
  2514.         00h enable video addressing
  2515.         01h disable video addressing
  2516. Return: AL = 12h if function supported
  2517. Desc:    specify whether the CPU should have access to video memory and the
  2518.       display adapters I/O registers
  2519. --------V-1012--BL33-------------------------
  2520. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  2521.     AH = 12h
  2522.     BL = 33h
  2523.     AL = new state
  2524.         00h enable gray scale summing
  2525.         01h disable gray scale summing
  2526. Return: AL = 12h if function supported
  2527. Desc:    specify whether or not colors should be converted to gray scale when
  2528.       palette or color registers are loaded
  2529. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  2530. --------V-1012--BL34-------------------------
  2531. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  2532.     AH = 12h
  2533.     BL = 34h
  2534.     AL = new state
  2535.         00h enable alphanumeric cursor emulation
  2536.         01h disable alphanumeric cursor emulation
  2537. Return: AL = 12h if function supported
  2538. Desc:    specify whether the BIOS should automatically remap cursor start/end
  2539.       according to the current character height in text modes
  2540. SeeAlso: AH=01h,AH=03h
  2541. --------V-1012--BL35-------------------------
  2542. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  2543.     AH = 12h
  2544.     BL = 35h
  2545.     AL = subfunction
  2546.         00h initial adapter video off
  2547.         01h initial planar video on
  2548.         02h switch active video off
  2549.         03h switch inactive video on
  2550.         80h *UNDOCUMENTED* set system board video active flag
  2551.     ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
  2552. Return: AL = 12h if function supported
  2553. Desc:    switch between two video adapters which may otherwise have address
  2554.       conflicts
  2555. --------V-1012--BL36-------------------------
  2556. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  2557.     AH = 12h
  2558.     BL = 36h
  2559.     AL = new state
  2560.         00h enable refresh
  2561.         01h disable refresh
  2562. Return: AL = 12h if function supported
  2563. Desc:    specify whether the contents of video memory should be displayed on
  2564.       the screen; disabling refresh effectively blanks the screen
  2565. SeeAlso: AX=BF05h
  2566. --------V-1012--BL37-------------------------
  2567. INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
  2568.     AH = 12h
  2569.     BL = 37h
  2570.     AL = text attribute type (00h normal VGA, 01h mainframe type)
  2571. Return: AL = 12h if supported
  2572. SeeAlso: #0025,AH=08h
  2573.  
  2574. Bitfields for XGA mainframe type character attributes:
  2575. Bit(s)    Description    (Table 0025)
  2576.  7    blink double rate (75% ON time) or use color 8 as background
  2577.     (see AX=1003h)
  2578.  6    reverse video
  2579.  5    underlined
  2580.  4    left-most and right-most dots of underline area inverted
  2581.  3    foreground intensity/character font select
  2582.  2-0    foreground color
  2583. SeeAlso: #0013,#0033
  2584. --------V-1012--BL53-------------------------
  2585. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2586.     AH = 12h
  2587.     BL = 53h
  2588. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2589.       crash the system on this function
  2590. --------V-1012--BL57-------------------------
  2591. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2592.     AH = 12h
  2593.     BL = 57h
  2594. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2595.       crash the system on this function
  2596. --------V-1012--BH55-------------------------
  2597. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  2598.     AH = 12h
  2599.     BH = 55h
  2600.     BL = subfunction
  2601.         00h disable enhanced features
  2602.         01h enable enhanced features
  2603.         02h get status
  2604.         Return: AL = status flags (see #0026)
  2605.         03h disable register trapping (CGA emulation)
  2606.         04h enable register trapping
  2607.         05h program video mode
  2608.         ES:BP -> video mode table (see #0027)
  2609.         06h get mode table
  2610.         AL = video mode
  2611.         Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
  2612.             BP = FFFFh on error
  2613. SeeAlso: AH=FFh"Oak"
  2614.  
  2615. Bitfields for status flags:
  2616. Bit(s)    Description    (Table 0026)
  2617.  3    set if enhanced features enabled
  2618.  7-5    monitor type
  2619.     000 PS/2 mono
  2620.     001 PS/2 color
  2621.     010 multi-sync
  2622.     011 Taxan 650 25kHz
  2623.     100 RGB
  2624.     101 mono
  2625.     110 EGA
  2626.     111 Compaq internal
  2627.  
  2628. Format of ATI VGA Wonder video mode table:
  2629. Offset    Size    Description    (Table 0027)
  2630.  00h    BYTE    number of columns
  2631.  01h    BYTE    maximum row (number of rows - 1)
  2632.  02h    BYTE    scan lines per row
  2633.  03h    WORD    video buffer size in bytes
  2634.  05h  4 BYTEs    values for Sequencer registers 1-4
  2635.  09h    BYTE    value for Miscellaneous Output register
  2636.  0Ah 25 BYTEs    values for CRTC registers 00h-18h
  2637.         00h horizontal total size (chars)
  2638.         01h horizontal displayed (chars)
  2639.         02h horizontal sync position (chars)
  2640.         03h horizontal sync width (chars)
  2641.         04h vertical total size (char rows)
  2642.         05h vertical total adjust (scan lines)
  2643.         06h vertical displayed (char rows)
  2644.         07h vertical sync position (char rows)
  2645.         08h interlace mode
  2646.         09h max scan line in row
  2647.         0Ah cursor start scan line
  2648.         0Bh cursor end scan line
  2649.         0Ch screen memory start (high)
  2650.         0Dh screen memory start (low)
  2651.         0Eh cursor address (high)
  2652.         0Fh cursor address (low)
  2653.         10h light pen (high)
  2654.         11h light pen (low)
  2655.  23h 20 BYTEs    default palette (values for Attribute Controller regs 00h-13h)
  2656.  37h  9 BYTEs    values for Graphics Controller registers 00h-08h
  2657. --------V-1012--BL74-------------------------
  2658. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2659.     AH = 12h
  2660.     BL = 74h
  2661. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2662.       crash the system on this function
  2663. --------V-1012--BL80-------------------------
  2664. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2665.     AH = 12h
  2666.     BL = 80h
  2667. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2668.       crash the system on this function
  2669. --------V-1012--BL80-------------------------
  2670. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  2671.     AH = 12h
  2672.     BL = 80h
  2673. Return: AX = controller type in bits 13-0 (see #0028)
  2674.         bit 14: ???
  2675.         bit 15: ???
  2676.     BL = silicon revision number (bit 7 set if not available)
  2677. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2678.  
  2679. (Table 0028)
  2680. Values for Cirrus Logic video controller type:
  2681.  0000h    no extended alternate select support
  2682.  0002h    510/520
  2683.  0003h    610/620
  2684.  0004h    5320
  2685.  0005h    6410
  2686.  0006h    5410
  2687.  0007h    6420
  2688.  0008h    6412
  2689.  0010h    5401
  2690.  0011h    5402
  2691.  0012h    5420
  2692.  0013h    5422
  2693.  0014h    5424
  2694.  0015h    5426
  2695.  0016h    5420r1
  2696.  0017h    5402r1
  2697.  0018h    5428
  2698.  0020h    6205/15/25
  2699.  0030h    5432
  2700.  0031h    5434
  2701. --------V-1012--BL81-------------------------
  2702. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  2703.     AH = 12h
  2704.     BL = 81h
  2705. Return: AH = BIOS major version
  2706.     AL = BIOS minor version
  2707. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  2708. --------V-1012--BL82-------------------------
  2709. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  2710.     AH = 12h
  2711.     BL = 82h
  2712. Return: AL = chip revision
  2713.     AH = ??? (AFh for v1.01)
  2714. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h
  2715. ----------1012--BL84-------------------------
  2716. INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
  2717.     AH = 12h
  2718.     BL = 84h
  2719. Return: AX = user options word (see #0029)
  2720. SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2721. SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
  2722.  
  2723. Bitfields for Cirrus Logic user options word:
  2724. Bit(s)    Description    (Table 0029)
  2725.  1,0    centering
  2726.     00 vertical centered, 01 from bottom, 10 from top, 11 reserved
  2727.  3,2    720-dot fix-up options
  2728.     00 OR every 8th and 9th pixel
  2729.     01 display MGA mode from left
  2730.     10 display MGA mode from right
  2731.     11 skip every 9th pixel
  2732.  4    ???
  2733.  7-5    video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
  2734.  8    external monitor enabled instead of LCD panel
  2735.  9    vertical expand mode enabled
  2736.  10    8-bit mode instead of 16-bit mode
  2737.  11    normal video rather than reverse video (for LCD)
  2738.  12    attribute automap rather than attribute emulation
  2739.  13    bold mode disabled (default)
  2740.  14    fast bandwidth
  2741.  15    ???
  2742. --------V-1012--BL85-------------------------
  2743. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  2744.     AH = 12h
  2745.     BL = 85h
  2746. Return: AL = number of 64K banks of video memory
  2747. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  2748. --------V-1012--BL89-------------------------
  2749. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
  2750.     AH = 12h
  2751.     BL = 89h
  2752.     AL = new state (00h enabled, 01h disabled)
  2753. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
  2754. --------V-1012--BL8A-------------------------
  2755. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
  2756.     AH = 12h
  2757.     BL = 8Ah
  2758.     AL = new gray-scale color (00h = black to 0Fh = white)
  2759. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
  2760. --------V-1012--BL8B-------------------------
  2761. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
  2762.     AH = 12h
  2763.     BL = 8Bh
  2764.     AL = new state (00h enabled, 01h disabled)
  2765. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2766. --------V-1012--BL8C-------------------------
  2767. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
  2768.     AH = 12h
  2769.     BL = 8Ch
  2770.     AL = new state
  2771.         00h enable automap
  2772.         01h disable automap and emulate attributes
  2773. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
  2774. --------V-1012--BL8F-------------------------
  2775. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
  2776.     AH = 12h
  2777.     BL = 8Fh
  2778.     AL = new state (00h enabled, 01h disabled)
  2779. Note:    when expand mode is enabled, the vertical dimension is enlarged to
  2780.       full screen
  2781. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
  2782. --------V-1012--BL90-------------------------
  2783. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
  2784.     AH = 12h
  2785.     BL = 90h
  2786.     AL = new position
  2787.         00h centered
  2788.         01h from top
  2789.         02h from bottom
  2790.         03h from top
  2791. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
  2792. --------V-1012--BL91-------------------------
  2793. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
  2794.     AH = 12h
  2795.     BL = 91h
  2796.     AL = new mode
  2797.         00h display MGA mode from left of screen (default)
  2798.         01h display MGA from right
  2799.         02h skip every ninth pixel
  2800.         03h OR every 8th and 9th pixel
  2801. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
  2802. --------V-1012--BL92-------------------------
  2803. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
  2804.     AH = 12h
  2805.     BL = 92h
  2806.     AL = new display (00h LCD, 01h external monitor)
  2807. Note:    the deselected display is disabled
  2808. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
  2809. --------V-1012--BL93-------------------------
  2810. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  2811.     AH = 12h
  2812.     BL = 93h
  2813.     AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  2814. SeeAlso: AH=12h/BL=9Ah
  2815. --------V-1012--BL94-------------------------
  2816. INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
  2817.     AH = 12h
  2818.     BL = 94h
  2819.     AL = new state (00h wake up monitor, 01h shut down display)
  2820. Note:    AL=01h is reported not to work properly on the LCD panel
  2821. SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
  2822. --------V-1012--BL9A-------------------------
  2823. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  2824.     AH = 12h
  2825.     BL = 9Ah
  2826. Return: AX = options word 1 (see #0030)
  2827.     CX = options word 2 (see #0031)
  2828. SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
  2829. SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h
  2830.  
  2831. Bitfields for Cirrus Logic options word 1:
  2832. Bit(s)    Description    (Table 0030)
  2833.  0,1    reserved
  2834.  2-4    monitor type
  2835.  5-6    maximum vertical resolution
  2836.  7-9    reserved
  2837.  10    force 8-bit operation
  2838.  11-13    reserved
  2839.  14    vertical refresh frequency at 640x480
  2840.  15    reserved
  2841.  
  2842. Bitfields for Cirrus Logic options word 2:
  2843. Bit(s)    Description    (Table 0031)
  2844.  0-3    reserved
  2845.  4-5    vertical refresh frequency at 1280x1024
  2846.  6-10    reserved
  2847.  11-12    vertical refresh frequency at 800x600
  2848.  13-15    vertical refresh frequency at 1024x768
  2849. --------V-1012--BLA0-------------------------
  2850. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  2851.     AH = 12h
  2852.     BL = A0h
  2853.     AL = video mode number (00h-7Fh)
  2854. Return: AH bit 0: video mode supported
  2855.     BX = offset of BIOS subroutine to fixup standard video parameters
  2856.         (call subroutine with DS:SI and ES:DI as returned by this call)
  2857.     DS:SI -> standard video parameters or FFFFh:FFFFh
  2858.     ES:DI -> supplemental video parameters or FFFFh:FFFFh
  2859. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2860. --------V-1012--BLA1-------------------------
  2861. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  2862.     AH = 12h
  2863.     BL = A1h
  2864. Return: BH = monitor ID (see #0032)
  2865.     BL = monitor type (00h color, 01h grayscale, 02h no display)
  2866. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  2867.  
  2868. (Table 0032)
  2869. Values for Cirrus Logic monitor ID:
  2870.  00h-08h reserved
  2871.  09h    IBM 8604/8507 or equivalent
  2872.  0Ah    IBM 8514 or equivalent
  2873.  0Bh    IBM 8515 or equivalent
  2874.  0Dh    IBM 8503 or equivalent
  2875.  0Eh    IBM 8512/8513 or equivalent
  2876.  0Fh    no monitor
  2877. --------V-1012--BLA2-------------------------
  2878. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  2879.     AH = 12h
  2880.     BL = A2h
  2881.     AL = retrace rate
  2882.         00h standard VGA (31.5 kHz)
  2883.         01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  2884.         02h SuperVGA (31.5-35.1 kHz)
  2885.         03h extended SuperVGA (31.5-35.5 kHz)
  2886.         04h multi-frequency (31.5-37.8 kHz)
  2887.         05h extended multi-frequency (31.5-48.0 kHz)
  2888.         06h super multi-frequency (31.5-56.0 kHz)
  2889.         07h extended super multi-frequency (31.5-64.0 kHz)
  2890. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  2891. --------V-1012--BLA3-------------------------
  2892. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  2893.     AH = 12h
  2894.     BL = A3h
  2895.     AL = refresh rate for 640x480 (00h normal, 01h high)
  2896. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  2897. --------V-1012--BLA4-------------------------
  2898. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  2899.     AH = 12h
  2900.     BL = A4h
  2901.     AL bits 3-0 = maximum vertical resolution
  2902.         (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  2903.     AL bits 7-4 = vertical refresh at 640x480
  2904.         (0 = 60Hz, 1 = 72Hz, other reserved)
  2905.     BH bits 3-0 = vertical refresh at 800x600
  2906.         (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  2907.     BH bits 7-4 = vertical refresh at 1024x768
  2908.         (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  2909.     CH bits 4-7 = vertical refresh at 1280x1024
  2910.         (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  2911. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  2912. --------V-1012--BLBE-------------------------
  2913. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2914.     AH = 12h
  2915.     BL = BEh
  2916. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2917.       crash the system on this function
  2918. --------V-1012--BLC6-------------------------
  2919. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2920.     AH = 12h
  2921.     BL = C6h
  2922. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2923.       crash the system on this function
  2924. --------V-1012--BLF0-------------------------
  2925. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2926.     AH = 12h
  2927.     BL = F0h
  2928. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2929.       crash the system on this function
  2930. --------V-1013-------------------------------
  2931. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  2932.     AH = 13h
  2933.     AL = write mode
  2934.        bit 0: update cursor after writing
  2935.        bit 1: string contains alternating characters and attributes
  2936.        bits 2-7: reserved (0)
  2937.     BH = page number
  2938.     BL = attribute if string contains only characters
  2939.     CX = number of characters in string
  2940.     DH,DL = row,column at which to start writing
  2941.     ES:BP -> string to write
  2942. Notes:    recognizes CR, LF, BS, and bell
  2943.     also available PC or XT with EGA or higher
  2944.     HP 95LX only supports write mode 00h
  2945. BUG:    on the IBM VGA Adapter, any scrolling which may occur is performed on
  2946.       the active page rather than the requested page
  2947. SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"
  2948. --------J-1013-------------------------------
  2949. INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
  2950.     AH = 13h
  2951.     AL = function
  2952.         10h read characters and standard attributes
  2953.         11h read characters and extended attributes
  2954.         12h write characters and standard attributes
  2955.         13h write characters and extended attributes
  2956.     BH = 00h
  2957.     CX = number of characters to transfer
  2958.     DH,DL = row,column at which to start transfer
  2959.     ES:BP -> buffer for/containing characters and attributes (see #0033)
  2960. Return: ES:BP buffer filled if reading
  2961. Program: DOS/V is a Japanese-language version of MS-DOS which can run on
  2962.       standard (non-Japanese) ATs and compatible equipped with a VGA or
  2963.       newer video adapter
  2964. Notes:    subfunctions 11h and 13h are only valid when DOS/V is using video
  2965.       mode 73h
  2966.     the cursor position is not changed by these functions
  2967.     extended attributes consist of three bytes; the first is the standard
  2968.       character attribute byte, the second is as described below, and the
  2969.       third is always zero in current versions
  2970. SeeAlso: AH=00h,AH=13h"VIDEO"
  2971.  
  2972. Bitfields for DOS/V second extended attribute byte:
  2973. Bit(s)    Description    (Table 0033)
  2974.  7    underline using foreground color
  2975.  6    reverse foreground/background specified in standard attribute byte
  2976.  5-4    unused
  2977.  3    vertical white grid line in cell
  2978.  2    horizontal white grid line in cell
  2979.  1-0    unused
  2980. SeeAlso: #0013,#0025
  2981. --------V-101400-----------------------------
  2982. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  2983.     AX = 1400h
  2984.     ES:DI -> character font
  2985.     BH = number of bytes per character
  2986.         08h or 10h (Compaq)
  2987.     BL = 00h load main font (block 0)
  2988.          01h load alternate font (block 1)
  2989.     CX = number of characters to store
  2990.     DX = character offset into RAM font area
  2991. SeeAlso: AH=11h,AX=1401h
  2992. --------V-101401-----------------------------
  2993. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  2994.     AX = 1401h
  2995.     BL = font to load
  2996.         00h main font (block 0)
  2997.         01h alternate font (block 1)
  2998. SeeAlso: AH=11h,AX=1400h
  2999. --------V-101402-----------------------------
  3000. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  3001.     AX = 1402h
  3002.     BL = function
  3003.         00h ignore high intensity attribute
  3004.         01h map high intensity to reverse video
  3005.         02h map high intensity to underscore
  3006.         03h map high intensity to selected alternate font
  3007.         B0h half intensity (Compaq)
  3008.         B1h toggle active intensity bit interpretation (CP386)
  3009. --------V-1015-------------------------------
  3010. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  3011.     AH = 15h
  3012. Return: AX = alternate display adapter type (see #0034)
  3013.     ES:DI -> parameter table (see #0035)
  3014. SeeAlso: AH=1Bh
  3015.  
  3016. (Table 0034)
  3017. Values for PC Convertible alternate display adapter type:
  3018.  0000h    none
  3019.  5140h    LCD
  3020.  5153h    CGA
  3021.  5151h    mono
  3022.  
  3023. Format of PC Convertible display parameter table:
  3024. Offset    Size    Description    (Table 0035)
  3025.  00h    WORD    monitor model number
  3026.  02h    WORD    vertical pixels per meter
  3027.  04h    WORD    horizontal pixels per meter
  3028.  06h    WORD    total vertical pixels
  3029.  08h    WORD    total horizontal pixels
  3030.  0Ah    WORD    horizontal pixel separation in micrometers
  3031.         (width, center-to-center)
  3032.  0Ch    WORD    vertical pixel separation in micrometers
  3033.         (height, center-to-center)
  3034. --------V-1015-------------------------------
  3035. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  3036.     AH = 15h
  3037.     AL = superimpose mode
  3038.         00h show graphics screen
  3039.         01h show text screen
  3040.         02h show text screen superimposed on graphics screen
  3041. --------J-1018-------------------------------
  3042. INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
  3043.     AH = 18h
  3044.     AL = function
  3045.         00h get font pattern
  3046.         01h set font pattern
  3047.     BX = 0000h
  3048.     CL = character size in bytes (01h,02h)
  3049.     CH = 00h 
  3050.     DH = character width in pixels
  3051.     DL = character height in pixels
  3052.     ES:DI -> buffer for/containing font image
  3053. Return: AL = status (00h successful, else error)
  3054.     ES:DI buffer filled for function 00h if successful
  3055. Note:    the supported font sizes are 8x16 single-byte, 8x19 single-byte,
  3056.       16x16 double-byte, and 24x24 double-byte
  3057. SeeAlso: AH=19h,INT 16/AH=14h
  3058. --------V-1019-------------------------------
  3059. INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
  3060.     AH = 19h
  3061.     ???
  3062. Return: ???
  3063. SeeAlso: AH=18h,INT 16/AH=14h
  3064. --------V-101A00-----------------------------
  3065. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3066.     AX = 1A00h
  3067. Return: AL = 1Ah if function was supported
  3068.         BL = active display code (see #0036)
  3069.         BH = alternate display code (see #0036)
  3070. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh
  3071.  
  3072. (Table 0036)
  3073. Values for display combination code:
  3074.  00h    no display
  3075.  01h    monochrome adapter w/ monochrome display
  3076.  02h    CGA w/ color display
  3077.  03h    reserved
  3078.  04h    EGA w/ color display
  3079.  05h    EGA w/ monochrome display
  3080.  06h    PGA w/ color display
  3081.  07h    VGA w/ monochrome analog display
  3082.  08h    VGA w/ color analog display
  3083.  09h    reserved
  3084.  0Ah    MCGA w/ digital color display
  3085.  0Bh    MCGA w/ monochrome analog display
  3086.  0Ch    MCGA w/ color analog display
  3087.  FFh    unknown display type
  3088. --------V-101A01-----------------------------
  3089. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3090.     AX = 1A01h
  3091.     BL = active display code (see #0036)
  3092.     BH = alternate display code
  3093. Return: AL = 1Ah if function was supported
  3094. SeeAlso: AH=12h/BL=35h,AX=1A00h
  3095. --------V-101B-------------------------------
  3096. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  3097.     AH = 1Bh
  3098.     BX = implementation type
  3099.         0000h return funtionality/state information
  3100.     ES:DI -> 64-byte buffer for state information (see #0037)
  3101. Return: AL = 1Bh if function supported
  3102.         ES:DI buffer filled with state information
  3103. BUG:    Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  3104.       do not correctly set the fields at offsets 27h and 29h of the
  3105.       state information
  3106. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  3107.  
  3108. Format of MCGA+ state information:
  3109. Offset    Size    Description    (Table 0037)
  3110.  00h    DWORD    address of static funtionality table (see #0040)
  3111.  04h    BYTE    video mode in effect
  3112.  05h    WORD    number of columns
  3113.  07h    WORD    length of regen buffer in bytes
  3114.  09h    WORD    starting address of regen buffer
  3115.  0Bh    WORD    cursor position for page 0
  3116.  0Dh    WORD    cursor position for page 1
  3117.  0Fh    WORD    cursor position for page 2
  3118.  11h    WORD    cursor position for page 3
  3119.  13h    WORD    cursor position for page 4
  3120.  15h    WORD    cursor position for page 5
  3121.  17h    WORD    cursor position for page 6
  3122.  19h    WORD    cursor position for page 7
  3123.  1Bh    WORD    cursor "type" (start/stop scan lines)
  3124.  1Dh    BYTE    active display page
  3125.  1Eh    WORD    CRTC port address
  3126.  20h    BYTE    current setting of register (3?8)
  3127.  21h    BYTE    current setting of register (3?9)
  3128.  22h    BYTE    number of rows - 1
  3129.  23h    WORD    bytes/character
  3130.  25h    BYTE    display combination code of active display
  3131.  26h    BYTE    DCC of alternate display
  3132.  27h    WORD    number of colors supported in current mode (0000h = mono)
  3133.  29h    BYTE    number of pages supported in current mode
  3134.  2Ah    BYTE    number of scan lines active
  3135.         (0,1,2,3) = (200,350,400,480)
  3136.         Tseng ET3000: (4,5,6 = 512,600,768)
  3137.  2Bh    BYTE    primary character block
  3138.  2Ch    BYTE    secondary character block
  3139.  2Dh    BYTE    miscellaneous flags (see #0038)
  3140.  2Eh  3 BYTEs    reserved (00h)
  3141.  31h    BYTE    video memory available
  3142.         00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  3143.  32h    BYTE    save pointer state flags (see #0039)
  3144.  33h 13 BYTEs    reserved (00h)
  3145.  
  3146. Bitfields for miscellaneous flags:
  3147. Bit(s)    Description    (Table 0038)
  3148.  0    all modes on all displays on
  3149.  1    gray summing on
  3150.  2    monochrome display attached
  3151.  3    default palette loading disabled
  3152.  4    cursor emulation enabled
  3153.  5    0 = intensity; 1 = blinking
  3154.  6    PS/2 P70 plasma display (without 9-dot wide font) active
  3155.  7    unused (0)
  3156.  
  3157. Bitfields for save pointer state flags:
  3158. Bit(s)    Description    (Table 0039)
  3159.  0    512 character set active
  3160.  1    dynamic save area present
  3161.  2    alpha font override active
  3162.  3    graphics font override active
  3163.  4    palette override active
  3164.  5    DCC override active
  3165.  6-7    unused (0)
  3166.  
  3167. Format of Static Functionality Table:
  3168. Offset    Size    Description    (Table 0040)
  3169.  00h    BYTE    modes supported 1
  3170.         bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 supported
  3171.  01h    BYTE    modes supported 2
  3172.         bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  3173.  02h    BYTE    modes supported 3
  3174.         bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  3175.         bit 4 to bit 7 unused (0)
  3176.  03h    BYTE    (IBM) reserved
  3177.         (Tseng ET3000/4000) modes supported 4
  3178.                 bit 0 to bit 7 = modes 18h-1Fh supported
  3179.  04h    BYTE    (IBM) reserved
  3180.         (Tseng ET3000/4000) modes supported 5
  3181.                 bit 0 to bit 7 = modes 20h-27h supported
  3182.  05h    BYTE    (IBM) reserved
  3183.         (Tseng ET3000/4000) modes supported 6
  3184.                 bit 0 to bit 7 = modes 28h-2Fh supported
  3185.  06h    BYTE    (IBM) reserved
  3186.         (Tseng ET3000/4000) modes supported 7
  3187.                 bit 0 to bit 7 = modes 30h-37h supported
  3188.  07h    BYTE    scan lines supported
  3189.         bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  3190.         bits 3-7 = unused (0)
  3191.  08h    BYTE    total number of character blocks available in text modes
  3192.  09h    BYTE    maximum number of active character blocks in text modes
  3193.  0Ah    WORD    miscellaneous function support flags (see #0041)
  3194.  0Ch    WORD    reserved
  3195.  0Eh    BYTE    save pointer function flags (see #0042)
  3196.  0Fh    BYTE    reserved
  3197.  
  3198. Bitfields for miscellaneous function support flags:
  3199. Bit(s)    Description    (Table 0041)
  3200.  0    all modes on all displays function supported
  3201.  1    gray summing function supported
  3202.  2    character font loading function supported
  3203.  3    default palette loading enable/disable supported
  3204.  4    cursor emulation function supported
  3205.  5    EGA palette present
  3206.  6    color palette present
  3207.  7    color-register paging function supported
  3208.  8    light pen supported (see AH=04h)
  3209.  9    save/restore state function 1Ch supported
  3210.  10    intensity/blinking function supported (see AX=1003h)
  3211.  11    Display Combination Code supported (see #0036)
  3212.  12-15    unused (0)
  3213.  
  3214. Bitfields for save pointer function flags:
  3215. Bit(s)    Description    (Table 0042)
  3216.  0    512 character set supported
  3217.  1    dynamic save area supported
  3218.  2    alpha font override supported
  3219.  3    graphics font override supported
  3220.  4    palette override supported
  3221.  5    DCC extension supported
  3222.  6-7    unused (0)
  3223. --------V-101C-------------------------------
  3224. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  3225.     AH = 1Ch
  3226.     AL = function
  3227.         00h return state buffer size
  3228.         Return: BX = number of 64-byte blocks needed
  3229.         01h save video state
  3230.         ES:BX -> buffer
  3231.         02h restore video state
  3232.         ES:BX -> buffer containing previously saved state
  3233.     CX = requested states (see #0043)
  3234. Return: AL = 1Ch if function supported
  3235. Notes:    many BIOSes corrupt the video registers when saving the state, so a
  3236.       program should restore the state immediately after saving it (the
  3237.       saved data is uncorrupted)
  3238.     the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  3239.     this function is not supported when DOS/V is running
  3240.  
  3241. Bitfields for requested states:
  3242. Bit(s)    Description    (Table 0043)
  3243.  0    video hardware (see #0044)
  3244.  1    BIOS data areas
  3245.  2    color registers and DAC state (see #0045)
  3246.  3-15    unused (0)
  3247.  
  3248. Format of VGA video hardware state:
  3249. Offset    Size    Description    (Table 0044)
  3250.  00h    BYTE    sequencer index register
  3251.  01h    BYTE    CRTC index register
  3252.  02h    BYTE    graphics controller index register
  3253.  03h    BYTE    attribute controller index register
  3254.  04h    BYTE    feature controller register
  3255.  05h  4 BYTEs    sequencer registers
  3256.  09h    BYTE    sequencer register 0
  3257.  0Ah 25 BYTEs    CRTC registers 0-8
  3258.  23h 16 BYTEs    palette registers 00h-0Fh
  3259.  33h  4 BYTEs    attribute registers 10h-13h
  3260.  37h  9 BYTEs    graphics controller registers 0-8
  3261.  40h    BYTE    CRTC base address (low)
  3262.  41h    BYTE    CRTC base address (high)
  3263.  42h    BYTE    plane 0 latch
  3264.  43h    BYTE    plane 1 latch
  3265.  44h    BYTE    plane 2 latch
  3266.  45h    BYTE    plane 3 latch
  3267.  
  3268. Format of VGA DAC state:
  3269. Offset    Size    Description    (Table 0045)
  3270.  00h    BYTE    read/write mode DAC
  3271.  01h    BYTE    pixel address
  3272.  02h    BYTE    pixel mask
  3273.  03h 768 BYTEs    color data (256 triples)
  3274. 303h    BYTE    color select register
  3275. --------J-101D-------------------------------
  3276. INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
  3277.     AH = 1Dh
  3278.     AL = function
  3279.         00h enable shift status line(s)
  3280.         BX = number of lines to reserve at bottom of screen (usu. 1)
  3281.         01h disable shift status line
  3282.         BX = number of lines reserved at bottom of screen (usually 1)
  3283.         02h get number of status lines
  3284.         Return: BX = number of lines reserved for shift status
  3285. SeeAlso: AH=19h
  3286. --------V-101D-------------------------------
  3287. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  3288.     AH = 1Dh
  3289.     AL = video mode
  3290.     ES = caller's segment
  3291. Return: nothing
  3292. Note:    the caller's segment contains at offset 5Ch (FCB field in PSP)
  3293.       or 100h a table with sync parameters (see #0046) (BIOS looks at both
  3294.       offsets)
  3295.  
  3296. Format of SpeedSTAR Plus sync table:
  3297. Offset    Size    Description    (Table 0046)
  3298.  00h  9 BYTEs    ID contains string 'ey5CENTER'
  3299.  09h  5 BYTEs    sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  3300.  0Bh  5 BYTEs    sync parameters for 800x600 modes 29h,30h,2Ah
  3301.  13h  5 BYTEs    sync parameters for 1024x768 modes 37h,38h
  3302. --------V-101D-------------------------------
  3303. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3304.     AH = 1Dh
  3305. Note:    these versions of the BIOS jump to a random location on this function
  3306.       due to a fencepost error
  3307. --------V-101F00-----------------------------
  3308. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  3309.     AX = 1F00h
  3310. Return: AL = 1Fh if supported
  3311.         BX = number of bytes of DMQS data
  3312. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3313.       and later models.
  3314. SeeAlso: AX=1F01h
  3315. --------V-101F01-----------------------------
  3316. INT 10 - VIDEO - XGA - READ DMQS DATA
  3317.     AX = 1F01h
  3318.     ES:DI -> user buffer for return data (call AX=1F00h for size)
  3319. Return: AL = 1Fh if function supported
  3320.     user buffer filled with DMQS data (see #0047)
  3321. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3322.       and later models.
  3323. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  3324.  
  3325. Format of XGA DMQS buffer:
  3326. Offset    Size    Description    (Table 0047)
  3327.  00h    WORD    offset (in bytes) to DMQS data for next XGA instance
  3328.  02h    BYTE    slot number
  3329.  03h    BYTE    XGA implementation function level identifier
  3330.  04h    BYTE    XGA implementation resolution level identifier
  3331.  05h    WORD    vendor identifier - identifies card vendor
  3332.  07h    WORD    vendor defined field
  3333.  09h    WORD    XGA adapter I/O register base address
  3334.  0Bh    WORD    XGA coprocessor register base address
  3335.         (paragraph--multiply by 10h to get physical address)
  3336.  0Dh    WORD    1 Megabyte system video memory aperture
  3337.         0000h if not allocated
  3338.         (Multiply by 100000h to get physical address)
  3339.  0Fh    WORD    4 Megabyte system video memory aperture
  3340.         0000h if not allocated
  3341.         (multiply by 100000h to get physical address)
  3342.  11h    WORD    video memory base address
  3343.         (multiply by 100000h to get physical address)
  3344.  13h    WORD    composite ID of the attached display
  3345.  15h    BYTE    amount of video memory available, in multiples of 256K bytes
  3346.  16h    DWORD    alternate XGA coprocessor register base address.  0 = none.
  3347.  1Ah    var    DMQS Data for further XGA Instances (as above)
  3348. Note:    "Instances" refers to the capability of having up to 8 XGA
  3349.       adapters in one computer.
  3350. --------V-103000CX0000-----------------------
  3351. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  3352.     AX = 3000h
  3353.     CX = 0000h
  3354.     DX = 0000h
  3355. Return: CX:DX -> 3270PC configuration table (see #0048)
  3356.     CX:DX = 0000h:0000h if 3270PC Control Program not active
  3357. SeeAlso: AX=1F01h
  3358.  
  3359. Format of 3270 PC configuration table:
  3360. Offset    Size    Description    (Table 0048)
  3361.  00h    BYTE    aspect ratio X
  3362.  01h    BYTE    aspect ratio Y
  3363.  02h    BYTE    monitor type (see #0049)
  3364.  03h    BYTE    reserved
  3365.  04h    BYTE    adapter ID
  3366.         00h = 5151/5272 adapter
  3367.         04h = 5151/5272 with XGA adapter
  3368.         30h = 3295 or 3270PC G/GX adapter
  3369.  05h    BYTE    reserved
  3370.  06h    BYTE    function flags 1 (see #0050)
  3371.  07h    BYTE    function flags 2
  3372.         bit 6: GPI graphics supported
  3373.  08h    WORD    segment address of Control Program Level table (see #0051)
  3374.  0Ah 10 BYTEs    reserved
  3375.  
  3376. (Table 0049)
  3377. Values for 3270 PC monitor type:
  3378.  00h    5151 (mono) or 5272 (color)
  3379.  01h    3295
  3380.  02h    5151 or 5272 with XGA (???) graphics adapter
  3381.  03h    5279 with 3270PC G adapter
  3382.  04h    5379 model C01 with 3270PC GX adapter
  3383.  05h    5379 model M01 with 3270PC GX adapter
  3384.  07h    non-3270PC with 3270 Workstation Program
  3385.  FFh    3270PC Control Program not loaded
  3386.  
  3387. Bitfields for 3270 PC function flags 1:
  3388. Bit(s)    Description    (Table 0050)
  3389.  7    mono text, 1 page
  3390.  6    color text, 1 page
  3391.  5    color text, 4 pages
  3392.  4    CGA color graphics
  3393.  3    720x350 two-color graphics
  3394.  2    360x350 four-color graphics
  3395.  1    720x350 eight-color graphics
  3396.  
  3397. Format of Control Program Level table:
  3398. Offset    Size    Description    (Table 0051)
  3399.  00h    WORD    program version
  3400.         02xxh = 3270PC Control Program v2.xx
  3401.         03xxh = 3270PC Control Program v3.xx
  3402.         04xxh = 3270 Workstation Program v1.xx
  3403.  02h    BYTE    Control Program ID (00h)
  3404.  03h 27 BYTEs    Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  3405. --------a-103800-----------------------------
  3406. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  3407.     AX = 3800h
  3408. Return: ES:DI -> configuration info (see #0052)
  3409. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3410. Notes:    this call is also used as the installation check by verifying that the
  3411.       returned ES:DI points at valid configuration info
  3412.     Tinytalk v1.09f ignores AL and always returns the configuration info;
  3413.       v1.10 adds several subfunctions selected with AL
  3414. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  3415. SeeAlso: INT 2F/FB00h"AutoBraille"
  3416. Index:    installation check;Tinytalk Personal
  3417.  
  3418. Format of Tinytalk Personal configuration info:
  3419. Offset    Size    Description    (Table 0052)
  3420.  00h  8 BYTEs    signature "TTCONFIG"
  3421.  08h    WORD    size of configuration data, not counting signature, this WORD,
  3422.           or the following byte
  3423.  0Ah    BYTE    ???
  3424.  0Bh    ???    configuration data
  3425. --------a-103801-----------------------------
  3426. INT 10 - Tinytalk Personal v1.10 - ???
  3427.     AX = 3801h
  3428.     DL = ???
  3429. Return: ???
  3430. SeeAlso: AX=3800h,AX=3802h
  3431. --------a-103802-----------------------------
  3432. INT 10 - Tinytalk Personal v1.10 - ???
  3433.     AX = 3802h
  3434.     DL = ???
  3435. Return: ???
  3436. SeeAlso: AX=3800h,AX=3801h
  3437. --------a-103803-----------------------------
  3438. INT 10 - Tinytalk Personal v1.10 - GET ???
  3439.     AX = 3803h
  3440. Return: AL = ???
  3441. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  3442. --------a-103804-----------------------------
  3443. INT 10 - Tinytalk Personal v1.10 - GET ???
  3444.     AX = 3804h
  3445. Return: AX = ???
  3446. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  3447. --------a-103805-----------------------------
  3448. INT 10 - Tinytalk Personal v1.10 - GET ???
  3449.     AX = 3805h
  3450. Return: AL = ???
  3451. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  3452. --------a-103806-----------------------------
  3453. INT 10 - Tinytalk Personal v1.10 - ???
  3454.     AX = 3806h
  3455.     ES:DX -> ASCIZ ???
  3456. Return: ???
  3457. SeeAlso: AX=3800h
  3458. --------a-1039-------------------------------
  3459. INT 10 - Tinytalk Personal v1.10 - ???
  3460.     AH = 39h
  3461. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3462. Note:    this function was a NOP in TTDEMO.EXE, but may be implemented in other
  3463.       variants of Tinytalk
  3464. --------V-1040-------------------------------
  3465. INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
  3466.     AH = 40h
  3467. Desc:    switch the Hercules Graphics Card into graphics mode (720x348)
  3468. SeeAlso: AH=00h,AH=41h
  3469. Index:    video modes;Hercules
  3470. --------V-1041-------------------------------
  3471. INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
  3472.     AH = 41h
  3473. Desc:    switch the Hercules Graphics Card into text mode
  3474. SeeAlso: AH=00h,AH=40h
  3475. Index:    video modes;Hercules
  3476. --------V-1042-------------------------------
  3477. INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
  3478.     AH = 42h
  3479. SeeAlso: AH=45h
  3480. --------V-1043-------------------------------
  3481. INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
  3482.     AH = 43h
  3483.     AL = page number (0,1)
  3484. Desc:    specify which of the two pages of video memory is to be used for
  3485.       output
  3486. SeeAlso: AH=05h,AH=44h,AH=45h
  3487. --------V-1044-------------------------------
  3488. INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
  3489.     AH = 44h
  3490.     AL = drawing function
  3491.         00h clear pixels
  3492.         01h set pixels
  3493.         02h invert pixels
  3494. Desc:    specify how graphics output will change the display
  3495. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  3496. --------V-1045-------------------------------
  3497. INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
  3498.     AH = 45h
  3499.     AL = page number (0,1)
  3500. Desc:    specify which of the two pages of video memory is visible on screen
  3501. SeeAlso: AH=05h,AH=42h,AH=43h
  3502. --------V-1046-------------------------------
  3503. INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
  3504.     AH = 46h
  3505.     DI = x (0-720)
  3506.     BP = y (0-347)
  3507. Note:    function 44h determines operation and function 43h which page to use
  3508. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  3509. --------V-1047-------------------------------
  3510. INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
  3511.     AH = 47h
  3512.     DI = x (0-720)
  3513.     BP = y (0-347)
  3514. Return: AL = 00h pixel clear
  3515.     AL = 01h pixel set
  3516. Note:    function 43h specifies which page is used
  3517. SeeAlso: AH=0Dh,AH=46h
  3518. --------V-1048-------------------------------
  3519. INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
  3520.     AH = 48h
  3521.     DI = x (0-720)
  3522.     BP = y (0-347)
  3523. Desc:    specify the location from which to start the next graphics output
  3524. SeeAlso: AH=49h
  3525. --------V-1049-------------------------------
  3526. INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
  3527.     AH = 49h
  3528.     DI = x (0-720)
  3529.     BP = y (0-347)
  3530. Note:    function 48h or 49h specify first point, 44h operation and 43h page to
  3531.       use
  3532. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  3533. --------V-104A-------------------------------
  3534. INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
  3535.     AH = 4Ah
  3536.     DI = x coordinate of lower left corner
  3537.     BP = y coordinate of lower left corner
  3538.     BX = height in pixels
  3539.     CX = width in pixels
  3540. Desc:    draw a solid rectangle of the specified size at the given location
  3541. SeeAlso: AH=4Eh
  3542. --------V-104B-------------------------------
  3543. INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
  3544.     AH = 4Bh
  3545.     AL = character to display
  3546.     DI = x (0-720)
  3547.     BP = y (0-347)
  3548. Note:    unlike the other BIOS character functions character position is
  3549.       specified in pixels rather than rows and columns
  3550. SeeAlso: AH=09h,AH=0Ah
  3551. ----------104B-------------------------------
  3552. INT 10 - FRIEZE - API
  3553.     AH = 4Bh
  3554.     CL = function
  3555.         00h (v6.x-) print window
  3556.         AL = mode
  3557.             00h character
  3558.             01h normal
  3559.             02h sideways
  3560.         01h load window
  3561.         ES:BX -> ASCIZ filename from which to read
  3562.         02h save window
  3563.         ES:BX -> ASCIZ filename to which to write
  3564.         03h set print width
  3565.         AL = width in 1/4 inches
  3566.         04h set print height
  3567.         AL = height in 1/4 inches
  3568.         05h reserved
  3569.         06h set left margin
  3570.         AL = printout margin in 1/4 inches
  3571.         07h set window size
  3572.         ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  3573.         08h reserved
  3574.         09h set patterns
  3575.         ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  3576.         0Ah get patterns
  3577.         ES:BX -> 16-BYTE buffer for color correspondences
  3578.         0Bh set mode
  3579.         AL = mode
  3580.         0Ch (v7.41) ???
  3581.         AL = ???
  3582.             00h ??? (calls original INT 05)
  3583.             else ???
  3584.         0Dh (v7.41) ???
  3585.         AL = ???
  3586.             00h ??? (calls original INT 05)
  3587.             else ???
  3588.         0Eh (v7.41) ???
  3589.         ???
  3590.         0Fh get window
  3591.         ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  3592.         10h set print options
  3593.         ES:BX -> printer options in same format as FRIEZE cmdline
  3594.         11h initialize
  3595.         ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  3596.         12h (v7.41) ???
  3597.         ???
  3598.         13h (v7.41) ???
  3599.         ???
  3600.         14h get version
  3601.         Return: AH = major version (00h if FRIEZE version before 7)
  3602.             AL = minor version
  3603.         15h set parameters
  3604.         ES:BX -> parameter table (see #0054)
  3605.         16h get parameters
  3606.         ES:BX -> buffer for parameter table (see #0054)
  3607.         17h get printer resolution
  3608.         ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  3609.         18h (v8.0 only) reserved
  3610.         50h (v7.41) get ???
  3611.         Return: AX = ???
  3612.         51h (v7.41) get ???
  3613.         Return: ES = ??? (seen 2348h)
  3614.             AX = ??? (seen 8432h)
  3615. Return: AX = status (see #0053)
  3616. SeeAlso: AH=0Fh/SI=F123h
  3617.  
  3618. (Table 0053)
  3619. Values for FRIEZE function status:
  3620.  00h    successful
  3621.  01h    user aborted printout with ESC
  3622.  02h    reserved
  3623.  03h    file read error
  3624.  04h    file write error or printer error
  3625.  05h    file not found
  3626.  06h    invalid header (not an image or wrong screen mode) or can't create file
  3627.  07h    file close error
  3628.  08h    disk error
  3629.  09h    (v7.0+) printer error
  3630.  0Ah    invalid function
  3631.  0Bh    (v7.0+) can't create file
  3632.  0Ch    (v7.0+) wrong video mode
  3633.  
  3634. Format of FRIEZE parameter table:
  3635. Offset    Size    Description    (Table 0054)
  3636.  00h    WORD    top margin (1/100 inch)
  3637.  02h    WORD    left margin (1/100 inch)
  3638.  04h    WORD    horizontal size (1/100 inch)
  3639.  06h    WORD    vertical size (1/100 inch)
  3640.  08h    WORD    quality/draft mode
  3641.         00h draft mode
  3642.         01h quality mode
  3643.         02h use horizontal/vertical resolution for output resolution
  3644.  0Ah    WORD    printer horizontal resolution (dots per inch)
  3645.  0Ch    WORD    printer vertical resolution (dots per inch)
  3646.  0Eh    WORD    reserved (FFFFh)
  3647. Note:    any field which should remain unchanged may be filled with FFFFh
  3648. --------V-104C-------------------------------
  3649. INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
  3650.     AH = 4Ch
  3651.     AL = quadrant (1 = upper right, 2 = upper left, etc)
  3652.     DI = x coordinate of center
  3653.     BP = y coordinate of center
  3654.     BX = radius
  3655. SeeAlso: AH=49h,AH=4Dh
  3656. --------V-104D-------------------------------
  3657. INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
  3658.     AH = 4Dh
  3659.     DI = x of center
  3660.     BP = y of center
  3661.     BX = radius
  3662. SeeAlso: AH=49h,AH=4Ch
  3663. --------V-104E-------------------------------
  3664. INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
  3665.     AH = 4Eh
  3666.     DI = x coordinate of an interior point
  3667.     BP = y coordinate of an interior point
  3668. Desc:    fill a convex polygonal area bounded by a contiguous line of the
  3669.       opposite color with the border color
  3670. Note:    the first fill makes the figure solid, the second erases it
  3671. SeeAlso: AH=4Ah
  3672. --------V-104E00-----------------------------
  3673. INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
  3674.     AX = 4E00h
  3675.     ES:DI -> 256-byte buffer for XGA information (see #0055)
  3676. Return: AL = 4Eh if function supported
  3677.         AH = status
  3678.         00h successful
  3679.         else error code
  3680. Desc:    determine whether VESA XGA extensions are present and the capabilities
  3681.       supported by the display adapter
  3682. SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
  3683. Index:    installation check;VESA XGA
  3684.  
  3685. Format of XGA information buffer:
  3686. Offset    Size    Description    (Table 0055)
  3687.  00h  4 BYTEs    signature ("VESA")
  3688.  04h    WORD    VESA version number
  3689.  06h    DWORD    pointer to ASCIZ OEM string
  3690.  0Ah    DWORD    environment flags (see #0056)
  3691.  0Eh    WORD    number of XGA adapters installed (other VESA XGA functions
  3692.           require a handle indicating which adapter to use)
  3693.  10h 240 BYTEs    reserved
  3694.  
  3695. Bitfields for XGA environment flags:
  3696. Bit(s)    Description    (Table 0056)
  3697.  0-1    system bus (00 = MCA, 01 = ISA, 10 = EISA)
  3698.  2    bus mastering available
  3699.  3-31    reserved
  3700. --------V-104E01----------------------------
  3701. INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
  3702.     AX = 4E01h
  3703.     DX = XGA handle (0 to number of XGAs-1)
  3704.     ES:DI -> 256-byte buffer for subsystem information (see #0057)
  3705. Return: AL = 4Eh if function supported
  3706.     AH = status
  3707.         00h     function successful
  3708.         else error code
  3709. SeeAlso: AX=4E00h,AX=4E02h
  3710.  
  3711. Format of XGA subsystem information:
  3712. Offset    Size    Description    (Table 0057)
  3713.  00h    DWORD    pointer to null-terminated board OEM string
  3714.  04h    DWORD    capabilities (see #0058)
  3715.  08h    DWORD    pointer to 8KB XGA ROM (or NULL)
  3716.  0Ch    DWORD    pointer to the XGA memory mapped registers
  3717.  10h    WORD    base address of XGA I/O registers (21x0h)
  3718.  12h    DWORD    pointer to start of physical video memory
  3719.         (A000h:0000h or B000h:0000h)
  3720.  16h    DWORD    physical address of 4MB aperture (or NULL if none)
  3721.  1Ah    DWORD    physical address of 1MB aperture (or NULL if none)
  3722.  1Eh    DWORD    physical address of 64KB aperture (or NULL if not enabled)
  3723.  22h    DWORD    physical address of OEM aperture (or NULL if none)
  3724.  26h    WORD    size of OEM aperture in 64KByte units
  3725.  28h    DWORD    pointer to list of video modes
  3726.         The list is a series of WORDs terminated by FFFFh
  3727.  2Ch    WORD    number of 64KB blocks on the board
  3728.  2Eh    DWORD    XGA manufacturer ID
  3729.         byte 0 POS data index 1
  3730.         byte 1 is index 2
  3731.         byte 2 is 21xAh index 75h
  3732.  32h 206 BYTEs    reserved
  3733.  
  3734. Bitfields for XGA capabilities:
  3735. Bit(s)    Description    (Table 0058)
  3736.  0-1    board bus architecture: 0=MCA, 1=ISA, 3=EISA
  3737.  2-3    reserved
  3738.  4-6    DMA Channel assigned for acquiring bus mastership (only for ISA bus)
  3739.  7    DMA Channel Status (ISA only). enabled if set
  3740.  8-31    reserved
  3741. --------V-104E02-----------------------------------
  3742. INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
  3743.     AX = 4E02h
  3744.     CX = Video mode
  3745.     DX = XGA handle
  3746.     ES:DI -> 256 byte buffer for mode information (see #0059)
  3747. Return: AL = 4Eh if function supported
  3748.     AH = status
  3749.         00h     function successful
  3750.         else error code
  3751. SeeAlso: AX=4E00h,AX=4E01h
  3752.  
  3753. Format of XGA mode information:
  3754. Offset    Size    Description    (Table 0059)
  3755.  00h    WORD    attributes of the mode (see #0060)
  3756.  02h    WORD    bytes per logical scanline
  3757.  04h    WORD    horizontal resolution in pixels
  3758.  06h    WORD    vertical resolution in scanlines
  3759.  08h    BYTE    character Width in pixels
  3760.  09h    BYTE    character Height in pixels
  3761.  0Ah    BYTE    number of planes
  3762.  0Bh    BYTE    bits per pixels
  3763.  0Ch    BYTE    memory model (see #0061)
  3764.  0Dh    BYTE    number of Image Pages
  3765.  0Eh    BYTE    number of Red bits
  3766.  0Fh    BYTE    bit position of Red bit field
  3767.  10h    BYTE    number of Green bits
  3768.  11h    BYTE    bit position of Green bit field
  3769.  12h    BYTE    number of Blue bits
  3770.  13h    BYTE    bit position of Blue bit field
  3771.  14h    BYTE    number of Reserved bits
  3772.  15h    BYTE    bit position of Reserved bit field
  3773.  16h 235 BYTEs    reserved
  3774.  
  3775. Bitfields for XGA mode attributes:
  3776. Bit(s)    Description    (Table 0060)
  3777.  0    set if mode is supported
  3778.  1    reserved
  3779.  2    output is supported by the BIOS
  3780.  3    reserved
  3781.  4    if set this is a graphics mode (VGA registers inactive, XGA active),
  3782.       if clear this is a text mode (VGA registers active, XGA inactive)
  3783.  
  3784. (Table 0061)
  3785. Values for XGA video memory model:
  3786.  00h    Text Mode
  3787.  01h    CGA graphics
  3788.  02h    Hercules graphics
  3789.  03h    4-planar graphics
  3790.  04h    Packed Pixel
  3791.  05h    Non-chain 4, 256 color
  3792.  06h    Direct Color
  3793.  07h    YUV-24
  3794. --------V-104E03-----------------------------------
  3795. INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
  3796.     AX = 4E03h
  3797.     BX = video mode
  3798.     CX = other command flags
  3799.          bit 0  If clear the feature connector is set to the default state
  3800.     DX = XGA handle
  3801.     ES:DI -> 256 byte buffer
  3802. Return: AL = 4Eh if function supported
  3803.     AH = status
  3804.         00h     function successful
  3805.         else error code
  3806. SeeAlso: AH=00h,AX=4E04h,AX=4F02h
  3807. --------V-104E04-----------------------------------
  3808. INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
  3809.     AX = 4E04h
  3810.     DX = XGA handle
  3811. Return: AL = 4Eh if function supported
  3812.     AH = status
  3813.         00h     function successful
  3814.         BX??? = current mode
  3815.         else error code
  3816. SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
  3817. --------V-104E05-----------------------------------
  3818. INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
  3819.     AX = 4E05h
  3820.     BX = Feature Connector State (see #0062)
  3821.     DX = XGA handle
  3822. Return: AL = 4Eh if function supported
  3823.     AH = status
  3824.         00h     function successful
  3825.         else error code
  3826. SeeAlso: AX=4E00h,AX=4E06h
  3827.  
  3828. Bitfields for XGA Feature Connector State:
  3829. Bit(s)    Description    (Table 0062)
  3830.  0    Feature Connector is enabled
  3831.  1    Feature Connector is in Output Mode rather than Input Mode
  3832.  2-15    reserved (0)
  3833. --------V-104E06-----------------------------------
  3834. INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
  3835.     AX = 4E06h
  3836.     DX = XGA handle
  3837. Return: AL = 4Eh if function supported
  3838.     AH = status
  3839.         00h     function successful
  3840.         else error code
  3841.     BX = Feature Connector State (see #0062)
  3842. SeeAlso: AX=4E00h,AX=4E05h
  3843. --------V-104F00-----------------------------
  3844. INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
  3845.     AX = 4F00h
  3846.     ES:DI -> 256-byte buffer for SuperVGA information (see #0063)
  3847. Return: AL = 4Fh if function supported
  3848.     AH = status
  3849.         00h successful
  3850.         ES:DI buffer filled
  3851.         01h failed
  3852. Desc:    determine whether VESA BIOS extensions are present and the capabilities
  3853.       supported by the display adapter
  3854. SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h,AX=A00Ch
  3855. Index:    installation check;VESA SuperVGA
  3856.  
  3857. Format of SuperVGA information:
  3858. Offset    Size    Description    (Table 0063)
  3859.  00h  4 BYTEs    signature ("VESA")
  3860.  04h    WORD    VESA version number
  3861.  06h    DWORD    pointer to OEM name
  3862.         "761295520" for ATI
  3863.  0Ah  4 BYTEs    capabilities
  3864.  0Eh    DWORD    pointer to list of supported VESA and OEM video modes
  3865.         (list of words terminated with FFFFh)
  3866.  12h    WORD    total amount of video memory in 64K blocks
  3867.  14h 236 BYTEs    reserved
  3868. Notes:    the list of supported video modes is stored in the reserved portion of
  3869.       the SuperVGA information record by some implementations, and it may
  3870.       thus be necessary to either copy the mode list or use a different
  3871.       buffer for all subsequent VESA calls
  3872.     the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  3873.       buffer should be 262 bytes to ensure that it is not overrun
  3874. --------V-104F01-----------------------------
  3875. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  3876.     AX = 4F01h
  3877.     CX = SuperVGA video mode
  3878.     ES:DI -> 256-byte buffer for mode information (see #0064)
  3879. Return: AL = 4Fh function supported
  3880.     AH = status
  3881.         00h successful
  3882.         ES:DI buffer filled
  3883.         01h failed
  3884. Desc:    determine the attributes of the specified video mode
  3885. SeeAlso: AX=4F00h,AX=4F02h
  3886.  
  3887. Format of VESA SuperVGA mode information:
  3888. Offset    Size    Description    (Table 0064)
  3889.  00h    WORD    mode attributes (see #0065)
  3890.  02h    BYTE    window attributes, window A (see #0066)
  3891.  03h    BYTE    window attributes, window B (see #0066)
  3892.  04h    WORD    window granularity in KB
  3893.  06h    WORD    window size in KB
  3894.  08h    WORD    start segment of window A
  3895.  0Ah    WORD    start segment of window B
  3896.  0Ch    DWORD    -> FAR window positioning function (equivalent to AX=4F05h)
  3897.  10h    WORD    bytes per scan line
  3898. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  3899.  12h    WORD    width in pixels (graphics) or characters (text)
  3900.  14h    WORD    height in pixels (graphics) or characters (text)
  3901.  16h    BYTE    width of character cell in pixels
  3902.  17h    BYTE    height of character cell in pixels
  3903.  18h    BYTE    number of memory planes
  3904.  19h    BYTE    number of bits per pixel
  3905.  1Ah    BYTE    number of banks
  3906.  1Bh    BYTE    memory model type (see #0067)
  3907.  1Ch    BYTE    size of bank in KB
  3908.  1Dh    BYTE    number of image pages
  3909.  1Eh    BYTE    reserved (0)
  3910. ---VBE v1.2+---
  3911.  1Fh    BYTE    red mask size
  3912.  20h    BYTE    red field position
  3913.  21h    BYTE    green mask size
  3914.  22h    BYTE    green field size
  3915.  23h    BYTE    blue mask size
  3916.  24h    BYTE    blue field size
  3917.  25h    BYTE    reserved mask size
  3918.  26h    BYTE    reserved mask position
  3919.  27h    BYTE    direct color mode info
  3920.  28h 216 BYTEs    reserved (0)
  3921.  
  3922. Bitfields for VESA SuperVGA mode attributes:
  3923. Bit(s)    Description    (Table 0065)
  3924.  0    mode supported
  3925.  1    optional information available
  3926.  2    BIOS output supported
  3927.  3    set if color, clear if monochrome
  3928.  4    set if graphics mode, clear if text mode
  3929.  
  3930. Bitfields for VESA SuperVGA window attributes:
  3931. Bit(s)    Description    (Table 0066)
  3932.  0    exists
  3933.  1    readable
  3934.  2    writable
  3935.  3-7    reserved
  3936.  
  3937. (Table 0067)
  3938. Values for VESA SuperVGA memory model type:
  3939.  00h    text
  3940.  01h    CGA graphics
  3941.  02h    HGC graphics
  3942.  03h    16-color (EGA) graphics
  3943.  04h    packed pixel graphics
  3944.  05h    "sequ 256" (non-chain 4) graphics
  3945.  06h    direct color (HiColor, 24-bit color)
  3946.  07h    YUV (luminance-chrominance, also called YIQ)
  3947.  08h-0Fh reserved for VESA
  3948.  10h-FFh OEM memory models
  3949. --------V-104F02-----------------------------
  3950. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  3951.     AX = 4F02h
  3952.     BX = mode
  3953.         bit 15 set means don't clear video memory
  3954. Return: AL = 4Fh function supported
  3955.     AH = status
  3956.         00h successful
  3957.         01h failed
  3958. SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
  3959.  
  3960. (Table 0068)
  3961. Values for VESA video mode:
  3962.  00h-FFh OEM video modes (see #0009 at AH=00h)
  3963.  100h    640x400x256
  3964.  101h    640x480x256
  3965.  102h    800x600x16
  3966.  103h    800x600x256
  3967.  104h    1024x768x16
  3968.  105h    1024x768x256
  3969.  106h    1280x1024x16
  3970.  107h    1280x1024x256
  3971.  108h    80x60 text
  3972.  109h    132x25 text
  3973.  10Ah    132x43 text
  3974.  10Bh    132x50 text
  3975.  10Ch    132x60 text
  3976. ---VBE v1.2---
  3977.  10Dh    320x200x32K
  3978.  10Eh    320x200x64K
  3979.  10Fh    320x200x16M
  3980.  110h    640x480x32K
  3981.  111h    640x480x64K
  3982.  112h    640x480x16M
  3983.  113h    800x600x32K
  3984.  114h    800x600x64K
  3985.  115h    800x600x16M
  3986.  116h    1024x768x32K
  3987.  117h    1024x768x64K
  3988.  118h    1024x768x16M
  3989.  119h    1280x1024x32K
  3990.  11Ah    1280x1024x64K
  3991.  11Bh    1280x1024x16M
  3992. Index:    video modes;VESA
  3993.  
  3994. (Table 0069)
  3995. Values for S3 OEM video mode:
  3996.  201h    640x480x256
  3997.  202h    800x600x16
  3998.  203h    800x600x256
  3999.  204h    1024x768x16
  4000.  205h    1024x768x256
  4001.  206h    1280x960x16
  4002.  207h    1152x864x256 (Diamond Stealth 64)
  4003.  208h    1280x1024x16
  4004.  20Ah    1152x864x64K (Diamond Stealth 64)
  4005.  211h    640x480x64K (Diamond Stealth 24)
  4006.  212h    640x480x16M (Diamond Stealth 24)
  4007.  301h    640x480x32K
  4008. Note:    these modes are only available on video cards using S3's VESA driver
  4009. Index:    video modes;S3
  4010. --------V-104F03-----------------------------
  4011. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  4012.     AX = 4F03h
  4013. Return: AL = 4Fh function supported
  4014.     AH = status
  4015.         00h successful
  4016.         BX = video mode (see #0068,#0069)
  4017.         01h failed
  4018. SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
  4019. --------V-104F04-----------------------------
  4020. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  4021.     AX = 4F04h
  4022.     DL = subfunction
  4023.         00h get state buffer size
  4024.         Return: BX = number of 64-byte blocks needed
  4025.         01h save video states
  4026.         ES:BX -> buffer
  4027.         02h restore video states
  4028.         ES:BX -> buffer
  4029.     CX = states to save/restore (see #0070)
  4030. Return: AL = 4Fh function supported
  4031.     AH = status
  4032.         00h successful
  4033.         01h failed
  4034.  
  4035. Bitfields for VESA SuperVGA states to save/restore:
  4036. Bit(s)    Description    (Table 0070)
  4037.  0    video hardware state
  4038.  1    video BIOS data state
  4039.  2    video DAC state
  4040.  3    SuperVGA state
  4041. --------V-104F05-----------------------------
  4042. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  4043.     AX = 4F05h
  4044.     BH = subfunction
  4045.         00h select video memory window
  4046.         DX = window address in video memory (in granularity units)
  4047.         01h get video memory window
  4048.         Return: DX = window address in video memory (in gran. units)
  4049.     BL = window number
  4050.         00h window A
  4051.         01h window B
  4052. Return: AL = 4Fh function supported
  4053.     AH = status
  4054.         00h successful
  4055.         01h failed
  4056. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  4057. --------V-104F06-----------------------------
  4058. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH
  4059.     AX = 4F06h
  4060.     BL = function
  4061.         00h set scan line length
  4062.         CX = desired width in pixels
  4063.         01h get scan line length
  4064. Return: AL = 4Fh if function supported
  4065.     AH = status
  4066.         00h successful
  4067.         01h failed
  4068.     BX = bytes per scan line
  4069.     CX = number of pixels per scan line
  4070.     DX = maximum number of scan lines
  4071. Notes:    if the desired width is not achievable, the next larger width will be
  4072.       set
  4073.     the scan line may be wider than the visible area of the screen
  4074.     this function is valid in text modes, provided that values are
  4075.       multiplied by the character cell width/height
  4076. SeeAlso: AX=4F01h,AX=4F05h,AX=4F07h
  4077. --------V-104F07BH00-------------------------
  4078. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  4079.     AX = 4F07h
  4080.     BH = 00h (reserved)
  4081.     BL = function
  4082.         00h set display start
  4083.         CX = leftmost displayed pixel in scan line
  4084.         DX = first displayed scan line
  4085.         01h get display start
  4086.         Return: BH = 00h
  4087.             CX = leftmost displayed pixel in scan line
  4088.             DX = first displayed scan line
  4089. Return: AL = 4Fh if function supported
  4090.     AH = status
  4091.         00h successful
  4092.         01h failed
  4093. Note:    this function is valid in text modes, provided that values are
  4094.       multiplied by the character cell width/height
  4095. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  4096. --------V-104F08-----------------------------
  4097. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  4098.     AX = 4F08h
  4099.     BL = function
  4100.         00h set DAC palette width
  4101.         BH = desired number of bits per primary color
  4102.         01h get DAC palette width
  4103. Return: AL = 4Fh if function supported
  4104.     AH = status
  4105.     BH = current number of bits per primary (06h = standard VGA)
  4106. --------p-104F10BL00-------------------------
  4107. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET CAPABILITIES
  4108.     AX = 4F10h
  4109.     BL = 00h
  4110.     ES:DI = 0000h:0000h (reserved for future use)
  4111. Return: AL = 4Fh if function supported (installed)
  4112.     AH = call status
  4113.         00h successful
  4114.         else failed
  4115.     ---if successful---
  4116.     BL = VBE/PM version (bits 7-4: major, bits 3-0: minor)
  4117.     BH = supported states (see #0071)
  4118.     ES:DI unchanged
  4119. Index:    installation check;VESA VBE/Power Management
  4120. SeeAlso: AX=4F10h/BL=01h,AX=4F10h/BL=02h
  4121.  
  4122. Bitfields for VESA VBE/PM supported power states:
  4123. Bit(s)    Description    (Table 0071)
  4124.  0    standby
  4125.  1    suspend
  4126.  2    off
  4127.  3    (reduced on???)
  4128. --------p-104F10BL01-------------------------
  4129. INT 10 - VESA VBE/PM (Power Management) v1.0+ - SET DISPLAY POWER STATE
  4130.     AX = 4F10h
  4131.     BL = 01h
  4132.     BH = new state (see #0072)
  4133. Return: AL = 4Fh if function supported
  4134.     AH = call status
  4135.         00h successful
  4136.         else failed
  4137. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=02h,AX=A00Ch
  4138.  
  4139. (Table 0072)
  4140. Values for VESA VBE/PM power state:
  4141.  00h    On
  4142.  01h    standby
  4143.  02h    suspend
  4144.  04h    Off
  4145.  08h    reduced On
  4146. --------p-104F10BL02-------------------------
  4147. INT 10 - VESA VBE/PM (Power Management) v1.0+ - GET DISPLAY POWER STATE
  4148.     AX = 4F10h
  4149.     BL = 02h
  4150. Return: AL = 4Fh if function supported
  4151.     AH = call status
  4152.         00h successful
  4153.            BH = current power state (see #0072)
  4154.         else failed
  4155. SeeAlso: AX=4F10h/BL=00h,AX=4F10h/BL=01h
  4156. --------s-104F13-----------------------------
  4157. INT 10 - VESA Audio Interface - API
  4158.     AX = 4F13h
  4159.     ??? details not yet available
  4160. ----------104F4D-----------------------------
  4161. INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
  4162.     AX = 4F4Dh
  4163.     BX = number of bytes available for VCI use
  4164.     DS:0000h -> buffer for VCI
  4165.     ES:DI -> VCI driver callback function
  4166. Return: AL = 4Fh if supported
  4167.         AH = status
  4168.         00h successful
  4169.             BX = number of bytes used by VCI
  4170.             ES:DI -> VCI request handler
  4171.         01h failed
  4172. Desc:    allow the VESA BIOS Extensions to cooperate with a pointing-device
  4173.       (typically mouse) driver
  4174. --------V-104FFF-----------------------------
  4175. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  4176.     AX = 4FFFh
  4177.     DL = new state (00h off, 01h on)
  4178. Return: AX = 0000h if successful
  4179. --------V-104FFF-----------------------------
  4180. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  4181.     AX = 4FFFh
  4182.     BX = dual display mode
  4183.         00h reset
  4184.         01h set dual display, 32KB VGA test
  4185.         02h set dual display, 64KB VGA test
  4186. Return: AX = 4F00h if successful
  4187.         BX = number of scanlines off screen for test mode
  4188. --------U-1050-------------------------------
  4189. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  4190.     AH = 50h
  4191. Return: BX = 1954h if installed
  4192.         AL = 00h if inactive, nonzero if active
  4193. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  4194. SeeAlso: AH=51h
  4195. --------J-105000-----------------------------
  4196. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  4197.     AX = 5000h
  4198.     BX = country code
  4199.         0001h USA (English), 0051h Japan
  4200. Return: AL = status
  4201.         00h successful
  4202.         01h bad country code
  4203.         02h other error
  4204. SeeAlso: AX=5001h,INT 16/AX=5000h
  4205. --------J-105001-----------------------------
  4206. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  4207.     AX = 5001h
  4208. Return: AL = status
  4209.         00h successful
  4210.         BX = country code
  4211.         02h error
  4212. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  4213. --------V-105049-----------------------------
  4214. INT 10 - VIDEO - SCREENR v1.55+ - API
  4215.     AX = 5049h ('PI')
  4216.     BX = function
  4217.         0000h installation check
  4218.         0001h lock mode
  4219.         0002h unlock mode
  4220.         0003h lock palette
  4221.         0004h unlock palette
  4222. Return: AX = 0000h if installed
  4223.         BX = TSR version (BH=major,BL=minor)
  4224.         CL = mode locking status
  4225.         00h mode not locked
  4226.         01h mode locked: INT 10/AH=00h disabled
  4227.         CH = palette locking status
  4228.         00h palette not locked
  4229.         01h palette locked, the following functions are disabled:
  4230.             AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  4231. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  4232.       utility.
  4233. Index:    installation check;SCREENR
  4234. --------U-1051-------------------------------
  4235. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  4236.     AH = 51h
  4237.     AL = state
  4238.         00h disable
  4239.         nonzero enable
  4240. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  4241. SeeAlso: AH=50h"SCROLOCK"
  4242. --------J-105100-----------------------------
  4243. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  4244.     AX = 5100h
  4245.     BH = character width in bits (10h)
  4246.     BL = character height (10h)
  4247.     DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  4248.     ES:BP -> character bitmap
  4249. Return: AL = status (00h successful, 01h failed)
  4250. SeeAlso: AX=5101h,INT 1F
  4251. --------J-105101-----------------------------
  4252. INT 10 - VIDEO - AX PC - READ CHARACTER
  4253.     AX = 5101h
  4254.     BH = character width in bits
  4255.     BL = character height
  4256.     DX = character code (DH = 00h if 8-bit character)
  4257.     ES:BP -> buffer for character bitmap
  4258. Return: AL = status (00h successful, 01h failed)
  4259. SeeAlso: AH=09h,AX=5100h
  4260. --------J-105200-----------------------------
  4261. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  4262.     AX = 5200h
  4263.     BX = segment of buffer
  4264. SeeAlso: AX=5201h
  4265. --------J-105201-----------------------------
  4266. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  4267.     AX = 5201h
  4268. Return: BX = segment of buffer or 0000h if failed
  4269. SeeAlso: AX=8300h,AH=FEh
  4270. ----------1053-------------------------------
  4271. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  4272.     AH = 53h
  4273.     DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  4274.         .PR2)
  4275. Return: ???
  4276. SeeAlso: AH=55h
  4277. ----------1055-------------------------------
  4278. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  4279.     AH = 55h
  4280. Return: FXSHOW.EXE removed from memory
  4281. SeeAlso: AH=53h
  4282. --------V-105555-----------------------------
  4283. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  4284.     AX = 5555h
  4285. Return: AX = AAAAh    if installed
  4286.     BX:CX -> ??? routine in SMS.COM resident portion
  4287.           -> data area (see #0073) in VCONFIG
  4288. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  4289.       ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  4290. SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
  4291. Index:    screen saver;ATI Wonder SMS.COM
  4292.  
  4293. Format of ATI Super Switch data area:
  4294. Offset    Size    Description    (Table 0073)
  4295.  00h    DWORD    original INT 09 vector
  4296.  04h    DWORD    original INT 10 vector
  4297.  08h    DWORD    original INT 1C vector
  4298.  0Ch    WORD    screen saver state, 0=off, 1=on
  4299.  0Eh    WORD    blanking interval in clock ticks
  4300. --------V-105F00-----------------------------
  4301. INT 10 - Chips & Technologies Extended BIOS - RETURN 82C45X CHIP INFORMATION
  4302.     AX = 5F00h
  4303. Return: AL = 5Fh function supported
  4304.         BL = chip type (see #0074)
  4305.         BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
  4306.         CX = miscellaneous information (see #0075)
  4307. SeeAlso: AX=5F01h
  4308.  
  4309. Bitfields for Chips&Technologies chip type:
  4310. Bit(s)    Description    (Table 0074)
  4311.  7-4    chip type
  4312.     0000: 82c451
  4313.     0001: 82c452
  4314.     0010: 82c455
  4315.     0011: 82c453
  4316.     0101: 82c456
  4317.     0110: 82c457
  4318.     0111: F65520
  4319.     1000: F65530
  4320.  3-0    revision number
  4321.  
  4322. Bitfields for Chips&Technologies miscellaneous information:
  4323. Bit(s)    Description    (Table 0075)
  4324.  0    DAC size (0=6-bit, 1=8-bit)
  4325.  1    system type (0=PC/AT, 1=PS/2)
  4326.  2    extended text modes supported by BIOS
  4327.  3    reserved
  4328.  4    extended graphics modes supported by BIOS
  4329.  5    reserved
  4330.  6    BIOS supports graphics cursor
  4331.  7    BIOS supports anti-aliased font
  4332.  8    BIOS supports pre-programmed emulation
  4333.  9    BIOS supports auto emulation
  4334.  10    BIOS supports variable mode set at cold boot
  4335.  11    BIOS supports variable mode set on warm boot
  4336.  12    BIOS supports emulation mode set at cold boot
  4337.  13    BIOS supports emulation mode set on warm boot
  4338.  14-15    reserved
  4339. --------V-105F00-----------------------------
  4340. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  4341.     AX = 5F00h
  4342. Return: AH = 00h, if successful
  4343.     AL = chip version (the same value that VTEST.EXE reads)
  4344.         00h RTG3103???
  4345.         01h RTG31030/RTG3105
  4346.         02h RTG3106???
  4347.         3Fh non-Realtek chip
  4348. BUG:    in v3.C10, AX=5F00h on return due to improper stack restoration code
  4349. SeeAlso: AX=5F01h"RTVGA"
  4350. --------V-105F01-----------------------------
  4351. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  4352.     AX = 5F01h
  4353.     BL = emulation type (see #0076)
  4354. Return: AL = 5Fh if function supported
  4355.         AH = status
  4356.         00h unsuccessful
  4357.         01h successful
  4358. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  4359.  
  4360. (Table 0076)
  4361. Values for Chips&Technologies emulation type:
  4362.  00h,01h reserved
  4363.  02h    CGA
  4364.  03h    MDA
  4365.  04h    Hercules
  4366.  05h    EGA
  4367.  06h    VGA
  4368. --------V-105F01-----------------------------
  4369. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  4370.     AX = 5F01h
  4371.     ES:DI -> zero-filled buffer for BIOS ID string
  4372. Return: AH = 00h if successful
  4373.     ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  4374. BUG:    in v3.C10, AX=5F01h on return due to improper stack restoration code
  4375. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  4376. --------V-105F02-----------------------------
  4377. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  4378.     AX = 5F02h
  4379.     BL = new state of autmatic emulation (00h enabled, 01h disabled)
  4380. Return: AL = 5Fh if function supported
  4381.         AH = status
  4382.         00h unsuccessful
  4383.         01h successful
  4384. SeeAlso: AX=5F01h,AX=5F03h
  4385. --------V-105F02-----------------------------
  4386. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  4387.     AX = 5F02h
  4388. Return: AH = 00h, if successful
  4389.     AL = on-board memory size
  4390.          (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  4391. BUG:    in v3.C10, AX=5F02h on return due to improper stack restoration code
  4392. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  4393. --------V-105F03-----------------------------
  4394. INT 10 - VIDEO - Realtek RTVGA - SET ???
  4395.     AX = 5F03h
  4396.     BL = 0-3 (???)
  4397. Return: AH = 00h if successful
  4398. BUG:    in v3.C10, AX=5F03h on return due to improper stack restoration code
  4399. SeeAlso: AX=5F02h"RTVGA"
  4400. --------V-105F03-----------------------------
  4401. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON VIDEO CONDITIONS
  4402.     AX = 5F03h
  4403.     BL = configuration
  4404.         00h power-up display mode
  4405.         CL = display mode
  4406.         CH = mode (see #0077)
  4407.         01h power-up emulation mode
  4408.         CL = emulation mode (see #0076)
  4409.         CH = permanence (00h reset after next boot, 01h until changed)
  4410. Return: AL = 5Fh if function supported
  4411.         AH = status
  4412.         00h unsuccessful
  4413.         01h successful
  4414. SeeAlso: AX=5F02h,AX=5F03h/BL=01h,AX=5F90h
  4415.  
  4416. Bitfields for Chips&Technologies display mode:
  4417. Bit(s)    Description    (Table 0077)
  4418.  1-0    scanlines (00 = 200, 01 = 350, 10 = 400)
  4419.  7    persistence (0 reset on next boot, 1 until changed)
  4420. --------V-105F03BL01-------------------------
  4421. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  4422.     AX = 5F03h
  4423.     BL = 01h
  4424.     CL = emulation mode
  4425.     CH = mode
  4426.         bit 7 persistence (0 reset on next boot, 1 until changed)
  4427. Return: AL = 5Fh if function supported
  4428.         AH = status
  4429.         00h unsuccessful
  4430.         01h successful
  4431. SeeAlso: AX=5F02h,AX=5F03h/BL=00h,AX=5F90h
  4432. --------V-105F-------------------------------
  4433. INT 10 - Chips & Technologies Extended BIOS - SAVE/RESTORE SUPERVGA STATE
  4434.     AH = 5Fh
  4435.     AL = subfunction
  4436.         90h determine size of save buffer
  4437.         91h save state
  4438.         92h restore state
  4439.     CX = state mask (see #0078)
  4440.     ES:BX -> save buffer (subfunctions 91h,92h only)
  4441. Return: AL = 5Fh if function supported
  4442.         ---subfunction 90h---
  4443.         BX = number of 64-byte blocks required
  4444.         ---subfunction 92h---
  4445.         buffer at ES:BX filled
  4446. SeeAlso: AH=1Ch,AX=5F03h
  4447.  
  4448. Bitfields for Chips&Technologies state mask:
  4449. Bit(s)    Description    (Table 0078)
  4450.  0    video hardware
  4451.  1    BIOS data state
  4452.  2    DAC state
  4453.  15    type (0 all state info, 1 SuperVGA state only)
  4454. --------V-1060------------------------------------
  4455. INT 10 - HUNTER 16 - SET GRAPHICS FONT
  4456.     AH = 60h
  4457.     AL = new font
  4458.         bit 7    output characters in reverse video
  4459.         bits 0-6 font number (see #0092 at AH=77h)
  4460. Return: BH = cell width            
  4461.     BL = cell height
  4462. Desc:    select the font to use for output in mode 6; this can be used to mix
  4463.       fonts on the screen
  4464. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  4465.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  4466. SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
  4467. --------V-1061------------------------------------
  4468. INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
  4469.     AH = 61h
  4470.     CX = column
  4471.     DX = row
  4472. Note:    this function is only valid in graphics modes
  4473. SeeAlso: AH=62h
  4474. --------V-1062------------------------------------
  4475. INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
  4476.     AH = 62h
  4477. Return: CX = column
  4478.     DX = row
  4479. Note:    this function is only valid in graphics modes
  4480. SeeAlso: AH=61h
  4481. --------V-1063------------------------------------
  4482. INT 10 - HUNTER 16 - SET CONTRAST
  4483.     AH = 63h
  4484.     AL = contrast (0..127)
  4485. Desc:    set the LCD screen contrast to improve visibility
  4486. SeeAlso: AH=64h,AH=75h
  4487. --------V-1064------------------------------------
  4488. INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
  4489.     AH = 64h
  4490.     AL = level (0..15)
  4491. Desc:    set the LCD backlight level to improve visibility in bad lighting
  4492. SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
  4493. --------V-106500----------------------------------
  4494. INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
  4495.     AX = 6500h
  4496. Return: BX = timeout in seconds (0-300)
  4497. Desc:    returns the time after which the backlight will turn off
  4498. SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
  4499. --------V-106501----------------------------------
  4500. INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
  4501.     AX = 6501h
  4502.     BX = timeout in seconds (0-300)
  4503. Desc:    set the idle time after which the backlight will turn off
  4504. SeeAlso: AH=64h,AX=6500h
  4505. --------V-1066------------------------------------
  4506. INT 10 - HUNTER 16 - SPLIT DISPLAY
  4507.     AH = 66h
  4508.     AL = control bits (see #0079)
  4509.     BH = top row of lower section of LCD (0..7)
  4510.     BL = top row of lower section of the virtual screen (0..24)
  4511. Desc:    split the LCD screen horizontally into two parts; each part may be 
  4512.       individually scrollable or fixed.
  4513. Note:    the Hunter 16 has a 240x64 LCD display which serves as a window into
  4514.       a 640x200 virtual screen
  4515.  
  4516. Bitfields for HUNTER 16 control bits:
  4517. Bit(s)    Description    (Table 0079)
  4518.  0-1    01: no split, 10: allow split
  4519.  2    allow scrolling the upper part
  4520.  3    allow scrolling the lower part 
  4521. --------V-106A00BX0000-----------------------
  4522. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  4523.     AX = 6A00h
  4524.     BX = 0000h
  4525.     CX = 0000h
  4526.     DX = buffer length (may be 0)
  4527.     ES:DI -> buffer
  4528. Return: BX = number of bytes stored in buffer
  4529.     CX = bytes required for all descriptions (0 if no DGIS)
  4530. Note:    buffer contains descriptions and addresses of DGIS-compatible
  4531.       display(s) and printer(s)
  4532. SeeAlso: AX=6A02h
  4533. --------V-106A01CX0000-----------------------
  4534. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  4535.     AX = 6A01h
  4536.     CX = 0000h
  4537.     ES:DI = address of device to send INT 10 output to
  4538. Return: CX = 0000h  output could not be redirected
  4539.          else INT 10h output now routed to requested display
  4540. SeeAlso: AX=6A02h
  4541. --------V-106A02-----------------------------
  4542. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  4543.     AX = 6A02h
  4544.     ES:DI = 0000h:0000h
  4545. Return: ES:DI = 0000h:0000h  if current display is non-DGIS
  4546.         else address of the current DGIS INT 10 display
  4547. SeeAlso: AX=6A00h,AX=6A01h
  4548. --------V-106E00-----------------------------
  4549. INT 10 - Paradise VGA internal - GET ???
  4550.     AX = 6E00h
  4551. Return: BX = 5744h ('WD') if supported
  4552.         DH:AH:AL = last three ASCII digits of ROM serial number
  4553.         CL = ???
  4554.         CH = ???
  4555. SeeAlso: AX=6E04h,AX=6E05h
  4556. --------V-106E04-----------------------------
  4557. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  4558.     AX = 6E04h
  4559. Return: BX = screen width (columns)
  4560.     CX = screen height (lines)
  4561.     AH = ??? (05h or FFh)
  4562.     AL = ??? (04h or video mode)
  4563. SeeAlso: AX=6E00h,AX=6E05h
  4564. --------V-106E05-----------------------------
  4565. INT 10 - Paradise VGA internal - SET MODE
  4566.     AX = 6E05h
  4567.     BL = mode
  4568. Note:    like AH=00h, AL=BL.
  4569. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  4570. --------V-106F00BX0000-----------------------
  4571. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - INSTALLATION CHECK
  4572.     AX = 6F00h
  4573.     BX = 0000h
  4574. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  4575.     BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  4576. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  4577. --------V-106F01-----------------------------
  4578. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - GET MONITOR INFO
  4579.     AX = 6F01h
  4580. Return: AL = monitor type code (HP,VEGA VGA only) (see #0080)
  4581.     AH = status register information (see #0081)
  4582.     CL = current value of Extended Control register (HP Ext BIOS, and only
  4583.         if AL=41h)
  4584. Note:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  4585.  
  4586. (Table 0080)
  4587. Values for monitor type code (HP Extended BIOS):
  4588.  00h    non-HP card with ROM and possibly its own INT 10h driver
  4589.  41h    MultiMode video display adapter
  4590.  42h-44h reserved
  4591.  45h    industry standard monochrome display adapter
  4592.  46h    industry standard color display adapter
  4593.  51h    reserved
  4594.  
  4595. Bitfields for status register information:
  4596. Bit(s)    Description    (Table 0081)
  4597.  0    display enable
  4598.     0 = display enabled
  4599.     1 = vertical or horizontal retrace in progress
  4600.  1    light pen flip flop set
  4601.  2    light pen switch activated
  4602.  3    vertical sync
  4603.  4    monitor resolution
  4604.     0 = high resolution (>200 lines)
  4605.     1 = low resolution (<=200 lines)
  4606.  5    display type (0 = color, 1 = monochrome)
  4607.  6,7    diagnostic bits
  4608. --------V-106F02-----------------------------
  4609. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - SET MONITOR INFO
  4610.     AX = 6F02h
  4611.     BL = new value for extended control register (see #0082)
  4612. Return: nothing
  4613. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  4614.       is installed
  4615.     the Extended Control register is at I/O address 3DDh
  4616. SeeAlso: AX=6F01h,AX=6F03h
  4617.  
  4618. Bitfields for HP Vectra extended control register:
  4619. Bit(s)    Description    (Table 0082)
  4620.  0    screen resolution (0 = 200 lines, 1 = 400 lines)
  4621.  1    underline enable (if set, 'blue' of fg color = underl)
  4622.  2    font (0 = Standard-8, 1 = HP-Roman-8)
  4623.  3    memory disabled for CPU access
  4624.  4    allow access to full 32K memory instead of wrapping at 16K
  4625.  5    select second 16K page instead of first
  4626.  6,7    unused
  4627. --------V-106F03-----------------------------
  4628. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - MODIFY MONITOR INFO
  4629.     AX = 6F03h
  4630.     BH = exclude mask (set bits are not modified)
  4631.     BL = new values for bits indicated by BH (see #0082)
  4632. Return: nothing
  4633. Note:    this function is only valid when an HP MultiMode Video Display Adapter
  4634.       is installed
  4635. SeeAlso: AX=6F01h,AX=6F02h
  4636. --------V-106F04-----------------------------
  4637. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  4638.     AX = 6F04h
  4639. Return: AL = current video mode (see #0083)
  4640.     BX = horizontal columns (text) or pixels (graphics)
  4641.     CX = vertical columns (text) or pixels (graphics)
  4642. SeeAlso: AX=6F05h
  4643. --------V-106F05-----------------------------
  4644. INT 10 - VIDEO - Video7 VGA, VEGA EXTENDED EGA/VGA - SET VIDEO MODE
  4645.     AX = 6F05h
  4646.     BL = mode (see #0083)
  4647. Notes:    also supported by the HP Vectra Extended BIOS
  4648.     on the HP Vectra, this function rather than AH=00h must be used to
  4649.       return to an IBM-standard mode after setting an HP-specified mode
  4650.       from 08h to 0Fh.
  4651. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4652.  
  4653. (Table 0083)
  4654. Values for Video7/VEGA video mode:
  4655.      text/ text pixel    pixel    colors disply scrn  system
  4656.      grph resol     box  resolution       pages  addr
  4657.  00h-13h = standard IBM modes (see #0009 at AH=00h)
  4658.  08h = T  80x27      .      .    mono      .    .  HP MultiMode Video
  4659.  09h = T  80x27      .      .      .      .    .  HP MultiMode Video
  4660.  0Ah = T  40x27      .      .    mono      .    .  HP MultiMode Video
  4661.  0Bh = T  40x27      .      .      .      .    .  HP MultiMode Video
  4662.  0Ch = reserved                       HP MultiMode Video
  4663.  0Dh = G    .      .    640x400      .      .    .  HP MultiMode Video
  4664.  0Eh = G    .      .    320x400      .      .    .  HP MultiMode Video
  4665.  0Fh = G    .      .    320x400      .      .    .  HP MultiMode Video
  4666.  40h = T  80x43     8x8      .      .      .    .  Video7/VEGA VGA
  4667.  41h = T 132x25     8x14      .      .      .    .  Video7/VEGA VGA
  4668.  42h = T 132x43     8x8      .      .      .    .  Video7/VEGA VGA
  4669.  43h = T  80x60     8x8      .      .      .    .  Video7/VEGA VGA
  4670.  44h = T 100x60     8x8      .      .      .    .  Video7/VEGA VGA
  4671.  45h = T 132x28     8x8      .      .      .    .  Video7/VEGA VGA
  4672.  60h = G    .      .    752x410     16      .    .  Video7 VGA, VEGA VGA
  4673.  61h = G    .      .    720x540     16      .    .  Video7 VGA, VEGA VGA
  4674.      = G    .      .    720x540     16      .    .  Northgate, Headland 1024i
  4675.  62h = G    .      .    800x600     16      .    .  Video7 VGA, VEGA Ext EGA
  4676.      = G    .      .    800x600     16      .    .  Headland 1024i
  4677.  63h = G    .      .   1024x768      2      .    .  Video7 VGA
  4678.  64h = G    .      .   1024x768      4      .    .  Video7 VGA
  4679.  65h = G    .      .   1024x768     16      .    .  Video7 VGA, VEGA Ext EGA
  4680.      = G    .      .   1024x768     16      .    .  Headland 1024i
  4681.  66h = G    .      .    640x400    256      .    .  Video7 VGA, VEGA Ext VGA
  4682.      = G    .      .    640x400    256      .    .  Northgate, Headland 1024i
  4683.  67h = G    .      .    640x480    256      .    .  Video7 VGA, VEGA Ext VGA
  4684.      = G    .      .    640x480    256      .    .  Headland 1024i
  4685.  68h = G    .      .    720x540    256      .    .  Video7 VGA, VEGA Ext VGA
  4686.      = G    .      .    720x540    256      .    .  Headland 1024i
  4687.  69h = G    .      .    800x600    256      .    .  Video7 VGA, VEGA Ext VGA
  4688.      = G    .      .    800x600    256      .    .  Headland 1024i
  4689.  70h = G    .      .    752x410     16gray      .    .  Video7 VGA, VEGA VGA
  4690.  71h = G    .      .    720x540     16gray      .    .  Video7 VGA, VEGA VGA
  4691.  72h = G    .      .    800x600     16gray      .    .  Video7 VGA
  4692.  73h = G    .      .   1024x768      2gray      .    .  Video7 VGA
  4693.  74h = G    .      .   1024x768      4gray      .    .  Video7 VGA
  4694.  75h = G    .      .   1024x768     16gray      .    .  Video7 VGA
  4695.  76h = G    .      .    640x400    256gray      .    .  Video7 VGA
  4696.  77h = G    .      .    640x480    256gray      .    .  Video7 VGA
  4697.  78h = G    .      .    720x540    256gray      .    .  Video7 VGA
  4698.  79h = G    .      .    800x600    256gray      .    .  (future)
  4699. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4700. Index:    video modes;Video 7|video modes;VEGA|video modes;Headland
  4701. --------V-106F06-----------------------------
  4702. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  4703.     AX = 6F06h
  4704.     BL = Autoswitch mode select
  4705.          00h select EGA/VGA-only modes
  4706.          01h select Autoswitched VGA/EGA/CGA/MGA modes
  4707.          02h select 'bootup' CGA/MGA modes
  4708.     BH = enable/disable (00h enable, 01h = disable selection)
  4709. --------V-106F07-----------------------------
  4710. INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  4711.     AX = 6F07h
  4712. Return: AL = 6Fh
  4713.     AH = memory configuration
  4714.         bits 0-6 = number of 256K blocks of video memory
  4715.         bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
  4716.     BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  4717.     BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  4718.     CX = 0000h
  4719. SeeAlso: AH=12h/BL=10h
  4720. --------V-1070-------------------------------
  4721. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  4722.     AH = 70h
  4723. Return: AX:BX -> WORD containing green plane's offset
  4724.     AX:CX -> WORD containing green plane's segment
  4725.     AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  4726.             4000) planes
  4727. SeeAlso: AH=71h
  4728. --------V-1070------------------------------------
  4729. INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
  4730.     AH = 70h
  4731.     DS:BX -> control block (see #0084)
  4732. Desc:    Draws a circle or ellipse. Only valid in graphics modes.
  4733. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  4734.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  4735. SeeAlso: AH=71h"HUNTER"
  4736.  
  4737. Format of HUNTER 16 control block:
  4738. Offset    Size    Description    (Table 0084)
  4739.  00h    WORD    center X co-ordinate
  4740.  02h    BYTE    center Y co-ordinate
  4741.  03h    WORD    radius in pixels
  4742.  05h    BYTE    color (00h white, 01h black, FFh invert)
  4743.  06h    BYTE    aspect ratio x:x (1-127)
  4744.  07h    BYTE    aspect ratio y:y (1-127)
  4745. --------V-107000BX0000-----------------------
  4746. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  4747.     AX = 7000h
  4748.     BX = 0000h
  4749. Return: AL = 70h if Trident-based Everex card
  4750.     CL = monitor type (see #0085)
  4751.     CH = feature bits (see #0086)
  4752.     DX = video board info
  4753.         bits 4-15: board ID model (see #0087)
  4754.         bits 0-3:  board ID revision
  4755.     DI = BCD BIOS version number
  4756. SeeAlso: AX=5F01h,AH=FF"Oak"
  4757.  
  4758. (Table 0085)
  4759. Values for Everex monitor type:
  4760.  00h    mono
  4761.  01h    CGA
  4762.  02h    EGA
  4763.  03h    digital multifrequency
  4764.  04h    IBM PS/2
  4765.  05h    IBM 8514
  4766.  06h    SuperVGA
  4767.  07h    analog multifrequency
  4768.  08h    super multifrequency
  4769.  
  4770. Bitfields for Everex feature bits:
  4771. Bit(s)    Description    (Table 0086)
  4772.  7-6    memory size
  4773.     00 = 256K
  4774.     01 = 512K
  4775.     10 = 1024K
  4776.     11 = 2048K
  4777.  5    special oscillator present
  4778.  4    VGA protect enabled
  4779.  0    6845 emulation
  4780.  
  4781. (Table 0087)
  4782. Values for board model for Trident-based Everex cards:
  4783.  0236h    Ultragraphics II
  4784.  0620h    Vision VGA
  4785.  0673h    EVGA
  4786.  0678h    Viewpoint
  4787. --------V-107000BX0004-----------------------
  4788. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  4789.     AX = 7000h
  4790.     BX = 0004h
  4791. Return: ES:DI -> FAR paging function (call with DL = page to set)
  4792. Note:    the word preceding ES:DI is the length of the function in bytes, and
  4793.       the last byte of the function is a FAR return instruction.
  4794. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  4795. --------V-107000BX0005-----------------------
  4796. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  4797.     AX = 7000h
  4798.     BX = 0005h
  4799.     CL = maximum number of modes to get info for
  4800.     CH = mode type to get info for (see #0088)
  4801.     DL = monitor type to get info for
  4802.     ES:DI -> buffer for mode info (see #0089)
  4803. Return: CL = total number of modes fitting criteria
  4804.     CH = size of each info record
  4805. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  4806.  
  4807. (Table 0088)
  4808. Values for Everex mode type:
  4809.  00h    all modes
  4810.  01h    monochrome text modes
  4811.  02h    color text modes
  4812.  03h    four-color CGA graphics modes
  4813.  04h    two-color CGA graphics modes
  4814.  05h    16-color graphics modes
  4815.  06h    256-color graphics modes
  4816.  
  4817. Format of Everex mode information record:
  4818. Offset    Size    Description    (Table 0089)
  4819.  00h    BYTE    mode number (bit 7 set if extended mode)
  4820.  01h    BYTE    mode type (see #0088)
  4821.  02h    BYTE    info bits (see #0090)
  4822.  03h    BYTE    font height
  4823.  04h    BYTE    text columns on screen
  4824.  05h    BYTE    text rows on screen
  4825.  06h    WORD    number of scan lines
  4826.  08h    BYTE    color information
  4827.         bits 7-4 reserved
  4828.              3-0 bits per pixel
  4829.  
  4830. Bitfields for Everex info bits:
  4831. Bit(s)    Description    (Table 0090)
  4832.  7,6    reserved
  4833.  5    monochrome mode
  4834.  4    interlaced display
  4835.  3    requires special oscillator
  4836.  2,1    memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
  4837.  0    reserved
  4838. --------V-1071-------------------------------
  4839. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  4840.     AH = 71h
  4841. Return: AX:BX -> WORD containing segment address of INCRAM
  4842.     AX:CX -> WORD containing offset of INCRAM
  4843. SeeAlso: AH=70h"TANDY"
  4844. --------V-1071------------------------------------
  4845. INT 10 - HUNTER 16 - DRAW LINE/BOX
  4846.     AH = 71h
  4847.     DS:BX -> control block (see #0091)
  4848. Desc:    Draws a line or box. Only valid in graphics modes.
  4849. SeeAlso: AH=70h"HUNTER"
  4850.  
  4851. Format of HUNTER 16 control block:
  4852. Offset    Size    Description    (Table 0091)
  4853.  00h    WORD    left edge X co-ordinate
  4854.  02h    BYTE    lower edge Y co-ordinate
  4855.  03h    WORD    right edge X co-ordinate
  4856.  05h    BYTE    upper edge Y co-ordinate
  4857.  06h    BYTE    color (00h white, 01h black, FFh invert)
  4858.  07h    BYTE    type (00h line, 01h box)
  4859.  08h    BYTE    if non-zero (and type is BOX) fill with color
  4860. --------V-1072-------------------------------
  4861. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  4862.     AH = 72h
  4863.     AL = number of columns to shift scroll area, 00h to clear entire area
  4864.     BH = new attributes for blanked columns at left
  4865.     CH,CL = row, column of upper left corner of scroll area
  4866.     DH,DL = row, column of lower right corner of scroll area
  4867. SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
  4868. --------V-1072------------------------------------
  4869. INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
  4870.     AH = 72h
  4871.     AL = mechanism to use
  4872.         00h do not use inverse video
  4873.         01h emulate MDA. Display attribute 07h is normal video and 70h is
  4874.         inverse video.
  4875.         02h use inverse video if background is non-black.
  4876.         03h use inverse video for high intensity text.
  4877.         04h use inverse video for text with background intensity greater
  4878.         than foreground intensity.
  4879.         05h use inverse video for text with background color other than
  4880.         black or high intensity foreground.
  4881. SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
  4882. --------V-1073-------------------------------
  4883. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  4884.     AH = 73h
  4885.     AL = number of columns to shift scroll area, 00h to clear entire area
  4886.     BH = new attributes for blanked columns at right
  4887.     CH,CL = row, column of upper left corner of scroll area
  4888.     DH,DL = row, column of lower right corner of scroll area
  4889. SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
  4890. --------V-1073------------------------------------
  4891. INT 10 - HUNTER 16 - SELECT TEXT FONT
  4892.     AH = 73h
  4893.     AL = new font
  4894.           00h  7x7 in a 8x8 cell
  4895.           01h  5x7 in a 6x8 cell
  4896.           06h  3x5 in a 4x6 cell
  4897. Retuen: BH = cell width
  4898.     BL = cell height
  4899. SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
  4900. --------V-1074------------------------------------
  4901. INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
  4902.     AH = 74h
  4903.     DH = row (0..24)
  4904.     DL = column (0..79)
  4905. Desc:    set the position in the virtual screen being displayed in the LCD
  4906.       screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
  4907.       position for the window which has the cursor.
  4908. SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
  4909. --------V-1075------------------------------------
  4910. INT 10 - HUNTER 16 - SET ZOOM
  4911.     AH = 75h
  4912.     AL = new Zoom state (00h off, nonzero on)
  4913. SeeAlso: AH=74h,AH=76h
  4914. --------V-1076------------------------------------
  4915. INT 10 - HUNTER 16 - LOOKING KEYS
  4916.     AH = 76h
  4917.     AL = Action
  4918.          00h home the window
  4919.          01h move up one line
  4920.          02h move down one line
  4921.          03h move left one character
  4922.          04h move right one character
  4923.          05h flip window to other side of virtual screen
  4924. Desc:    moves the displayed screen around the virtual screen
  4925. SeeAlso: AH=74h,AH=75h
  4926. --------V-1077------------------------------------
  4927. INT 10 - HUNTER 16 - GET GRAPHICS FONT
  4928.     AH = 77h
  4929. Return: AL = font number (see #0092)
  4930. SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
  4931.  
  4932. (Table 0092)
  4933. Values for HUNTER 16 graphics font number:
  4934.  00h     7x7  in a  8x8     cell 
  4935.  01h     5x7  in a  6x8     cell
  4936.  02h     7x9  in a  8x10 cell
  4937.  03h    14x9  in a 16x10 cell
  4938.  04h     7x18 in a  8x20 cell
  4939.  05h    14x18 in a 16x20 cell
  4940.  06h     3x5  in a  4x6     cell
  4941. Note:    size is X * Y
  4942. --------V-1078------------------------------------
  4943. INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
  4944.     AH = 78h 
  4945.     AL = new state of backlight (00h on, 01h off)
  4946. SeeAlso: AH=64h,INT 15/AH=74h
  4947. --------V-107F00-----------------------------
  4948. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  4949.     AX = 7F00h
  4950. Return: AL <> 7Fh if not supported
  4951.     AL = 7Fh if supported
  4952.         AH = status
  4953.         00h successful
  4954.             ES:DI -> info structure (see #0093)
  4955.         01h failed
  4956. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  4957.       an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  4958.       Seiko Epson Corporation intended to provided a standardized interface
  4959.       to SuperVGA functionality not addressed by the VESA standard
  4960. SeeAlso: AX=4F00h
  4961.  
  4962. Format of SOLLEX SuperVGA info structure:
  4963. Offset    Size    Description    (Table 0093)
  4964.  00h    DWORD    pointer to VESA function dispatch table
  4965.  04h    DWORD    pointer to SOLLEX function dispatch table
  4966.  08h    DWORD    pointer to VESA SuperVGA info (see #0063 at AX=4F00h)
  4967.  0Ch    DWORD    pointer to mode info structure table, consisting of
  4968.           alternating ResInfo (see #0094) and VESA mode information
  4969.           (see #0064 at AX=4F01h) blocks, terminated with an FFFFh word
  4970.  10h    DWORD    pointer to font info structure table (see #0095)
  4971.  14h    WORD    high resolution crystal frequency in Hz (0000h = not present)
  4972.  16h    DWORD    pointer to ASCIZ ID string
  4973.  1Ah    DWORD    pointer to timeout reset table
  4974.         array of bytes, each a multiple of the minimum time increment
  4975.  1Eh    WORD    minimum time increment in timer ticks
  4976.  20h    BYTE    inverse options supported
  4977.         bit 0: inverse supported
  4978.         bits 1-7: reserved
  4979.  21h    BYTE    normal color value
  4980.  22h    BYTE    inverse color value
  4981.  23h    WORD    port to be accessed for normal/inverse settings
  4982.  25h    WORD    type of interface chip (currently undefined)
  4983.  27h    WORD    program operational mode
  4984.         bits 1-0: 00 no preference
  4985.               01 terse (minimum detail in program messages)
  4986.               10 verbose
  4987.               11 use menus if supported, verbose mode otherwise
  4988.         bits 7-2: reserved
  4989.  29h    WORD    SOLLEX specification version
  4990.  2Bh    WORD    version of VESA/SOLLEX implementation
  4991.  2Dh    DWORD    offset to relocatable portion of SOLLEX extensions (for CONFIG)
  4992.  2Eh    DWORD    offset to unused section of the extensions ROM
  4993.  31h 16 BYTEs    reserved
  4994. Note:    all DWORD pointers initially require segment fixups; if the segment
  4995.       is 0000h, it should be changed to the returned ES, otherwise it
  4996.       may be assumed to be correct
  4997.  
  4998. Format of SOLLEX SuperVGA ResInfo:
  4999. Offset    Size    Description    (Table 0094)
  5000.  00h    WORD    16-bit mode number
  5001.  02h    WORD    adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  5002.  04h    WORD    display info (see #0098)
  5003.  06h    DWORD    pointer to video parameter table
  5004.  0Ah    BYTE    replacement entry in master Video Parameter
  5005.  0Bh    BYTE    mode requested for mode set by BIOS
  5006.  0Ch    DWORD    pointer to LoadReg table
  5007.  10h    BYTE    index into table of clock values (see #0096)
  5008.  
  5009. Format of SOLLEX SuperVGA font info table [array] entry:
  5010. Offset    Size    Description    (Table 0095)
  5011.  00h    BYTE    required font height
  5012.  01h    BYTE    parameter to load text mode font
  5013.  02h    BYTE    parameter to load graphics mode font
  5014.  
  5015. (Table 0096)
  5016. Values for SOLLEX SuperVGA clock value index:
  5017.  00h    25 MHz
  5018.  01h    28 MHz
  5019.  02h    PCLK
  5020.  03h    31.5 MHz (VESA 640x480)
  5021.  04h    reserved
  5022.  05h    16 MHz (EGA)
  5023.  06h    PCLK
  5024.  07h    24 MHz (EGA)
  5025.  08h    25 MHz
  5026.  09h    28 MHz
  5027.  0Ah    36 MHz
  5028.  0Bh    45 MHz (for 1024x768)
  5029.  0Ch    80 MHz
  5030.  0Dh    40 MHz
  5031.  0Eh    65 MHz
  5032.  0Fh     1 MHz (for powerdown)
  5033. --------V-107F00BX4000-----------------------
  5034. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  5035.     AX = 7F00h
  5036.     BX = 4000h
  5037. Return: AX = 007Fh if supported
  5038.         DX:BX -> DAC set mode routine
  5039. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h
  5040. --------V-107F00BX4001-----------------------
  5041. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  5042.     AX = 7F00h
  5043.     BX = 4001h
  5044. Return: AX = 007Fh if supported
  5045.         CX = current linear address base (high word)
  5046. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  5047. --------V-107F00BX4002-----------------------
  5048. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  5049.     AX = 7F00h
  5050.     BX = 4002h
  5051.     CX = new linear address base (high word)
  5052. Return: AX = 007Fh if supported
  5053. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  5054. --------V-107F01BL00-------------------------
  5055. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  5056.     AX = 7F01h
  5057.     BL = 00h
  5058.     CX = adapter request (see #0097)
  5059. Return:    AL <> 7Fh if not supported
  5060.     AL = 7Fh if supported
  5061.         AH = status
  5062.         00h successful
  5063.         01h failed
  5064. Note:    initializes video hardware to a particular standard
  5065. SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
  5066.  
  5067. Bitfields for SOLLEX SuperVGA adapter request:
  5068. Bit(s)    Description    (Table 0097)
  5069.  1-0    adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  5070.  2    reserved
  5071.  4-3    change displays (00 none, 01 analog 10 digital 11 panel)
  5072.  6-5    desired monitor sense (01 color, 10 mono, 11=8514)
  5073.  7    lock override
  5074.  8    alternate adapter mode
  5075.  15-9    reserved
  5076. --------V-107F01BL01-------------------------
  5077. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  5078.     AX = 7F01h
  5079.     BL = 01h
  5080. Return: AL <> 7Fh if not supported
  5081.     AL = 7Fh if supported
  5082.         AH = status
  5083.         00h successful
  5084.         01h failed
  5085.         BX = adapter type (see #0097)
  5086.         DX = display type (see #0098)
  5087. SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
  5088.  
  5089. Bitfields for SOLLEX SuperVGA display type:
  5090. Bit(s)    Description    (Table 0098)
  5091.  15-9    reserved
  5092.  8    alternate display active
  5093.  7    Enhanced Color Display monitor active
  5094.  6    multi-frequency digital monitor active
  5095.  5    PS/2-type monitor active
  5096.  4    plasma/electroluminescent panel active
  5097.  3    LCD panel active
  5098.  2    multi-frequency analog monitor active
  5099.  1-0    monitor sense (00 none, 01 color, 10 mono, 11=8514)
  5100. --------V-107F01BL02-------------------------
  5101. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  5102.     AX = 7F01h
  5103.     BL = 02h
  5104.     CX = adapter request (see #0097)
  5105. Return: AL <> 7Fh if not supported
  5106.     AL = 7Fh if supported
  5107.         AH = status
  5108.         00h requested setting can successfully be made
  5109.         01h requested setting not available in this configuration
  5110. SeeAlso: AX=7F00h,AX=7F01h/BL=00h
  5111. --------V-107F02BL00-------------------------
  5112. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  5113.     AX = 7F02h
  5114.     BL = 00h
  5115.     CX = display output setting (see #0099)
  5116. Return: AL <> 7Fh if not supported
  5117.     AL = 7Fh if supported
  5118.         AH = status
  5119.         00h successful
  5120.         01h failed
  5121. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  5122.  
  5123. Bitfields for SOLLEX SuperVGA display output setting:
  5124. Bit(s)    Description    (Table 0099)
  5125.  0    CRTC control in 2,1 valid
  5126.  1    enable digital output
  5127.  2    enable analog output
  5128.  3    panel control in 5,4 valid
  5129.  4    enable LCD output
  5130.  5    enable plasma/EL output
  5131.  6    inverse control in 7 valid
  5132.  7    0=normal, 1=inverse
  5133.  15-8    reserved
  5134. --------V-107F02BL01-------------------------
  5135. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  5136.     AX = 7F02h
  5137.     BL = 01h
  5138. Return: AL <> 7Fh if not supported
  5139.     AL = 7Fh if supported
  5140.         AH = status
  5141.         00h successful
  5142.             BX = display output setting (see #0099)
  5143.             CX = displays attached (see #0100)
  5144.         01h failed
  5145. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  5146.  
  5147. Bitfields for SOLLEX SuperVGA displays attached:
  5148. Bit(s)    Description    (Table 0100)
  5149.  0    PS/2 display on analog output
  5150.  1    multi-frequency monitor on analog output
  5151.  2    LCD panel attached
  5152.  3    plasma/electroluminescent panel attached
  5153.  4    multi-frequency monitor on digital output
  5154.  5    Enhanced Color Display attached to digital outpt
  5155.  6    alternate display
  5156.  15-7    reserved
  5157. --------V-107F03BL00-------------------------
  5158. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  5159.     AX = 7F03h
  5160.     BL = 00h
  5161.     CX = support type
  5162.         0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  5163.         0005h-0012h reserved for SOLLEX, 0013h Hercules,
  5164.         0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  5165. Return: AL <> 7Fh if not supported
  5166.     AL = 7Fh if supported
  5167.         AH = status
  5168.         00h successful
  5169.             CX = size of video support code
  5170.             DX = segment of physical video support (0000h if no ROM)
  5171.             ES = segment of active video support
  5172.             ES:DI -> information block (DI = 0000h if none available)
  5173.         01h failed
  5174. SeeAlso: AX=7F03h/BL=01h
  5175. --------V-107F03BL01-------------------------
  5176. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  5177.     AX = 7F03h
  5178.     BL = 01h
  5179.     CX = support request
  5180.     ES = segment of support code
  5181. Return: AL <> 7Fh if not supported
  5182.     AL = 7Fh if supported
  5183.         AH = status
  5184.         00h successful
  5185.         01h failed
  5186. Note:    initializes the indicated video support by calling ES:0003h; this
  5187.       function may be used to switch the active video support back to
  5188.       ROM after AX=7F03h/BL=02h
  5189. SeeAlso: AX=7F03h/BL=00h
  5190. --------V-107F03BL02-------------------------
  5191. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  5192.     AX = 7F03h
  5193.     BL = 02h
  5194.     CX = support request
  5195.     ES = destination segment
  5196. Return: AL <> 7Fh if not supported
  5197.     AL = 7Fh if supported
  5198.         AH = status
  5199.         00h successful
  5200.         01h failed
  5201. SeeAlso: AX=7F00h,AX=7F03h/BL=01h
  5202. --------V-107F04BL00-------------------------
  5203. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  5204.     AX = 7F04h
  5205.     BL = 00h
  5206.     CX = new power state
  5207. Return: AL <> 7Fh if not supported
  5208.     AL = 7Fh if supported
  5209.         AH = status
  5210.         00h successful
  5211.         01h failed
  5212. Note:    higher values progressively reduce the operations available on the
  5213.       video adapter while yielding increasing power savings
  5214. SeeAlso: AX=7F00h,AX=7F04h/BL=01h
  5215. --------V-107F04BL01-------------------------
  5216. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  5217.     AX = 7F04h
  5218.     BL = 01h
  5219. Return: AL <> 7Fh if not supported
  5220.     AL = 7Fh if supported
  5221.         AH = status
  5222.         00h successful
  5223.             CX = current power state
  5224.             DX = maximum state
  5225.         01h failed
  5226. SeeAlso: AX=7F00h,AX=7F04h/BL=00h
  5227. --------V-107F04BL02-------------------------
  5228. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  5229.     AX = 7F04h
  5230.     BL = 02h
  5231.     CX = timeout reset
  5232. Return: AL <> 7Fh if not supported
  5233.     AL = 7Fh if supported
  5234.         AH = status
  5235.         00h successful
  5236.         01h failed
  5237. SeeAlso: AX=7F00h,AX=7F04h/BL=03h
  5238. --------V-107F04BL03-------------------------
  5239. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  5240.     AX = 7F04h
  5241.     BL = 03h
  5242. Return: AL <> 7Fh if not supported
  5243.     AL = 7Fh if supported
  5244.         AH = status
  5245.         00h successful
  5246.             BX = time increment
  5247.             CX = current timeout reset
  5248.             DX = maximum timeout reset
  5249.             ES:DI -> timeout reset table (array of bytes)
  5250.         01h failed
  5251. Note:    the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  5252. SeeAlso: AX=7F00h,AX=7F04h/BL=02h
  5253. --------V-107F05-----------------------------
  5254. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  5255.     AX = 7F05h
  5256.     ES:DI -> register value table (see #0101)
  5257. Return: AL <> 7Fh if not supported
  5258.     AL = 7Fh if supported
  5259.         AH = status
  5260.         00h successful
  5261.         01h failed
  5262. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  5263.  
  5264. Format of SOLLEX SuperVGA register value table:
  5265. Offset    Size    Description    (Table 0101)
  5266.  00h    WORD    base I/O register (FFFFh = end of list)
  5267.  02h 2N BYTEs    pairs of values to be written to the base I/O register as an
  5268.           index value and the following register as a data byte
  5269.  2N+2    WORD    FFFFh (end of data list)
  5270.     ... (repeats until FFFFh base address)
  5271. --------V-107F06-----------------------------
  5272. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  5273.     AX = 7F06h
  5274.     BL = subfunction
  5275.         00h set multiple font state
  5276.         CX = new state (00h off, 01h on)
  5277.         01h get multiple font state
  5278.         Return: BL = current state (00h off, 01h on)
  5279. Return: AL <> 7Fh if not supported
  5280.     AL = 7Fh if supported
  5281.         AH = status
  5282.         00h successful
  5283.         01h failed
  5284. SeeAlso: AH=11h
  5285. --------V-107F07-----------------------------
  5286. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  5287.     AX = 7F07h
  5288.     BL = how much to fill
  5289.        00h regen size
  5290.        01h all video memory
  5291.     CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  5292. Return: AL <> 7Fh if not supported
  5293.     AL = 7Fh if supported
  5294.         AH = status
  5295.         00h successful
  5296.         01h failed
  5297. SeeAlso: AH=06h
  5298. --------A-1080-------------------------------
  5299. INT 10 - CU Writer v1.4 - GET OPTION
  5300.     AH = 80h
  5301.     AL = desired option
  5302. Return: ???
  5303. Program: CU Writer is a public-domain Thai-English word processor from
  5304.       Chulalongkorn University, Bangkok
  5305. SeeAlso: AH=81h"CU Writer"
  5306. --------Q-1080--DX4456-----------------------
  5307. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  5308.     AH = 80h
  5309.     DX = 4456h ('DV')
  5310.     ES:DI -> FAR subroutine to be called on ???
  5311. Return: DS = segment of DESQview data structure for video buffer
  5312. Note:    this function is probably meant for internal use only, due to the magic
  5313.       value required in DX
  5314.     the subroutine seems to be called when the DESQview menu is accessed;
  5315.       on entry, AL = 03h or 04h
  5316. --------A-1081-------------------------------
  5317. INT 10 - CU Writer v1.4 - SET OPTION
  5318.     AH = 81h
  5319.     ???
  5320. Return: ???
  5321. SeeAlso: AH=80h"CU Writer"
  5322. --------Q-1081--DX4456-----------------------
  5323. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  5324.     AH = 81h
  5325.     DX = 4456h ('DV')
  5326. Return: ES = segment of DESQview data structure for video buffer
  5327.         BYTE ES:[0] = current window number in DV 2.0x
  5328. Note:    this function is probably meant for internal use only, due to the magic
  5329.       value required in DX
  5330. SeeAlso: AH=82h"DESQview"
  5331. --------Q-1082--DX4456-----------------------
  5332. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  5333.     AH = 82h
  5334.     DX = 4456h ('DV')
  5335. Return: DS = segment in DESQview for data structure
  5336.          in DV 2.00,
  5337.           BYTE DS:[0] = window number
  5338.           WORD DS:[1] = segment of other data structure
  5339.           WORD DS:[3] = segment of window's object handle
  5340.     ES = segment of DESQview data structure for video buffer
  5341.     AL = current window number
  5342.     AH = ???
  5343.     BL = direct screen writes
  5344.         00h program does not do direct writes
  5345.         01h program does direct writes, so shadow buffer not usable
  5346.     BH = ???
  5347.     CL = current video mode
  5348.     CH = ???
  5349. Note:    this function is probably meant for internal use only, due to the magic
  5350.       value required in DX
  5351. SeeAlso: AH=81h"DESQview"
  5352. --------J-108200-----------------------------
  5353. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  5354.     AX = 8200h
  5355.     BL = new scroll mode or FFh to get current mode
  5356.         00h dynamic, 01h software
  5357. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  5358. SeeAlso: AH=06h,AH=07h
  5359. --------J-108300-----------------------------
  5360. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  5361.     AX = 8300h
  5362. Return: AX = offset of video RAM
  5363.     ES:BX -> virtual text RAM buffer
  5364. SeeAlso: AX=5201h
  5365. --------N-108B-------------------------------
  5366. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  5367.     AH = 8Bh
  5368. SeeAlso: AH=92h,AH=93h
  5369. --------N-1090-------------------------------
  5370. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  5371.     AH = 90h
  5372. Return: AL = current video mode (see #0009 at AH=00h)
  5373. SeeAlso: AH=91h
  5374. --------N-1091-------------------------------
  5375. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  5376.     AH = 91h
  5377. Return: AL = video adapter type (see #0102)
  5378. Note:    types less than 80h do not imply that the current user is on the host
  5379. SeeAlso: AH=90h
  5380.  
  5381. (Table 0102)
  5382. Values for Alloy MW386 video adapter type:
  5383.  00h    monochrome
  5384.  01h    Hercules monochrome graphics
  5385.  02h    CGA
  5386.  03h    EGA
  5387.  04h    VGA
  5388.  80h    monochrome text terminal
  5389.  81h    Hercules graphics terminal
  5390.  82h    color graphics terminal
  5391. --------N-1092-------------------------------
  5392. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  5393.     AH = 92h
  5394. Note:    the terminal will be updated even when screen updates are inhibited if
  5395.       TTY output is used
  5396. SeeAlso: AH=8Bh
  5397. --------N-1093-------------------------------
  5398. INT 10 - Alloy MW386 - REDRAW SCREEN
  5399.     AH = 93h
  5400. SeeAlso: AH=8Bh,AH=FFh
  5401. --------A-10A0-------------------------------
  5402. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  5403.     AH = A0h
  5404.     ???
  5405. Return: ???
  5406. Program: CU Writer is a public-domain Thai-English word processor from
  5407.       Chulalongkorn University, Bangkok
  5408. SeeAlso: AH=80h"CU Writer",AH=B0h
  5409. --------p-10A0-------------------------------
  5410. INT 10 - ATI Mach64 BIOS - Display Power Management Signalling API???
  5411.     AH = A0h
  5412.     AL = function (00h-13h)
  5413.     ???
  5414. Return: AH = status
  5415.         00h successful
  5416.         01h failed
  5417.     ???
  5418. SeeAlso: AX=4F10h/BL=00h
  5419. --------p-10A00C-----------------------------
  5420. INT 10 - ATI Mach64 BIOS - SET SLEEP MODE
  5421.     AX = A00Ch
  5422.     CL = new state
  5423.         01h standby
  5424.         02h suspend
  5425.         03h off
  5426. Return: AH = status
  5427.         00h successful
  5428.         01h failed
  5429. SeeAlso: AX=4F00h,AX=4F10h/BL=01h
  5430. --------A-10B0-------------------------------
  5431. INT 10 - CU Writer v1.4 - PUT PIXEL
  5432.     AH = B0h
  5433.     ???
  5434. Return: ???
  5435. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  5436. --------A-10B1-------------------------------
  5437. INT 10 - CU Writer v1.4 - MOVE TO
  5438.     AH = B1h
  5439.     ???
  5440. Return: ???
  5441. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  5442. --------A-10B2-------------------------------
  5443. INT 10 - CU Writer v1.4 - DRAW LINE TO
  5444.     AH = B2h
  5445.     ???
  5446. Return: ???
  5447. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  5448. --------A-10B3-------------------------------
  5449. INT 10 - CU Writer v1.4 - FLOOD FILL
  5450.     AH = B3h
  5451.     ???
  5452. Return: ???
  5453. SeeAlso: AH=B2h,AH=B5h
  5454. --------A-10B4-------------------------------
  5455. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  5456.     AH = B4h
  5457.     ???
  5458. Return: ???
  5459. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  5460. --------A-10B5-------------------------------
  5461. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  5462.     AH = B5h
  5463.     ???
  5464. Return: ???
  5465. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  5466. --------b-10BF00-----------------------------
  5467. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  5468.     AX = BF00h
  5469. Desc:    specify that the external monitor become the active monitor
  5470. Note:    all registers preserved and the internal monitor is blanked
  5471. SeeAlso: AX=BF01h,AX=BF12h
  5472. --------b-10BF01-----------------------------
  5473. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  5474.     AX = BF01h
  5475. Desc:    specify that the internal monitor become the active monitor
  5476. Note:    all registers preserved and the external monitor is blanked
  5477. SeeAlso: AX=BF00h,AX=BF12h
  5478. --------b-10BF02-----------------------------
  5479. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
  5480.     AX = BF02h
  5481.     BH = master mode
  5482.         04h CGA
  5483.         05h EGA
  5484.         07h MDA
  5485. SeeAlso: AX=BF03h
  5486. --------b-10BF03BX0000-----------------------
  5487. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  5488.     AX = BF03h
  5489.     BX = 0000h
  5490. Return: BH = active monitor
  5491.         (00h = external, 01h = internal, 03h both, 04h neither)
  5492.     BL = master mode (see #0103)
  5493.     CH = ASIC type and version
  5494.         00h (reserved, very early Compaq VGCs)
  5495.         31h if QVision VGA
  5496.     CL = switchable VDU modes supported (see #0104)
  5497.     DH = internal monitor type (see #0105)
  5498.     DL = external monitor type (see #0105)
  5499. SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h
  5500.  
  5501. (Table 0103)
  5502. Values for Compaq video master mode:
  5503.  00h    switchable VDU not present
  5504.  04h    CGA
  5505.  05h    EGA
  5506.  07h    MDA
  5507.  08h    switchable LCD controller present
  5508.  09h    plasma VGA
  5509.  0Ah    TFT (active-matrix) VGA
  5510.  
  5511. Bitfields for Compaq switchable VDU modes support:
  5512. Bit(s)    Description    (Table 0104)
  5513.  0    CGA supported
  5514.  1,2    reserved (1)
  5515.  3    MDA supported
  5516.  4    BitBLT engine available
  5517.  5    132-column support availble
  5518.  6    640x480x256 mode available
  5519.  7    8-bit DAC mode available
  5520.  
  5521. (Table 0105)
  5522. Values for Compaq monitor type:
  5523.  00h    none
  5524.  01h    dual-mode monitor
  5525.  02h    5153 RGB monitor (RGBI 16-color)
  5526.  03h    Compaq Color monitor
  5527.  04h    640x400 flat panel (Plasma CGA)
  5528.  05h    VGC monochrome
  5529.  06h    VGC color
  5530.  07h    8-level mono LCD VGA (internal)
  5531.     1024x768 mono VGA (external)
  5532.  08h    16-level mono plasma VGA (internal)
  5533.     1024x768 color VGA (external)
  5534.  09h    4-level mono LCD CGA
  5535.  0Ah    16-level mono LCD VGA
  5536.  0Bh    active-matrix color VGA
  5537.  0Ch    active-matrix mono VGA
  5538.  0Dh    STN color VGA
  5539. --------b-10BF04-----------------------------
  5540. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  5541.     AX = BF04h
  5542.     BH = new state of delay (00h enabled, 01h disabled)
  5543. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  5544.       version of the list will provide more definite information
  5545. SeeAlso: AX=BF05h
  5546. --------b-10BF05-----------------------------
  5547. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  5548.     AX = BF05h
  5549.     BH = new state of video
  5550.         00h off
  5551.         01h on
  5552. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  5553.       version of the list will provide more definite information
  5554. SeeAlso: AH=12h/BL=36h,AX=BF04h
  5555. --------b-10BF06-----------------------------
  5556. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  5557.     AX = BF06h
  5558.     CL = address to be read from gray scale table
  5559. Return: AL = bit 3-0 - Value read from gray scale table
  5560.     CL = address to be read from gray scale table
  5561. SeeAlso: AH=12h/BL=33h,AX=BF07h
  5562. --------b-10BF07-----------------------------
  5563. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  5564.     AX = BF07h
  5565.     CH = value to write to gray scale table
  5566.     CL = address to be written to gray scale table
  5567. SeeAlso: AX=BF06h,AX=BF08h
  5568. --------b-10BF08-----------------------------
  5569. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  5570.     AX = BF08h
  5571.     CH = bits 7-4 green weight
  5572.          bits 3-0 blue weight
  5573.     CL = bits 7-4 unused
  5574.          bits 3-0 red weight
  5575. SeeAlso: AH=12h/BH=33h,AX=BF07h
  5576. --------b-10BF09-----------------------------
  5577. INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO
  5578.     AX = BF09h
  5579. Return: CF clear
  5580. Notes:    sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  5581.       to 6Fh and index 83h to 04h
  5582.     supported by at least the QVision board and the LTE Lite ROM BIOS
  5583. SeeAlso: AX=BF0Ah,AX=BF0Bh
  5584. --------b-10BF0A-----------------------------
  5585. INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO
  5586.     AX = BF0Ah
  5587. Return: CF clear
  5588. Notes:    clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  5589.       to 80h and index 83h to FBh
  5590.     supported by at least the QVision board and the LTE Lite ROM BIOS
  5591. SeeAlso: AX=BF09h,AX=BF0Bh
  5592. --------b-10BF0B-----------------------------
  5593. INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED
  5594.     AX = BF0Bh
  5595. Return: CF clear
  5596.     AX = state (0000h normal video, 0001h reverse video)
  5597. Note:    supported by at least the QVision board and the LTE Lite ROM BIOS
  5598. SeeAlso: AX=BF09h,AX=BF0Ah
  5599. --------b-10BF0C-----------------------------
  5600. INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE
  5601.     AX = BF0Ch
  5602. Return: CF clear
  5603. Desc:    specify that video DAC registers use only six bits of color info
  5604. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  5605. SeeAlso: AX=BF0Dh,AX=BF0Eh
  5606. --------b-10BF0D-----------------------------
  5607. INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE
  5608.     AX = BF0Dh
  5609. Return: CF clear
  5610. Desc:    specify that video DAC registers use all eight bits of color info
  5611. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  5612. SeeAlso: AX=BF0Ch,AX=BF0Eh
  5613. --------b-10BF0E-----------------------------
  5614. INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode
  5615.     AX = BF0Eh
  5616. Return: CF clear
  5617.     AL = DAC mode
  5618.         00h in 6-bit mode
  5619.         01h in 8-bit mode
  5620. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  5621. SeeAlso: AX=BF0Ch,AX=BF0Dh
  5622. --------b-10BF0F-----------------------------
  5623. INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER
  5624.     AX = BF0Fh
  5625.     BX = high address map location in megabytes, or
  5626.         0000h to disable high address map, or
  5627.         FFFFh to let ROM configure high address map
  5628. Return: CF clear
  5629.     AX = previous value of high address map register
  5630. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  5631.       Lite ROM BIOSes
  5632. SeeAlso: AX=BF10h
  5633. --------b-10BF10-----------------------------
  5634. INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER
  5635.     AX = BF10h
  5636. Return: CF clear
  5637.     AX = current value of high address map register
  5638. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  5639.       Lite ROM BIOSes
  5640.     the Compaq QVision documentation (October 1993) says the value is
  5641.       returned in BX, but this appears to be one of many typos
  5642. SeeAlso: AX=BF0Fh
  5643. --------b-10BF11-----------------------------
  5644. INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT
  5645.     AX = BF11h
  5646. Return: AL = BFh if supported
  5647.         CF clear
  5648.         ES:BX -> ASCII signature "COMPAQ"
  5649.         ES:DI -> advanced functionality table (see #0106)
  5650. Notes:    supported by at least the QVision board and the LTE Lite and ProSignia
  5651.       ROM BIOSes
  5652.     the QVision documentation (October 1993) states that the signature
  5653.       pointer is in ES:DI and the table pointer in ES:SI -- can someone
  5654.       check on this?
  5655. SeeAlso: AX=1A00h,AX=BF03h
  5656.  
  5657. Bitfields for Compaq advanced video functionality:
  5658. Bit(s)    Description    (Table 0106)
  5659.  31    future graphics extensions (reserved, set to 0)
  5660.  30-16    reserved
  5661.  15-12    available video memory in 256K blocks, less one (0000 = 256K, etc.)
  5662.  11-8    reserved
  5663.  7    QVision modes supported
  5664.  6    Advanced VGA modes supported
  5665.  5    Accelerated VGA modes supported
  5666.  4    standard VGA modes supported
  5667.  3-2    reserved
  5668.  1    132-column modes supported
  5669.  0    reserved
  5670. --------b-10BF12-----------------------------
  5671. INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR
  5672.     AX = BF12h
  5673.     BH reserved
  5674.     BL = function mask (see #0107)
  5675. Return: CF clear
  5676. Notes:    this function is a NOP if the VGA subsystem is inactive or the current
  5677.       Display Combination Code is 10h or higher
  5678.     supported by at least the QVision board and the LTE Lite and ProSignia
  5679.       ROM BIOSes
  5680. SeeAlso: AX=BF01h,AX=BF02h
  5681.  
  5682. Bitfields for function mask:
  5683. Bit(s)    Description    (Table 0107)
  5684.  7    command mode
  5685.     if set, bits 1 and 0 make the monitor active when set
  5686.     if clear, bits 1 and 0 toggle the monitor's state when set
  5687.  6-2    reserved
  5688.  1    internal monitor
  5689.  0    external monitor
  5690. --------b-10BF13-----------------------------
  5691. INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION
  5692.     AX = BF13h
  5693.     BL = subfunction
  5694.         00h load gamma correction table for true-color mode
  5695.         DS = BIOS data segment
  5696.         01h set palette RAM bypass
  5697.     BH = 00h
  5698. Return:    nothing
  5699. Note:    these functions must be called after a video mode set, and are in
  5700.       effect only for the current video mode
  5701. --------V-10BFA0BXADAD-----------------------
  5702. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  5703.     AX = BFA0h
  5704.     BX = ADADh
  5705. Return: AX = BDBDh if newer ADAPT.COM installed
  5706.         BX = BCD version (BH = major, BL = minor)
  5707.         CL = ???
  5708.         CH = ???
  5709.         DL = ???
  5710.     AX = ADADh if older version of ADAPT.COM installed
  5711. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  5712.       optionally-resident utility for setting display colors and cursor
  5713.       size; when resident, it also includes a screen blanker
  5714. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  5715. Index:    screen saver;ADAPT
  5716. --------V-10BFA1-----------------------------
  5717. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  5718.     AX = BFA1h
  5719. Return: AX = BDBEh if supported
  5720.         CH = current value of ???
  5721.         DL = current value of ???
  5722. SeeAlso: AX=BFA0h,AX=BFA2h
  5723. --------V-10BFA2-----------------------------
  5724. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  5725.     AX = BFA2h
  5726.     CH = new value for ???
  5727.     DL = new value for ???
  5728. Return: AX = BDBEh if supported
  5729. SeeAlso: AX=BFA0h,AX=BFA1h
  5730. --------A-10C0-------------------------------
  5731. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  5732.     AH = C0h
  5733.     ???
  5734. Return: ???
  5735. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  5736. --------A-10C1-------------------------------
  5737. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  5738.     AH = C1h
  5739.     ???
  5740. Return: ???
  5741. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  5742. --------A-10C2-------------------------------
  5743. INT 10 - CU Writer v1.4 - REVERSE TEXT
  5744.     AH = C2h
  5745.     ???
  5746. Return: ???
  5747. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  5748. --------A-10C3-------------------------------
  5749. INT 10 - CU Writer v1.4 - TEXT BAR
  5750.     AH = C3h
  5751.     ???
  5752. Return: ???
  5753. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  5754. --------A-10C4-------------------------------
  5755. INT 10 - CU Writer v1.4 - TEXT MENU
  5756.     AH = C4h
  5757.     ???
  5758. Return: ???
  5759. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  5760. ----------10CB00-----------------------------
  5761. INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
  5762.     AX = CB00h
  5763. Note:    combined with AX=CB06h, this function permits the use of video mode
  5764.       13h together with the VGA's unchained mode
  5765. SeeAlso: AX=CB06h,AX=CBFFh
  5766. ----------10CB01-----------------------------
  5767. INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
  5768.     AX = CB01h
  5769.     BX = offset of page 1
  5770. Desc:    inform UNCHAIN of the location of video page 1 in video memory; the
  5771.       default is 0000h
  5772. SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
  5773. ----------10CB02-----------------------------
  5774. INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
  5775.     AX = CB02h
  5776.     BX = offset of page 2
  5777. Desc:    inform UNCHAIN of the location of video page 2 in video memory; the
  5778.       default is 3E80h (16000, for 320x200)
  5779. SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
  5780. ----------10CB03-----------------------------
  5781. INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
  5782.     AX = CB03h
  5783.     BX = offset of page 3
  5784. Desc:    inform UNCHAIN of the location of video page 3 in video memory; the
  5785.       default is 7D00h (32000, for 320x200)
  5786. SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
  5787. ----------10CB04-----------------------------
  5788. INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
  5789.     AX = CB04h
  5790.     BX = offset of page 4
  5791. Desc:    inform UNCHAIN of the location of video page 4 in video memory; the
  5792.       default is BB80h (48000, for 320x200)
  5793. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
  5794. ----------10CB05-----------------------------
  5795. INT 10 - UNCHAIN - SAVE PALETTE
  5796.     AX = CB05h
  5797. SeeAlso: AX=CB00h,AX=CB06h
  5798. ----------10CB06-----------------------------
  5799. INT 10 - UNCHAIN - RESTORE VGA REGISTERS
  5800.     AX = CB06h
  5801. SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
  5802. ----------10CBFF-----------------------------
  5803. INT 10 - UNCHAIN - INSTALLATION CHECK
  5804.     AX = CBFFh
  5805. Return: AX = CCBBh if installed
  5806. Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
  5807.       development tools with Mode X video in the absence of a second
  5808.       monitor
  5809. SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
  5810. --------V-10CC00SI0000-----------------------
  5811. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  5812.     AX = CC00h
  5813.     SI = 0000h (if checking version)
  5814. Return: CX = ABCDh
  5815.     AL = Ultravision extensions
  5816.         00h enabled
  5817.         FFh disabled
  5818.     AH = card designator
  5819.     BX:00F0h -> palette values (for compatibility with NEWFONT)
  5820.     DX = support for high resolution modes
  5821.         00h not active
  5822.         01h active
  5823.     SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  5824.         unchanged for versions <1.2
  5825. SeeAlso: AX=CC01h,AX=CC02h
  5826. --------V-10CC01-----------------------------
  5827. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  5828.     AX = CC01h
  5829. Notes:    subsequent BIOS calls will be passed through to previous handler
  5830.     should be followed immediately by mode set to restore normal EGA/VGA
  5831.       state
  5832. SeeAlso: AX=CC02h
  5833. --------V-10CC02-----------------------------
  5834. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  5835.     AX = CC02h
  5836. Note:    should be followed immediately by mode set to restore previous
  5837.       UltraVision state
  5838. SeeAlso: AX=CC01h
  5839. --------V-10CD00-----------------------------
  5840. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  5841.     AX = CD00h
  5842.     CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  5843.     DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  5844. Notes:    if palette locking is in effect for the current mode, the new colors
  5845.       will be displayed immediately; otherwise, the system reverts to the
  5846.       default palette
  5847.     palette table 0 is reserved for the default palette and cannot be set
  5848.     UltraVision always sets the border color to black
  5849. SeeAlso: AX=CD01h,AX=CD02h
  5850. --------V-10CD01-----------------------------
  5851. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  5852.     AX = CD01h
  5853.     CL = palette locking value
  5854.         00h none
  5855.         01h text modes only (02h,03h)
  5856.         FFh all modes (all standard color text and graphics modes)
  5857. Notes:    intended for video modes with 16 or fewer colors
  5858. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  5859. --------V-10CD02-----------------------------
  5860. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  5861.     AX = CD02h
  5862. Return: CL = palette table number
  5863.     DS:DX -> 17-byte palette register list (see #0108)
  5864.     DS:SI -> current font names table (see #0109,#0110)
  5865. Note:    only the font names are valid on monochrome EGA systems
  5866. SeeAlso: AX=1009h,AX=CD00h
  5867.  
  5868. Format of UltraVision palette register list:
  5869. Offset    Size    Description    (Table 0108)
  5870.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  5871.  10h    BYTE    border color
  5872.  
  5873. Format of UltraVision v2+ current font names table:
  5874. Offset    Size    standard EGA    HiRes EGA    VGA    (Table 0109)
  5875.  00h  8 BYTEs    N/A        F19 font    F20 font
  5876.  08h  8 BYTEs    F14 font    F14 font    F14 font
  5877.  10h  8 BYTEs    N/A        F11 font    F10 font
  5878.  18h  8 BYTEs    F8 font        F8 font        F8 font
  5879.  
  5880. Format of UltraVision v1.x current font names table:
  5881. Offset    Size    HiRes EGA    (Table 0110)
  5882.  00h  8 BYTEs    F19/F14 font
  5883.  08h  8 BYTEs    F11/F8 font
  5884. --------V-10CD03-----------------------------
  5885. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  5886.     AX = CD03h
  5887. Return: CL = palette locking value
  5888.         00h none
  5889.         01h text modes only
  5890.         FFh all modes
  5891. SeeAlso: AX=CD01h
  5892. --------V-10CD04-----------------------------
  5893. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  5894.     AX = CD04h
  5895. Return: AL = mode number (see #0111)
  5896. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  5897.  
  5898. (Table 0111)
  5899. Values for UltraVision video mode number:
  5900.  11h    80x25
  5901.  12h    80x43, 80x50
  5902.  13h    80x34, 80x36
  5903.  14h    80x60, 80x63
  5904.  19h    94x25
  5905.  1Ah    94x43, 94x50
  5906.  1Bh    94x36
  5907.  1Ch    94x63
  5908.  21h    108x25
  5909.  22h    108x43, 108x50
  5910.  23h    107x34, 108x36
  5911.  24h    108x60, 108x63
  5912.  31h    120x25
  5913.  32h    120x43, 120x50
  5914.  33h    132x25
  5915.  34h    132x44, 132x50
  5916.  39h    120x36
  5917.  3Ah    120x63
  5918.  3Bh    132x36
  5919.  3Ch    132x60
  5920. Index:    video modes;UltraVision
  5921. --------V-10CD05-----------------------------
  5922. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  5923.     AX = CD05h
  5924.     CL = type
  5925.         00h line cursor
  5926.         FFh box cursor
  5927. Note:    sets default cursor type for text-based programs
  5928. SeeAlso: AH=01h,AX=CD06h
  5929. --------V-10CD06-----------------------------
  5930. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  5931.     AX = CD06h
  5932. Return: CL = type
  5933.         00h line cursor
  5934.         FFh box cursor
  5935. SeeAlso: AH=03h,AX=CD05h
  5936. --------V-10CD07-----------------------------
  5937. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  5938.     AX = CD07h
  5939.     CL = hardware underline status (see #0112)
  5940.     BL = foreground color for normal text (FFh = current)
  5941.     BH = foreground color for bright text (FFh = current)
  5942. Return: CL = hardware underline status
  5943.     BL = current foreground color for normal text
  5944.     BH = current foreground color for bright text
  5945. Notes:    when underline or strikeout is enabled in color text modes, the
  5946.       specified colors will be assigned temporarily to colors 01h and 09h,
  5947.       allowing affected text to match non-underlined text.    The color
  5948.       remapping uses values from the current onscreen palette regardless
  5949.       of the palette locking status (see AX=CD01h)
  5950.     specify the standard colors (BL=01h,BH=09h) to enable underline or
  5951.       strikeout without color remapping
  5952. SeeAlso: AX=CD08h
  5953.  
  5954. (Table 0112)
  5955. Values for hardware underline status:
  5956.  00h    off (color systems only)
  5957.  01h    underline below characters
  5958.  02h    strike through characters
  5959. --------V-10CD08-----------------------------
  5960. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  5961.     AX = CD08h
  5962. Return: CL = hardware underline status (see #0112)
  5963.     BL = foreground color for normal text
  5964.     BH = foreground color for bright text
  5965. Note:    only CL is valid on monochrome EGA systems
  5966. SeeAlso: AX=CD07h
  5967. --------V-10CD10-----------------------------
  5968. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  5969.     AX = CD10h
  5970.     BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  5971.     CX = ABCDh load 9xN alternate font (v2+)
  5972.        else number of characters to load
  5973.         DX = character offset into font table
  5974.         DS:SI -> 8-byte ASCII font name
  5975.     ES:BP -> font definitions
  5976. Return: AX = FFFFh if invalid font parameters
  5977. Notes:    loads the designated characters into UltraVision's resident font area
  5978.     should be followed by a video mode set to reload character generator
  5979. SeeAlso: AX=1100h
  5980. --------V-10CD-------------------------------
  5981. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  5982.     AH = CDh
  5983.     AL = text mode number (see #0111)
  5984. Return: AX = CDCDh if invalid mode
  5985. SeeAlso: AX=CD04h
  5986. --------A-10D0-------------------------------
  5987. INT 10 - CU Writer v1.4 - LOAD PICTURE
  5988.     AH = D0h
  5989.     ???
  5990. Return: ???
  5991. SeeAlso: AH=B0h"CU Writer",AH=C4h
  5992. --------V-10D5-------------------------------
  5993. INT 10 - Netroom SCRNCLK - ???
  5994.     AH = D5h
  5995.     ???
  5996. Return: ???
  5997. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  5998. --------V-10DFA5-----------------------------
  5999. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  6000.     AX = DFA5h
  6001. Return: AX = BDBFh if supported
  6002.         ES:DI -> ??? data area
  6003.         BX = ES
  6004. SeeAlso: AX=BFA0h
  6005. --------V-10EF-------------------------------
  6006. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  6007.     AH = EFh
  6008. Return: DL = video adapter type
  6009.         00h original Hercules
  6010.         01h Hercules Plus
  6011.         02h Hercules InColor???
  6012.     DH = memory mode byte
  6013.         01h "half" mode
  6014.         03h "full" mode
  6015. Program: MSHERC.COM is a support program for the Microsoft Quick languages
  6016.       which makes their graphics libraries compatible with a Hercules card
  6017.       by adding video modes 08h and 88h, and supporting text in the new
  6018.       graphics modes.
  6019. Notes:    while in mode 08h or 88h, INT 10 supports the Hercules card much like
  6020.       a CGA.
  6021.     MSHERC performs an installation check by setting DL=FFh and testing
  6022.       whether it has been changed on return
  6023. Index:    installation check;MSHERC
  6024. --------V-10F0-------------------------------
  6025. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  6026.     AH = F0h
  6027.     BL = register number
  6028.     BH = 00h
  6029.     DX = group index (see #0113)
  6030. Return: BL = data
  6031. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6032.       compatibility box, and others
  6033. SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
  6034.  
  6035. (Table 0113)
  6036. Values for group index:
  6037.  Pointer/data chips
  6038.  00h    CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  6039.  08h    Sequencer (5 registers) 3C4h
  6040.  10h    Graphics Controller (9 registers) 3CEh
  6041.  18h    Attribute Controller (20 registers) 3C0h
  6042.  Single registers
  6043.  20h    Miscellaneous Output register 3C2h
  6044.  28h    Feature Control register (3BAh mono modes, 3DAh color modes)
  6045.  30h    Graphics 1 Position register 3CCh
  6046.  38h    Graphics 2 Position register 3CAh
  6047. --------V-10F1-------------------------------
  6048. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  6049.     AH = F1h
  6050.     DX = group index (see #0113)
  6051.         if single register:
  6052.         BL = value to write
  6053.         otherwise
  6054.         BL = register number
  6055.         BH = value to write
  6056. Return: BL = data
  6057. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6058.       compatibility box, and others
  6059. SeeAlso: AX=7F05h,AH=F0h,AH=F3h
  6060. --------V-10F2-------------------------------
  6061. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  6062.     AH = F2h
  6063.     CH = starting register number
  6064.     CL = number of registers (>1)
  6065.     DX = group index (00h,08h,10h,18h) (see #0113)
  6066.     ES:BX -> buffer, CL bytes
  6067. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6068.       compatibility box, and others
  6069. SeeAlso: AH=F0h,AH=F3h
  6070. --------V-10F3-------------------------------
  6071. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  6072.     AH = F3h
  6073.     CH = starting register
  6074.     CL = number of registers (>1)
  6075.     DX = group index (00h,08h,10h,18h) (see #0113)
  6076.     ES:BX -> buffer, CL bytes
  6077. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6078.       compatibility box, and others
  6079. SeeAlso: AX=7F05h,AH=F1h,AH=F2h
  6080. --------V-10F4-------------------------------
  6081. INT 10 - EGA Register Interface Library - READ REGISTER SET
  6082.     AH = F4h
  6083.     CX = number of registers to read (>1)
  6084.     ES:BX -> table of register records (see #0114)
  6085. Return: register values in table filled in
  6086. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6087.       compatibility box, and others
  6088. SeeAlso: AH=F0h,AH=F2h,AH=F5h
  6089.  
  6090. Format of EGA RIL entries in table of register records:
  6091. Offset    Size    Description    (Table 0114)
  6092.  00h    WORD    group index
  6093.         Pointer/data chips
  6094.            00h CRTC (3B4h mono modes, 3D4h color modes)
  6095.            08h Sequencer 3C4h
  6096.            10h Graphics Controller 3CEh
  6097.            18h Attribute Controller 3C0h
  6098.         Single registers
  6099.            20h Miscellaneous Output register 3C2h
  6100.            28h Feature Control register (3BAh mono modes, 3DAh color)
  6101.            30h Graphics 1 Position register 3CCh
  6102.            38h Graphics 2 Position register 3CAh
  6103.  02h    BYTE    register number (0 for single registers)
  6104.  03h    BYTE    register value
  6105. --------V-10F5-------------------------------
  6106. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  6107.     AH = F5h
  6108.     CX = number of registers to write (>1)
  6109.     ES:BX -> table of records (see #0114)
  6110. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6111.       compatibility box, and others
  6112. SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
  6113. --------V-10F6-------------------------------
  6114. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  6115.     AH = F6h
  6116. Note:    provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  6117.       others
  6118. SeeAlso: AH=F7h
  6119. --------V-10F7-------------------------------
  6120. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  6121.     AH = F7h
  6122.     DX = port number
  6123.        Pointer/data chips
  6124.           00h CRTC (3B4h mono modes, 3D4h color modes)
  6125.           08h Sequencer 3C4h
  6126.           10h Graphics Controller 3CEh
  6127.           18h Attribute Controller 3C0h
  6128.        Single registers
  6129.           20h Miscellaneous Output register 3C2h
  6130.           28h Feature Control register (3BAh mono modes, 3DAh color modes)
  6131.           30h Graphics 1 Position register 3CCh
  6132.           38h Graphics 2 Position register 3CAh
  6133.     ES:BX -> table of one-byte entries, one byte to be written to each
  6134.          register
  6135. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6136.       compatibility box, and others
  6137. SeeAlso: AH=F6h
  6138. --------V-10FA--BX0000-----------------------
  6139. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  6140.     AH = FAh
  6141.     BX = 0000h
  6142. Return: BX = 0000h if RIL driver not present
  6143.     ES:BX -> EGA Register Interface version number, if present:
  6144.         byte 0 = major release number
  6145.         byte 1 = minor release number
  6146. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6147.       compatibility box, and others
  6148. SeeAlso: AH=F6h,INT 2F/AX=BC00h
  6149. --------K-10FA-------------------------------
  6150. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  6151.     AH = FAh
  6152. Return: AX = 00FAh if installed
  6153.         ES = segment of resident code
  6154. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  6155.       Steiner
  6156. Index:    screen saver;FASTBUFF
  6157. --------V-10FE-------------------------------
  6158. INT 10 - TopView - GET SHADOW BUFFER
  6159.     AH = FEh
  6160.     ES:DI -> assumed video buffer
  6161.         B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  6162.           or A000h:0000h EGA/VGA graphics (RSIS environments only)
  6163. Return: ES:DI -> actual video buffer for calling process
  6164. Desc:    Determine the address of the virtual screen to which the program
  6165.       should write instead of the actual video memory; this permits
  6166.       programs to be multitasked without interfering with each other's
  6167.       output, and allows memory managers to move the video memory to
  6168.       permit larger programs to be loaded.
  6169. Notes:    if no multitasker or RSIS-compliant environment is installed, ES:DI is
  6170.       returned unchanged; RSIS is the Relocated Screen Interface
  6171.       Specification
  6172.     for display pages other than 0, use AH=05h and AH=0Fh to determine
  6173.       whether a particular page exists
  6174.     TopView requires a call to AH=FFh to notify it that the screen has
  6175.       changed; DESQview will check for changes itself until the first call
  6176.       to AH=FFh
  6177. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  6178. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  6179. --------V-10FF-------------------------------
  6180. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  6181.     AH = FFh
  6182.     CX = number of consecutive changed characters
  6183.     ES:DI -> first changed character in shadow buffer
  6184. Notes:    avoid CX=0000h
  6185.     DESQview will discontinue the automatic screen updating initiated by
  6186.       AH=FEh after this call
  6187.     not supported (ignored) by DESQview/X 1.0x
  6188. SeeAlso: AH=93h,AH=FEh
  6189. --------E-10FF-------------------------------
  6190. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  6191.     AH = FFh
  6192.     AL = video mode (see #0115)
  6193. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  6194.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  6195. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  6196.  
  6197. (Table 0115)
  6198. Values for GO32 video mode number:
  6199.  00h    80x25 text
  6200.  01h    default text
  6201.  02h    CXxDX text
  6202.  03h    biggest text
  6203.  04h    320x200 graphics
  6204.  05h    default graphics
  6205.  06h    CXxDX graphics
  6206.  07h    biggest non-interlaced graphics
  6207.  08h    biggest graphics
  6208. Index:    video modes;GO32
  6209. --------V-10FF-------------------------------
  6210. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  6211.     AH = FFh
  6212.     AL = emulation
  6213.         43h ('C') CGA emulation
  6214.         45h ('E') EGA emulation
  6215.         4Dh ('M') Hercules emulation
  6216.         56h ('V') VGA emulation
  6217.     ES:DI -> signature string "Calamity"
  6218. Return: VGA switched to suggested mode
  6219. SeeAlso: AH=00h,AX=007Fh,AX=5F01h
  6220. --------R-10FF00-----------------------------
  6221. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  6222.     AX = FF00h
  6223. Return: BL = state
  6224.         00h not connected
  6225.         01h connected
  6226. SeeAlso: AX=FF01h,AX=FF02h
  6227. --------R-10FF01-----------------------------
  6228. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  6229.     AX = FF01h
  6230. SeeAlso: AX=FF00h,AX=FF02h
  6231. --------R-10FF02-----------------------------
  6232. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  6233.     AX = FF02h
  6234. Return: ES:DI -> ASCIZ phone number
  6235. SeeAlso: AX=FF00h,AX=FF01h
  6236. --------C-11---------------------------------
  6237. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  6238. Desc:    automatically generated by the CPU when the AC flag is set, the current
  6239.       privilege level is 3, and a misaligned memory access (WORD not on an
  6240.       even address or DWORD not on a multiple of 4) is made
  6241. Note:    not all V86 monitors allow the AC flag to be set, such as Turbo
  6242.       Debugger 386
  6243. --------B-11---------------------------------
  6244. INT 11 - BIOS - GET EQUIPMENT LIST
  6245. Return: (E)AX = BIOS equipment list word (see #0116)
  6246. Note:    since older BIOSes do not know of the existence of EAX, the high word
  6247.       of EAX should be cleared before this call if any of the high bits
  6248.       will be tested
  6249.  
  6250. Bitfields for BIOS equipment list:
  6251. Bit(s)    Description    (Table 0116)
  6252.  0    floppy disk(s) installed (see 6-7)
  6253.  1    80x87 coprocessor installed
  6254.  3-2    number of 16K banks of RAM on motherboard (PC only)
  6255.     number of 64K banks of RAM on motherboard (XT only)
  6256.  2    pointing device installed (PS)
  6257.  3    unused (PS)
  6258.  5-4    initial video mode
  6259.     00 EGA, VGA, or PGA
  6260.     01 40x25 color
  6261.     10 80x25 color
  6262.     11 80x25 monochrome
  6263.  7-6    number of floppies installed less 1 (if 0 set)
  6264.  8    DMA support installed (PCjr, Tandy 1400LT)
  6265.     DMA support *not* installed (Tandy 1000's)
  6266.  11-9    number of serial ports installed
  6267.  12    game port installed
  6268.  13    serial printer attached (PCjr)
  6269.     internal modem installed (PC/Convertible)
  6270.  15-14    number of parallel ports installed
  6271. ---Compaq, Dell, and many other 386/486 machines--
  6272.  23    page tables set so that Weitek coprocessor addressable in real mode
  6273.  24    Weitek math coprocessor present
  6274. ---Compaq Systempro---
  6275.  25    internal DMA parallel port available
  6276.  26    IRQ for internal DMA parallel port (if bit 25 set)
  6277.     0 = IRQ5
  6278.     1 = IRQ7
  6279.  28-27    parallel port DMA channel
  6280.     00 DMA channel 0
  6281.     01 DMA channel 0 ???
  6282.     10 reserved
  6283.     11 DMA channel 3
  6284. SeeAlso: INT 12
  6285. --------d-11----SI6A6A-----------------------
  6286. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  6287.     SI = 6A6Ah
  6288.     AH = command (see #0117)
  6289.     AL = SCSI Addressing (see #0118)
  6290. Return: CF clear if successful
  6291.         DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  6292.         AH = ??? for command 01h
  6293.     CF set on error
  6294.         AL = error code
  6295. SeeAlso: INT 21/AX=4402h"ASPI"
  6296.  
  6297. (Table 0117)
  6298. Values for SDLP command:
  6299.  00h    SDLP initialization
  6300.  01h    SDLP System Identify
  6301.  02h    simple read sectors
  6302.  03h    simple write sectors
  6303.  04h    simple verify sectors/seek to sector
  6304.  05h    get device size/type
  6305.  06h    ready unit
  6306.  07h    format unit
  6307.  08h    diagnostics
  6308.  09h    rewind
  6309.  0Ah    erase
  6310.  0Bh    write filemarks
  6311.  0Ch    space
  6312.  0Dh    prevent/allow media removal
  6313.  0Eh    load/unload media
  6314.  0Fh    reserved - returns good status
  6315.  10h    set block size
  6316.  11h    write setmark
  6317.  12h    set error level
  6318.  13h    get address of Request Sense Buffer
  6319.  14h    get SDLP error via Request Sense
  6320.  F0h    Vendor Unique Function (WD7000-FASST2 only)
  6321.  FDh    reset current SCSI HAC
  6322.  FEh    get/set current SCSI HAC
  6323.  FFh    execute SCSI command
  6324.  
  6325. Bitfields for SDLP SCSI addressing:
  6326. Bit(s)    Description    (Table 0118)
  6327.  7-6    Host Adapter
  6328.  5-3    SCSI Target ID
  6329.  2-0    SCSI Target LUN (logical unit number)
  6330. --------V-110225BX6900-----------------------
  6331. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  6332.     AX = 0225h
  6333.     BX = 6900h
  6334. Return: BL = 23h
  6335.     ES:DI -> ASCIZ "BLNKIT"
  6336. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  6337.       Inc.
  6338. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h
  6339. Index:    screen saver;Blank-It
  6340. --------V-110225BX6901-----------------------
  6341. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  6342.     AX = 0225h
  6343.     BX = 6901h
  6344.     CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  6345.          largest value is 59 minutes (FBACh or 64428)
  6346. Return: CF clear if successful
  6347.         DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  6348.         AH = ???
  6349.     CF set on error
  6350.         AL = error code
  6351. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6904h
  6352. Index:    screen saver;Blank-It
  6353. --------V-110225BX6902-----------------------
  6354. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  6355.     AX = 0225h
  6356.     BX = 6902h
  6357. Return: CF clear if successful
  6358.     CF set on error
  6359.         AL = error code
  6360. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6903h
  6361. Index:    screen saver;Blank-It
  6362. --------V-110225BX6903-----------------------
  6363. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  6364.     AX = 0225h
  6365.     BX = 6903h
  6366. Return: CF clear if successful
  6367.     CF set on error
  6368.         AL = error code
  6369. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6902h
  6370. Index:    screen saver;Blank-It
  6371. --------V-110225BX6904-----------------------
  6372. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  6373.     AX = 0225h
  6374.     BX = 6904h
  6375. Return: CF clear if successful
  6376.         BX = timeout (see BX=6901h)
  6377.     CF set on error
  6378.         AL = error code
  6379. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6901h
  6380. Index:    screen saver;Blank-It
  6381. --------V-110225BX6905-----------------------
  6382. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  6383.     AX = 0225h
  6384.     BX = 6905h
  6385. Return: CF clear if successful
  6386.     CF set on error
  6387.         AL = error code
  6388. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6906h
  6389. Index:    screen saver;Blank-It
  6390. --------V-110225BX6906-----------------------
  6391. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  6392.     AX = 0225h
  6393.     BX = 6906h
  6394. Return: CF clear if successful
  6395.     CF set on error
  6396.         AL = error code
  6397. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  6398.       Inc.
  6399. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6905h
  6400. Index:    screen saver;Blank-It
  6401. --------V-110225BX6907-----------------------
  6402. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  6403.     AX = 0225h
  6404.     BX = 6907h
  6405. Return: CF clear if successful
  6406.     CF set on error
  6407.         AL = error code
  6408. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6908h
  6409. Index:    screen saver;Blank-It
  6410. --------V-110225BX6908-----------------------
  6411. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  6412.     AX = 0225h
  6413.     BX = 6908h
  6414. Return: CF clear if successful
  6415.     CF set on error
  6416.         AL = error code
  6417. SeeAlso: AX=0225h/BX=6900h,AX=0225h/BX=6907h
  6418. Index:    screen saver;Blank-It
  6419. --------V-110225BX6909-----------------------
  6420. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  6421.     AX = 0225h
  6422.     BX = 6909h
  6423.     CL = key scan code (see #0119)
  6424. Return: CF clear if successful
  6425.     CF set on error
  6426.         AL = error code
  6427. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  6428.       Inc.
  6429. SeeAlso: AX=0225h/BX=6900h
  6430. Index:    screen saver;Blank-It|hotkeys;Blank-It
  6431.  
  6432. (Table 0119)
  6433. Values for Blank-It hotkey scan code:
  6434.  00h    No hot key
  6435.  1Dh    Left CTRL
  6436.  2Ah    Left Shift
  6437.  36h    Right Shift
  6438.  57h    F11
  6439.  58h    F12
  6440. ----------1105D7-----------------------------
  6441. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  6442.     AX = 05D7h
  6443.     BX = product ID (0088h)
  6444. Note:    called by the BC++ IDE when an application calls
  6445.       INT 12/AX=05D7h/BX=05D7h
  6446. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  6447. Index:    installation check;Borland C++ IDE
  6448. --------F-1177-------------------------------
  6449. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  6450.     AH = 77h
  6451.     AL = subfunction
  6452.         01h request SFENGINE start
  6453.         Return: AX = 0001h
  6454.         02h check if SFENGINE started
  6455.         Return: AX = 0000h or 0001h
  6456.         03h request SFENGINE stop
  6457.         Return: AX = 0001h
  6458.         04h check if SFENGINE stopped
  6459.         Return: AX = 0000h or 0001h
  6460.         05h installation check
  6461.         Return: AX = 0001h
  6462.         06h uninstall???
  6463.         BX:DX -> return address for successful uninstall???
  6464.         Return: (at caller's address)
  6465.             AX = 0000h
  6466.         else
  6467.         Return: AX = FFFFh
  6468. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  6469.         followed by internal data area???
  6470. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  6471. Index:    installation check;RainbowFAX|installation check;SFENGINE
  6472. Index:    uninstall;RainbowFAX|uninstall;SFENGINE
  6473. --------F-1178-------------------------------
  6474. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6475.     AH = 78h
  6476.     AL = subfunction
  6477.         7801h set ???
  6478.         BX = new state for ???
  6479.             0000h ???
  6480.             else ???
  6481.         Return: AX = 0001h
  6482.         7802h set ???
  6483.         BX = ???
  6484.         CX = ???
  6485.         Return: AX = 0001h
  6486.         7803h set ???
  6487.         BX = new state for ???
  6488.             0000h ???
  6489.             else ???
  6490.         Return: AX = 0001h
  6491.         78XXh invalid subfunction
  6492.         Return: AX = FFFFh
  6493. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  6494. --------F-1179-------------------------------
  6495. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6496.     AH = 79h
  6497.     AL = subfunction
  6498.         01h set ??? flag
  6499.         Return: AX = previous state (0000h already set, 0001h clear)
  6500.         02h clear ??? flag (see subfunc 01h)
  6501.         Return: AX = 0001h
  6502.         03h set ??? flag (different from subfn 02h or 04h)
  6503.         Return: AX = 0001h
  6504.         04h clear ??? flag (different from subfn 02h or 03h)
  6505.         Return: AX = 0001h
  6506.         else
  6507.         Return: AX = FFFFh
  6508. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  6509. --------F-117A-------------------------------
  6510. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6511.     AH = 7Ah
  6512.     AL = subfunction
  6513.         01h set ??? flag
  6514.         Return: AX = previous state (0000h already set, 0001h clear)
  6515.         02h clear ??? flag
  6516.         Return: AX = 0001h
  6517.         03h set ??? flag (different from subfn 02h)
  6518.         Return: AX = 0001h
  6519.         else
  6520.         Return: AX = FFFFh
  6521. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  6522. --------F-117C-------------------------------
  6523. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6524.     AH = 7Ch
  6525.     AL = subfunction
  6526.         01h set ??? flag (see also subfn 02h)
  6527.         Return: AX = 0001h
  6528.         02h clear ??? flag (see also subfn 01h)
  6529.         Return: AX = 0001h
  6530.         else
  6531.         Return: AX = FFFFh
  6532. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah
  6533. --------S-11BC--DX1954-----------------------
  6534. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  6535.     AH = BCh
  6536.     DX = 1954h
  6537. Return: AX = 1954h
  6538.     ES:DX -> entry point of driver (instead of INT 14)
  6539. SeeAlso: INT 14/AH=04h"FOSSIL"
  6540. --------d-11FF--SI6A6A-----------------------
  6541. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  6542.     AH = FFh
  6543.     SI = 6A6Ah
  6544.     AL = SCSI Addressing (see #0120)
  6545.     CX = bytes of data to be transmitted (max FFF0h)
  6546.     DH = 00h
  6547.     DL = length of SCSI Command Descriptor Block
  6548.     DS:DI -> SCSI Command Descriptor Block
  6549.     ES:BX -> data buffer
  6550. Return: CF set on error
  6551.         AL = error code
  6552.     CF clear if successful
  6553. Note:    because of busmaster operations with WD7000FASST avoid accessing
  6554.       video memory directly; check 386 memory manager for VDS support.
  6555.       The WD7000XTAT works with programmed IO and does not have this
  6556.       limitation.
  6557. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  6558.  
  6559. Bitfields for SDLP SCSI addressing:
  6560. Bit(s)    Description    (Table 0120)
  6561.  2-0    SCSI Target LUN (logical unit number)
  6562.  5-3    SCSI Target ID
  6563.  7    write flag, set for write operations, clear otherwise
  6564. --------T-11FFFECXFFFE-----------------------
  6565. INT 11 - BACK&FORTH (before v1.62) API
  6566.     AX = FFFEh
  6567.     CX = FFFEh
  6568.     BX = function
  6569.         00h installation check
  6570.         Return: AX = installation state
  6571.                 0001h BNFHIGH and BNFLOW both loaded
  6572.                 0003h only BNFHIGH loaded
  6573.                 else neither loaded
  6574.         01h ???
  6575.         Return: DX:AX -> ???
  6576.         02h ???
  6577.         03h ???
  6578.         04h ???
  6579.         05h ??? switches current PSP segment and stack if BNFLOW has not
  6580.             yet announced itself installed
  6581.         06h ???
  6582.         Return: AX = ???
  6583. SeeAlso: INT 12/AX=FFFEh
  6584. Index:    installation check;BACK&FORTH
  6585. --------B-12---------------------------------
  6586. INT 12 - BIOS - GET MEMORY SIZE
  6587. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6588. Note:    this call returns the contents of the word at 0040h:0013h; in PC and
  6589.       XT, this value is set from the switches on the motherboard
  6590. SeeAlso: INT 11,INT 2F/AX=4A06h
  6591. --------K-12----CX1806-----------------------
  6592. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  6593.     CX = 1806h
  6594. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6595.     CX = 1960h if installed
  6596. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  6597.       accented characters and box drawing on standard QWERTY keyboards; it
  6598.       also provides break-to-DOS and screen blanking capabilities
  6599. SeeAlso: INT 14/AX=AA01h
  6600. Index:    screen saver;KEYBUI
  6601. --------d-12----CX1807-----------------------
  6602. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  6603.     CX = 1807h
  6604. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6605.     CX = 1961h if installed
  6606. Program: PARKER is an optionally-resident hard disk parking program by Johan
  6607.       Zwiekhorst
  6608. ----------1205D7BX05D7-----------------------
  6609. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  6610.     AX = 05D7h (1495d)
  6611.     BX = 05D7h
  6612. Note:    the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  6613. SeeAlso: INT 11/AX=05D7h/BX=0088h
  6614. ----------124350BX4920-----------------------
  6615. INT 12 C - CPI-standard virus - "FRIEND" CHECK
  6616.     AX = 4350h
  6617.     BX = 4920h
  6618.     CX = AB46h
  6619.     DX = 554Eh
  6620. Return: if friendly (not to be infected)
  6621.         CX:DX -> ASCIZ identity code (changes yearly)
  6622. SeeAlso: INT 21/AX=0B56h
  6623. --------T-12FFFECXFFFE-----------------------
  6624. INT 12 - Back&Forth v1.62+ - API
  6625.     AX = FFFEh
  6626.     CX = FFFEh
  6627.     BX = function
  6628.         00h installation check
  6629.         Return: AX = 0001h installed
  6630.                  else  not loaded
  6631.         02h build program ID list
  6632.         ES:DI -> buffer of at least 100 bytes, to be filled with words
  6633.         Return: AX = number of programs defined
  6634.             ES:DI buffer filled with AX words
  6635.         03h switch to specified task (task need not be open yet)
  6636.         DX = two-letter program ID
  6637.         Return: AX = 0000h if task undefined
  6638.         04h ???
  6639.         05h ???
  6640.         06h get version (undoc)
  6641.         Return: AX = version * 100 (v1.71 = 00ABh)
  6642.         07h ???
  6643.         08h get open tasks (undoc)
  6644.         ES:DI -> task info buffer (see #0121)
  6645.         Return: AX = number of open tasks (max 20)
  6646.         09h ???
  6647. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  6648. SeeAlso: INT 11/AX=FFFEh
  6649. Index:    installation check;BACK&FORTH
  6650.  
  6651. Format of Back&Forth task info buffer:
  6652. Offset    Size    Description    (Table 0121)
  6653.  00h 21 BYTEs    ASCIZ task name
  6654.  15h    BYTE    hotkey shift state (as for INT 16/AH=02h)
  6655.  16h    WORD    hotkey scan code
  6656.  18h    WORD    program ID
  6657. Index:    hotkeys;Back&Forth
  6658. --------B-1300-------------------------------
  6659. INT 13 - DISK - RESET DISK SYSTEM
  6660.     AH = 00h
  6661.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  6662. Return: AH = status (see #0122)
  6663.     CF clear if successful (returned AH=00h)
  6664.     CF set on error
  6665. Note:    forces controller to recalibrate drive heads (seek to track 0)
  6666.     for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
  6667.       both the master drive and the slave drive respond to the Reset
  6668.       function that is issued to either drive
  6669. SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4E"TI Professional"
  6670. --------B-1301-------------------------------
  6671. INT 13 - DISK - GET STATUS OF LAST OPERATION
  6672.     AH = 01h
  6673.     DL = drive (bit 7 set for hard disk)
  6674. Return: CF clear if successful (returned status 00h)
  6675.     CF set on error
  6676.     AH = status of previous operation (see #0122)
  6677. Note:    some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  6678.       status in both AH and AL
  6679.  
  6680. (Table 0122)
  6681. Values for disk operation status:
  6682.  00h    successful completion
  6683.  01h    invalid function in AH or invalid parameter
  6684.  02h    address mark not found
  6685.  03h    disk write-protected
  6686.  04h    sector not found/read error
  6687.  05h    reset failed (hard disk)
  6688.  06h    disk changed (floppy)
  6689.  07h    drive parameter activity failed (hard disk)
  6690.  08h    DMA overrun
  6691.  09h    data boundary error (attempted DMA across 64K boundary or >80h sectors)
  6692.  0Ah    bad sector detected (hard disk)
  6693.  0Bh    bad track detected (hard disk)
  6694.  0Ch    unsupported track or invalid media
  6695.  0Dh    invalid number of sectors on format (PS/2 hard disk)
  6696.  0Eh    control data address mark detected (hard disk)
  6697.  0Fh    DMA arbitration level out of range (hard disk)
  6698.  10h    uncorrectable CRC or ECC error on read
  6699.  11h    data ECC corrected (hard disk)
  6700.  20h    controller failure
  6701.  31h    no such drive (Compaq)
  6702.  32h    incorrect drive type stored in CMOS (Compaq)
  6703.  40h    seek failed
  6704.  80h    timeout (not ready)
  6705.  AAh    drive not ready (hard disk)
  6706.  BBh    undefined error (hard disk)
  6707.  CCh    write fault (hard disk)
  6708.  E0h    status register error (hard disk)
  6709.  FFh    sense operation failed (hard disk)
  6710. --------B-1302-------------------------------
  6711. INT 13 - DISK - READ SECTOR(S) INTO MEMORY
  6712.     AH = 02h
  6713.     AL = number of sectors to read (must be nonzero)
  6714.     CH = low eight bits of cylinder number
  6715.     CL = sector number 1-63 (bits 0-5)
  6716.          high two bits of cylinder (bits 6-7, hard disk only)
  6717.     DH = head number
  6718.     DL = drive number (bit 7 set for hard disk)
  6719.     ES:BX -> data buffer
  6720. Return: CF set on error
  6721.         if AH = 11h (corrected ECC error), AL = burst length
  6722.     CF clear if successful
  6723.     AH = status (see #0122)
  6724.     AL = number of sectors transferred
  6725. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6726.       enough; the read should be retried at least three times, resetting
  6727.       the disk with AH=00h between attempts
  6728.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6729.       DH (head number) since the WD-1003 controller which is the standard
  6730.       AT controller (and the controller that IDE emulates) only supports
  6731.       16 heads
  6732.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6733.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6734.       into bits 6 and 7 of DH
  6735. SeeAlso: AH=03h,AH=0Ah,AH=21h"PS/1"
  6736. --------B-1303-------------------------------
  6737. INT 13 - DISK - WRITE DISK SECTOR(S)
  6738.     AH = 03h
  6739.     AL = number of sectors to write (must be nonzero)
  6740.     CH = low eight bits of cylinder number
  6741.     CL = sector number 1-63 (bits 0-5)
  6742.          high two bits of cylinder (bits 6-7, hard disk only)
  6743.     DH = head number
  6744.     DL = drive number (bit 7 set for hard disk)
  6745.     ES:BX -> data buffer
  6746. Return: CF set on error
  6747.     CF clear if successful
  6748.     AH = status (see #0122)
  6749.     AL = number of sectors transferred
  6750. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6751.       enough; the write should be retried at least three times, resetting
  6752.       the disk with AH=00h between attempts
  6753.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6754.       DH (head number) since the WD-1003 controller which is the standard
  6755.       AT controller (and the controller that IDE emulates) only supports
  6756.       16 heads
  6757.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6758.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6759.       into bits 6 and 7 of DH
  6760. SeeAlso: AH=02h,AH=0Bh,AH=22h"PS/1"
  6761. --------B-1304-------------------------------
  6762. INT 13 - DISK - VERIFY DISK SECTOR(S)
  6763.     AH = 04h
  6764.     AL = number of sectors to verify (must be nonzero)
  6765.     CH = low eight bits of cylinder number
  6766.     CL = sector number 1-63 (bits 0-5)
  6767.          high two bits of cylinder (bits 6-7, hard disk only)
  6768.     DH = head number
  6769.     DL = drive number (bit 7 set for hard disk)
  6770.     ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
  6771. Return: CF set on error
  6772.     CF clear if successful
  6773.     AH = status (see #0122)
  6774.     AL = number of sectors verified
  6775. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6776.       enough; the write should be retried at least three times, resetting
  6777.       the disk with AH=00h between attempts
  6778.     this function does not compare the disk with memory, it merely
  6779.       checks whether the sector's stored CRC matches the data's actual CRC
  6780.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6781.       DH (head number) since the WD-1003 controller which is the standard
  6782.       AT controller (and the controller that IDE emulates) only supports
  6783.       16 heads
  6784.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6785.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6786.       into bits 6 and 7 of DH
  6787. SeeAlso: AH=02h
  6788. --------B-1305-------------------------------
  6789. INT 13 - FLOPPY - FORMAT TRACK
  6790.     AH = 05h
  6791.     AL = number of sectors to format
  6792.     CH = track number
  6793.     DH = head number
  6794.     DL = drive number
  6795.     ES:BX -> address field buffer (see #0123)
  6796. Return: CF set on error
  6797.     CF clear if successful
  6798.     AH = status (see #0122)
  6799. Notes:    on AT or higher, call AH=17h first
  6800.     the number of sectors per track is read from the diskette parameter
  6801.       table pointed at by INT 1E
  6802. SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
  6803.  
  6804. Format of floppy format address field buffer entry (one per sector in track):
  6805. Offset    Size    Description    (Table 0123)
  6806.  00h    BYTE    track number
  6807.  01h    BYTE    head number (0-based)
  6808.  02h    BYTE    sector number
  6809.  03h    BYTE    sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
  6810. --------B-1305-------------------------------
  6811. INT 13 - FIXED DISK - FORMAT TRACK
  6812.     AH = 05h
  6813.     AL = interleave value (XT-type controllers only)
  6814.     ES:BX -> 512-byte format buffer
  6815.         the first 2*(sectors/track) bytes contain F,N for each sector
  6816.            F = sector type
  6817.             00h for good sector
  6818.             20h to unassign from alternate location
  6819.             40h to assign to alternate location
  6820.             80h for bad sector
  6821.            N = sector number
  6822.     CH = cylinder number (bits 8,9 in high bits of CL)
  6823.     CL = high bits of cylinder number (bits 7,6)
  6824.     DH = head
  6825.     DL = drive
  6826. Return: CF set on error
  6827.     CF clear if successful
  6828.     AH = status code (see #0122)
  6829. Notes:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6830.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6831.       into bits 6 and 7 of DH
  6832.     for XT-type controllers on an AT or higher, AH=0Fh should be called
  6833.       first
  6834.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6835.       DH (head number) since the WD-1003 controller which is the standard
  6836.       AT controller (and the controller that IDE emulates) only supports
  6837.       16 heads
  6838.     not all controller support sector types 20h and 40h
  6839. SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
  6840. --------d-1305-------------------------------
  6841. INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
  6842.     AH = 05h
  6843.     DL = hard drive ID
  6844.     ES:BX -> mode select data (see #0124)
  6845. Return: CF set on error
  6846.     CF clear if successful
  6847.     AH = status code (see #0122)
  6848. Notes:    this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  6849.       format a SCSI disk with the desired parameters
  6850.     the mode select data below is from the SCSI-1 specification
  6851.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6852.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6853. SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
  6854.  
  6855. Format of Future Domain SCSI mode select data:
  6856. Offset    Size    Description    (Table 0124)
  6857.  00h    BYTE    number of bytes of remaining data (12 + vendor unique length)
  6858.  01h    BYTE    reserved (0)
  6859.  02h    BYTE    medium type (0 for hard disk)
  6860.  03h    BYTE    reserved (0)
  6861.  04h    BYTE    block descriptor length (8)
  6862.  05h    BYTE    density code (0 for hard disk)
  6863.  06h  3 BYTEs    (big-endian) number of blocks (000000h for entire disk)
  6864.  09h    BYTE    reserved (0)
  6865.  0Ah  3 BYTEs    (big-endian) block length (512 standard, or 256)
  6866.  0Dh    ???    vendor-specific parameter bytes (optional)
  6867. --------B-13057FSI324D-----------------------
  6868. INT 13 - 2M - FORMAT TRACK
  6869.     AX = 057Fh
  6870.     SI = 324Dh ("2M")
  6871.     CH = track number
  6872.     DH = head number
  6873.     DL = drive number
  6874.     ES:BX -> boot sector of future 2M diskette
  6875. Return:    CF set on error
  6876.     CF clear if successful
  6877.     AH = status (see #0122)
  6878. Program: 2M is a TSR developed by Ciriaco Garcia de Celis to support
  6879.       non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
  6880.       and 984-1066/1804-1886K/3608-3772K (3.5 DD/HD/ED)
  6881. Notes:    it is not necessary to call AH=17h/AH=18h first (will be ignored)
  6882.     the diskette format must always begin on cylinder 0 head 0
  6883.     the boot sector can be obtained from an already-formatted 2M diskette
  6884.       (by calling AH=02h with head number 00h in 2M v1.x and with head
  6885.       number 80h for 2M v2+)
  6886.     the installation check for 2M must search for a "CiriSOFT:2M:1.3" or
  6887.       "CiriSOFT:2MX:3.0" or similar (recomended ":2M:" or ":2MX:"
  6888.       substrings) in CiriSOFT TSR interface
  6889.     since 2M v2.0, the BOOT sector is emulated using the first physical
  6890.       sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED
  6891.       diskettes store the SuperBOOT code. To skip the FAT2 emulation (using
  6892.       FAT1) of 2M, in order to read the SuperBOOT code, head number must be
  6893.       80h-81h instead 0-1 (bit 7 active) in standard read/write functions.
  6894.       This lets diskcopy programs format 2M target diskettes copying
  6895.       SuperBOOT code. If the target diskette is already 2MF formatted
  6896.       (containing boot code) this trick it is not necessary.
  6897.     when using STV technology (offset 65 of boot sector equal to 1) it is
  6898.       necessary to write the full track before formatting (except track 0
  6899.       side 0) to complete the format and skip future CRC errors on read; in
  6900.       track 0 side 1 the head used must be 81h instead 1. Diskcopy programs
  6901.       may do a format-write-verify sequential phases to improve performance
  6902. SeeAlso: AH=05h"FLOPPY",INT 2F"CiriSOFT TSR interface"
  6903. --------B-1306-------------------------------
  6904. INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
  6905.     AH = 06h
  6906.     AL = interleave value
  6907.     CH = cylinder number (bits 8,9 in high bits of CL)
  6908.     CL = sector number
  6909.     DH = head
  6910.     DL = drive
  6911. Return: AH = status code (see #0122)
  6912. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6913.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6914.       into bits 6 and 7 of DH
  6915. SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
  6916. --------d-1306-------------------------------
  6917. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
  6918.     AH = 06h
  6919.     AL = interleave
  6920.          (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
  6921.     DL = hard drive ID
  6922.     DH = defect list info (see #0125)
  6923.     ES:BX -> defect table A, B or C (see #0126,#0127,#0128)
  6924. Return: CF set on error
  6925.     CF clear if successful
  6926.     AH = status code (see #0122)
  6927. Notes:    block addresses must be in ascending order (for table B, cylinder is
  6928.       most significant, byte from index least significant; for table C,
  6929.       cylinder is most significant, sector number least significant)
  6930.     table B defect bytes from index of FFFFFFFFh indicates that the entire
  6931.       track shall be reassigned
  6932.     table C defect sector number of FFFFFFFFh indicates that the entire
  6933.       track shall be reassigned
  6934.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6935.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6936. SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
  6937.  
  6938. Bitfields for Future Domain SCSI defect list info:
  6939. Bit(s)    Description    (Table 0125)
  6940.  7-5    drive LUN
  6941.  4    defect list is available
  6942.  3    defect list is complete (erase drive's defect list)
  6943.  2-0    defect table format
  6944.     (000=use defect table A, 100=use defect table B,
  6945.      101=use defect table C)
  6946.  
  6947. Format of Future Domain SCSI defect table A:
  6948. Offset    Size    Description    (Table 0126)
  6949.  00h    WORD    number of bytes remaining in table
  6950.  02h    BYTE    reserved (0)
  6951.  03h    BYTE    reserved (0)
  6952.  04h    WORD    (big-endian) defect list length (4*number of defects)
  6953.  06h  4 DWORDs    (big-endian) defect block addresses
  6954.  
  6955. Format of Future Domain SCSI defect table B:
  6956. Offset    Size    Description    (Table 0127)
  6957.  00h    WORD    number of bytes remaining in table
  6958.  02h    BYTE    reserved (0)
  6959.  03h    BYTE    reserved (0)
  6960.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6961.  06h 8N BYTEs    defect list [array] (see #0129)
  6962.  
  6963. Format of Future Domain SCSI defect table C:
  6964. Offset    Size    Description    (Table 0128)
  6965.  00h    WORD    number of bytes remaining in table
  6966.  02h    BYTE    reserved (0)
  6967.  03h    BYTE    reserved (0)
  6968.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6969.  06h 8N BYTEs    defect list [array] (see #0129)
  6970.  
  6971. Format of Future Domain SCSI defect list entry:
  6972. Offset    Size    Description    (Table 0129)
  6973.  00h  3 BYTEs    (big-endian) cylinder number of defect
  6974.  03h    BYTE    head number of defect
  6975.  04h    DWORD    (big-endian) defect bytes from index
  6976. --------d-1306-------------------------------
  6977. INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
  6978.     AH = 06h
  6979. Return: AH = status code (see #0122)
  6980.     CF clear if successful
  6981.         AL = first drive supported
  6982.         (80h nonconcurrent operation, 81h concurrent operation)
  6983.     CF set on error
  6984. Desc:    determine the number of the first supported SCSI drive
  6985. Note:    the return value is 80h when two SCSI drives are supported, 81h if
  6986.       only one SCSI drive is installed
  6987. SeeAlso: AH=08h
  6988. --------B-1307-------------------------------
  6989. INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
  6990.     AH = 07h
  6991.     AL = interleave value (XT only)
  6992.     ES:BX = 512-byte format buffer (see AH=05h)
  6993.     CH = cylinder number (bits 8,9 in high bits of CL)
  6994.     CL = sector number
  6995.     DH = head
  6996.     DL = drive
  6997. Return: AH = status code (see #0122)
  6998. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6999.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  7000.       into bits 6 and 7 of DH
  7001. SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
  7002. --------d-1307-------------------------------
  7003. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
  7004.     AH = 07h
  7005.     AL = interleave (0 = default, 1 = consecutive sectors,
  7006.            2 - 255 = vendor unique)
  7007.     DL = hard drive ID
  7008. Return: CF set on error
  7009.     CF clear if successful
  7010.     AH = status code (see #0122)
  7011. SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
  7012. --------B-1308-------------------------------
  7013. INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
  7014.     AH = 08h
  7015.     DL = drive (bit 7 set for hard disk)
  7016. Return: CF set on error
  7017.         AH = status (07h) (see #0122)
  7018.     CF clear if successful
  7019.         AH = 00h
  7020.         BL = drive type (AT/PS2 floppies only) (see #0130)
  7021.         CH = low eight bits of maximum cylinder number
  7022.         CL = maximum sector number (bits 5-0)
  7023.          high two bits of maximum cylinder number (bits 7-6)
  7024.         DH = maximum head number
  7025.         DL = number of drives
  7026.         ES:DI -> drive parameter table (floppies only)
  7027. Notes:    may return successful even though specified drive is greater than the
  7028.       number of attached drives of that type (floppy/hard); check DL to
  7029.       ensure validity
  7030.     for systems predating the IBM AT, this call is only valid for hard
  7031.       disks, as it is implemented by the hard disk BIOS rather than the
  7032.       ROM BIOS
  7033.     Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  7034.       but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.
  7035.     may indicate only two drives present even if more are attached; to
  7036.       ensure the correct count, one can use AH=15h to scan through possible
  7037.       drives
  7038. SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=15h,INT 1E,INT 41
  7039.  
  7040. (Table 0130)
  7041. Values for diskette drive type:
  7042.  01h    360K
  7043.  02h    1.2M
  7044.  03h    720K
  7045.  04h    1.44M
  7046.  05h    ??? (reportedly an obscure drive type shipped on some IBM machines)
  7047.     2.88M on some machines (at least AMI 486 BIOS)
  7048.  06h    2.88M
  7049. --------B-1309-------------------------------
  7050. INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
  7051.     AH = 09h
  7052.     DL = drive (80h for first, 81h for second)
  7053. Return: CF clear if successful
  7054.     CF set on error
  7055.     AH = status (see #0122)
  7056. Notes:    on the PC and XT, this function uses the parameter table pointed at by
  7057.       INT 41
  7058.     on the AT and later, this function uses the parameter table pointed at
  7059.       by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  7060.       DL=81h
  7061. SeeAlso: INT 41,INT 46
  7062. --------B-130A-------------------------------
  7063. INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
  7064.     AH = 0Ah
  7065.     AL = number of sectors
  7066.     CH = low eight bits of cylinder number
  7067.     CL = sector number (bits 5-0)
  7068.          high two bits of cylinder number (bits 7-6)
  7069.     DH = head number
  7070.     DL = drive number (80h = first, 81h = second)
  7071.     ES:BX -> data buffer
  7072. Return: CF clear if successful
  7073.     CF set on error
  7074.     AH = status (see #0122)
  7075.     AL = number of sectors transferred
  7076. Notes:    this function reads in four to seven bytes of error-correcting code
  7077.       along with each sector's worth of information
  7078.     data errors are not automatically corrected, and the read is aborted
  7079.       after the first sector with an ECC error
  7080.     used for diagnostics only on PS/2 systems
  7081. SeeAlso: AH=02h,AH=0Bh
  7082. --------B-130B-------------------------------
  7083. INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
  7084.     AH = 0Bh
  7085.     AL = number of sectors
  7086.     CH = low eight bits of cylinder number
  7087.     CL = sector number (bits 5-0)
  7088.          high two bits of cylinder number (bits 7-6)
  7089.     DH = head number
  7090.     DL = drive number (80h = first, 81h = second)
  7091.     ES:BX -> data buffer
  7092. Return: CF clear if successful
  7093.     CF set on error
  7094.     AH = status (see #0122)
  7095.     AL = number of sectors transferred
  7096. Notes:    each sector's worth of data must be followed by four to seven bytes of
  7097.       error-correction information
  7098.     used for diagnostics only on PS/2 systems
  7099. SeeAlso: AH=03h,AH=0Ah
  7100. --------B-130C-------------------------------
  7101. INT 13 - HARD DISK - SEEK TO CYLINDER
  7102.     AH = 0Ch
  7103.     CH = low eight bits of cylinder number
  7104.     CL = sector number (bits 5-0)
  7105.         high two bits of cylinder number (bits 7-6)
  7106.     DH = head number
  7107.     DL = drive number (80h = first, 81h = second hard disk)
  7108. Return: CF set on error
  7109.     CF clear if successful
  7110.     AH = status (see #0122)
  7111. SeeAlso: AH=00h,AH=02h,AH=0Ah
  7112. --------d-130D-------------------------------
  7113. INT 13 - HARD DISK - RESET HARD DISKS
  7114.     AH = 0Dh
  7115.     DL = drive number (80h = first, 81h = second hard disk)
  7116. Return: CF set on error
  7117.     CF clear if successful
  7118.     AH = status (see #0122)
  7119. Notes:    reinitializes the hard disk controller, resets the specified drive's
  7120.       parameters, and recalibrates the drive's heads (seek to track 0)
  7121.     for PS/2 35SX, 35LS, 40SX and L40SX, as well as many other systems,
  7122.       both the master drive and the slave drive respond to the Reset
  7123.       function that is issued to either drive
  7124.     not for PS/2 ESDI drives
  7125. SeeAlso: AH=00h,INT 21/AH=0Dh
  7126. --------B-130E-------------------------------
  7127. INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
  7128.     AH = 0Eh
  7129.     DL = drive number (80h = first, 81h = second hard disk)
  7130.     ES:BX -> buffer
  7131. Return: CF set on error
  7132.     CF clear if successful
  7133.     AH = status code (see #0122)
  7134. Notes:    transfers controller's sector buffer.  No data is read from the drive
  7135.     used for diagnostics only on PS/2 systems
  7136. SeeAlso: AH=0Ah
  7137. --------B-130F-------------------------------
  7138. INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
  7139.     AH = 0Fh
  7140.     DL = drive number (80h = first, 81h = second hard disk)
  7141.     ES:BX -> buffer
  7142. Return: CF set on error
  7143.     CF clear if successful
  7144.     AH = status code (see #0122)
  7145. Notes:    does not write data to the drive
  7146.     should be called before formatting to initialize an XT-type
  7147.       controller's sector buffer
  7148.     used for diagnostics only on PS/2 systems
  7149. SeeAlso: AH=0Bh
  7150. --------B-1310-------------------------------
  7151. INT 13 - HARD DISK - CHECK IF DRIVE READY
  7152.     AH = 10h
  7153.     DL = drive number (80h = first, 81h = second hard disk)
  7154. Return: CF set on error
  7155.     CF clear if successful
  7156.     AH = status (see #0122 at AH=01h)
  7157. --------B-1311-------------------------------
  7158. INT 13 - HARD DISK - RECALIBRATE DRIVE
  7159.     AH = 11h
  7160.     DL = drive number (80h = first, 81h = second hard disk)
  7161. Return: CF set on error
  7162.     CF clear if successful
  7163.     AH = status (see #0122 at AH=01h)
  7164. Note:    causes hard disk controller to seek the specified drive to cylinder 0
  7165. SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
  7166. --------B-1312-------------------------------
  7167. INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
  7168.     AH = 12h
  7169.     DL = drive number (80h = first, 81h = second hard disk)
  7170. Return: CF set on error
  7171.     CF clear if successful
  7172.     AH = status code (see #0122 at AH=01h)
  7173.     AL = 00h
  7174. SeeAlso: AH=13h,AH=14h
  7175. --------d-1312-------------------------------
  7176. INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
  7177.     AH = 12h
  7178.     DL = hard drive ID
  7179. Return: CF set on error
  7180.     CF clear if successful
  7181.     AH = status code (see #0122 at AH=01h)
  7182. Notes:    available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
  7183.     if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  7184.       and either "Disk prepared for shipping" or "Disk Stop command failed"
  7185.       is displayed
  7186.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7187.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7188. --------d-1312-------------------------------
  7189. INT 13 - SyQuest - START/STOP SCSI DISK
  7190.     AH = 12h
  7191.     AL = subfunction
  7192.         00h start disk
  7193.         01h stop disk
  7194.     CX = wait flag
  7195.         00h wait for ready
  7196.         01h don't wait for ready
  7197.     DL = hard drive ID (bit 7 for hard disks must be set)
  7198. Return: CF set on error
  7199.     CF clear if successful
  7200.     AH = status
  7201.         00h successful
  7202.         01h invalid function request
  7203.         80h timeout
  7204. SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"
  7205. --------B-1313-------------------------------
  7206. INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
  7207.     AH = 13h
  7208.     DL = drive number (80h = first, 81h = second hard disk)
  7209. Return: CF set on error
  7210.     CF clear if successful
  7211.     AH = status code (see #0122 at AH=01h)
  7212.     AL = 00h
  7213. SeeAlso: AH=12h"HARD DISK",AH=14h"HARD DISK"
  7214. --------d-1313-------------------------------
  7215. INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
  7216.     AH = 13h
  7217.     DL = drive ID (bit 7 set for hard disks)
  7218. Return: CF set on error
  7219.         AH = status (07h) (see #0122 at AH=01h)
  7220.     CF clear if successful
  7221.         AH = 00h
  7222.         BL = drive type (AT/PS2 floppies only) (see #0130)
  7223.         CH = low eight bits of maximum cylinder number
  7224.         CL = maximum sector number (bits 5-0)
  7225.          high two bits of maximum cylinder number (bits 7-6)
  7226.         DH = maximum head number
  7227.         DL = number of drives
  7228.         ES:DI -> drive parameter table (floppies only)
  7229. Notes:    the return values are identical to the standard INT 13/AH=08h, but the
  7230.       number of drives is not limited to 2, so 
  7231.     scanning all possible drive numbers with the Read DASD Type call
  7232.       (AH=15h) should generally be preferred to determine the number of
  7233.       drives attached to the system.
  7234. SeeAlso: AH=08h,AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"
  7235. --------B-1314-------------------------------
  7236. INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
  7237.     AH = 14h
  7238. Return: CF set on error
  7239.     CF clear if successful
  7240.     AH = status code (see #0122 at AH=01h)
  7241.     AL = 00h
  7242. SeeAlso: AH=12h,AH=13h
  7243. --------B-1315-------------------------------
  7244. INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
  7245.     AH = 15h
  7246.     DL = drive number (bit 7 set for hard disk)
  7247. Return: CF clear if successful
  7248.         AH = type code
  7249.         00h no such drive
  7250.         01h floppy without change-line support
  7251.         02h floppy with change-line support
  7252.         03h hard disk
  7253.             CX:DX = number of 512-byte sectors
  7254.     CF set on error
  7255.         AH = status (see #0122 at AH=01h)
  7256. Note:    SyQuest can report type 01h or 02h for 'hard disks', since its media
  7257.       is removable
  7258. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
  7259. --------B-1316-------------------------------
  7260. INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
  7261.     AH = 16h
  7262.     DL = drive number
  7263. Return: CF clear if change line inactive
  7264.         AH = 00h (disk not changed)
  7265.     CF set if change line active
  7266.         AH = status
  7267.         01h invalid command (SyQuest)
  7268.         06h change line active or not supported
  7269.         80h drive not ready or not present
  7270. Notes:    call AH=15h first to determine whether the drive supports a change
  7271.       line
  7272.     this call also clears the media-change status, so that a disk change
  7273.       is only reported once
  7274. SeeAlso: AH=15h
  7275. --------B-1317-------------------------------
  7276. INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
  7277.     AH = 17h
  7278.     AL = format type
  7279.         01h = 320/360K disk in 360K drive
  7280.         02h = 320/360K disk in 1.2M drive
  7281.         03h = 1.2M disk in 1.2M drive
  7282.         04h = 720K disk in 720K or 1.44M drive
  7283.     DL = drive number
  7284. Return: CF set on error
  7285.     CF clear if successful
  7286.     AH = status (see #0122 at AH=01h)
  7287. Note:    this function does not handle 1.44M drives; use AH=18h instead
  7288. SeeAlso: AH=15h,AH=18h
  7289. --------d-131700-----------------------------
  7290. INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
  7291.     AX = 1700h
  7292.     CL = length of buffer
  7293.     DL = hard drive ID
  7294.     ES:BX -> buffer for info (see #0131)
  7295. Return: CF clear if successful
  7296.         CH = number of bytes returned in buffer???
  7297.     CF set on error
  7298.         AH = status code (see #0122 at AH=01h)
  7299. Notes:    this function is not available with 8-bit controller ROM versions < 7.0
  7300.     information block bytes 5-n are vendor-specific in older SCSI devices
  7301.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7302.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7303. SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
  7304.  
  7305. Format of Future Domain SCSI inquiry information block:
  7306. Offset    Size    Description    (Table 0131)
  7307.  00h    BYTE    device type
  7308.         bits 0-4: peripheral device type (see #0132)
  7309.         bits 5-7: peripheral qualifier (see #0133)
  7310.  01h    BYTE    device type modifier
  7311.         bits 0-6: device type modifier
  7312.         bit 7: removable medium
  7313.  02h    BYTE    SCSI version (see #0134)
  7314.  03h    BYTE    data format/capabilities (see #0135)
  7315.  04h    BYTE    additional data length (total remaining bytes)
  7316.  05h  2 BYTEs    reserved
  7317.  07h    BYTE    device capabilities (see #0136)
  7318.  08h  8 BYTEs    vendor identification (space-padded ASCII)
  7319.  10h  8 BYTEs    product identification (space-padded ASCII)
  7320.  20h  4 BYTEs    product revision level (space-padded ASCII)
  7321.  24h 20 BYTEs    vendor specific
  7322.  38h 40 BYTEs    reserved
  7323.  60h    var    vendor specific parameters
  7324.  
  7325. (Table 0132)
  7326. Values for Future Domain SCSI peripheral device type:
  7327.  00h    direct-access device (e.g., magnetic disk)
  7328.  01h    sequential-access device (e.g., magnetic tape)
  7329.  02h    printer device
  7330.  03h    processor device
  7331.  04h    write-once device (e.g., some optical disks)
  7332.  05h    CD-ROM device
  7333.  06h    scanner device
  7334.  07h    optical memory device (e.g., some optical disks)
  7335.  08h    medium changer device (e.g., jukeboxes)
  7336.  09h    communications device
  7337.  0Ah    (defined by ASC IT8)
  7338.  0Bh    (defined by ASC IT8)
  7339.  0Ch-1Eh reserved
  7340.  1Fh    unknown or no device type
  7341.  
  7342. (Table 0133)
  7343. Values for Future Domain SCSI peripheral qualifier:
  7344.  000b    device is currently connected to this logical unit and available
  7345.  001b    target is capable of supporting the specified peripheral, but the
  7346.       physical device is not currently connected to this logical unit
  7347.  010b    reserved
  7348.  011b    target can't support a physical device on this logical unit
  7349.  1xxb    vendor specific
  7350.  
  7351. Bitfields for Future Domain SCSI version:
  7352. Bit(s)    Description    (Table 0134)
  7353.  0-2    ANSI-approved version
  7354.     000 device might or might not comply to ANSI standard
  7355.     001 device complies to ANSI SCSI-1
  7356.     010 device complies to ANSI SCSI-2
  7357.     other reserved
  7358.  3-5    ECMA version
  7359.  6-7    ISO version
  7360.  
  7361. Bitfields for Future Domain SCSI data format/capabilities:
  7362. Bit(s)    Description    (Table 0135)
  7363.  0-2    response data format
  7364.     000 information block is as specified in SCSI-1
  7365.     001 information block is as specified in CCS
  7366.     010 information block is as specified in SCSI-2
  7367.     other reserved
  7368.  4-5    reserved
  7369.  6    terminate I/O process supported
  7370.  7    asynchronous event notification supported
  7371.  
  7372. Bitfields for Future Domain SCSI device capabilities:
  7373. Bit(s)    Description    (Table 0136)
  7374.  0    device responds to RESET with a hard RESET
  7375.  1    tagged command queuing supported
  7376.  2    reserved
  7377.  3    linked commands supported
  7378.  4    synchronous data transfer supported
  7379.  5    16-transfers supported
  7380.  6    32-transfers supported
  7381.  7    relative addressing supported
  7382. --------B-1318-------------------------------
  7383. INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
  7384.     AH = 18h
  7385.     DL = drive number
  7386.     CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
  7387.     CL = sectors per track (bits 0-5)
  7388.          top 2 bits of highest cylinder number (bits 6,7)
  7389. Return: AH = status
  7390.         00h requested combination supported
  7391.         01h function not available
  7392.         0Ch not supported or drive type unknown
  7393.         80h there is no disk in the drive
  7394.     ES:DI -> 11-byte parameter table (see INT 1E)
  7395. SeeAlso: AH=05h,AH=07h,AH=17h
  7396. --------d-1318-------------------------------
  7397. INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
  7398.     AH = 18h
  7399.     DL = hard drive ID
  7400. Return: CF set on error
  7401.         AH = status code (see #0122 at AH=01h)
  7402.     CF clear if successful
  7403.         AX = 4321h (magic number)
  7404.         CX = controller family code (see #0137)
  7405.         ---if family code=0200h
  7406.         DH = number of exclusively ROM-controlled SCSI devices
  7407.         DL = canonical SCSI device number for specified drive
  7408.         ---if family code <> 0200h
  7409.         BH = number of exclusively ROM-controlled SCSI devices
  7410.         BL = canonical SCSI device number for specified drive
  7411. Notes:    also sets an internal flag (non-resettable) which prevents some
  7412.       controller messages from being displayed, allows writes to
  7413.       removable devices (use caution!), and enables the INT 13 interface
  7414.       for more than one drive (i.e. DL >= 81h) in at least some ROM
  7415.       versions
  7416.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7417.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7418. SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
  7419.  
  7420. (Table 0137)
  7421. Values for Future Domain SCSI controller family code:
  7422.  0200h    TMC-1680/? (ROM 3.0)
  7423.  0203h    TMC-1650/1660/1670/1680 (ROM 2.0)
  7424.  040Ah    TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
  7425.  050Dh    TMC-840/841/880/881 (ROM 5.2D)
  7426.  0700h    TMC-830/850/860/875/885 (ROM 7.0)
  7427. --------B-1319-------------------------------
  7428. INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
  7429.     AH = 19h
  7430.     DL = drive
  7431. Return: CF set on error
  7432.     CF clear if successful
  7433.     AH = status (see #0122 at AH=01h)
  7434. SeeAlso: AH=11h
  7435. --------d-1319-------------------------------
  7436. INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
  7437.     AH = 19h
  7438.     DL = hard drive ID
  7439. Return: CF set on error
  7440.         AH = status code (see #0122 at AH=01h)
  7441.     CF clear if successful
  7442.         AH = disk type (03h = fixed disk)
  7443.         CX:DX = number of 512-byte sectors
  7444. Notes:    sends SCSI Read Capacity command to get number of logical blocks and
  7445.       adjusts the result for 512-byte sectors
  7446.     displays either "Error in Read Capacity Command" or "nnn Bytes per
  7447.       sector" (nnn=256 or 512, the only sizes supported in the translation
  7448.       code)
  7449.     should probably be called when a removable device has its media changed
  7450.     returns the same values as AH=15h
  7451.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7452.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7453. SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
  7454. --------d-131A-------------------------------
  7455. INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
  7456.     AH = 1Ah
  7457.     AL = defect table entry count
  7458.     CL = format modifiers (see #0138)
  7459.     DL = drive (80h,81h)
  7460.     ES:BX -> defect table (see #0139), ignored if AL=00h
  7461. Return: CF set on error
  7462.     CF clear if successful
  7463.     AH = status (see #0122 at AH=01h)
  7464. Note:    if periodic interrupt selected, INT 15/AH=0Fh is called after each
  7465.       cylinder is formatted
  7466. SeeAlso: AH=07h,INT 15/AH=0Fh
  7467.  
  7468. Bitfields for ESDI format modifiers:
  7469. Bit(s)    Description    (Table 0138)
  7470.  4    generate periodic interrupt
  7471.  3    perform surface analysis
  7472.  2    update secondary defect map
  7473.  1    ignore secondary defect map
  7474.  0    ignore primary defect map
  7475.  
  7476. Format of defect table entry [array]:
  7477. Offset    Size    Description    (Table 0139)
  7478.  00h  3 BYTEs    relative sector address (little-endian)
  7479.  03h    BYTE    flags and defect count
  7480.         bit 7: last logical sector on track
  7481.         bit 6: first logical sector on track
  7482.         bit 5: last logical sector on cylinder
  7483.         bit 4: logical sectors are pushed onto next track
  7484.         bits 3-0: number of defects pushed from previous cylinder
  7485. --------d-131A-------------------------------
  7486. INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
  7487.     AH = 1Ah
  7488.     CH = track (bits 8,9 in high bits of CL)
  7489.     CL = sector (01h to number of sectors/track for drive)
  7490.     DH = head
  7491.     DL = hard drive ID
  7492. Return: CF set on error
  7493.     AH = status code (see #0122 at AH=01h)
  7494.     CX:DX = logical block number of last quickly-accessible block after
  7495.         given block
  7496. Notes:    sends SCSI Read Capacity command with the PMI bit set to obtain the
  7497.       logical block address of the last block after which a substantial
  7498.       delay in data transfer will be encountered (usually the last block
  7499.       on the current cylinder).  No translation to 512 byte sectors is
  7500.       performed on the result if data is stored on the disk in other than
  7501.       512 byte sectors.
  7502.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7503.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7504. SeeAlso: AH=15h,AH=19h"SCSI"
  7505. --------d-131B-------------------------------
  7506. INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
  7507.     AH = 1Bh
  7508.     AL = number of sectors to read
  7509.     DL = drive
  7510.     ES:BX -> buffer for manufacturing header (defect list)
  7511. Return: CF set on error
  7512.     CF clear if successful
  7513.     AH = status
  7514. Note:    manufacturing header format (Defect Map Record format) can be found
  7515.       in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
  7516.     the first sector read contains the manufacturing header with the number
  7517.       of defect entries and the beginning of the defect map; the remaining
  7518.       sectors contain the remainder of the defect map
  7519. --------d-131B-------------------------------
  7520. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
  7521.     AH = 1Bh
  7522.     DL = hard drive ID
  7523. Return: CF set on error
  7524.         AH = status code (see #0122 at AH=01h)
  7525.     CF clear if successful
  7526.         ES:BX -> SCSI disk information block (see #0140)
  7527. Notes:    also sets a non-resettable flag which prevents some controller messages
  7528.       from being displayed
  7529.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7530.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7531. SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
  7532.  
  7533. Format of Future Domain SCSI disk information block:
  7534. Offset    Size    Description    (Table 0140)
  7535.  00h    BYTE    drive physical information (see #0141)
  7536.  01h    WORD    translated number of cylinders
  7537.  03h    BYTE    translated number of heads
  7538.  04h    BYTE    translated number of sectors per track (17, 34, or 63)
  7539.  05h    BYTE    drive address
  7540.         bits 0-2: logical unit number
  7541.         bits 3-5: device number
  7542.  06h    BYTE    01h at initialization
  7543.  07h    BYTE    sense code byte 00h, or extended sense code byte 0Ch
  7544.  08h    BYTE    00h
  7545.  09h    BYTE    00h or extended sense code byte 02h (sense key)
  7546.  0Ah    BYTE    00h
  7547.  0Bh 10 BYTEs    copy of Command Descriptor Block (CDB)
  7548.  15h    DWORD    translated number of sectors on device
  7549.  
  7550. Bitfields for Future Domain SCSI device physical information:
  7551. Bit(s)    Description    (Table 0141)
  7552.  0    ???
  7553.  1    device uses parity
  7554.  2    256 bytes per sector instead of 512
  7555.  3    don't have capacity yet???
  7556.  4    disk is removable
  7557.  5    logical unit number is not present
  7558. --------d-131C-------------------------------
  7559. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
  7560.     AH = 1Ch
  7561.     DL = hard drive ID (any valid SCSI hard disk)
  7562. Return: CF set on error
  7563.         AH = status code (see #0122 at AH=01h)
  7564.     CF clear if successful
  7565.         ES:BX -> first byte of free RAM on controller
  7566. Notes:    the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
  7567.       to 1BFFh on-board the controller for storing drive information and
  7568.       controller status; ES:BX points to the first byte available for other
  7569.       uses
  7570.     ES contains the segment at which the controller resides; the
  7571.       controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
  7572. SeeAlso: AH=1Bh"SCSI"
  7573. --------d-131C-------------------------------
  7574. INT 13 U - ESDI FIXED DISK - ???
  7575.     AH = 1Ch
  7576.     AL = subfunction (01h-06h)
  7577.     DL = drive (80h,81h)
  7578.     ???
  7579. Return: ???
  7580. Note:    these functions perform a controller command 0612h without DMA
  7581. --------d-131C08-----------------------------
  7582. INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
  7583.     AX = 1C08h
  7584.     DL = drive (80h,81h)
  7585.     ES:BX -> buffer for Command Complete Status Block (see #0142)
  7586. Return: CF set on error
  7587.     CF clear if successful
  7588.     AH = status (see #0122 at AH=01h)
  7589. SeeAlso: AX=1C09h,AX=1C0Ah
  7590.  
  7591. Format of ESDI Command Complete Status Block:
  7592. Offset    Size    Description    (Table 0142)
  7593.  00h    BYTE    07h
  7594.  01h    BYTE    size of block in words (07h)
  7595.  02h    BYTE    command error code (see #0143)
  7596.  03h    BYTE    command status code (see #0144)
  7597.  04h    BYTE    device error code, group 1 (see #0145)
  7598.  05h    BYTE    device error flags, group 2 (see #0146)
  7599.  06h    WORD    number of unprocessed sectors due to abnormal termination
  7600.  08h    DWORD    last Relative Sector Address processed by command
  7601.  0Ch    WORD    number of sectors corrected by ECC codes
  7602.  
  7603. (Table 0143)
  7604. Values for ESDI command error code:
  7605.  00h    successful
  7606.  01h    parameter invalid
  7607.  02h    unknown function
  7608.  03h    unsupported command
  7609.  04h    command cancelled
  7610.  05h    unknown function
  7611.  06h    controller diagnostics failed
  7612.  07h    formatting failed
  7613.  08h    format error in primary map
  7614.  09h    format error in secondary map
  7615.  0Ah    diagnostic failure during formatting
  7616.  0Bh    warning: secondary map too large during formatting
  7617.  0Ch    warning: non-zero defect
  7618.  0Dh    system checksum error during formatting
  7619.  0Eh    warning: incompatible device
  7620.  0Fh    warning: push table overflowed
  7621.  10h    warning: more than 15 sectors pushed to next cylinder
  7622.  11h    internal hardware error
  7623.  12h    warning: errors found while verifying sectors
  7624.  13h    invalid device
  7625.  FFh    device error
  7626.  
  7627. (Table 0144)
  7628. Values for ESDI command status code:
  7629.  01h    successful
  7630.  03h    successful after ECC
  7631.  05h    successful after retries
  7632.  06h    format partially completed
  7633.  07h    successful after ECC and retries
  7634.  08h    command completed with warning (see #0143)
  7635.  09h    abort complete
  7636.  0Ah    reset complete
  7637.  0Bh    data transfer ready (no status block)
  7638.  0Ch    command completed with failure (see #0145,#0146)
  7639.  0Dh    DMA error
  7640.  0Eh    command block error (see #0143)
  7641.  0Fh    bad attention code
  7642.  
  7643. (Table 0145)
  7644. Values for ESDI device error code, group 1:
  7645.  00h    successful
  7646.  01h    seek fault detected by device
  7647.  02h    interface fault
  7648.  03h    sector ID not found
  7649.  04h    disk not formatted
  7650.  05h    unrecoverable ECC error
  7651.  06h    ECC error in sector ID
  7652.  07h    invalid relative sector address
  7653.  08h    timeout
  7654.  09h    sector defective
  7655.  0Ah    disk changed (removable media)
  7656.  0Bh    selection error
  7657.  0Ch    write protected (removable media)
  7658.  0Dh    write fault
  7659.  0Eh    read fault
  7660.  0Fh    no index or sector pulse
  7661.  10h    device not ready
  7662.  11h    seek error detected by adapter
  7663.  12h    bad format
  7664.  13h    volume overflow
  7665.  14h    data address mark not found
  7666.  15h    sector ID not found
  7667.  16h    missing device configuration data
  7668.  17h    first/last relative sector flags missing
  7669.  18h    track empty
  7670.  81h    timeout while waiting for stop
  7671.  82h    timeout while waiting for end of data transfer
  7672.  84h    stopped awaiting data transfer during formatting
  7673.  85h    timeout while waiting for head switch
  7674.  86h    timeout while awaiting DMA completion
  7675.  
  7676. Bitfields for ESDI device error flags, group 2:
  7677. Bit(s)    Description    (Table 0146)
  7678.  7-5    unused
  7679.  4    ready
  7680.  3    selected
  7681.  2    write fault
  7682.  1    on track 0
  7683.  0    seek/command complete
  7684. --------d-131C09-----------------------------
  7685. INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
  7686.     AX = 1C09h
  7687.     DL = drive (80h,81h)
  7688.     ES:BX -> buffer for Device Status Block (see #0147)
  7689. Return: CF set on error
  7690.     CF clear if successful
  7691.     AH = status (see #0122 at AH=01h)
  7692. SeeAlso: AX=1C08h,AX=1C0Ah
  7693.  
  7694. Format of ESDI Device Status Block:
  7695. Offset    Size    Description    (Table 0147)
  7696.  00h    BYTE    08h
  7697.  01h    BYTE    number of words in block (09h)
  7698.  02h    BYTE    error flags
  7699.  03h    BYTE    unused
  7700.  04h    BYTE    command error code (see #0143)
  7701.  05h    BYTE    command status code (see #0144)
  7702.  06h    WORD    ESDI standard status
  7703.  08h  5 WORDs    ESDI vendor-specific status codes
  7704. --------d-131C0A-----------------------------
  7705. INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
  7706.     AX = 1C0Ah
  7707.     DL = drive (80h,81h)
  7708.     ES:BX -> buffer for Drive Configuration Status Block (see #0148)
  7709. Return: CF set on error
  7710.     CF clear if successful
  7711.     AH = status (see #0122 at AH=01h)
  7712. Note:    device configuration format can be found in IBM ESDI Fixed Disk Drive
  7713.       Adapter/A Technical Reference
  7714. SeeAlso: AX=1C08h,AX=1C0Bh,AX=1C0Ch
  7715.  
  7716. Format of ESDI Drive Configuration Status Block:
  7717. Offset    Size    Description    (Table 0148)
  7718.  00h    BYTE    09h
  7719.  01h    BYTE    number of words in block (06h)
  7720.  02h    BYTE    flags
  7721.  03h    BYTE    number of spare sectors per cylinder
  7722.  04h    DWORD    total number of usable sectors
  7723.  08h    WORD    total number of cylinders
  7724.  0Ah    BYTE    tracks per cylinder
  7725.  0Bh    BYTE    sectors per track
  7726. --------d-131C0B-----------------------------
  7727. INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
  7728.     AX = 1C0Bh
  7729.     ES:BX -> buffer for Controller Configuration Status Block (see #0149)
  7730. Return: CF set on error
  7731.     CF clear if successful
  7732.     AH = status (see #0122 at AH=01h)
  7733. SeeAlso: AX=1C0Ch
  7734.  
  7735. Format of ESDI Controller Configuration Status Block:
  7736. Offset    Size    Description    (Table 0149)
  7737.  00h    BYTE    E9h
  7738.  01h    BYTE    number of words in block (06h)
  7739.  02h    WORD    unused (0000h)
  7740.  04h    DWORD    controller microcode revision level
  7741.  08h  2 WORDs    unused (0000h)
  7742. --------d-131C0C-----------------------------
  7743. INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
  7744.     AX = 1C0Ch
  7745.     ES:BX -> buffer for POS Information Status Block (see #0150)
  7746. Return: CF set on error
  7747.     CF clear if successful
  7748.     AH = status (see #0122 at AH=01h)
  7749. SeeAlso: AX=1C0Bh
  7750.  
  7751. Format of ESDI POS Information Status Block:
  7752. Offset    Size    Description    (Table 0150)
  7753.  00h    BYTE    EAh
  7754.  01h    BYTE    number of words in block (05h)
  7755.  02h    WORD    magic value FFDDh
  7756.  04h    BYTE    POS register 3
  7757.  05h    BYTE    POS register 2
  7758.  06h    BYTE    POS register 5 (unused, FFh)
  7759.  07h    BYTE    POS register 4 (unused, FFh)
  7760.  08h    BYTE    POS register 7 (unused, FFh)
  7761.  09h    BYTE    POS register 6 (unused, FFh)
  7762. --------d-131C0D-----------------------------
  7763. INT 13 U - ESDI FIXED DISK - ???
  7764.     AX = 1C0Dh
  7765.     DL = drive (80h,81h)
  7766.     ???
  7767. Return: ???
  7768. Note:    invokes controller command 0614h without DMA
  7769. SeeAlso: AH=1Ch"ESDI",AX=1C0Fh
  7770. --------d-131C0E-----------------------------
  7771. INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
  7772.     AX = 1C0Eh
  7773.     CH = low 8 bits of cylinder number
  7774.     CL = sector number, high two bits of cylinder number in bits 6 and 7
  7775.     DH = head number
  7776.     DL = drive number (80h,81h)
  7777.     ES:BX -> ABA number
  7778. Return: CF set on error
  7779.     CF clear if successful
  7780.     AH = status (see #0122 at AH=01h)
  7781. Note:    ABA (absolute block address) format can be found in IBM ESDI Adapter
  7782.       Technical Reference by using its Device Configuration Status Block
  7783. --------d-131C0F-----------------------------
  7784. INT 13 U - ESDI FIXED DISK - ???
  7785.     AX = 1C0Fh
  7786.     DL = drive (80h,81h)
  7787.     ???
  7788. Return: ???
  7789. Note:    invokes controller command 0614h without DMA
  7790. SeeAlso: AH=1Ch"ESDI",AX=1C0Dh,AX=1C12h
  7791. --------d-131C12-----------------------------
  7792. INT 13 U - ESDI FIXED DISK - ???
  7793.     AX = 1C12h
  7794.     DL = drive (80h,81h)
  7795.     ???
  7796. Return: ???
  7797. Note:    invokes controller command 0612h without DMA
  7798. SeeAlso: AH=1Ch"ESDI",AX=1C0Fh
  7799. --------c-131D-------------------------------
  7800. INT 13 - IBMCACHE.SYS - CACHE STATUS
  7801.     AH = 1Dh
  7802.     AL = subfunction
  7803.         01h get status record
  7804.         DL = drive???
  7805.         Return: ES:BX -> status record (see #0151)
  7806.             CF set on error
  7807.                 AH = error code
  7808.         02h set cache status
  7809.         ES:BX -> status record (see #0151)
  7810.         DL = drive???
  7811.         Return: CF set on error
  7812.  
  7813. Format of IBMCACHE.SYS status record:
  7814. Offset    Size    Description    (Table 0151)
  7815.  00h    DWORD    total number of read requests
  7816.  04h    DWORD    total number of hits
  7817.  08h    DWORD    number of physical disk reads
  7818.  0Ch    DWORD    total number of sectors requested by physical disk reads
  7819.  10h  6 BYTEs    ???
  7820.  16h    DWORD    pointer to start of error list (see #0152)
  7821.  1Ah    DWORD    pointer to end of error list
  7822.  1Eh    WORD    ???
  7823.  20h    BYTE    using extended memory if nonzero
  7824.  21h    BYTE    ???
  7825.  22h  4 BYTEs    ASCII version number
  7826.  26h    WORD    cache size in KB
  7827.  28h    WORD    sectors per page
  7828.  
  7829. Format of IBMCACHE.SYS error list:
  7830. Offset    Size    Description    (Table 0152)
  7831.  00h    DWORD    relative block address of bad page
  7832.  04h    BYTE    drive
  7833.  05h    BYTE    sector bit-map
  7834.  06h    WORD    next error
  7835. --------d-131F-------------------------------
  7836. INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
  7837.     AH = 1Fh
  7838.     AL = subfunction
  7839.         00h allow media removal
  7840.         01h prevent media removal (lock door)
  7841.     DL = drive ID (bit 7 set for hard disks)
  7842. Return:    CF clear if successful
  7843.         AH = 00h
  7844.     CF set on error
  7845.         AH = error code
  7846.         00h successful
  7847.         01h invalid function request
  7848.         80h timeout
  7849.         DDh media change requested
  7850. SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=59h"SyQuest"
  7851. --------d-1320-------------------------------
  7852. INT 13 - DISK - ??? (Western Digital "Super BIOS")
  7853.     AH = 20h
  7854.     ???
  7855. Return: ???
  7856. Notes:    returns some kind of status related to whether the drive contains its
  7857.       default media type
  7858.     QEMM v6.00 calls INT 13/AX=2000h/DL=81h in some cases
  7859. --------b-1320-------------------------------
  7860. INT 13 U - Compaq DESKPRO/i - GET CURRENT MEDIA FORMAT
  7861.     AH = 20h
  7862.     DL = drive number (00h,01h)
  7863. Return: CF clear if successful
  7864.         AL = media type (see #0153)
  7865.     CF set on error
  7866.         AH = error code
  7867.         31h no such drive
  7868.         32h incorrect drive type stored in CMOS
  7869. Note:    this function is supported by the 3/8/93 ROM BIOS, but only partially
  7870.       (AL is always 00h when successful) by the 8/3/93 version
  7871.  
  7872. (Table 0153)
  7873. Values for Compaq diskette media type:
  7874.  03h    720K
  7875.  04h    1.44M
  7876.  06h    2.88M
  7877.  0Ch    360K
  7878.  0Dh    1.2M
  7879.  0Eh    ???
  7880.  0Fh    ??? (1024-byte sectors)
  7881. --------c-1320-------------------------------
  7882. INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
  7883.     AH = 20h
  7884.     AL = drive (00h = A:, etc. or 7Fh for all removable drives???
  7885.                    or FFh for all drives)
  7886. Return: AX = status (0000h successful)
  7887. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7888.       Associates, Inc.
  7889. Desc:    flush any dirty buffers for the specified drive(s) and then discard
  7890.       those sector buffers
  7891. SeeAlso: AH=21h"QUICKCACHE",AH=22h"QUICKCACHE",AH=28h
  7892. --------d-1321-------------------------------
  7893. INT 13 - HARD DISK - PS/1 and newer PS/2 - READ MULTIPLE DISK SECTORS
  7894.     AH = 21h
  7895.     AL = number of sectors to write
  7896.     CH = low byte of 12-bit cylinder number
  7897.     CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
  7898.     DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
  7899.     DL = drive number (80h,81h)
  7900.     ES:BX -> buffer for data to be read
  7901. Return: CF clear if successful
  7902.         ES:BX buffer filled
  7903.     CF set on error
  7904.     AH = status (see #0122 at AH=01h)
  7905. Desc:    read from the disk using the Multiple Block mode available on newer
  7906.       IDE drives and some hard disk controllers, which generates an
  7907.       interrupt only after the end of transferring a group of sectors
  7908.       rather than after each sector
  7909. Notes:    must call AH=24h"PS/1" before using this function
  7910.     input values in CL and DH are not range-checked
  7911.     the byte at address 0040h:0074h is set to the status of the operation
  7912. SeeAlso: AH=02h,AH=22h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
  7913. --------c-1321-------------------------------
  7914. INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
  7915.     AH = 21h
  7916. Return: AX = status (0000h successful)
  7917. Desc:    immediately write all dirty sectors back to disk
  7918. SeeAlso: AH=25h"QUICKCACHE",AH=2Eh,AH=2Fh
  7919. --------d-1322-------------------------------
  7920. INT 13 - HARD DISK - PS/1 and newer PS/2 - WRITE MULTIPLE DISK SECTORS
  7921.     AH = 22h
  7922.     AL = number of sectors to write
  7923.     CH = low byte of 12-bit cylinder number
  7924.     CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
  7925.     DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
  7926.     DL = drive number (80h,81h)
  7927.     ES:BX -> buffer containing data to be written
  7928. Return: CF clear if successful
  7929.     CF set on error
  7930.     AH = status (see #0122 at AH=01h)
  7931. Desc:    write to the disk using the Multiple Block mode available on newer
  7932.       IDE drives and some hard disk controllers, which generates an
  7933.       interrupt only after the end of transferring a group of sectors
  7934.       rather than after each sector
  7935. Notes:    must call AH=24h"PS/1" before using this function
  7936.     input values in CL and DH are not range-checked
  7937.     the byte at address 0040h:0074h is set to the status of the operation
  7938. SeeAlso: AH=03h,AH=21h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
  7939. --------c-1322-------------------------------
  7940. INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
  7941.     AH = 22h
  7942.     AL = new state (00h disabled, 01h enabled)
  7943. Return: AX = status (0000h successful)
  7944. Note:    enables/disables caching of all drives
  7945. SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
  7946. --------d-1323-------------------------------
  7947. INT 13 U - HARD DISK - PS/1 and newer PS/2 - SET CONTROLLER FEATURES REGISTER
  7948.     AH = 23h
  7949.     AL = feature number (see #0154)
  7950.     DL = drive number (80h,81h)
  7951.     ???
  7952. Return: CF clear if successful
  7953.     CF set on error
  7954.     AH = status (see #0122 at AH=01h)
  7955. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=24h"PS/1",AH=25h"PS/1"
  7956.  
  7957. (Table 0154)
  7958. Values for PS/1 hard disk feature number:
  7959.  01h    select 8-bit data transfers instead of 16-bit
  7960.  02h    enable write cache
  7961.  22h    Write Same, user-specified area
  7962.  33h    disable retries
  7963.  44h    set number of ECC bytes for read long/write long (see AH=0Ah,AH=0Bh)
  7964.  54h    set cache segments
  7965.  55h    disable lookahead
  7966.  66h    disable reverting to power-on defaults
  7967.  77h    disable error correctioni
  7968.  81h    select 16-bit data transfers (default)
  7969.  82h    disable write cache
  7970.  88h    enable error correction (default)
  7971.  99h    enable retries (default)
  7972.  AAh    enable lookahead
  7973.  BBh    set ECC length for read long/write long to four bytes
  7974.  CCh    enable reverting to power-on defaults
  7975.  DDh    Write Same, entire disk
  7976. --------c-1323-------------------------------
  7977. INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
  7978.     AH = 23h
  7979. Return: AX = status (0000h successful)
  7980.     ES = segment of ??? data
  7981. --------d-1324-------------------------------
  7982. INT 13 - HARD DISK - PS/1 and newer PS/2 - SET MULTIPLE MODE
  7983.     AH = 24h
  7984.     AL = number of sectors per block (2,4,8,16)
  7985.     DL = drive number (80h,81h)
  7986. Return: CF clear if successful
  7987.     CF set onerror
  7988.     AH = status (see #0122 at AH=01h)
  7989. Desc:    specify how many sectors the controller should transfer as a group
  7990.       between operation-complete interrupts when using the Read Multiple
  7991.       and Write Multiple functions (AH=21h,AH=22h)
  7992. Notes:    set the number of sectors to 0 to disable multiple-transfer mode
  7993.     the maximum value for the block size depends on the fixed disk
  7994.       drive type.  The value is stored in byte 15h of the fixed disk
  7995.       drive parameter table that is created by POST.
  7996.     the byte at address 0040h:0074h is set to status of operation.
  7997. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=23h"PS/1",AH=25h"PS/1"
  7998. --------c-1324-------------------------------
  7999. INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
  8000.     AH = 24h
  8001.     BX = new number of sector buffers in cache
  8002. Return: AX = status
  8003.         0000h successful
  8004.         0001h failed--size adjusted
  8005.         8000h cache cannot be resized while enabled
  8006. SeeAlso: AH=36h
  8007. --------d-1325-------------------------------
  8008. INT 13 - HARD DISK - PS/1 and newer PS/2 - IDENTIFY DRIVE
  8009.     AH = 25h
  8010.     DL = drive number (80h,81h)
  8011.     ES:BX-> 512 byte buffer for reply packet
  8012. Return:    CF clear if successful
  8013.     CF set on error
  8014.     AH = status (see #0122 at AH=01h)
  8015.     buffer filled with ATA/IDE-style drive information block
  8016. Desc:    retrieves the 256 words of drive data stored on an IDE hard disk
  8017. Note:    the byte at address 0040h:0074h is set to the status of the operation
  8018. SeeAlso: AH=23h"PS/1"
  8019.  
  8020. Format of drive information block:
  8021. Offset    Size    Description    (Table 0155)
  8022.  00h    WORD    general drive configuration (see #0156)
  8023.  02h    WORD    number of cylinders
  8024.  04h    WORD    reserved
  8025.  06h    WORD    number of heads
  8026.  08h    WORD    number of unformatted bytes per track
  8027.  0Ah    WORD    number of unformatted bytes per sector
  8028.  0Ch    WORD    number of sectors per track
  8029.  0Eh  6 BYTEs    vendor unique
  8030.  14h 20 BYTEs    serial number in ASCII, 0000h=not specified)
  8031.  28h    WORD    buffer type
  8032.  2Ah    WORD    buffer size in 512 byte increments (0000h=not specified)
  8033.  2Ch    WORD    number of ECC bytes passed on Read/Write Long cmds
  8034.         0000h = not specified
  8035.  2Eh  8 BYTEs    firmware revision in ASCII, 0000h=not specified
  8036.  36h 40 BYTEs    model number in ASCII, 0000h=not specified
  8037.  5Eh    WORD    bits 15-8  Vendor Unique
  8038.         bits 7-0  00h = Read/Write Multiple commands not implemented
  8039.               xxh = Maximum number of sectors that can be
  8040.               transferred per interrupt on Read and Write
  8041.               Multiple commands
  8042.  60h    WORD    0000h = cannot perform doubleword I/O
  8043.         0001h = can perform doubleword I/O
  8044.  62h    WORD    capabilities
  8045.         bit 15-9  0=reserved
  8046.         bit 8  1=DMA Supported
  8047.         bit 7-0     Vendor Unique
  8048.  64h    WORD    reserved
  8049.  66h    WORD    bits 15-8 PIO data transfer cycle timing mode
  8050.         bits 7-0  Vendor Unique
  8051.  68h    WORD    bits 15-8 DMA data transfer cycle timing mode
  8052.         bits 7-0  Vendor Unique
  8053.  6Ah    WORD    bits 15-1 reserved
  8054.         bit 0    1=the fields reported in tranlation mode are valid
  8055.             0=the fields reported in translation mode may be valid
  8056.  6Ch    WORD    number of current cylinders
  8057.  6Eh    WORD    number of current heads
  8058.  70h    WORD    number of current sectors per track
  8059.  72h    DWORD    current capacity in sectors
  8060.  76h    WORD    reserved
  8061.  78h 136 BYTEs    not defined by ATA spec 2.6
  8062. 100h 64 BYTEs    vendor unique
  8063. 140h 96 BYTEs    reserved
  8064. Note:    the above description is as in the ATA (AT Attachment) Specification.
  8065.  
  8066. Bitfields for general drive configuration:
  8067. Bit(s)    Description    (Table 0156)
  8068.  15    0   reserved for non-magnetic drives
  8069.  14    format speed tolerance gap required
  8070.  13    track offset option available
  8071.  12    data strobe offset option available
  8072.  11    rotational speed tolerance is > 0.5%
  8073.  10    disk transfer rate > 10 Mbs
  8074.  9    disk transfer rate > 5Mbs but <= 10Mbs
  8075.  8    disk transfer rate <= 5Mbs
  8076.  7    removable cartridge drive
  8077.  6    fixed drive
  8078.  5    spindle motor control option implemented
  8079.  4    head switch time > 15 usec
  8080.  3    not MFM encoded
  8081.  2    soft sectored
  8082.  1    hard sectored
  8083.  0    reserved (0)
  8084. --------c-1325-------------------------------
  8085. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
  8086.     AH = 25h
  8087.     BX = interval
  8088. Return: AX = status (0000h successful)
  8089. Desc:    specify how often the cache should write dirty buffers to disk when
  8090.       buffered writes are enabled
  8091. SeeAlso: AH=21h"QUICKCACHE",AH=2Ch,AH=2Eh
  8092. --------c-1326-------------------------------
  8093. INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
  8094.     AH = 26h
  8095. Return: AX = status
  8096.         0000h successful
  8097.         0001h-00FFh interrupt vector which was hooked by another TSR
  8098. SeeAlso: AH=27h
  8099. --------c-1327--BX0000-----------------------
  8100. INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
  8101.     AH = 27h
  8102.     BX = 0000h
  8103. Return: AX = 0000h if installed
  8104.     BX nonzero if installed
  8105.         BH = major version
  8106.         BL = binary minor version
  8107. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  8108.       Associates, Inc.
  8109. SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
  8110. --------c-1328-------------------------------
  8111. INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
  8112.     AH = 28h
  8113.     AL = new state (00h disabled, 01h enabled)
  8114. Return: AX = status (0000h successful)
  8115. SeeAlso: AH=20h"QUICKCACHE"
  8116. --------c-1329-------------------------------
  8117. INT 13 U - QUICKCACHE II v4.20 - NOP
  8118.     AH = 29h
  8119. Return: AX = 0000h
  8120. --------c-132A-------------------------------
  8121. INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
  8122.     AH = 2Ah
  8123.     AL = buffer size (1-30)
  8124. Return: AX = status (0000h successful)
  8125. Desc:    specify the number of cache sector buffers to dedicate to buffered read
  8126.       and write operations
  8127. SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
  8128. --------c-132B-------------------------------
  8129. INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
  8130.     AH = 2Bh
  8131.     AL = new state (00h disabled, 01h enabled)
  8132. Return: AX = status (0000h successful)
  8133. --------c-132C-------------------------------
  8134. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
  8135.     AH = 2Ch
  8136.     AL = new state (00h disabled, 01h enabled)
  8137. Return: AX = status (0000h successful)
  8138. Desc:    specify whether the cache should delay disk writes
  8139. Note:    this function enables or disables delayed writes for all drives; use
  8140.       AH=38h to change a single drive
  8141. SeeAlso: AH=25h"QUICKCACHE",AH=2Dh,AH=2Eh,AH=38h
  8142. --------c-132D-------------------------------
  8143. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
  8144.     AH = 2Dh
  8145.     AL = new state (00h disabled, 01h enabled)
  8146. Return: AX = status (0000h successful)
  8147. Desc:    specify whether the cache should attempt to read ahead of actual
  8148.       requests
  8149. Note:    this function enables or disables read-ahead for all drives; use AH=37h
  8150.       to change a single drive
  8151. SeeAlso: AH=2Ch,AH=37h
  8152. --------c-132E-------------------------------
  8153. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
  8154.     AH = 2Eh
  8155.     BX = flush count
  8156. Return: AX = status (0000h successful)
  8157. Desc:    specify how many dirty sectors the cache should write after each flush
  8158.       interval (see AH=25h"QUICKCACHE") when buffered writes are enabled
  8159. SeeAlso: AH=21h"QUICKCACHE",AH=25h"QUICKCACHE",AH=2Ch
  8160. --------c-132F-------------------------------
  8161. INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
  8162.     AH = 2Fh
  8163. Return: AX = status (0000h successful)
  8164. Desc:    immediately flush up to "flushcount" dirty sectors to disk as if the
  8165.       flush interval had expired
  8166. SeeAlso: AH=21h"QUICKCACHE"
  8167. --------c-1330-------------------------------
  8168. INT 13 u - QUICKCACHE II v4.20 - GET INFO
  8169.     AH = 30h
  8170.     AL = what to get
  8171.         00h system info (see #0157)
  8172.         01h drive info (see #0158)
  8173.         02h access frequency (array of 30 words)
  8174.         03h drive index
  8175.         (array of 32 bytes indicating BIOS drive for DOS drive)
  8176.     DS:DX -> buffer for info
  8177. Return: AX = status (0000h successful, 8000h invalid info specifier)
  8178. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  8179.       Associates, Inc.
  8180.  
  8181. Format of QUICKCACHE II system info:
  8182. Offset    Size    Description    (Table 0157)
  8183.  00h    BYTE    flag: cache enabled
  8184.  01h    BYTE    flag: buffered writes enabled
  8185.  02h    BYTE    flag: buffered reads enabled
  8186.  03h    BYTE    flag: sounds enabled
  8187.  04h    BYTE    flag: autodismount enabled
  8188.  05h    BYTE    ???
  8189.  06h    BYTE    flag: ???
  8190.  07h    BYTE    flag: ???
  8191.  08h    BYTE    flag: "em_assigned"
  8192.  09h    BYTE    flag: emulated EMS
  8193.  0Ah    BYTE    single sector bonus
  8194.  0Bh    BYTE    "sticky_max"
  8195.  0Ch    BYTE    write sector bonus
  8196.  0Dh    BYTE    bonus threshold
  8197.  0Eh    WORD    flush interval
  8198.  10h    WORD    flush count
  8199.  12h    WORD    reserve pool size
  8200.  14h    WORD    remaining space in reserve pool
  8201.  16h    WORD    required free memory
  8202.  18h    WORD    total cache sectors
  8203.  1Ah    WORD    dirty cache sectors
  8204.  1Ch    BYTE    trace buffer size
  8205.  1Dh    BYTE    reserved (padding)
  8206.  
  8207. Format of QUICKCACHE II drive info [16-element array, one element]:
  8208. Offset    Size    Description    (Table 0158)
  8209.  00h    BYTE    DOS drive number
  8210.  01h    BYTE    BIOS drive number
  8211.  02h    BYTE    maximum sector number
  8212.  03h    BYTE    maximum head number
  8213.  04h    BYTE    read buffer size
  8214.  05h    BYTE    write buffer size
  8215.  06h    BYTE    last status
  8216.  07h    BYTE    flag: enabled
  8217.  08h    BYTE    flag: buffered write enabled
  8218.  09h    BYTE    flag: buffered read enabled
  8219.  0Ah    BYTE    flag: in use (drive info is valid)
  8220.  0Bh    BYTE    flag: cylinder flush
  8221.  0Ch    BYTE    reserved (padding)
  8222.  0Dh    BYTE    sectors per track
  8223.  0Eh    WORD    sector size
  8224.  10h    WORD    sectors assigned
  8225.  12h    WORD    dirty sectors
  8226.  14h    WORD    reserved sectors
  8227.  16h    WORD    number of read errors
  8228.  18h    WORD    number of write errors
  8229.  1Ah    DWORD    "rio_count"
  8230.  1Eh    DWORD    number of cache misses
  8231.  22h    DWORD    "wio_count"
  8232.  26h    DWORD    "dio_count"
  8233. --------c-1331-------------------------------
  8234. INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
  8235.     AH = 31h
  8236.     BX = number of paragraphs of conventional memory to reserve for apps
  8237. Return: AX = status (0000h successful)
  8238. --------c-1332-------------------------------
  8239. INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
  8240.     AH = 32h
  8241.     AL = drive number (00h=A:)
  8242. Return: AX = status (0000h successful)
  8243. SeeAlso: AH=22h"QUICKCACHE",AH=33h
  8244. --------c-1333-------------------------------
  8245. INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
  8246.     AH = 33h
  8247.     AL = drive number (00h=A:)
  8248. Return: AX = status (0000h successful)
  8249. SeeAlso: AH=22h"QUICKCACHE",AH=32h
  8250. --------c-1334-------------------------------
  8251. INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
  8252.     AH = 34h
  8253.     AL = function
  8254.         00h end sector locking/unlocking
  8255.         01h lock all accessed sectors into cache
  8256.         02h unlock all accessed sectors and discard from cache
  8257. Return: AX = status (0000h successful)
  8258. SeeAlso: AH=20h"QUICKCACHE",AH=35h
  8259. --------c-1335-------------------------------
  8260. INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
  8261.     AH = 35h
  8262.     BX = number of sectors in lock pool
  8263. Return: AX = status (0000h successful)
  8264. Desc:    specify the number of cache sector buffers which may be dedicated to
  8265.       data locked into the cache
  8266. SeeAlso: AH=34h
  8267. --------c-1336-------------------------------
  8268. INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
  8269.     AH = 36h
  8270.     AL = new size of trace buffer
  8271. Return: AX = status (0000h successful)
  8272. Note:    called with AL=05h during an INT 13/AH=24h"QUICKCACHE" call
  8273. SeeAlso: AH=24h"QUICKCACHE"
  8274. --------c-1337-------------------------------
  8275. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
  8276.     AH = 37h
  8277.     AL = new state (00h disabled, else enabled)
  8278.     DL = drive number (00h = A:)
  8279. Return: AX = status (0000h successful)
  8280. SeeAlso: AH=2Dh,AH=38h
  8281. --------c-1338-------------------------------
  8282. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
  8283.     AH = 38h
  8284.     AL = new state (00h disabled, else enabled)
  8285.     DL = drive number (00h = A:)
  8286. Return: AX = status (0000h successful)
  8287. SeeAlso: AH=2Ch,AH=37h
  8288. --------c-1339-------------------------------
  8289. INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
  8290.     AH = 39h
  8291.     AL = new size of read buffer
  8292.     DL = drive number (00h = A:)
  8293. Return: AX = status (0000h successful)
  8294. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  8295.       Associates, Inc.
  8296. SeeAlso: AH=2Ah,AH=3Ah
  8297. --------c-133A-------------------------------
  8298. INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
  8299.     AH = 3Ah
  8300.     AL = new size of write buffer
  8301.     DL = drive number (00h = A:)
  8302. Return: AX = status (0000h successful)
  8303. SeeAlso: AH=2Ah,AH=39h
  8304. --------c-133B-------------------------------
  8305. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  8306.     AH = 3Bh
  8307.     AL = new state of ??? (01h enabled, else disabled)
  8308. Return: AX = status (0000h successful)
  8309. Note:    is affected by the flag reported at offset 05h of the system info
  8310.       returned by AH=30h, and sets the flag at offset 06h
  8311. SeeAlso: AH=3Ch
  8312. --------c-133C-------------------------------
  8313. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  8314.     AH = 3Ch
  8315.     AL = new state of ??? (01h enabled, else disabled)
  8316. Return: AX = status (0000h successful)
  8317. Note:    is affected by the flag reported at offset 05h of the system info
  8318.       returned by AH=30h, and sets the flag at offset 07h
  8319. SeeAlso: AH=3Bh
  8320. --------c-133D-------------------------------
  8321. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
  8322.     AH = 3Dh
  8323.     AL = new state (01h enabled, else disabled)
  8324.     DL = drive number (00h = A:)
  8325. Return: AX = status (0000h successful)
  8326. --------c-133E-------------------------------
  8327. INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
  8328.     AH = 3Eh
  8329.     AL = new value for bonus
  8330. Return: AX = status (0000h successful)
  8331. Desc:    specify the bonus score to give to single-sector transfers in order to
  8332.       keep those sectors in the cache longer
  8333. --------c-133F-------------------------------
  8334. INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
  8335.     AH = 3Fh
  8336.     AL = new value for bonus threshold
  8337. Return: AX = status (0000h successful)
  8338. --------c-1340-------------------------------
  8339. INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
  8340.     AH = 40h
  8341.     AL = new value for "sticky_max"
  8342. Return: AX = status (0000h successful)
  8343. SeeAlso: AH=41h"QUICKCACHE"
  8344. --------d-1341--BX55AA-----------------------
  8345. INT 13 - Phoenix Enhanced Disk Drive Specification - INSTALLATION CHECK
  8346.     AH = 41h
  8347.     BX = 55AAh
  8348.     DL = drive (80h-FFh)
  8349. Return: CF clear if successful
  8350.     CF set on error
  8351.     BX = AA55h if installed
  8352.        AH = major version of extensions (20h = 2.0)
  8353.        AL = internal use
  8354.        CX = API support bitmap (see #0159)
  8355.        DH = extension version
  8356. SeeAlso: AH=48h
  8357.  
  8358. Bitfields for Enhanced Disk Drive Spec API support bitmap:
  8359. Bit(s)    Description    (Table 0159)
  8360.  2    extended drive parameter table is valid (see #0160,#0162)
  8361.  3-15    reserved (0)
  8362. --------c-1341-------------------------------
  8363. INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
  8364.     AH = 41h
  8365.     AL = direction
  8366.         01h save to file
  8367.         else restore from file
  8368.     ES:DI -> 1024-byte buffer for ???
  8369. Return: AX = status (0000h successful, 8000h failed)
  8370. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  8371.       Associates, Inc.
  8372. SeeAlso: AH=40h"QUICKCACHE"
  8373. --------N-134257DX1234-----------------------
  8374. INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
  8375.     AX = 4257h ("BW")
  8376.     DX = 1234h
  8377. Return: BX = 414Ch if installed
  8378. Program: BWLPD is the printer daemon from the BW-NFS package
  8379. SeeAlso: INT 62/AH=00h"ETHDEV"
  8380. --------d-1348-------------------------------
  8381. INT 13 - Phoenix Enhanced Disk Drive Specification - GET DRIVE PARAMETERS
  8382.     AH = 48h
  8383.     DL = drive (80h-FFh)
  8384.     DS:SI -> buffer for drive parameters (see #0160)
  8385. Return: CF clear if successful
  8386.         DS:SI buffer filled
  8387.     CF set on error
  8388. SeeAlso: AH=41h
  8389.  
  8390. Format of Enhanced Disk Drive Spec drive parameters:
  8391. Offset    Size    Description    (Table 0160)
  8392.  00h    WORD    001Eh (size of buffer)
  8393.  02h    WORD    information flags
  8394.  04h    DWORD    number of cylinders on drive
  8395.  08h    DWORD    number of heads on drive
  8396.  0Ch    DWORD    number of sectors per track
  8397.  10h    QWORD    total number of sectors on drive
  8398.  18h    WORD    bytes per sector
  8399.  1Ah    DWORD    -> configuration parameters (see #0162)
  8400.         FFFFh:FFFFh if not available
  8401. SeeAlso: #1725
  8402.  
  8403. Format of Enhanced Disk Drive Spec translated drive parameter table:
  8404. Offset    Size    Description    (Table 0161)
  8405.  00h    WORD    number of cylinders
  8406.  02h    BYTE    number of heads
  8407.  03h    BYTE    A0h (signature indicating translated table)
  8408.  04h    BYTE    number of physical sectors per track
  8409.  05h    WORD    starting write precompensation cylinder number
  8410.  07h    BYTE    reserved
  8411.  08h    BYTE    control byte (see #1727 at INT 41)
  8412.  09h    WORD    number of physical cylinders
  8413.  0Bh    BYTE    number of physical heads
  8414.  0Ch    WORD    cylinder number of landing zone
  8415.  0Eh    BYTE    number of logical sectors per track
  8416.  0Fh    BYTE    checksum
  8417. SeeAlso: #0162,#1725
  8418.  
  8419. Format of Enhanced Disk Drive Spec fixed disk parameter table extension:
  8420. Offset    Size    Description    (Table 0162)
  8421.  00h    WORD    physical I/O port base address
  8422.  02h    WORD    disk-drive control port address
  8423.  04h    BYTE    flags
  8424.         bit 7: reserved (1)
  8425.         bit 6: LBA enabled
  8426.         bit 5: reserved (1)
  8427.         bit 4: drive is slave
  8428.         bit 3-0 reserved (0)
  8429.  05h    BYTE    proprietary information
  8430.         bits 7-4 reserved (0)
  8431.         bits 3-0: Phoenix proprietary (used by BIOS)
  8432.  06h    BYTE    IRQ (bits 3-0; bits 7-4 reserved and must be 0)
  8433.  07h    BYTE    sector count for multi-sector transfers
  8434.  08h    BYTE    DMA control
  8435.         bits 7-4: DMA type
  8436.         bits 3-0: DMA channel
  8437.  09h    BYTE    programmed I/O control
  8438.         bits 7-4: reserved (0)
  8439.         bits 3-0: PIO type (1,2, or 3)
  8440.  0Ah    WORD    drive options (see #0163)
  8441.  0Ch  2 BYTEs    reserved (0)
  8442.  0Eh    BYTE    extension revision level (high nybble=major, low nybble=minor)
  8443.         (currently 10h)
  8444.  0Fh    BYTE    2's complement checksum of bytes 00h-0Eh
  8445.  
  8446. Bitfields for drive options:
  8447. Bit(s)    Description    (Table 0163)
  8448.  0    fast PIO enabled
  8449.  1    fast DMA access enabled
  8450.  2    block PIO (multi-sector transfers) enabled
  8451.  3    CHS translation enabled
  8452.  4    LBA translation enabled
  8453.  5    removable media
  8454.  6    CD-ROM
  8455.  7    32-bit transfer mode
  8456.  15-8    reserved
  8457. --------v-135342CX0001-----------------------
  8458. INT 13 - ScanBoot - INSTALLATION CHECK
  8459.     AX = 5342h ("SB")
  8460.     CX = 0001h
  8461.     DX = 0000h
  8462. Return: CF clear if ScanBoot installed
  8463.        AX = 0000h
  8464.        CX = serial number ("SW" if shareware release)
  8465.        DX = version
  8466.        BX,SI,ES destroyed
  8467. Program: ScanBoot is a virus-detection TSR by PanSoft
  8468. --------d-135501-----------------------------
  8469. INT 13 - Seagate ST01/ST02 - Inquiry
  8470.     AX = 5501h
  8471.     DH = number of bytes to transfer
  8472.     DL = drive ID (80h, 81h, ...)
  8473.     ES:BX -> buffer for results
  8474. Return:    ES:BX buffer filled with the Inquiry results
  8475. Notes:    the ST01/ST02 BIOS does not return any success/failure indication,
  8476.       so all commands must be assumed to have been successful
  8477.     the ST01/ST02 BIOS always maps its drives after the previous BIOS
  8478.       drives without changing the BIOS drive count at 0040h:0075h
  8479.     this command is identical to the SCSI Inquiry command
  8480. --------d-135502-----------------------------
  8481. INT 13 - Seagate ST01/ST02 - RESERVED
  8482.     AX = 5502h
  8483. --------d-135503-----------------------------
  8484. INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ)
  8485.     AX = 5503h
  8486.     DH = DTQ byte (see #0164)
  8487.     DL = drive ID (80h, 81h, ...)
  8488. Return:    nothing
  8489.  
  8490. Bitfields for DTQ byte:
  8491. Bit(s)    Description    (Table 0164)
  8492.  7    reserved
  8493.  6    SCSI drive attached
  8494.  5    reserved
  8495.  4    selected drive is ST225N/NP (Paired)
  8496.  3    selected drive is ST225N
  8497.  2    Host Adapter checks parity on the selected drive 
  8498.  1    selected drive has been installed
  8499.  0    Seagate installation software present
  8500. --------d-135504-----------------------------
  8501. INT 13 U - Seagate - ??? - RETURN IDENTIFICATION
  8502.     AX = 5504h
  8503.     DX = drive (bit 7 set for hard disk)
  8504. Return: CF clear if successful
  8505.         AX = 4321h if ST01/ST02h
  8506.         AX = 4322h if ??? Seagate controller
  8507.     CF set on error
  8508. SeeAlso: AX=5505h,AX=5514h
  8509. --------d-135504-----------------------------
  8510. INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION
  8511.     AX = 5504h
  8512.     DL = drive ID (80h, 81h, ...)
  8513. Return:    AX = 4321h
  8514.     BL = selected drive number (00h, 01h)
  8515.     BH = number of drives attached to Host Adapter (max. 2)
  8516. --------d-135505-----------------------------
  8517. INT 13 - Seagate - ??? - PARK HEADS
  8518.     AX = 5505h
  8519.     DX = drive (bit 7 set for hard disk)
  8520. Return: CF clear if successful
  8521.     CF set on error
  8522. SeeAlso: AX=5504h,AX=5515h
  8523. --------d-135505-----------------------------
  8524. INT 13 - Seagate ST01/ST02 - PARK HEADS
  8525.     AX = 5505h
  8526.     DL = drive ID (80h, 81h, ...)
  8527.     DH = subfunction
  8528.         00h park heads (SCSI Stop command)
  8529.         01h un-park heads (SCSI Start command)      
  8530. Return:    nothing
  8531. --------d-135506-----------------------------
  8532. INT 13 - Seagate ST01/ST02 - SCSI Bus Parity
  8533.     AX = 5506h
  8534.     DL = drive ID (80h, 81h, ...)
  8535.     DH = subfunction
  8536.         00h disable parity check
  8537.         01h enable parity check
  8538.         02h return current parity setting
  8539. Return:    AL = status
  8540.         00h parity checking disabled
  8541.         01h parity checking enabled
  8542. --------d-135507-----------------------------
  8543. INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
  8544.     AX = 5507h to 550Dh
  8545. Note:    officially listed as "reserved"
  8546. --------d-135514-----------------------------
  8547. INT 13 U - Seagate - ???
  8548.     AX = 5514h
  8549.     DX = drive (bit 7 set for hard disk)
  8550. Return: CF clear if successful
  8551.     CF set on error
  8552.     AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)
  8553. SeeAlso: AX=5504h,AX=5515h
  8554. --------d-135515-----------------------------
  8555. INT 13 U - Seagate - PARK HEADS???
  8556.     AX = 5515h
  8557.     DX = drive (bit 7 set for hard disk)
  8558. Return: CF clear if successful
  8559.     CF set on error
  8560. Note:    appears to be identical to AX=5505h
  8561. SeeAlso: AX=5504h,AX=5505h
  8562. --------d-1359-------------------------------
  8563. INT 13 - SyQuest - Generic SCSI pass through
  8564.     AH = 59h
  8565.     CX = HOST_ID, 0-based
  8566.     DX = 80h
  8567.     ES:BX pointer to SCSI structure (see #0165)
  8568. Return: CF clear
  8569.     AH = 95h
  8570. SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=1Fh"SyQuest"
  8571.  
  8572. Format of SyQuest SCSI structure:
  8573. Offset    Size    Description    (Table 0165)
  8574.  00h    WORD    opcode (see #0166)
  8575.  02h    BYTE    target's SCSI ID
  8576.  03h    BYTE    target's logical unit number
  8577.  04h    BYTE    data direction (00h no data xfer, 01h data in, FFh data out)
  8578.  05h    BYTE    host status
  8579.         00h successful
  8580.         01h selection time out
  8581.         02h data over-run or under-run
  8582.  06h    BYTE    target status at command completion
  8583.         00h successful
  8584.         02h check status
  8585.         08h busy
  8586.  07h    BYTE    command data block length
  8587.  08h    DWORD    request data length
  8588.  0Ch    DWORD    result data length (actual length of data transferred)
  8589.  10h    DWORD    -> CDB
  8590.  14h    DWORD    -> data buffer
  8591. Note:    The handler does not perform a 'Request Sense' command if there was an error
  8592.  
  8593. (Table 0166)
  8594. Values for SCSI opcode:
  8595.  00h    verify interface
  8596.     clears carry flag and returns if function is available
  8597.  01h    returns the ID of the INT 13h Handler in a NULL terminated string of 
  8598.     length less than 40 byte including the terminator.
  8599.     The string is stored in the buffer pointed by p_buf.
  8600.  02h    device mapping info. The caller provides a one byte buffer.
  8601.     The handler stores the Int 13h Device ID (80h or above) in the buffer.
  8602.     It stores 0 if that target does not exists.
  8603.  03h    execute SCSI command
  8604.  04h    device reset
  8605.  05h    SCSI bus reset
  8606. --------d-1370-------------------------------
  8607. INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
  8608.     AH = 70h
  8609.     ???
  8610. Return: ???
  8611. Note:    Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
  8612.       formatting program) make this call, presumably to EDVR.SYS (the
  8613.       partitioning driver)
  8614. SeeAlso: AH=ADh
  8615. ----------1375-------------------------------
  8616. INT 13 - ???
  8617.     AH = 75h
  8618.     ???
  8619. Return: AH = ???
  8620.     ???
  8621. Note:    intercepted by PC-Cache (v5.1 only)
  8622. ----------1376-------------------------------
  8623. INT 13 - ???
  8624.     AH = 76h
  8625.     ???
  8626. Return: AH = ???
  8627.     ???
  8628. Note:    intercepted by PC-Cache (v5.1 only)
  8629. --------c-137B00-----------------------------
  8630. INT 13 - NOW! v3.05 - GET INFORMATION
  8631.     AX = 7B00h
  8632.     CX:DX -> 1F8h-byte buffer for information record (see #0167)
  8633. Return: AX = 0000h
  8634.     BX = segment of main resident code
  8635.     ES = ???
  8636. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  8637. SeeAlso: AX=7B02h,AH=EFh
  8638.  
  8639. Format of NOW! information record:
  8640. Offset    Size    Description    (Table 0167)
  8641.  00h 80 BYTEs    name of directory from which NOW! was started
  8642.  50h 424 BYTEs    ???
  8643.  81h  ? BYTEs    array of bytes for ???
  8644.  F7h 250 BYTEs    array of 25 entries, one per drive???
  8645.     Offset    Size    Description
  8646.      00h  2 BYTEs    ???
  8647.      02h    WORD    ???
  8648.      04h    WORD    ???
  8649.      06h  4 BYTEs    ???
  8650. 1F1h  7 BYTEs    ???
  8651. --------c-137B01-----------------------------
  8652. INT 13 - NOW! v3.05 - ???
  8653.     AX = 7B01h
  8654. Return: DX = segment of ???
  8655. SeeAlso: AX=7B00h
  8656. --------c-137B02-----------------------------
  8657. INT 13 - NOW! v3.05 - SET INFORMATION
  8658.     AX = 7B02h
  8659.     BX = segment of ??? (10h above a PSP)
  8660.     CX:DX -> 1F8h-byte information record (see #0167)
  8661. Return: ???
  8662. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  8663. Note:    NOW! grabs the INT 24h value from the PSP reached via the segment in
  8664.       BX
  8665. SeeAlso: AX=7B00h
  8666. --------c-137B03-----------------------------
  8667. INT 13 - NOW! v3.05 - ???
  8668.     AX = 7B03h
  8669.     ???
  8670. Return: ???
  8671. SeeAlso: AX=7B00h,AX=7B04h
  8672. --------c-137B04-----------------------------
  8673. INT 13 - NOW! v3.05 - ???
  8674.     AX = 7B04h
  8675.     ???
  8676. Return: ???
  8677. SeeAlso: AX=7B03h
  8678. --------c-137B05-----------------------------
  8679. INT 13 - NOW! v3.05 - GET DISK ACCESSES???
  8680.     AX = 7B05h
  8681. Return: BX:AX = number of physical accesses???
  8682.     DX:CX = total disk accesses???
  8683. SeeAlso: AX=7B00h,AX=7B06h
  8684. --------c-137B06-----------------------------
  8685. INT 13 - NOW! v3.05 - GET ???
  8686.     AX = 7B06h
  8687.     BX = ???
  8688. Return: AX = 0000h
  8689.     BX = ???
  8690. SeeAlso: AX=7B05h,AX=7B07h
  8691. --------c-137B07-----------------------------
  8692. INT 13 - NOW! v3.05 - GET ???
  8693.     AX = 7B07h
  8694. Return: AX = ???
  8695.     BX = ???
  8696.     CX = ???
  8697.     DX = ???
  8698. SeeAlso: AX=7B06h
  8699. --------c-137B08-----------------------------
  8700. INT 13 - NOW! v3.05 - ???
  8701.     AX = 7B08h
  8702.     CX = ??? (default 00h)
  8703. Return: ???
  8704. SeeAlso: AX=7B00h
  8705. --------c-1380--CX6572-----------------------
  8706. INT 13 - FAST! v4.02+ - API
  8707.     AH = 80h
  8708.     CX = 6572h
  8709.     DX = 1970h
  8710.     ES:BX -> request packet (see #0169)
  8711.     AL = function number (see #0168)
  8712. Return: AH = status (except function 06h)
  8713.         00h if successful
  8714.         01h invalid function
  8715.         05h not supported by the installed variant
  8716.     CF clear if successful
  8717.     CF set on error
  8718.     AL may be destroyed
  8719. Program: FAST! is a disk cache by Future Computing Systems and marketed by BLOC
  8720.       Publishing Corp.
  8721. SeeAlso: AX=8001h,AX=8006h,AX=8007h
  8722. Index:    hotkeys;FAST!
  8723.  
  8724. (Table 0168)
  8725. Values for FAST! function:
  8726.  01h    get cache information (see separate entry)
  8727.  04h    disable cache
  8728.  05h    enable cache and reset statistics
  8729.  06h    installation check (see separate entry)
  8730.  07h    unhook interrupts (see separate entry)
  8731.  09h    flush cache
  8732.  0Ah    (v4.02+) enable staged writes
  8733.  0Bh    (v4.02+) disable staged writes
  8734.  0Ch    (v4.02+) enable beep on flush
  8735.  0Dh    (v4.02+) disable beep on flush
  8736.  0Eh    ???
  8737.  0Fh    ???
  8738.  10h    (v4.12+) enable hotkeys
  8739.  11h    (v4.12+) disable hotkeys
  8740.  12h    (v4.13+) set idle delay
  8741.  13h    (v4.13+) set flush dirty percentage
  8742.  14h    (v5.00+) enable mouse checks
  8743.  15h    (v5.00+) disable mouse checks
  8744.  16h    (v5.00d+) reduce cache size to minimum
  8745.  17h    (v5.00d+) increase cache size to maximum
  8746.  
  8747. Format of FAST! request packet:
  8748. Offset    Size    Description    (Table 0169)
  8749.  00h    DWORD    pointer to 19-byte signature string (see #0170)
  8750.  04h    DWORD    pointer to buffer for data (if needed by function)
  8751.  
  8752. (Table 0170)
  8753. Values for FAST! v4.04-v5.03 signature string:
  8754.  13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15h
  8755. --------c-138001CX6572-----------------------
  8756. INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
  8757.     AX = 8001h
  8758.     CX = 6572h
  8759.     DX = 1970h
  8760.     ES:BX -> request packet (see #0171)
  8761. Return: AH = 00h if successful
  8762. SeeAlso: AH=80h,AX=8006h
  8763.  
  8764. Format of FAST! request packet:
  8765. Offset    Size    Description    (Table 0171)
  8766.  00h    DWORD    -> 19-byte signature string (see #0170)
  8767.  04h    DWORD    -> buffer for cache information (see #0172)
  8768.  
  8769. Format of FAST! cache information (v5.00-5.03):
  8770. Offset    Size    Description    (Table 0172)
  8771.  00h    WORD    binary version number of FAST! (v5.00 = 01F4h)
  8772.  02h    BYTE    revision letter (61h = X.XXa, 62h = X.XXb, etc.)
  8773.  03h    BYTE    FAST! variant
  8774.         (01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS)
  8775.  04h    DWORD    total number of read requests
  8776.  08h    DWORD    number of physical disk reads
  8777.  0Ch    DWORD    grabbed hash buckets
  8778.  10h    DWORD    "st_386mem"
  8779.  14h    DWORD    total number of writes (only counted when staging enabled)
  8780.  18h    DWORD    number of physical disk writes (only when staging enabled)
  8781.  1Ch    DWORD    number of write errors while flushing cache
  8782.  20h    WORD    flags1 (see #0173)
  8783.  22h    WORD    flags
  8784.         bit 0: ???
  8785.         bit 1: staged writes enabled
  8786.  24h    WORD    ???
  8787.  26h    WORD    maximum cache size in KB
  8788.  28h    WORD    minimum cache size in KB
  8789.  2Ah    WORD    segment of first cache buffer (FASTC)
  8790.         segment of EMS page frame (FASTE)
  8791.         XMS handle (FASTX XMS)
  8792.  2Ch    WORD    number of hash buckets containing no entries
  8793.  2Eh    WORD    number of hash buckets containing one entry
  8794.  30h    WORD    number of hash buckets containing two entries
  8795.  32h    WORD    number of hash buckets containing three entries
  8796.  34h    WORD    number of hash buckets containing four entries
  8797.  36h    WORD    number of hash buckets containing five entries
  8798.  38h    WORD    maximum contiguous sectors
  8799.  3Ah    WORD    hash factor
  8800.  3Ch    WORD    number of paragraphs of memory used below 1M
  8801.  3Eh    WORD    entries per hash bucket
  8802.  40h    WORD    idle delay in seconds
  8803.  42h  2 BYTEs    ???
  8804.  44h    WORD    staged write threshold percentage
  8805.  46h  2 BYTEs    ???
  8806.  48h    WORD    number of dirty sectors
  8807.  4Ah    WORD    number of staged write buffers
  8808.  4Ch    WORD    current cache size in KB
  8809.  4Eh    WORD    beep frequency in Hz
  8810.  50h    WORD    ???
  8811.  52h    WORD    ???
  8812.  
  8813. Bitfields for FAST! flags1:
  8814. Bit(s)    Description    (Table 0173)
  8815.  0    beep on flush
  8816.  3    hotkeys enabled
  8817.  4    mouse idle check enabled
  8818.  8    caching enabled
  8819.  13    ???
  8820. --------c-138006CX6572-----------------------
  8821. INT 13 - FAST! v4.02+ - INSTALLATION CHECK
  8822.     AX = 8006h
  8823.     CX = 6572h
  8824.     DX = 1970h
  8825.     ES:BX -> request packet (see #0174)
  8826. Return: AX = 1965h if installed
  8827. SeeAlso: AH=80h,AX=8001h,AX=8007h
  8828.  
  8829. Format of FAST! request packet:
  8830. Offset    Size    Description    (Table 0174)
  8831.  00h    DWORD    -> 19-byte signature string (see #0170)
  8832. --------c-138007CX6572-----------------------
  8833. INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
  8834.     AX = 8007h
  8835.     CX = 6572h
  8836.     DX = 1970h
  8837.     ES:BX -> request packet (see #0175)
  8838. Return: AX = 1965h if installed
  8839. SeeAlso: AH=80h,AX=8006h
  8840. Index:    uninstall;FAST!
  8841.  
  8842. Format of FAST! request packet:
  8843. Offset    Size    Description    (Table 0175)
  8844.  00h    DWORD    -> 19-byte signature string (see #0170)
  8845. --------c-1381--SI4358-----------------------
  8846. INT 13 - Super PC-Kwik v3.20+ - ???
  8847.     AH = 81h
  8848.     SI = 4358h
  8849.     ???
  8850. Return: ???
  8851. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8852.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  8853.       to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27)
  8854.     returns immediately in PC-Cache v5.x
  8855. Index:    PC-Cache|Qualitas Qcache
  8856. --------c-1382--SI4358-----------------------
  8857. INT 13 - Super PC-Kwik v3.20+ - ???
  8858.     AH = 82h
  8859.     SI = 4358h
  8860.     ???
  8861. Return: AL = ???
  8862. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8863.       Super PC-Kwik, and thus support this call
  8864. SeeAlso: AH=84h
  8865. Index:    PC-Cache|Qualitas Qcache
  8866. --------c-1383--SI4358-----------------------
  8867. INT 13 - Super PC-Kwik v3.20+ - ???
  8868.     AH = 83h
  8869.     SI = 4358h
  8870.     AL = ???
  8871.     ES:BX -> ???
  8872.     ???
  8873. Return: ???
  8874. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8875.       Super PC-Kwik, and thus support this call
  8876. SeeAlso: AH=85h
  8877. Index:    PC-Cache|Qualitas Qcache
  8878. --------c-1384--SI4358-----------------------
  8879. INT 13 - Super PC-Kwik v3.20+ - ???
  8880.     AH = 84h
  8881.     SI = 4358h
  8882.     AL = ???
  8883.     ???
  8884. Return: AL = ???
  8885. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8886.       Super PC-Kwik, and thus support this call
  8887. SeeAlso: AH=82h
  8888. Index:    PC-Cache|Qualitas Qcache
  8889. --------c-1385--SI4358-----------------------
  8890. INT 13 - Super PC-Kwik v3.20+ - ???
  8891.     AH = 85h
  8892.     SI = 4358h
  8893.     AL = ???
  8894.     DL = ???
  8895.     ???
  8896. Return: ???
  8897. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8898.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  8899.       to PC-Kwik v3.20)
  8900. SeeAlso: AH=83h
  8901. Index:    PC-Cache|Qualitas Qcache
  8902. --------c-1386--SI4358-----------------------
  8903. INT 13 - Super PC-Kwik v4.00+ - ???
  8904.     AH = 86h
  8905.     SI = 4358h
  8906.     ???
  8907. Return: ???
  8908. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  8909.       thus supports this call
  8910. Index:    Qualitas Qcache
  8911. --------c-1387--SI4358-----------------------
  8912. INT 13 - Super PC-Kwik v4.00+ - ???
  8913.     AH = 87h
  8914.     SI = 4358h
  8915.     ???
  8916. Return: AH = status??? (00h)
  8917.     CX = ???
  8918.     DX = ??? (0000h)
  8919. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  8920.       thus supports this call
  8921. Index:    Qualitas Qcache
  8922. --------c-1388--SI4358-----------------------
  8923. INT 13 - Super PC-Kwik v4.00+ - ???
  8924.     AH = 88h
  8925.     SI = 4358h
  8926.     ???
  8927. Return: AH = status??? (00h)
  8928.     CX = ???
  8929.     DX = ??? (0000h)
  8930. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  8931.       thus supports this call
  8932. Index:    Qualitas Qcache
  8933. --------c-1389--SI4358-----------------------
  8934. INT 13 - Super PC-Kwik v5.10+ - ???
  8935.     AH = 89h
  8936.     SI = 4358h
  8937.     ???
  8938. Return: ???
  8939. --------c-138A--SI4358-----------------------
  8940. INT 13 - Super PC-Kwik v5.10+ - ???
  8941.     AH = 8Ah
  8942.     SI = 4358h
  8943.     ???
  8944. Return: ???
  8945. --------c-138EED-----------------------------
  8946. INT 13 - HyperDisk v4.01+ - ???
  8947.     AX = 8EEDh
  8948.     ???
  8949. Return: ???
  8950. Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
  8951. SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AH=DFh
  8952. --------c-138EEE-----------------------------
  8953. INT 13 - HyperDisk v4.01+ - ???
  8954.     AX = 8EEEh
  8955. Return: CF set
  8956.     AX = CS of HyperDisk resident code
  8957.     ???
  8958. Note:    identical to AX=8EEFh in HYPERDKX v4.21-4.30
  8959. SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh
  8960. --------c-138EEF-----------------------------
  8961. INT 13 - HyperDisk v4.01+ - ???
  8962.     AX = 8EEFh
  8963. Return: CF set
  8964.     AX = CS of HyperDisk resident code
  8965.     ???
  8966. Note:    identical to AX=8EEEh in HYPERDKX v4.21-4.30
  8967. SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh
  8968. --------c-1392--SI4358-----------------------
  8969. INT 13 - Super PC-Kwik v5.10+ - ???
  8970.     AH = 92h
  8971.     SI = 4358h
  8972.     ???
  8973. Return: AH = status??? (00h)
  8974.     DL = ???
  8975. SeeAlso: AH=93h
  8976. --------c-1393--SI4358-----------------------
  8977. INT 13 - Super PC-Kwik v5.10+ - ???
  8978.     AH = 93h
  8979.     SI = 4358h
  8980.     ???
  8981. Return: AH = status??? (00h)
  8982.     AL = ???
  8983. SeeAlso: AH=92h
  8984. --------c-1394--SI4358-----------------------
  8985. INT 13 - Super PC-Kwik v5.10+ - ???
  8986.     AH = 94h
  8987.     SI = 4358h
  8988.     ???
  8989. Return: ???
  8990. --------c-1395--SI4358-----------------------
  8991. INT 13 - Super PC-Kwik v5.10+ - ???
  8992.     AH = 95h
  8993.     SI = 4358h
  8994.     ???
  8995. Return: AH = status??? (00h)
  8996.     DX = ???
  8997. --------c-1396--SI4358-----------------------
  8998. INT 13 - Super PC-Kwik v5.10+ - ???
  8999.     AH = 96h
  9000.     SI = 4358h
  9001.     AL = ??? (01h)
  9002.     BX = ??? (0790h)
  9003.     DL = ???
  9004. Return: AH = status??? (00h)
  9005.     DX = ???
  9006. --------c-1397--SI4358-----------------------
  9007. INT 13 - Super PC-Kwik v5.10+ - ???
  9008.     AH = 97h
  9009.     SI = 4358h
  9010.     ???
  9011. Return: ???
  9012. --------c-1398--SI4358-----------------------
  9013. INT 13 - Super PC-Kwik v5.10+ - ???
  9014.     AH = 98h
  9015.     SI = 4358h
  9016.     ???
  9017. Return: ???
  9018. --------c-1399--SI4358-----------------------
  9019. INT 13 - Super PC-Kwik v5.10+ - ???
  9020.     AH = 99h
  9021.     SI = 4358h
  9022.     ???
  9023. Return: ???
  9024. --------c-139A--SI4358-----------------------
  9025. INT 13 - Super PC-Kwik v5.10+ - ???
  9026.     AH = 9Ah
  9027.     SI = 4358h
  9028.     ???
  9029. Return: ???
  9030. --------c-139B--SI4358-----------------------
  9031. INT 13 - Super PC-Kwik v5.10+ - ???
  9032.     AH = 9Bh
  9033.     SI = 4358h
  9034.     ???
  9035. Return: ???
  9036. --------c-139C--SI4358-----------------------
  9037. INT 13 - Super PC-Kwik v5.10+ - ???
  9038.     AH = 9Ch
  9039.     SI = 4358h
  9040.     ???
  9041. Return: ???
  9042. Note:    functions 9Ch and 9Dh are the only ones which are fully reentrant; all
  9043.       other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear
  9044.       if a previous call is still in progress
  9045. --------c-139D--SI4358-----------------------
  9046. INT 13 - Super PC-Kwik v5.10+ - ???
  9047.     AH = 9Dh
  9048.     SI = 4358h
  9049.     ???
  9050. Return: ???
  9051. --------c-13A0--SI4358-----------------------
  9052. INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
  9053.     AH = A0h
  9054.     SI = 4358h
  9055. Return: AX = segment of resident code
  9056. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  9057.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.5
  9058.       corresponds to PC-Kwik v3.27)
  9059. SeeAlso: INT 16/AX=FFA5h/CX=1111h
  9060. Index:    PC-Cache|Qualitas Qcache
  9061. --------c-13A1--SI4358-----------------------
  9062. INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
  9063.     AH = A1h
  9064.     SI = 4358h
  9065. Return: CF clear
  9066.     AH = 00h (v5.10)
  9067. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  9068.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  9069.       corresponds to PC-Kwik v3.20)
  9070. SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
  9071. Index:    PC-Cache|Qualitas Qcache
  9072. --------c-13A2--SI4358-----------------------
  9073. INT 13 - Super PC-Kwik v3.20+ - ???
  9074.     AH = A2h
  9075.     SI = 4358h
  9076.     ???
  9077. Return: ???
  9078. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  9079.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  9080.       corresponds to PC-Kwik v3.20)
  9081. Index:    PC-Cache|Qualitas Qcache
  9082. --------c-13A3--SI4358-----------------------
  9083. INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
  9084.     AH = A3h
  9085.     SI = 4358h
  9086. Return: CF clear
  9087. SeeAlso: AH=A4h
  9088. --------c-13A4--SI4358-----------------------
  9089. INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
  9090.     AH = A4h
  9091.     SI = 4358h
  9092. Return: CF clear
  9093. SeeAlso: AH=A3h
  9094. --------c-13A5--SI4358-----------------------
  9095. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
  9096.     AH = A5h
  9097.     SI = 4358h
  9098. Return: AX = ???
  9099.     SI = ???
  9100. Notes:    called and used internally by Super PC-Kwik when a program terminates
  9101.       via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch
  9102.     this call is not supported by Qualitas Qcache 4.00
  9103. Index:    PC-Cache
  9104. SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  9105. --------c-13A6--SI4358-----------------------
  9106. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
  9107.     AH = A6h
  9108.     SI = 4358h
  9109.     DS:DX -> ASCIZ program name
  9110.     ES:BX -> EXEC data block (see #0728 at INT 21/AH=4Bh)
  9111. Return: ???
  9112. Note:    called and used internally by Super PC-Kwik when a program is loaded
  9113.       with INT 21/AX=4B00h
  9114. SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4Bh
  9115. --------c-13A7--SI4358-----------------------
  9116. INT 13 CU - Super PC-Kwik 5.1 - ???
  9117.     AH = A7h
  9118.     SI = 4358h
  9119. Return: ???
  9120. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  9121. SeeAlso: AH=A5h,AH=A6h,AH=A8h
  9122. --------v-13A759-----------------------------
  9123. INT 13 U - Novell DOS 7 - SDRes v27.03 - ???
  9124.     AX = A759h
  9125. Return: AX = 59A7h if installed
  9126.         DX:BX -> ??? data
  9127. Program: SDRes is the resident portion of the Search&Destroy antiviral by
  9128.       Fifth Generation Systems, as bundled with Novell DOS 7
  9129. SeeAlso: INT 21/AH=0Eh/DL=ADh
  9130. --------c-13A8--SI4358-----------------------
  9131. INT 13 CU - Super PC-Kwik 5.1 - ???
  9132.     AH = A8h
  9133.     SI = 4358h
  9134. Return: ???
  9135. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  9136. SeeAlso: AH=A5h,AH=A6h,AH=A7h
  9137. --------c-13A9--SI4358-----------------------
  9138. INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
  9139.     AH = A9h
  9140.     SI = 4358h
  9141. Return: ???
  9142. Note:    called and used internally by Super PC-Kwik when an application issues
  9143.       INT 21/AH=4Dh
  9144. SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4Dh
  9145. --------c-13AA--SI4358-----------------------
  9146. INT 13 - Super PC-Kwik v4+ - ???
  9147.     AH = AAh
  9148.     SI = 4358h
  9149.     ???
  9150. Return: ???
  9151. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  9152.       this call
  9153. --------c-13AB--SI4358-----------------------
  9154. INT 13 - Super PC-Kwik v4+ - ???
  9155.     AH = ABh
  9156.     SI = 4358h
  9157.     ???
  9158. Return: ???
  9159. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  9160.       this call
  9161. --------c-13AC--SI4358-----------------------
  9162. INT 13 - Super PC-Kwik v4+ - ???
  9163.     AH = ACh
  9164.     SI = 4358h
  9165.     ???
  9166. Return: ???
  9167. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  9168.       this call
  9169. --------d-13AD-------------------------------
  9170. INT 13 - Priam HARD DISK CONTROLLER???
  9171.     AH = ADh
  9172.     ???
  9173. Return: ???
  9174. Note:    this call is made from Priam's EFMT.EXE (low-level formatter), probably
  9175.       to check the ROM type on the controller for their hard disk kits
  9176. SeeAlso: AH=70h
  9177. --------c-13AD--SI4358-----------------------
  9178. INT 13 - Super PC-Kwik v4+ - ???
  9179.     AH = ADh
  9180.     SI = 4358h
  9181.     ???
  9182. Return: ???
  9183. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  9184.       this call
  9185. --------c-13AE--SI4358-----------------------
  9186. INT 13 - Super PC-Kwik v5.10+ - ???
  9187.     AH = AEh
  9188.     SI = 4358h
  9189.     ???
  9190. Return: ???
  9191. --------c-13B0--SI4358-----------------------
  9192. INT 13 - Super PC-Kwik v3.20+ - ???
  9193.     AH = B0h
  9194.     SI = 4358h
  9195.     ???
  9196. Return: ???
  9197. Note:    PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus
  9198.       supports this call; Qualitas Qcache does not support it
  9199. Index:    PC-Cache
  9200. --------d-13EE-------------------------------
  9201. INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
  9202.     AH = EEh
  9203.     DL = drive number (80h, 81h)
  9204. Return: CF clear
  9205.        AH = 00h
  9206. Program: SWBIOS is a TSR by Ontrack Computer Systems
  9207. Desc:    the following INT 13 call will add 1024 to the specified cylinder
  9208.       number to get the actual cylinder number desired
  9209. Notes:    the flag is cleared by all INT 13 calls except AH=EEh and AH=EFh
  9210.     Disk Manager also supports these calls
  9211.     this function is also supported by HyperDisk v4.01+ and PC-Cache v5.5+,
  9212.       in order to allow caching of drives using SWBIOS to access more than
  9213.       1024 cylinders
  9214.     for software which supports that call, this function is equivalent to
  9215.       calling AH=EFh with CX=0400h
  9216. SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AH=DFh
  9217. Index:    PC-Cache;huge disks|Disk Manager
  9218. --------c-13EF-------------------------------
  9219. INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
  9220.     AH = EFh
  9221.     CX = cylinder offset for next INT 13 call
  9222.     DL = drive number (80h, 81h)
  9223. Return: CF clear
  9224.         AH = 00h
  9225. Program: Drive Rocket is a drive accelerator by Ontrack Computer Systems for
  9226.       IDE drives supporting the read multiple and write multiple commands
  9227. Desc:    the following INT 13 call will add the number given by this call to
  9228.       the specified cylinder to get the actual cylinder number, then reset
  9229.       the offset to zero
  9230. Note:    this function is also supported by the NOW! disk cache, and presumably
  9231.       newer versions of SWBIOS and Disk Manager
  9232.     for software which supports this call, AH=EEh is equivalent to calling
  9233.       this function with CX=0400h
  9234.     the cylinder offset is reset to 0 by all INT 13 called except AH=EEh
  9235.       and AH=EFh
  9236. SeeAlso: AX=7B00h
  9237. --------d-13F9-------------------------------
  9238. INT 13 - SWBIOS - INSTALLATION CHECK
  9239.     AH = F9h
  9240.     DL = drive number (80h,81h)
  9241. Return: CF clear
  9242.         DX = configuration word
  9243.         bit 15 set if other SWBIOS extensions available
  9244.     CF set on error
  9245. Program: SWBIOS is a TSR by Ontrack Computer Systems
  9246. Note:    Disk Manager also supports these calls
  9247. SeeAlso: AH=EEh
  9248. Index:    Disk Manager
  9249. --------v-13FA--DX5945-----------------------
  9250. INT 13 - PC Tools v8+ VSAFE, VWATCH - API
  9251.     AH = FAh
  9252.     DX = 5945h
  9253.     AL = function (00h-07h)
  9254. Return: varies by function
  9255.     if not installed:
  9256.         CF set
  9257.         AH = 01h
  9258. Note:    this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
  9259.       so it is listed in its entirety under INT 16/AX=FA00h and following
  9260. SeeAlso: INT 16/AX=FA00h
  9261. --------d-13FE-------------------------------
  9262. INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
  9263.     AH = FEh
  9264.     DL = drive number (80h, 81h)
  9265. Return: CF clear
  9266.     DX = number of cylinders beyond 1024 on drive
  9267. Program: SWBIOS is a TSR by Ontrack Computer Systems
  9268. Notes:    standard INT 13/AH=08h will return a cylinder count truncated to 1024
  9269.     BIOS without this extension would return count modulo 1024
  9270.     Disk Manager also supports these calls
  9271. SeeAlso: AH=EEh
  9272. --------U-13FFFFBHAA-------------------------
  9273. INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
  9274.     AX = FFFFh
  9275.     BH = AAh
  9276.     BL = subfunction
  9277.         00h installation check
  9278.         Return: AX = 1234h if installed
  9279.         01h turn on Turbo mode
  9280.         02h turn off Turbo mode
  9281.         03h set Turbo mode according to hardware switch
  9282.         04h set disk access to Turbo mode
  9283.         05h set disk access to Normal mode
  9284. SeeAlso: INT 15/AH=DFh
  9285. Index:    installation check;UNIQUE UX Turbo Utility
  9286. --------!---Section--------------------------
  9287.