home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / maj / 4266 / interrup.a < prev    next >
Text File  |  1994-08-07  |  353KB  |  9,045 lines

  1. Interrupt List        Release 42            Last change 8/7/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 INTER42A through INTER42C (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 1577 pages at
  12.     INTERRUP.E    INT 21/45 through INT 21/BF   \     60 lines per page,
  13.     INTERRUP.F    INT 21/C0 through INT 2C       > 1679 with INTPRINT -p
  14.     INTERRUP.G    INT 2D through INT 2F/7F      /     (6475 entries)
  15.     INTERRUP.H    INT 2F/80 through INT 2F/FF  /     (2214 tables)
  16.     INTERRUP.I    INT 30 through INT 60        /
  17.     INTERRUP.J    INT 61 through INT 67       /
  18.     INTERRUP.K    INT 68 through INT 7F      /
  19.     INTERRUP.L    INT 80 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.     PORTS.LST    a listing of I/O ports
  29.     CATEGORY.KEY    descriptions of divider-line category letters
  30.     COMBINE.BAT    combine the pieces of the list into a single file
  31. The following files should be distributed in an archive called INTER42D:
  32.     INT.*        invoke interrupts from commandline
  33.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  34.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  35.     INT2QH.*    program to convert list into QuickHelp database
  36.     INT2WHLP.*    convert list into Windows Help database
  37.     INTERVUE.EXE    indexed interrupt list browser
  38.     INTHELP.*    convert list into TurboPower GUIDE database
  39.     INTLIST.E    Epsilon extension for handling list
  40.     INTLIST.ICO    Windows icon for INTERVUE
  41.     INTPRINT.C    source code for INTPRINT
  42.     RB2NG.*        convert list into Norton Guides database
  43. --------!---CONTACT_INFO---------------------
  44. If you notice any mistakes or omissions, please let me know!  It is only with
  45. YOUR help that the list can continue to grow at the current rate.  Please send
  46. all changes to me rather than distributing a modified version of the list.
  47.  
  48. Please read the file INTERRUP.1ST before asking me any questions.  You may find
  49. that they have already been addressed.
  50.  
  51.      Ralf Brown
  52.  
  53. Internet: ralf@telerama.lm.com
  54. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  55. FIDO: Ralf Brown 1:129/26.1
  56.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  57.     unless you address it to me)
  58. CIS:  >INTERNET:ralf@telerama.lm.com
  59.  
  60. I reply to all e-mail submissions and inquiries, but some of my replies bounce
  61. because of bad return paths.  If you don't get a response from me within a
  62. reasonable period of time, send it again with a better return path (starting at
  63. harvard or ucbvax for UUCP, from the Internet for others).
  64. --------!------------------------------------
  65. See INTERRUP.1ST for the key to system abbreviations and a list of the
  66. trademarks mentioned here.
  67. --------!---DISCLAIMER-----------------------
  68. DISCLAIMER:  THIS MATERIAL IS PROVIDED "AS IS".     I verify the information
  69. contained in this list to the best of my ability, but I cannot be held
  70. responsible for any problems caused by use or misuse of the information,
  71. especially for those functions not officially documented.  If it is marked
  72. "internal" or undocumented, you should check it carefully to make sure it
  73. works the same way in your version of the software (and please let me know
  74. whether or not it works the same way).    Information marked with "???" is
  75. known to be incomplete or guesswork.
  76. --------!---FLAGS----------------------------
  77. The use of -> instead of = signifies that the indicated register or register
  78. pair contains a pointer to the specified item, rather than the item itself.
  79. One or more letters may follow the interrupt number; they have the following
  80. meanings:  U - undocumented function, u - partially documented function,
  81. P - available only in protected mode, R - available only in real or V86 mode,
  82. C - callout or callback (usually hooked rather than called),
  83. O - obsolete (no longer present in current versions)
  84. --------!---CATEGORIES-----------------------
  85. The ninth column of the divider line preceding an entry usually contains a
  86. classification code (the entry has not been classified if that character is
  87. a dash).  The codes currently in use are:
  88.     A - applications, a - access software (screen readers, etc),
  89.     B - BIOS, b - vendor-specific BIOS extensions,
  90.     C - CPU-generated, c - caches/spoolers,
  91.     D - DOS kernel, d - disk I/O enhancements,
  92.     E - DOS extenders, e - electronic mail, F - FAX,
  93.     f - file manipulation, G - debuggers/debugging tools, g - games,
  94.     H - hardware, h - vendor-specific hardware,
  95.     I - IBM workstation/terminal emulators, i - system info/monitoring
  96.     J - Japanese, j - joke programs,
  97.     K - keyboard enhancers, k - file/disk compression,
  98.     l - shells/command interpreters,
  99.     M - mouse/pointing device, m - memory management,
  100.     N - network, n - non-traditional input devices,
  101.     O - other operating systems,
  102.     P - printer enhancements, p - power management,
  103.     Q - DESQview/TopView and Quarterdeck programs,
  104.     R - remote control/file access, r - runtime support,
  105.     S - serial I/O, s - sound/speech,
  106.     T - DOS-based task switchers/multitaskers, t - TSR libraries
  107.     U - resident utilities, u - emulators,
  108.     V - video, v - virus/antivirus,
  109.     W - MS Windows, X - expansion bus BIOSes,
  110.     y - security, * - reserved (and not otherwise classified)
  111. --------C-00---------------------------------
  112. INT 00 - CPU-generated - DIVIDE ERROR
  113. Desc:    generated if the divisor of a DIV or IDIV instruction is zero or the
  114.       quotient overflows the result register; DX and AX will be unchanged.
  115. Notes:    on an 8086/8088, the return address points to the following instruction
  116.     on an 80286+, the return address points to the divide instruction
  117.     an 8086/8088 will generate this interrupt if the result of a division
  118.       is 80h (byte) or 8000h (word)
  119. SeeAlso: INT 04
  120. --------G-00---------------------------------
  121. INT 00 - Zenith - ROM DEBUGGER
  122. Desc:    invokes the ROM Debugger when at the BIOS level; equivalent to
  123.       pressing Ctrl-Alt-Ins on booting.
  124. Note:    since DOS revectors INT 00, it is necessary to restore this vector to
  125.       its original ROM BIOS value in order to invoke the debugger once DOS
  126.       loads
  127. SeeAlso: INT 03"Columbia"
  128. --------C-01---------------------------------
  129. INT 01 - CPU-generated - SINGLE STEP
  130. Desc:    generated after each instruction if TF (trap flag) is set; TF is
  131.       cleared on invoking the single-step interrupt handler
  132. Notes:    interrupts are prioritized such that external interrupts are invoked
  133.       after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  134.       first instruction of the handler executes
  135.     used by debuggers for single-instruction execution tracing, such as
  136.       MS-DOS DEBUG's T command
  137. SeeAlso: INT 03
  138. --------C-01---------------------------------
  139. INT 01 - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
  140. Desc:    generated by the CPU on various occurrences which may be of interest
  141.       to a debugger program
  142. Note:    events which may trigger the interrupt:
  143.       Instruction address breakpoint fault - will return to execute inst
  144.       Data address breakpoint trap - will return to following instruction
  145.       General detect fault, debug registers in use
  146.       Task-switch breakpoint trap
  147.       undocumented 386/486 opcode F1h - will return to following instruc
  148. SeeAlso: INT 03
  149. --------H-02---------------------------------
  150. INT 02 - external hardware - NON-MASKABLE INTERRUPT
  151. Desc:    generated by the CPU when the input to the NMI pin is asserted
  152. Notes:    return address points to start of interrupted instruction on 80286+
  153.     on the 80286+, further NMIs are disabled until the next IRET
  154.       instruction, but one additional NMI is remembered by the hardware
  155.       and will be serviced after the IRET instruction reenables NMIs
  156.     maskable interrupts may interrupt the NMI handler if interrupts are
  157.       enabled
  158.     although the Intel documentation states that this interrupt is
  159.       typically used for power-failure procedures, it has many other uses
  160.       on IBM-compatible machines:
  161.         Memory parity error: all except Jr, CONV, and some machines
  162.                   without memory parity
  163.         Breakout switch on hardware debuggers
  164.         Coprocessor interrupt: all except Jr and CONV
  165.         Keyboard interrupt: Jr, CONV
  166.         I/O channel check: CONV, PS50+
  167.         Disk-controller power-on request: CONV
  168.         System suspend: CONV
  169.         Real-time clock: CONV
  170.         System watch-dog timer, time-out interrupt: PS50+
  171.         DMA timer time-out interrupt: PS50+
  172.         Low battery: HP 95LX
  173.         Module pulled: HP 95LX
  174. --------C-03---------------------------------
  175. INT 03 - CPU-generated - BREAKPOINT
  176. Desc:    generated by the one-byte breakpoint instruction (opcode CCh)
  177. Notes:    used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
  178.       command
  179.     also used by Turbo Pascal versions 1,2,3 when {$U+} specified
  180.     return address points to byte following the breakpoint instruction
  181. SeeAlso: INT 01
  182. --------G-03---------------------------------
  183. INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
  184. Desc:    invokes the ROM Debugger if INT 03 has not been revectored; equivalent
  185.       to pressing Esc on booting.
  186. SeeAlso: INT 00"Zenith",INT 03"Realia"
  187. --------G-03---------------------------------
  188. INT 03 - Realia COBOL - DEBUGGER SUPPORT
  189. Note:    Realia COBOL checks for a signature eight bytes prior to the interrupt
  190.       handler when it starts up
  191. BUG:    if the offset of the INT 03 vector is less than 8, the compiler and
  192.       all executables generated by it will crash the system
  193. SeeAlso: INT 03"Columbia"
  194. --------G-030910-----------------------------
  195. INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
  196.     AX = 0910h
  197.     SI = magic value 4647h ('FG')
  198.     DI = magic value 4A4Dh ('JM')
  199.     DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
  200. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  201. --------G-030911-----------------------------
  202. INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
  203.     AX = 0911h
  204.     SI = magic value 4647h ('FG')
  205.     DI = magic value 4A4Dh ('JM')
  206.     DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
  207. --------G-030912-----------------------------
  208. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
  209.     AX = 0912h
  210.     SI = magic value 4647h ('FG')
  211.     DI = magic value 4A4Dh ('JM')
  212. Return: BH = entry number of last breakpoint set
  213.     BL = type of last breakpoint set (see #0001)
  214.     DH = entry number of last breakpoint to be triggered
  215.     DL = type of last triggered breakpoint (see #0001)
  216. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  217. SeeAlso: AX=0913h,AX=0914h
  218.  
  219. (Table 0001)
  220. Values for Soft-ICE breakpoint type:
  221.  00h    BPM (breakpoint register types)
  222.  01h    I/O
  223.  02h    INTerrupt
  224.  03h    BPX (INT 03h-style breakpoint)
  225.  04h    reserved
  226.  05h    range
  227. --------G-030913-----------------------------
  228. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
  229.     AX = 0913h
  230.     SI = magic value 4647h ('FG')
  231.     DI = magic value 4A4Dh ('JM')
  232.     DS:DX -> breakpoint structure (see #0002)
  233. Return: AX = status
  234.         00h successful
  235.         BX = breakpoint number
  236.         03h breakpoint table full
  237.         06h memory limit error
  238.         07h I/O limit error
  239.         09h range limit error
  240.         16h duplicate breakpoint
  241. SeeAlso: AX=0912h,AX=0914h
  242.  
  243. Format of Soft-ICE breakpoint structure:
  244. Offset    Size    Description    (Table 0002)
  245.  00h    BYTE    breakpoint type (see #0003)
  246.  01h    DWORD    breakpoint address 1
  247.         (lower range limit for memory BPs,
  248.         interrupt number for interrupt BPs,
  249.         address of BP for execution BPs,
  250.         I/O address (only word)    for I/O BPs)
  251.  05h    DWORD    breakpoint address 2
  252.         (upper range limit for memory BPs,
  253.         optional value to check for for interrupt BPs,
  254.         overlay number (0 = root) for execution BPs)
  255.  09h    DWORD    breakpoint address 3
  256.  0Dh    BYTE    breakpoint mode 1 (see #0004)
  257.         (for interrupt BPs = register to check
  258.             00h     no value checking
  259.             01h     check AL
  260.             02h     check AH
  261.             03h     check AX)
  262.  0Eh    BYTE    breakpoint mode 2 (see #0004)
  263.  0Fh    BYTE    breakpoint size (00h byte, 01h word, 03h dword)
  264.  10h    BYTE    breakpoint pass count before program stop
  265.  11h    BYTE    breakpoint state
  266. Note:    all unused fields should contain zeros
  267.  
  268. (Table 0003)
  269. Values for Soft-ICE breakpoint type:
  270.  00h    memory location
  271.  01h    memory range
  272.  03h    I/O
  273.  04h    interrupt
  274.  05h    execution break
  275.  
  276. (Table 0004)
  277. Values for Soft-ICE breakpoint mode:
  278.  01h    read
  279.  02h    write
  280.  04h    execution
  281. --------G-030914-----------------------------
  282. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
  283.     AX = 0914h
  284.     SI = magic value 4647h ('FG')
  285.     DI = magic value 4A4Dh ('JM')
  286.     BX = breakpoint number (returned by AX=0913h)
  287. Return: BX = ???
  288. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  289. SeeAlso: AX=0912h,AX=0913h
  290. --------C-04---------------------------------
  291. INT 04 - CPU-generated - INTO DETECTED OVERFLOW
  292. Desc:    the INTO instruction will generate this interrupt if OF (Overflow Flag)
  293.       is set; otherwise, INTO is effectively a NOP
  294. Note:    may be used for convenient overflow testing (to prevent errors from
  295.       propagating) instead of JO or a JNO/JMP combination
  296. SeeAlso: INT 00
  297. --------B-05---------------------------------
  298. INT 05 - PRINT SCREEN
  299. Desc:    dump the current text screen to the first printer
  300. Notes:    normally invoked by the INT 09 handler when PrtSc key is pressed, but
  301.       may be invoked directly by applications
  302.     byte at 0050h:0000h contains status used by default handler
  303.       00h not active
  304.       01h PrtSc in progress
  305.       FFh last PrtSc encountered error
  306.     default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
  307. SeeAlso: INT 10/AH=12h/BL=20h
  308. --------C-05---------------------------------
  309. INT 05 - CPU-generated (80186+) - BOUND RANGE EXCEEDED
  310. Desc:    generated by BOUND instruction when the value to be tested is less than
  311.       the indicated lower bound or greater than the indicated upper bound.
  312. Note:    returning from this interrupt re-executes the failing BOUND instruction
  313. --------P-05454A-----------------------------
  314. INT 05 U - PSPS v2.01 - EJECT PAGE
  315.     AX = 454Ah ('EJ')
  316. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  317.       Technologies
  318. Note:    sends a ^D to the current printer
  319. SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
  320. --------P-054E57-----------------------------
  321. INT 05 U - PSPS v2.01 - SET PARAMETERS
  322.     AX = 4E57h ('NW')
  323.     ES:SI -> 11-byte buffer containing new settings
  324. Return: buffer filled
  325. SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
  326. --------P-055053-----------------------------
  327. INT 05 U - PSPS v2.01 - GET PARAMETERS
  328.     AX = 5053h ('PS')
  329.     ES:SI -> 11-byte buffer for settings
  330. Return: buffer filled
  331. SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
  332. --------P-05554E-----------------------------
  333. INT 05 U - PSPS v2.01 - UNINSTALL
  334.     AX = 554Eh ('UN')
  335. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  336.       Technologies
  337. SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
  338. --------C-06---------------------------------
  339. INT 06 - CPU-generated (80286+) - INVALID OPCODE
  340. Desc:    this interrupt is generated when the CPU attempts to execute an
  341.       invalid opcode (most protected-mode instructions are considered
  342.       invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  343.       which specifies a register rather than a memory address
  344. Notes:    return address points to beginning of invalid instruction
  345.     with proper programming, this interrupt may be used to emulate
  346.       instructions which do not exist; many 386 BIOSes emulate the 80286
  347.       undocumented LOADALL instruction which was removed from the 80386+
  348.     generated by the 80386+ when the LOCK prefix is used with instructions
  349.       other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
  350.       NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
  351.       not accessing memory.
  352. SeeAlso: INT 0C"CPU",INT 0D"CPU"
  353. --------b-06---------------------------------
  354. INT 06 C - HP 95LX - SLEEP/WAKEUP
  355. Desc:    this interrupt is called just before going into light or deep
  356.       (shutdown) sleep and just after returning from light or deep sleep
  357. SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
  358. --------C-07---------------------------------
  359. INT 07 - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
  360. Desc:    this interrupt is automatically called if a coprocessor instruction is
  361.       encountered when no coprocessor is installed
  362. Note:    can be used to emulate a numeric coprocessor in software
  363. SeeAlso: INT 09"MATH UNIT PROTECTION"
  364. --------H-08---------------------------------
  365. INT 08 - IRQ0 - SYSTEM TIMER
  366. Desc:    generated 18.2 times per second by channel 0 of the 8254 system timer,
  367.       this interrupt is used to keep the time-of-day clock updated
  368. Notes:    programs which need to be invoked regularly should use INT 1C unless
  369.       they need to reprogram the timer while still keeping the time-of-day
  370.       clock running at the proper rate
  371.     default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
  372.     may be masked by setting bit 0 on I/O port 21h
  373. SeeAlso: INT 1C,INT 4A,INT 50"DESQview",INT 58"DoubleDOS",INT 70,INT 78"GO32"
  374. SeeAlso: INT D8"Screen Thief"
  375. --------C-08---------------------------------
  376. INT 08 - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
  377. Desc:    called when multiple exceptions occur on one instruction, or an
  378.       exception occurs in an exception handler
  379. Notes:    called in protected mode if an interrupt above the defined limit of
  380.       the interrupt vector table occurs
  381.     return address points at beginning of instruction with errors or the
  382.       beginning of the instruction which was about to execute when the
  383.       external interrupt caused the exception
  384.     if an exception occurs in the double fault handler, the CPU goes into
  385.       SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  386.       this "triple fault" is a faster way of returning to real mode on
  387.       many 80286 machines than the standard keyboard controller reset
  388. --------H-09---------------------------------
  389. INT 09 - IRQ1 - KEYBOARD DATA READY
  390. Desc:    this interrupt is generated when data is received from the keyboard.
  391.       This is normally a scan code (from either a keypress *or* a key
  392.       release), but may also be an ACK or NAK of a command on AT-class
  393.       keyboards.
  394. Notes:    this IRQ may be masked by setting bit 1 on I/O port 21h
  395.     if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  396.       INT 15/AH=4Fh after reading the scan code (see #0005) from the
  397.       keyboard and before further processing; all further processing uses
  398.       the scan code returned from INT 15/AH=4Fh
  399.     the default interrupt handler is at F000h:E987h in 100%-compatible
  400.       BIOSes
  401.     the interrupt handler performs the following actions for certain
  402.       special keystrokes:
  403.         Ctrl-Break     clear keyboard buffer, place word 0000h in buffer,
  404.              invoke INT 1B, and set flag at 0040h:0071h
  405.         SysReq     invoke INT 15/AH=85h (SysReq is often labeled SysRq)
  406.         Ctrl-Numlock place system in a tight wait loop until next INT 09
  407.         Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
  408.                destination of the jump at that address)
  409.         Shift-PrtSc     invoke INT 05
  410.     DRDOS hooks this interrupt to control the cursor shape (underscore/
  411.       half block) for overwrite/insert mode
  412.     DR Multiuser DOS hooks this interrupt for cursor shape control and to
  413.       control whether Ctrl-Alt-Del reboots the current session or the
  414.       entire system
  415. SeeAlso: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B
  416. SeeAlso: INT 2F/AX=A901h,INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
  417.  
  418. (Table 0005)
  419. Values for keyboard scan code:
  420.  01h    Esc         31h    N
  421.  02h    1 !         32h    M
  422.  03h    2 @         33h    , <         63h    F16
  423.  04h    3 #         34h    . >         64h    F17
  424.  05h    4 $         35h    / ?         65h    F18
  425.  06h    5 %         36h    Right Shift     66h    F19
  426.  07h    6 ^         37h    Grey*         67h    F20
  427.  08h    7 &         38h    Alt         68h    F21
  428.  09h    8 *         39h    SpaceBar     69h    F22
  429.  0Ah    9 (         3Ah    CapsLock     6Ah    F23
  430.  0Bh    0 )         3Bh    F1         6Bh    F24
  431.  0Ch    - _         3Ch    F2         6Ch    --
  432.  0Dh    = +         3Dh    F3         6Dh    EraseEOF
  433.  0Eh    Backspace     3Eh    F4
  434.  0Fh    Tab         3Fh    F5         6Fh    Copy/Play
  435.  10h    Q         40h    F6
  436.  11h    W         41h    F7
  437.  12h    E         42h    F8         72h    CrSel
  438.  13h    R         43h    F9
  439.  14h    T         44h    F10         74h    ExSel
  440.  15h    Y         45h    NumLock         75h    --
  441.  16h    U         46h    ScrollLock     76h    Clear
  442.  17h    I         47h    Home
  443.  18h    O         48h    UpArrow
  444.  19h    P         49h    PgUp
  445.  1Ah    [ {         4Ah    Grey-
  446.  1Bh    ] }         4Bh    LeftArrow
  447.  1Ch    Enter         4Ch    Keypad 5
  448.  1Dh    Ctrl         4Dh    RightArrow
  449.  1Eh    A         4Eh    Grey+
  450.  1Fh    S         4Fh    End
  451.  20h    D         50h    DownArrow     E0h    prefix code
  452.  21h    F         51h    PgDn         E1h    prefix code
  453.  22h    G         52h    Ins         FAh    ACK
  454.  23h    H         53h    Del         FEh    RESEND
  455.  24h    J         54h    SysReq         FFh    kbd error/buffer full
  456.  25h    K
  457.  26h    L         56h    left \| (102-key)
  458.  27h    ; :         57h    F11
  459.  28h    ' "         58h    F12
  460.  29h    ` ~
  461.  2Ah    Left Shift     5Ah    PA1
  462.  2Bh    \ |         5Bh    F13
  463.  2Ch    Z         5Ch    F14
  464.  2Dh    X         5Dh    F15
  465.  2Eh    C
  466.  2Fh    V
  467.  30h    B
  468. Notes:    scan codes 56h-E1h are only available on the extended (101/102-key)
  469.       keyboard and Host Connected (122-key) keyboard; scan codes 5Ah-76h
  470.       are only available on the 122-key keyboard
  471.     the SysReq key is often labeled SysRq
  472. --------C-09---------------------------------
  473. INT 09 - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
  474. Desc:    called if the coprocessor attempts to access memory outside a segment
  475.       boundary; it may occur at an arbitrary time after the coprocessor
  476.       instruction was issued
  477. Notes:    until the condition is cleared or the coprocessor is reset, the only
  478.       coprocessor instruction which may be used is FNINIT; WAIT or other
  479.       coprocessor instructions will cause a deadlock because the
  480.       coprocessor is still busy waiting for data
  481.     for the 486+, a coprocessor protection error generates an INT 0D
  482. SeeAlso: INT 07"CPU"
  483. --------*-09---------------------------------
  484. INT 09 P - internal hardware - RESERVED BY Intel (80486)
  485. Note:    this exception has been moved to INT 0D
  486. SeeAlso: INT 09"MATH",INT 0D
  487. --------H-0A---------------------------------
  488. INT 0A - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
  489. Notes:    the TOPS and PCnet adapters use this interrupt request line by default
  490.     DOS 3.2 revectors IRQ2 to a stack-switching routine
  491.     on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  492.       connects to the slave 8259.  The BIOS redirects the interrupt for
  493.       IRQ9 back here.
  494.     under DESQview, only the INT 15h vector and BASIC segment address (the
  495.       word at 0000h:0510h) may be assumed to be valid for the handler's
  496.       process
  497.     many VGA boards do not implement the vertical retrace interrupt,
  498.       including the IBM VGA Adapter where the traces are either cut or
  499.       removed
  500. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  501. --------H-0A---------------------------------
  502. INT 0A - IRQ2 - Tandy 1000-series HARD DISK
  503. Notes:    this interrupt may be masked by setting bit 2 on I/O port 21h
  504.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  505.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  506.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  507.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  508.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  509.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  510.       interrupt use IRQ5 for vertical retrace.
  511. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  512. --------H-0A---------------------------------
  513. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  514. Note:    newer Roland cards and MIDI interfaces by other manufacturers use
  515.       a jumper-selectable IRQ, but software and hardware generally defaults
  516.       to IRQ2
  517. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  518. --------C-0A---------------------------------
  519. INT 0A P - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  520. Desc:    automatically called during a task switch if the new TSS specified by
  521.       the task gate is invalid for any of the following reasons:
  522.         TSS limit is less than 43 (80286) or 103 (80386/80486)
  523.         LDT selector invalid or segment not present
  524.         null SS selector, or SS selector outside LDT/GDT limit
  525.         stack segment is read-only
  526.         stack segment DPL differs from new CPL, or RPL <> CPL
  527.         CS selector is outside LDT/GDT limit or not code
  528.         non-conforming code segment's DPL differs from CPL
  529.         conforming code segment's DPL > CPL
  530.         DS/ES selectors outside LDT/GDT limit or not readable segments
  531. Note:    the handler must use a task gate in order to have a valid TSS under
  532.       which to execute; it must also reset the busy bit in the new TSS
  533. SeeAlso: INT 0B"CPU"
  534. --------H-0B---------------------------------
  535. INT 0B - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  536. Desc:    automatically asserted by the UART when COM2 needs attention, if the
  537.       UART has been programmed to generate interrupts
  538. Notes:    the TOPS and PCnet adapters use this interrupt request line as an
  539.       alternate
  540.     on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  541.       shares this interrupt
  542.     may be masked by setting bit 3 on I/O port 21h
  543. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  544. --------C-0B---------------------------------
  545. INT 0B P - CPU-generated (80286+) - SEGMENT NOT PRESENT
  546. Desc:    generated when loading a segment register if the segment descriptor
  547.       indicates that the segment is not currently in memory, unless the
  548.       segment is an LDT (see INT 0A"CPU") or stack segment (see
  549.       INT 0C"CPU") needed by a task switch
  550. Note:    may be used to implement virtual memory by loading in segments as they
  551.       are accessed, clearing the "not present" bit after loading
  552. SeeAlso: INT 0A"CPU",INT 0E"hardware"
  553. --------h-0B---------------------------------
  554. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  555. Desc:    this is the lowest-level keyboard handler on an HP 95LX palmtop
  556. Note:    debounces key, places the keycode in I/O register 60h, and calls INT 09
  557. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  558. --------H-0C---------------------------------
  559. INT 0C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  560. Desc:    automatically asserted by the UART when COM1 needs attention, if the
  561.       UART has been programmed to generate interrupts
  562. BUG:    this vector is modified but not restored by Direct Access v4.0, and
  563.       may be left dangling by other programs written with the same version
  564.       of compiled BASIC
  565. Notes:    on many PC's, COM3 shares this interrupt
  566.     may be masked by setting bit 4 on I/O port 21h
  567. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  568. --------C-0C---------------------------------
  569. INT 0C - CPU-generated (80286+) - STACK FAULT
  570. Desc:    this interrupt is generated in protected mode on a stack overflow or
  571.       underflow, or if an inter-level transition or task switch references
  572.       a stack segment marked "not present"; it is generated in real mode
  573.       on accessing a word operand at SS:FFFFh
  574. Note:    the 80286 will shut down in real mode if SP=1 before a push.  On the
  575.       PC AT and compatibles, external circuitry generates a reset on
  576.       shutdown.
  577. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  578. --------I-0C---------------------------------
  579. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  580. Desc:    the IBM System 36/38 emulator may be invoked through a private API,
  581.       whose entry point address (see #0006) is offset 100h in the segment
  582.       pointed at by this vector
  583.  
  584. (Table 0006)
  585. Call the System 36/38 emulator API entry point with:
  586.     AH = function
  587.         03h update screen
  588.         05h select next session
  589.         AL = session number (00h-03h)
  590.         Return: AL = session type code
  591.                 00h not active
  592.                 01h display session
  593.                 02h printer session
  594.                 FEh invalid session number
  595.             DS = requested session's data segment (0 if not active)
  596.                 (see #0007)
  597. Return: ???
  598.  
  599. Format of System 36/38 emulator's data area:
  600. Offset    Size    Description    (Table 0007)
  601. 13Eh    BYTE    bit flags for status line indicators turned on since this byte
  602.         last zerod
  603. 13Fh    BYTE    bit flags for status line indicators turned off since this
  604.         byte last set to FFh
  605. 140h    WORD    offset of EBCDIC to ASCII translation
  606. 146h    WORD    offset of EBCDIC screen buffer
  607. 148h    WORD    offset of EC (engineering change) level signature
  608. 150h    BYTE    "KEYI"
  609. 151h    BYTE    5250 key scan code to be sent to remote
  610. 15Bh    BYTE    "SYSAV"
  611. 15Dh    BYTE    5250 cursor column
  612. 15Eh    BYTE    5250 cursor row
  613. 167h    BYTE    "DVCTAD"
  614. 178h    BYTE    "FLAGS"
  615. 184h    BYTE    "SESSNOAD"
  616. 193h    BYTE    "STNAD"
  617. 198h    BYTE    "NSDS"
  618. Note:    offsets are from the interrupt handler's segment
  619. --------H-0D---------------------------------
  620. INT 0D - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  621. Notes:    under DESQview, only the INT 15h vector and BASIC segment address (the
  622.       word at 0000h:0510h) may be assumed to be valid for the handler's
  623.       process
  624.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  625.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  626.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  627.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  628.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  629.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  630.       interrupt use IRQ5 for vertical retrace.
  631.     may be masked by setting bit 5 on I/O port 21h
  632. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  633. SeeAlso: INT 7D"GO32"
  634. --------H-0D---------------------------------
  635. INT 0D - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  636. Desc:    used to ensure that the dynamic RAM retains its contents in earlier
  637.       1000-series models; later models use normal DMA for RAM refresh
  638.       (some early models have no DMA unless it is added via an expansion
  639.       card)
  640. SeeAlso: INT 55
  641. --------h-0D---------------------------------
  642. INT 0D - HP 95LX - INFRARED INTERRUPT
  643. Desc:    this interrupt is used to perform communications over the infrared
  644.       data link
  645. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  646. --------C-0D---------------------------------
  647. INT 0D - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  648. Desc:    the CPU generates this interrupt when it detects a protection violation
  649.       which does not fit under any other category having a separate
  650.       interrupt
  651. Notes:    called in real mode when
  652.         an instruction accesses a memory operand extending beyond offset
  653.           FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  654.           CS, DS, ES, FG, or GS
  655.         a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  656.           in the second byte
  657.         an instruction exceeds the maximum length allowed (10 bytes for
  658.           80286, 15 bytes for 80386/80486)
  659.         an instruction wraps from offset FFFFh to offset 0000h
  660.     called in protected mode on protection violations not covered by INT 06
  661.       through INT 0C, including
  662.         segment limit violations
  663.         write to read-only segments
  664.         accesses using null DS or ES selectors
  665.         accesses to segments with privilege greater than CPL
  666.         wrong descriptor type
  667.     called on 80486 protected-mode floating-point protection fault
  668. SeeAlso: INT 09"80486",INT 0C"STACK"
  669. --------H-0E---------------------------------
  670. INT 0E - IRQ6 - DISKETTE CONTROLLER
  671. Desc:    this interrupt is generated by the floppy disk controller on
  672.       completion of an operation
  673. Notes:    default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  674.     may be masked by setting bit 6 on I/O port 21h
  675. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  676. --------C-0E---------------------------------
  677. INT 0E - CPU-generated (80386+ native mode) - PAGE FAULT
  678. Desc:    this interrupt is generated in protected and virtual-86 modes on
  679.       attempting to access a 4K memory page whose page table entry has
  680.       the "present" bit cleared
  681. Note:    used to implement virtual memory
  682. SeeAlso: INT 0B"hardware"
  683. --------h-0E---------------------------------
  684. INT 0E - HP 95LX - EXTERNAL CARD INTERRUPT
  685. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  686. --------H-0F---------------------------------
  687. INT 0F - IRQ7 - PARALLEL PRINTER
  688. Desc:    this interrupt is generated by the LPT1 printer adapter when the
  689.       printer becomes ready
  690. Notes:    most printer adapters do not reliably generate this interrupt
  691.     the 8259 interrupt controller generates an interrupt corresponding to
  692.       IRQ7 when an error condition occurs
  693. SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  694. --------h-0F---------------------------------
  695. INT 0F - HP 95LX - REAL-TIME CLOCK
  696. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
  697. --------C-10---------------------------------
  698. INT 10 - CPU-generated (80286+) - COPROCESSOR ERROR
  699. Desc:    this interrupt is generated by the CPU when the -ERROR pin is asserted
  700.       by the coprocessor
  701. Note:    AT's and clones usually wire the coprocessor to use IRQ13, but not all
  702.       get it right
  703. SeeAlso: INT 09"hardware",INT 75
  704. --------V-1000-------------------------------
  705. INT 10 - VIDEO - SET VIDEO MODE
  706.     AH = 00h
  707.     AL = mode (see #0009)
  708. Return: AL = video mode flag (Phoenix, AMI BIOS)
  709.         20h mode > 7
  710.         30h modes 0-5 and 7
  711.         3Fh mode 6
  712.     AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  713. Desc:    specify the display mode for the currently active display adapter
  714. Notes:    IBM standard modes do not clear the screen if the high bit of AL is set
  715.       (EGA or higher only)
  716.     the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  717.       SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  718.       Everex EV-673
  719.     the installation check for Ahead adapters is the signature "AHEAD" at
  720.       C000h:0025h
  721.     the installation check for Paradise adapters is the signature "VGA=" at
  722.       C000h:007Dh
  723.     the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  724.       signature "OAK VGA" at C000h:0008h
  725.     the installation check for ATI adapters is the signature "761295520" at
  726.       C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
  727.         31h for 18800
  728.         32h for 18800-1
  729.         33h for 18800-2
  730.         34h for 18800-4
  731.         35h for 18800-5
  732.       the two bytes at C000h:0040h indicate the adapter type
  733.         "22" EGA Wonder
  734.         "31" VGA Wonder
  735.         "32" EGA Wonder800+
  736.       the byte at C000h:0042h contains feature flags
  737.         bit 1: mouse port present
  738.         bit 4: programmable video clock
  739.       the byte at C000h:0044h contains additional feature flags if chipset
  740.         byte > 30h (see #0008)
  741.     the installation check for Genoa video adapters is the signature
  742.       77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
  743.       and XXh is
  744.         00h for Genoa 6200/6300
  745.         11h for Genoa 6400/6600
  746.         22h for Genoa 6100
  747.         33h for Genoa 5100/5200
  748.         55h for Genoa 5300/5400
  749.       for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  750.       for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  751.         "EXTMODE", indicating support for extended modes
  752. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  753. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
  754. Index:    installation check;Tseng ET4000|installation check;Ahead video cards
  755. Index:    installation check;Oak Technologies|installation check;ATI video cards
  756. Index:    installation check;Paradise video|installation check;Genoa video cards
  757.  
  758. Bitfields for ATI additional feature flags:
  759. Bit(s)    Description    (Table 0008)
  760.  0    70 Hz non-interlaced display
  761.  1    Korean (double-byte) characters
  762.  2    45 MHz memory clock rather than 40 MHz
  763.  3    zero wait states
  764.  4    paged ROMs
  765.  6    no 8514/A monitor support
  766.  7    HiColor DAC
  767.  
  768. (Table 0009)
  769. Values for video mode:
  770.      text/ text pixel    pixel    colors disply scrn  system
  771.      grph resol     box  resolution       pages  addr
  772.  00h = T  40x25     8x8   320x200    16gray      8   B800 CGA,PCjr,Tandy
  773.      = T  40x25     8x14  320x350    16gray      8   B800 EGA
  774.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  775.      = T  40x25     9x16  360x400     16      8   B800 VGA
  776.  01h = T  40x25     8x8   320x200     16      8   B800 CGA,PCjr,Tandy
  777.      = T  40x25     8x14  320x350     16      8   B800 EGA
  778.      = T  40x25     8x16  320x400     16      8   B800 MCGA
  779.      = T  40x25     9x16  360x400     16      8   B800 VGA
  780.  02h = T  80x25     8x8   640x200    16gray      4   B800 CGA,PCjr,Tandy
  781.      = T  80x25     8x14  640x350    16gray      8   B800 EGA
  782.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  783.      = T  80x25     9x16  720x400     16      8   B800 VGA
  784.  03h = T  80x25     8x8   640x200     16      4   B800 CGA,PCjr,Tandy
  785.      = T  80x25     8x14  640x350     16/64      8   B800 EGA
  786.      = T  80x25     8x16  640x400     16      8   B800 MCGA
  787.      = T  80x25     9x16  720x400     16      8   B800 VGA
  788.  04h = G  40x25     8x8   320x200      4      .   B800 CGA,PCjr,EGA,MCGA,VGA
  789.  05h = G  40x25     8x8   320x200     4gray      .   B800 CGA,PCjr,EGA
  790.      = G  40x25     8x8   320x200      4      .   B800 MCGA,VGA
  791.  06h = G  80x25     8x8   640x200      2      .   B800 CGA,PCjr,EGA,MCGA,VGA
  792.  07h = T  80x25     9x14  720x350    mono     var  B000 MDA,Hercules,EGA
  793.      = T  80x25     9x16  720x400    mono      .   B000 VGA
  794.  08h = T 132x25     8x8  1056x200     16      .   B800 ATI EGA/VGA Wonder [2]
  795.      = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA/VGA Wonder [2]
  796.      = G  20x25     8x8   160x200     16      .    .  PCjr, Tandy 1000
  797.      = G  90x43     8x8   720x352    mono      .   B000 Hercules + MSHERC.COM
  798.      = G  90x45     8x8   720x360    mono      .   B000 Hercules + HERKULES [11]
  799.  09h = G  40x25     8x8   320x200     16      .    .  PCjr, Tandy 1000
  800.  0Ah = G  80x25     8x8   640x200      4      .    .  PCjr, Tandy 1000
  801.  0Bh =     reserved                   (EGA BIOS internal use)
  802.      = G  80x25     8x8   640x200     16      .    .  Tandy 1000 SL/TL [13]
  803.  0Ch =     reserved                   (EGA BIOS internal use)
  804.  0Dh = G  40x25     8x8   320x200     16      8   A000 EGA,VGA
  805.  0Eh = G  80x25     8x8   640x200     16      4   A000 EGA,VGA
  806.  0Fh = G  80x25     8x14  640x350    mono      2   A000 EGA,VGA
  807.  10h = G  80x25     8x14  640x350      4      2   A000 64k EGA
  808.      = G    .      .    640x350     16      .   A000 256k EGA,VGA
  809.  11h = G  80x30     8x16  640x480    mono      .   A000 VGA,MCGA,ATI EGA,ATI VIP
  810.  12h = G  80x30     8x16  640x480     16/256K  .   A000 VGA,ATI VIP
  811.      = G  80x30     8x16  640x480     16/64      .   A000 ATI EGA Wonder
  812.      = G    .      .    640x480     16      .    .  UltraVision+256K EGA
  813.  13h = G  40x25     8x8   320x200    256/256K  .   A000 VGA,MCGA,ATI VIP
  814.  14h = T 132x25     Nx16      .     16      .    .  XGA, IBM Enhanced VGA [3]
  815.      = T 132x25     8x16 1056x400     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  816.      = G  80x25     8x8   640x200      .      .    .  Lava Chrome II EGA
  817.      = G    .      .    640x400     16      .    .  Tecmar VGA/AD
  818.  15h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  819.  16h = G  80x25     8x14  640x350      .      .    .  Lava Chrome II EGA
  820.      = G    .      .    800x600     16      .    .  Tecmar VGA/AD
  821.  17h = T 132x25      .      .      .      .    .  Tecmar VGA/AD
  822.      = T  80x43     8x8   640x348     16      4   B800 Tseng ET4000 BIOS [10]
  823.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  824.  18h = T  80x30     9x16  720x480     16      1   A000 Realtek RTVGA [12]
  825.      = T 132x25      .      .    mono      .   B000 Cirrus 5320 chipset
  826.      = T 132x44     8x8  1056x352    mono      .   B000 Tseng Labs EVA
  827.      = T 132x44     9x8  1188x352     4gray      2   B000 Tseng ET3000 chipset
  828.      = T 132x44     8x8  1056x352     16/256      2   B000 Tseng ET4000 chipset
  829.      = G  80x34     8x14  640x480      .      .    .  Lava Chrome II EGA
  830.      = G          1024x768     16      .    .  Tecmar VGA/AD
  831.  19h = T  80x43     9x11  720x473     16      1   A000 Realtek RTVGA [12]
  832.      = T 132x25     8x14 1056x350    mono      .   B000 Tseng Labs EVA
  833.      = T 132x25     9x14 1188x350     4gray      4   B000 Tseng ET3000 chipset
  834.      = T 132x25     8x14 1056x350     16/256      4   B000 Tseng ET4000 chipset
  835.      = T 132x34      .      .    mono      .   B000 Cirrus 5320 chipset
  836.  1Ah = T  80x60     9x8   720x480     16      1   A000 Realtek RTVGA [12]
  837.      = T 132x28     8x13 1056x364    mono      .   B000 Tseng Labs EVA
  838.      = T 132x28     9x13 1188x364     4gray      4   B000 Tseng ET3000 chipset
  839.      = T 132x28     8x13 1056x364     16/256      4   B000 Tseng ET4000 chipset
  840.      = T 132x44      .      .    mono      .   B000 Cirrus 5320 chipset
  841.      = G    .      .    640x350    256      .    .  Tecmar VGA/AD
  842.  1Bh = T 132x25     9x14 1188x350     16      1   A000 Realtek RTVGA [12]
  843.      = G    .      .    640x400    256      .    .  Tecmar VGA/AD
  844.  1Ch = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  845.      = T 132x30     9x16 1188x480     16      1   A000 Realtek RTVGA [12]
  846.      = G    .      .    640x480    256      .    .  Tecmar VGA/AD
  847.  1Dh = T 132x43      .      .      .      .    .  Cirrus 5320 chipset
  848.      = T 132x43     9x11 1188x473     16      1   A000 Realtek RTVGA [12]
  849.      = G    .      .    800x600    256      .    .  Tecmar VGA/AD
  850.  1Eh = T 132x44      .      .      .      .    .  Cirrus 5320 chipset
  851.      = T 132x60     9x8  1188x480     16      1   A000 Realtek RTVGA [12]
  852.  1Fh = G 100x75     8x8   800x600     16      1   A000 Realtek RTVGA
  853.  20h = T 132x25      .      .     16      .    .  Avance Logic AL2101
  854.      = G    .      .    240x128      .      .   B000 HP 95LX
  855.      = G 120x45     8x16  960x720     16      1   A000 Realtek RTVGA
  856.  21h = T 132x30      .      .     16      .    .  Avance Logic AL2101
  857.      = T 132x44     9x9  1188x396     16/256K  .   B800 WD90C
  858.      = T 132x44     9x9  1188x396     16      .   B800 Diamond Speedstar 24X
  859.      = T 132x60      .      .     16      2   B800 Tseng ET4000 chipset [10]
  860.      = G  80x43     8x8   720x348    mono      .   B000 DESQview 2.x+Hercules [4]
  861.      = G 128x48     8x16 1024x768     16      1   A000 Realtek RTVGA [12]
  862.  22h = T 132x43      .      .      .      .    .  Allstar Peacock (VGA)
  863.      = T 132x43      .      .     16      .    .  Avance Logic AL2101
  864.      = T 132x44     8x8  1056x352      .      .   B800 Tseng Labs EVA
  865.      = T 132x44     9x8  1188x352     16/256K  2   B800 Tseng ET3000 chipset
  866.      = T 132x44     8x8  1056x352     16/256K  2   B800 Tseng ET4000 chipset
  867.      = T 132x44     8x8  1056x352      .      .    .  Ahead Systems EGA2001
  868.      = T 132x44     8x8  1056x352     16      2   B800 Ahead B
  869.      = T 132x44     8x9  1056x398     16      .    .  STB Lightspeed ET4000/W32P
  870.      = T 132x44      .      .     16      .    .  Orchid Prodesigner VGA
  871.      = G  80x43     8x8   720x348    mono      .   B800 DESQview 2.x+Hercules [4]
  872.      = G  96x64     8x16  768x1024     16      1   A000 Realtek RTVGA
  873.  23h = T 132x25     6x14  792x350      .      .   B800 Tseng Labs EVA
  874.      = T 132x25     9x14 1188x350     16/256K  4   B800 Tseng ET3000 chipset
  875.      = T 132x25     8x14 1056x350     16/256      4   B800 Tseng ET4000 chipset
  876.      = T 132x25     8x14 1056x350      .      .    .  Ahead Systems EGA2001
  877.      = T 132x25     8x14 1056x350     16      4   B800 Ahead B
  878.      = T 132x25     8x8  1056x200     16      .   B800 ATI EGA Wonder,ATI VIP
  879.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  880.      = T 132x28      .      .      .      .    .  Allstar Peacock (VGA)
  881.      = T 132x28      .      .     16      .    .  Orchid Prodesigner VGA
  882.      = T 132x60      .      .     16      .    .  Avance Logic AL2101
  883.      = G 128x48     8x16 1024x768      4      1   A000 Realtek RTVGA
  884.  24h = T  80x30      .      .     16      .    .  Avance Logic AL2101
  885.      = T 132x25      .      .      .      .    .  Allstar Peacock (VGA)
  886.      = T 132x25      .      .     16      .    .  Orchid Prodesigner VGA
  887.      = T 132x28     6x13  792x364      .      .   B800 Tseng Labs EVA
  888.      = T 132x28     9x13 1188x364     16/256K  4   B800 Tseng ET3000 chipset
  889.      = T 132x28     8x12 1056x336     16      1   B800 Ahead B
  890.      = T 132x28     8x13 1056x364     16/256K  4   B800 Tseng ET4000 chipset
  891.      = T 132x28     8x14 1056x392     16      .    .  STB Lightspeed ET4000/W32P
  892.      = T 132x28      .      .      .      .    .  Cirrus 5320 chipset
  893.      = G  64x32     8x16  512x512    256      1   A000 Realtek RTVGA
  894.  25h = T  80x43      .      .     16      .    .  Avance Logic AL2101
  895.      = G  80x60     8x8   640x480      .      .   A000 Tseng Labs EVA
  896.      = G  80x60     8x8   640x480     16/256K  1   A000 Tseng ET3000/4000 chipset
  897.      = G    .      .    640x480     16      .    .  VEGA VGA
  898.      = G  80x60     8x8   640x480     16      .   A000 Orchid Prodesigner VGA
  899.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 26h)
  900.      = G    .      .    640x480     16      .    .  NEC GB-1
  901.      = G    .      .    640x480     16      .    .  Cirrus 5320 chipset
  902.      = G    .      .    640x400    256      .    .  Realtek RTVGA
  903.  26h = T  80x60     8x8   640x480      .      .    .  Tseng Labs EVA
  904.      = T  80x60     8x8   640x480     16/256K  3   B800 Tseng ET3000/4000 chipset
  905.      = T  80x60      .      .      .      .    .  Allstar Peacock (VGA)
  906.      = T  80x60      .      .     16      .    .  Orchid ProDesigner VGA
  907.      = T  80x60      .      .     16      .    .  Avance Logic AL2101
  908.      = G  80x60     8x8   640x480      .      .    .  Ahead Systems EGA2001
  909.      = G  80x60     8x8   640x480     16      1   A000 Ahead B (same as 25h)
  910.      = G    .      .    640x480    256      .    .  Realtek RTVGA
  911.  27h = T 132x25     8x8  1056x200    mono      .   B000 ATI EGA Wonder,ATI VIP
  912.      = G    .      .    720x512     16      .    .  VEGA VGA
  913.      = G    .      .    720x512     16      .    .  Genoa
  914.      = G 100x75     8x8   800x600    256      1   A000 Realtek RTVGA [12]
  915.      = G    .      .    960x720     16      .    .  Avance Logic AL2101
  916.  28h = T ???x???  .      .      .      .    .  VEGA VGA
  917.      = G    .      .    512x512    256      .    .  Avance Logic AL2101
  918.      = G    .      .   1024x768    256      .    .  Realtek RTVGA (1meg)
  919.  29h = G    .      .    640x400    256      .    .  Avance Logic AL2101
  920.      = G    .      .    800x600     16      .    .  VEGA VGA
  921.      = G 100x37     8x16  800x600     16      .   A000 Orchid
  922.      = G    .      .    800x600     16      .   A000 STB,Genoa,Sigma
  923.      = G    .      .    800x600     16      .    .  Allstar Peacock (VGA)
  924.      = G 100x37     8x16  800x600     16/256K  1   A000 Tseng ET3000/4000 chipset
  925.      = G    .      .    800x600    ???      .    .  EIZO MDB10
  926.      = G    .      .    800x600     16      .    .  Cirrus 5320 chipset
  927.      = G   NA      .    800x600     16      .    .  Compaq QVision 1024/1280
  928.      = G    .      .   1024x1024 256      .    .  Realtek RTVGA BIOS v3.C10
  929.  2Ah = T 100x40      .      .      .      .    .  Allstar Peacock (VGA)
  930.      = T 100x40     8x16  800x640     16      .    .  Orchid Prodesigner VGA
  931.      = T 100x40     8x15  800x600     16/256K  4   B800 Tseng ET3000/4000 chipset
  932.      = T 100x40     8x15  800x600     16      .    .  STB Lightspeed ET4000/W32P
  933.      = G    .      .    640x480    256      .    .  Avance Logic AL2101
  934.      = G    .      .   1280x1024     16      .    .  Realtek RTVGA
  935.  2Bh = G    .      .    800x600     16      .    .  Avance Logic AL2101
  936.  2Ch = G    .      .    800x600    256      .    .  Avance Logic AL2101
  937.  2Dh = G    .      .    640x350    256      .    .  VEGA VGA
  938.      = G    .      .    640x350    256/256K  .   A000 Orchid, Genoa, STB
  939.      = G  80x25     8x14  640x350    256/256K  1   A000 Tseng ET3000/4000 chipset
  940.      = G    .      .    640x350    256      .    .  Cirrus 5320 chipset
  941.      = G  80x25     8x14  640x350    256      .    .  STB Lightspeed ET4000/W32P
  942.      = G    .      .    768x1024     16      .    .  Avance Logic AL2101
  943.  2Eh = G    .      .    640x480    256      .    .  VEGA VGA
  944.      = G  80x30     8x16  640x480 256/256K      .   A000 Orchid
  945.      = G    .      .    640x480 256/256K      .   A000 STB,Genoa,Sigma
  946.      = G  80x30     8x16  640x480 256/256K      1   A000 Tseng ET3000/4000 chipset
  947.      = G    .      .    640x480 256/256K      .    .  Compaq QVision 1024/1280
  948.      = G    .      .    768x1024 256      .    .  Avance Logic AL2101
  949.  2Fh = T 160x50     8x8  1280x400     16      4   B800 Ahead B (Wizard/3270)
  950.      = G    .      .    720x512    256      .    .  VEGA VGA
  951.      = G    .      .    720x512    256      .    .  Genoa
  952.      = G  80x25     8x16  640x400 256/256K      1   A000 Tseng ET4000 chipset
  953.      = G    .      .   1024x768      4      .    .  Avance Logic AL2101
  954.  30h = G    .      .    800x600    256      .    .  VEGA VGA
  955.      = G 100x37     8x16  800x600 256/256K      .   A000 Orchid
  956.      = G    .      .    800x600 256/256K      .   A000 STB,Genoa,Sigma
  957.      = G    .      .    720x350      2      .    .  3270 PC
  958.      = G    .      .    800x600    256      .    .  Cardinal
  959.      = G    .      .      .      .      .   B800 AT&T 6300
  960.      = G 100x37     8x16  800x600 256/256K      1   A000 Tseng ET3000/4000 chipset
  961.      = G    .      .   1024x768     16      .    .  Avance Logic AL2101
  962.  31h = G    .      .   1024x768    256      .    .  Avance Logic AL2101
  963.  32h = T  80x34     8x10      .     16      4   B800 Ahead B (Wizard/3270)
  964.      = G    .      .    640x480    256      .    .  Compaq QVision 1024/1280
  965.  33h = T 132x44     8x8      .     16      .   B800 ATI EGA Wonder,ATI VIP
  966.      = T  80x34     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  967.  34h = T  80x66     8x8      .     16      4   B800 Ahead B (Wizard/3270)
  968.      = G    .      .    800x600    256      .    .  Compaq QVision 1024/1280
  969.  36h = G    .      .    960x720     16      .    .  VEGA VGA, STB
  970.      = G    .      .    960x720     16      .   A000 Tseng ET3000 only
  971.      = G    .      .   1280x1024     16      .    .  Avance Logic AL2101
  972.  37h = T 132x44     8x8      .    mono      .   B800 ATI EGA Wonder,ATI VIP
  973.      = G    .      .   1024x768     16      .    .  VEGA VGA
  974.      = G 128x48     8x16 1024x768     16      .   A000 Orchid
  975.      = G    .      .   1024x768     16      .   A000 STB,Genoa,Sigma
  976.      = G    .      .   1024x768     16      .    .  Definicon
  977.      = G 128x48     8x16 1024x768     16      1   A000 Tseng ET3000/4000 chipset
  978.      = G    .      .   1024x768     16      .    .  Compaq QVision 1024/1280
  979.      = G    .      .   1280x1024 256      .    .  Avance Logic AL2101
  980.  38h = G    .      .   1024x768    256      .    .  STB VGA/EM-16 Plus (1MB)
  981.      = G 128x48     8x16 1024x768    256/256K  1   A000 Tseng ET4000 chipset
  982.      = G    .      .   1024x768    256      .    .  Orchid ProDesigner II
  983.      = G    .      .   1024x768    256      .    .  Compaq QVision 1024/1280
  984.  39h = G    .      .   1280x1024     16      .    .  Compaq QVision 1280
  985.  3Ah = G    .      .   1280x1024    256      .    .  Compaq QVision 1280
  986.  3Bh = G    .      .    512x480    256      .    .  Compaq QVision 1024/1280
  987.  3Ch = G    .      .    640x400     64K      .    .  Compaq QVision 1024/1280
  988.  3Dh = G    .      .   1280x1024     16      .    .  Definicon
  989.      = G 128x64     8x16 1280x1024     16      1   A000 Tseng ET4000 v3.00 [1,7]
  990.  3Eh = G    .      .   1280x961     16      .    .  Definicon
  991.      = G    .      .    640x480     64K      .    .  Compaq QVision 1024/1280
  992.  3Fh = G    .      .   1280x1024 256      .    .  Hercules ??? (ET4000W32)
  993.      = G    .      .    800x600     64K      .    .  Compaq QVision 1024/1280
  994.  40h = T  80x43      .      .      .      .    .  VEGA VGA, Tecmar VGA/AD
  995.      = T  80x43      .      .      .      .    .  Video7 V-RAM VGA
  996.      = T  80x43      .      .      .      .    .  Tatung VGA
  997.      = T 100x30      .      .     16      .    .  MORSE VGA
  998.      = T 100x30      .      .      .      .    .  Cirrus 510/520 chipset
  999.      = T  80x25      .    720x350    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1000.      = G    .      .    320x200     64K      .    .  Avance Logic AL2101
  1001.      = G  80x25     8x16  640x400      2      1   B800 AT&T 6300, AT&T VDC600
  1002.      = G  80x25     8x16  640x400      2      1   B800 Olivetti Quaderno
  1003.      = G  80x25     8x16  640x400      2      1   B800 Compaq Portable
  1004.      = G    .      .   1024x768     64K      .    .  Compaq QVision 1280
  1005.  41h = T 132x25      .      .      .      .    .  VEGA VGA
  1006.      = T 132x25      .      .      .      .    .  Tatung VGA
  1007.      = T 132x25      .      .      .      .    .  Video7 V-RAM VGA
  1008.      = T 100x50      .      .     16      .    .  MORSE VGA
  1009.      = T 100x50      .      .      .      .    .  Cirrus 510/520 chipset
  1010.      = T  80x34     9x14  720x476     16/256K  .   B800 WD90C
  1011.      = T  80x34     9x14      .     16      .   B800 Diamond Speedstar 24X
  1012.      = G    .      .    512x512     64K      .    .  Avance Logic AL2101
  1013.      = G    .      .    640x200     16      1    .  AT&T 6300
  1014.      = G  80x25      .    720x348    mono      .   B000 Genoa SuperEGA BIOS 3.0+
  1015.  42h = T 132x43      .      .      .      .    .  VEGA VGA
  1016.      = T 132x43      .      .      .      .    .  Tatung VGA
  1017.      = T 132x43      .      .      .      .    .  Video7 V-RAM VGA
  1018.      = T  80x34     9x10      .      4      4   B800 Ahead B (Wizard/3270)
  1019.      = T 100x60      .      .     16      .    .  MORSE VGA
  1020.      = T 100x60      .      .      .      .    .  Cirrus 510/520 chipset
  1021.      = G  80x25     8x16  640x400     16      .    .  AT&T 6300, AT&T VDC600
  1022.      = G    .      .    640x400     64K      .    .  Avance Logic AL2101
  1023.      = G  80x25      .    720x348    mono      .   B800 Genoa SuperEGA BIOS 3.0+
  1024.  43h = T  80x60      .      .      .      .    .  VEGA VGA
  1025.      = T  80x60      .      .      .      .    .  Tatung VGA
  1026.      = T  80x60      .      .      .      .    .  Video7 V-RAM VGA
  1027.      = T  80x45     9x8      .      4      4   B800 Ahead B (Wizard/3270)
  1028.      = T 100x75      .      .     16      .    .  MORSE VGA
  1029.      = T  80x29      .    720x348    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1030.      = G    .      . 640x200 of 640x400 viewport       AT&T 6300 (unsupported)
  1031.      = G    .      .    640x480     64K      .    .  Avance Logic AL2101
  1032.  44h =    disable VDC and DEB output        .  AT&T 6300
  1033.      = T 100x60      .      .      .      .    .  VEGA VGA
  1034.      = T 100x60      .      .      .      .    .  Tatung VGA
  1035.      = T 100x60      .      .      .      .    .  Video7 V-RAM VGA
  1036.      = T  80x32      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1037.      = G    .      .    800x600     64K      .    .  Avance Logic AL2101
  1038.  45h = T 132x28      .      .      .      .    .  Tatung VGA
  1039.      = T 132x28      .      .      .      .    .  Video7 V-RAM VGA
  1040.      = T  80x44      .    720x352    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1041.  46h = T 132x25     8x14      .    mono      .    .  Genoa 6400
  1042.      = T 132x25     9x14      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1043.      = G 100x40     8x15  800x600      2      .    .  AT&T VDC600
  1044.  47h = T 132x29     8x12      .    mono      .    .  Genoa 6400
  1045.      = T 132x29     9x12      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1046.      = T 132x28     9x16 1188x448     16/256K  .   B800 WD90C
  1047.      = T 132x28     9x16      .     16      .   B800 Diamond Speedstar 24X
  1048.      = G 100x37     8x16  800x600     16      .    .  AT&T VDC600
  1049.  48h = T 132x32     8x12      .    mono      .    .  Genoa 6400
  1050.      = T 132x32     9x11      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1051.      = G  80x50     8x8   640x400      2      .   B800 AT&T 6300, AT&T VDC600
  1052.      = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno
  1053.  49h = T 132x44     8x8      .    mono      .    .  Genoa 6400
  1054.      = T 132x44     9x8      .    mono      .    .  Genoa SuperEGA BIOS 3.0+
  1055.      = G  80x30     8x16  640x480      .      .    .  Lava Chrome II EGA
  1056.  4Dh = T 120x25      .      .      .      .    .  VEGA VGA
  1057.      = G    .      .    512x480     16M      .    .  Compaq QVision 1024/1280
  1058.  4Eh = T 120x43      .      .      .      .    .  VEGA VGA
  1059.      = T  80x60     8x8      .     16/256K  .   B800 Oak OTI-067/OTI-077 [8]
  1060.      = G    .      .    640x400     16M      .    .  Compaq QVision 1024/1280
  1061.  4Fh = T 132x25      .      .      .      .    .  VEGA VGA
  1062.      = T 132x60      .      .      .      .    .  some Oak Tech VGA [8]
  1063.      = G    .      .    640x480     16M      .    .  Compaq QVision 1280
  1064.  50h = T  80x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1065.      = T  80x34      .      .      .      .    .  Lava Chrome II EGA
  1066.      = T  80x43      .      .    mono      .    .  VEGA VGA
  1067.      = T 132x25     9x14      .    mono      .    .  Ahead Systems EGA2001
  1068.      = T 132x25     9x14      .      4      4   B800 Ahead B
  1069.      = T 132x25     8x14      .     16      8   B800 OAK Technologies VGA-16
  1070.      = T 132x25     8x14      .     16/256K  .   B800 Oak OTI-037/067/077 [8]
  1071.      = T 132x25     8x14 1056x350     16      8   B800 UM587 chipset
  1072.      = T 132x30      .      .     16      .    .  MORSE VGA
  1073.      = T 132x30      .      .      .      .    .  Cirrus 510/520 chipset
  1074.      = G  80x30     8x16  640x480     16      .    .  Paradise EGA-480
  1075.      = G  80x30     8x16  640x480     16      .    .  NEL Electronics BIOS
  1076.      = G    .      .    640x480    mono???      .    .  Taxan 565 EGA
  1077.      = G  40x25     8x8   320x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1078.  51h = T  80x30     8x16      .      .      .    .  Paradise EGA-480
  1079.      = T  80x30     9x16      .      .      .    .  NEL Electronics BIOS
  1080.      = T  80x30      .      .      .      .    .  Lava Chrome II EGA
  1081.      = T  80x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1082.      = T 132x25      .      .    mono      .    .  VEGA VGA
  1083.      = T 132x28     9x12      .      4      4   B800 Ahead B
  1084.      = T 132x43     8x8      .     16      5   B800 OAK Technologies VGA-16
  1085.      = T 132x43     8x8      .     16/256K  .   B800 Oak OTI-037/067/077
  1086.      = T 132x43     8x8  1056x344     16      5   B800 UM587 chipset
  1087.      = T 132x50      .      .     16      .    .  MORSE VGA
  1088.      = T 132x50      .      .      .      .    .  Cirrus 510/520 chipset
  1089.      = G  80x34     8x14  640x480     16      .    .  ATI EGA Wonder
  1090.      = G  80x25     8x8   640x200      .      .    .  Genoa SuperEGA BIOS 3.0+
  1091.  52h = T  80x60      .      .      .      .    .  Lava Chrome II EGA
  1092.      = T  80x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1093.      = T 132x43      .      .    mono      .    .  VEGA VGA
  1094.      = T 132x44     9x8      .    mono      .    .  Ahead Systems EGA2001
  1095.      = T 132x44     9x8      .      4      2   B800 Ahead B
  1096.      = T 132x60      .      .     16      .    .  MORSE VGA
  1097.      = T 132x60      .      .      .      .    .  Cirrus 510/520 chipset
  1098.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji&superimpose)
  1099.      = G  94x29     8x14  752x410     16      .    .  ATI EGA Wonder
  1100.      = G 100x75     8x8   800x600     16      1   A000 OAK Technologies VGA-16
  1101.      = G 100x75     8x8   800x600     16      .   A000 Oak OTI-037 chipset [8]
  1102.      = G 100x37     8x16  800x600     16      .   A000 Oak OTI-067/077 chips [8]
  1103.      = G 100x75     8x8   800x600     16      .   A000 UM587 chipset
  1104.      = G 128x30     8x16 1024x480     16      .    .  NEL Electronics BIOS
  1105.  53h = T  80x25     8x16      .      .      .    .  NEL Electronics BIOS
  1106.      = T  80x60      .      .     16      .    .  MORSE VGA
  1107.      = T  80x60      .      .      .      .    .  Cirrus 510/520 chipset
  1108.      = T 132x25     8x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1109.      = T 132x43      .      .      .      .    .  Lava Chrome II EGA
  1110.      = G  80x25     8x19  640x480     16      1   A000 AX VGA (Kanji, no superimp.)
  1111.      = G    .      .    640x480    256      .    .  Oak VGA
  1112.      = G  80x30     8x16  640x480    256      .   A000 Oak OTI-067/OTI-077 [8]
  1113.      = G 100x40     8x14  800x560     16      .    .  ATI EGA Wonder,ATI VIP
  1114.      = G    .      .      .      .      .    .  AX PC
  1115.  54h = T 132x25      .      .      .      .    .  Lava Chrome II EGA
  1116.      = T 132x30     8x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1117.      = T 132x43     8x8      .      .      .    .  Paradise EGA-480
  1118.      = T 132x43     8x8      .      .      .    .  NEL Electronics BIOS
  1119.      = T 132x43     7x9      .     16/256K  .   B800 Paradise VGA
  1120.      = T 132x43     8x9      .     16/256K  .   B800 Paradise VGA on multisync
  1121.      = T 132x43      .      .      .      .    .  Taxan 565 EGA
  1122.      = T 132x43      .      .      .      .    .  AST VGA Plus
  1123.      = T 132x43      .      .      .      .    .  Hewlett-Packard D1180A
  1124.      = T 132x43     7x9      .     16      .    .  AT&T VDC600
  1125.      = T 132x43     9x9  1188x387     16/256K  .   B800 WD90C
  1126.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Speedstar 24X
  1127.      = T 132x43     9x9  1188x387     16/256K  .   B800 Diamond Stealth 24
  1128.      = T 132x43     8x8  1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1129.      = T 132x50     8x8      .     16      .   A000 NCR 77C22 [9]
  1130.      = G 100x42     8x14  800x600     16      .   A000 ATI EGA Wonder, VGA Wonder
  1131.      = G 100x42     8x14  800x600     16      .   A000 ATI Ultra 8514A, ATI XL
  1132.      = G    .      .    800x600    256      .   A000 Oak VGA
  1133.      = G 100x37     8x16  800x600    256      .   A000 Oak OTI-067/077 chips [8]
  1134.  55h = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1135.      = T 132x25     8x14      .      .      .    .  Paradise EGA-480
  1136.      = T 132x25     8x14      .      .      .    .  NEL Electronics BIOS
  1137.      = T 132x25     7x16      .     16/256K  .   B800 Paradise VGA
  1138.      = T 132x25     8x16      .     16/256K  .   B800 Paradise VGA on multisync
  1139.      = T 132x25      .      .      .      .    .  Taxan 565 EGA
  1140.      = T 132x25      .      .      .      .    .  AST VGA Plus
  1141.      = T 132x25      .      .      .      .    .  Hewlett-Packard D1180A
  1142.      = T 132x25     7x16      .     16      .    .  AT&T VDC600
  1143.      = T 132x25     8x16      .     16      .   A000 NCR 77C22 [9]
  1144.      = T 132x25     9x16 1188x400     16/256K  .   B800 WD90C
  1145.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Speedstar 24X
  1146.      = T 132x25     9x16 1188x400     16/256K  .   B800 Diamond Stealth 24
  1147.      = T 132x25     8x14 1056x350     16/256K  .    .  Cirrus CL-GD5420/5422/5426
  1148.      = T 132x43     8x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1149.      = G  94x29     8x14  752x410      .      .    .  Lava Chrome II EGA
  1150.      = G 128x48     8x16 1024x768     16/256K  .   A000 ATI VGA Wonder v4+  [5]
  1151.      = G    .      .   1024x768     16/256K  .    .  ATI VGA Wonder Plus
  1152.      = G    .      .   1024x768     16/256K  .    .  ATI Ultra 8514A,ATI XL
  1153.      = G 128x48     8x16 1024x768      4      .   A000 Oak OTI-067/077 chips [8]
  1154.  56h = T 132x43     8x8      .      3???      2   B000 NSI Smart EGA+
  1155.      = T 132x43     7x9      .      4      .   B000 Paradise VGA
  1156.      = T 132x43     8x9      .      4      .   B000 Paradise VGA on multisync
  1157.      = T 132x43      .      .    mono      .    .  Taxan 565 EGA
  1158.      = T 132x43     7x9      .      2      .    .  AT&T VDC600
  1159.      = T 132x43     9x8      .      .      .    .  NEL Electronics BIOS
  1160.      = T 132x50     8x8      .      4      .   A000 NCR 77C22 [9]
  1161.      = T 132x60     8x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1162.      = G    .      .   1024x768     16      .   A000 Oak VGA
  1163.      = G 128x48     8x16 1024x768     16      .   A000 Oak OTI-067/077 chips [8]
  1164.  57h = T 132x25     8x14      .      3???      4   B000 NSI Smart EGA+
  1165.      = T 132x25     7x16      .      4      .   B000 Paradise VGA
  1166.      = T 132x25     8x16      .      4      .   B000 Paradise VGA on multisync
  1167.      = T 132x25     9x14      .      .      .    .  NEL Electronics BIOS
  1168.      = T 132x25      .      .    mono      .    .  Taxan 565 EGA
  1169.      = T 132x25     7x16      .      2      .    .  AT&T VDC600
  1170.      = T 132x25     9x14      .     16/256K  .   B800 Trident TVGA 8800/8900
  1171.      = T 132x25     8x16      .      4      .   A000 NCR 77C22 [9]
  1172.      = G  96x48     8x16  768x1024     16      .   A000 Oak OTI-067/077 chips [8]
  1173.  58h = T  80x33     8x14      .     16      .   B800 ATI EGA Wonder,ATI VIP
  1174.      = T  80x32     9x16      .     16      .    .  Genoa 6400
  1175.      = T  80x43     8x8      .      .      .    .  NEL Electronics BIOS
  1176.      = T 132x30     9x16      .     16/256K  .   B800 Trident TVGA 8800/8900
  1177.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA
  1178.      = G 100x75     8x8   800x600     16      .    .  AT&T VDC600
  1179.      = G 100x75     8x8   800x600     16      .   A000 NCR 77C22 [9]
  1180.      = G 100x75     8x8   800x600     16      .    .  Diamond Speedstar 24X
  1181.      = G 100x75     8x8   800x600     16/256K  .   A000 Paradise VGA, WD90C
  1182.      = G    .      .    800x600     16      .    .  AST VGA Plus, Compaq VGA
  1183.      = G    .      .    800x600     16      .    .  Dell VGA
  1184.      = G    .      .    800x600     16      .    .  Hewlett-Packard D1180A
  1185.      = G    .      .    800x600    ???      .    .  ELT VGA PLUS 16
  1186.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1187.      = G 160x64     8x16 1280x1024     16      .   A000 Oak OTI-077 chipset [8]
  1188.  59h = T  80x43     9x8      .      .      .    .  NEL Electronics BIOS
  1189.      = T  80x66     8x8      .     16/256K  .   A000 ATI VIP
  1190.      = T 132x43     9x11      .     16/256K  .   B800 Trident TVGA 8800/8900
  1191.      = G 100x75     8x8   800x600      2      .   A000 Paradise VGA
  1192.      = G 100x75     8x8   800x600      2      .    .  AT&T VDC600
  1193.      = G    .      .    800x600      2      .    .  AST VGA Plus, Compaq VGA
  1194.      = G    .      .    800x600      2      .    .  Dell VGA
  1195.      = G    .      .    800x600      2      .    .  Hewlett-Packard D1180A
  1196.      = G 100x75     8x8   800x600      2      .   A000 NCR 77C22 [9]
  1197.      = G 128x48     8x16 1024x768    256      .   A000 Oak OTI-077 chipset [8]
  1198.  5Ah = T  80x60     8x8      .      .      .    .  NEL Electronics BIOS
  1199.      = T 132x60     9x8      .     16/256K  .   B800 Trident TVGA 8800/8900
  1200.      = G 128x48     8x16 1024x768      2      .   A000 NCR 77C22 [9]
  1201.  5Bh = T  80x30     8x16      .      .      .   B800 ATI VGA Wonder (undoc)
  1202.      = G    .      .    640x350    256      .    .  Genoa 6400
  1203.      = G  80x25     8x16  640x400     32K      .   A000 Oak OTI-067/077 chips [8]
  1204.      = G    .      .    800x600     16      .    .  Maxxon, SEFCO TVGA, Imtec
  1205.      = G 100x75     8x8   800x600     16/256K  .   A000 Trident TVGA 8800, 8900
  1206.      = G    .      .    800x600    ???      .    .  Vobis MVGA
  1207.      = G 100x37     8x16  800x600      .      .    .  NEL Electronics BIOS
  1208.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [1,9]
  1209.  5Ch = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1210.      = G    .      .    640x400    256      .    .  Logix, ATI Prism Elite
  1211.      = G    .      .    640x400    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1212.      = G  80x25     8x16  640x400    256/256K  .   A000 Zymos Poach, Hi Res 512
  1213.      = G  80x25     8x16  640x400    256/256K  .   A000 Trident TVGA 8800/8900
  1214.      = G  80x30     8x16  640x480    256      .    .  Genoa 6400
  1215.      = G  80x30     8x16  640x480     32K      .   A000 Oak OTI-077 chipset [8]
  1216.      = G 100x75     8x8   800x600    256      .   A000 NCR 77C22 [9]
  1217.      = G 100x75     8x8   800x600    256/256K  .   A000 WD90C
  1218.      = G 100x75     8x8   800x600    256/256K  .   A000 Diamond Speedstar 24X
  1219.      = G 100x37     8x16  800x600    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1220.  5Dh = T 100x75     8x8      .      .      .    .  NEL Electronics BIOS
  1221.      = G  80x25  8x14  640x350     64K      .    .  STB Lightspeed ET4000/W32P
  1222.      = G    .      .    640x480    256      .    .  Logix, ATI Prism Elite
  1223.      = G    .      .    640x480    256      .    .  Maxxon, SEFCO TVGA, Imtec
  1224.      = G  80x30     8x16  640x480    256/256K  .   A000 Zymos Poach, Hi Res 512
  1225.      = G  80x30     8x16  640x480    256/256K  .   A000 Trident TVGA 8800 (512K)
  1226.      = G 128x48     8x16 1024x768     16      .   A000 NCR 77C22 [9]
  1227.      = G 128x48     8x16 1024x768     16/256K  .   A000 WD90C
  1228.      = G 128x48     8x16 1024x768     16      .    .  Diamond Speedstar 24X
  1229.      = G 128x48     8x16 1024x768     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1230.  5Eh = G    .      .    640x400    256      .    .  Paradise VGA,VEGA VGA
  1231.      = G    .      .    640x400    256      .    .  AST VGA Plus, NCR 77C22
  1232.      = G    .      .    640x400    256      .    .  Compaq VGA, Dell VGA
  1233.      = G  80x25     8x16  640x400    256      .    .  AT&T VDC600
  1234.      = G  80x25     8x16  640x400    256      .   A000 NCR 77C22 [9]
  1235.      = G  80x25     8x16  640x400    256/256K  .   A000 WD90C
  1236.      = G  80x25     8x16  640x400    256/256K  .   A000 Diamond Speedstar 24X
  1237.      = G    .      .    800x600     16      .    .  Logix, ATI Prism Elite
  1238.      = G 100x37     8x16  800x600     16      .    .  NEL Electronics BIOS
  1239.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1240.      = G 100x75     8x8   800x600    256/256K  .   A000 Zymos Poach, Trident 8900
  1241.      = G 100x75     8x8   800x600    256/256K  .   A000 Hi Res 512
  1242.  5Fh = G  80x25  8x16  640x400     64K      .    .  STB Lightspeed ET4000/W32P
  1243.      = G    .      .    640x480    256      .    .  Paradise VGA
  1244.      = G    .      .    640x480    256      .    .  AST VGA Plus, NCR 77C22
  1245.      = G    .      .    640x480    256      .    .  Compaq VGA, Dell VGA
  1246.      = G    .      .    640x480    256      .    .  Hewlett-Packard D1180A
  1247.      = G  80x30     8x16  640x480    256      .    .  AT&T VDC600 (512K)
  1248.      = G  80x30     8x16  640x480    256      .   A000 NCR 77C22 [9]
  1249.      = G  80x30     8x16  640x480    256/256K  .   A000 WD90C
  1250.      = G  80x30     8x16  640x480    256/256K  .   A000 Diamond Speedstar 24X
  1251.      = G  80x30     8x16  640x480    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1252.      = G    .      .   1024x768     16      .    .  Logix, ATI Prism Elite
  1253.      = G    .      .   1024x768     16      .    .  Maxxon, Imtec
  1254.      = G 128x48     8x16 1024x768     16      .    .  Genoa 6400
  1255.      = G 128x48     8x16 1024x768     16/256K  .   A000 Zymos Poach, Hi Res 512
  1256.      = G 128x48     8x16 1024x768     16/256K  .   A000 Trident TVGA 88/8900 512K
  1257.  60h = T 132x25     8x14      .     16/64      8   B800 Quadram Ultra VGA
  1258.      = T 132x25     8x14      .     16      .    .  Genoa 6400
  1259.      = T 132x25     8x14      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1260.      = T 132x25      .      .      .      .    .  Cirrus 5320 chipset
  1261.      = T 132x25      .      .     16      .    .  Chips&Technologies chipset
  1262.      = G  80x???  .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1263.      = G  80x25     8x16  640x400    256      1   A000 Ahead A, Ahead B
  1264.      = G    .      .    752x410      .      .    .  VEGA VGA
  1265.      = G    .      .    752x410     16      .    .  Tatung VGA
  1266.      = G    .      .    752x410     16      .    .  Video7 V-RAM VGA
  1267.      = G 128x48     8x16 1024x768      4/256K  .   A000 Trident TVGA 8900
  1268.      = G 128x48     8x16 1024x768    256/256K  .   A000 WD90C
  1269.      = G 128x48     8x16 1024x768    256/256K  .   A000 Diamond Speedstar 24X
  1270.      = G 128x48     8x16 1024x768    256/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1271.  61h = T 132x29     8x12      .     16/64      8   B800 Quadram Ultra VGA
  1272.      = T 132x29     8x8      .     16      .    .  Genoa 6400
  1273.      = T 132x29     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1274.      = T 132x50      .      .      .      .    .  Cirrus 5320 chipset
  1275.      = T 132x50      .      .     16      .    .  Chips&Technologies chipset
  1276.      = G    .      .    ???x400      .      .    .  Corona/Cordata BIOS 4.10+
  1277.      = G  80x25     8x16  640x400    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1278.      = G  80x25     8x16  640x400    256      .   A000 ATI Ultra 8514A,ATI XL
  1279.      = G  80x30     8x16  640x480    256      1   A000 Ahead A, Ahead B (512K)
  1280.      = G    .      .    720x540      .      .    .  VEGA VGA
  1281.      = G    .      .    720x540     16      .    .  Tatung VGA
  1282.      = G    .      .    720x540     16      .    .  Video7 V-RAM VGA
  1283.      = G  96x64     8x16  768x1024     16/256K  .   A000 Trident TVGA 88/8900 512K
  1284.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [1,9]
  1285.  62h = T 132x32     8x11      .     16/64      6   B800 Quadram Ultra VGA
  1286.      = T 132x32     8x12      .     16      .    .  Genoa 6400
  1287.      = T 132x32     8x11      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1288.      = G    .      .    640x450     16      .    .  Cirrus 510/520 chipset
  1289.      = G  80x30     8x16  640x480    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1290.      = G  80x30     8x16  640x480    256      .   A000 ATI Ultra 8514A,ATI XL
  1291.      = G  80x30     8x16  640x480    32K      .   A000 WD90C
  1292.      = G  80x30     8x16  640x480    32K      .   A000 Diamond Speedstar 24X
  1293.      = G    .      .    800x600      .      .    .  VEGA VGA
  1294.      = G    .      .    800x600     16      .    .  Tatung VGA
  1295.      = G    .      .    800x600     16      .    .  Video7 V-RAM VGA
  1296.      = G 100x75     8x8   800x600    256      1   A000 Ahead A, Ahead B (512K)
  1297.      = G 128x48     8x16 1024x768    256/256K  .   A000 Trident TVGA 8900, Zymos
  1298.      = G 128x48     8x16 1024x768    256      .   A000 NCR 77C22 [9]
  1299.  63h = T 132x44     8x8      .     16/64      5   B800 Quadram Ultra VGA
  1300.      = T 132x44     8x8      .     16      .    .  Genoa 6400
  1301.      = T 132x44     8x8      .     16      .    .  Genoa SuperEGA BIOS 3.0+
  1302.      = G    .      .    720x540     16      .    .  MORSE VGA
  1303.      = G    .      .    720x540     16      .    .  Cirrus 510/520 chipset
  1304.      = G 100x42     8x14  800x600    256      .   A000 ATI VGA Wonder,VGA Wonder+
  1305.      = G 100x42     8x14  800x600    256      .   A000 ATI Ultra 8514A,ATI XL
  1306.      = G    .      .    800x600    32K      .   A000 WD90C
  1307.      = G    .      .    800x600    32K      .   A000 Diamond Speedstar 24X
  1308.      = G 128x48     7x16 1024x768    256      1   A000 Ahead B (1MB)
  1309.      = G    .      .   1024x768      2      .    .  Video7 V-RAM VGA
  1310.  64h = T 132x60     8x8      .     16      .    .  Genoa 6400
  1311.      = G    .      .    640x480    64K      .   A000 Cirrus CL-GD 5422/5426
  1312.      = G    .      .    800x600     16      .    .  MORSE VGA
  1313.      = G    .      .    800x600     16      .    .  Cirrus 510/520 chipset
  1314.      = G    .      .    800x600    ???      .    .  SAMPO-Mira VGA
  1315.      = G    .      .   1024x768      4      .    .  Video7 V-RAM VGA
  1316.      = G 128x48     8x16 1024x768    256      .   A000 ATI VGA Wonder Plus,ATI XL
  1317.      = G 160x64     8x16 1280x1024     16/256K  .   A000 WD90C [1]
  1318.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Diamond Speedstar 24X [1]
  1319.  65h = G    .      .    800x600    64K      .   A000 Cirrus CL-GD 5422/5426
  1320.      = G    .      .   1024x768     16      .    .  Video7 V-RAM VGA
  1321.      = G 128x48     8x16 1024x768     16      .   A000 ATI VGA Wonder
  1322.  66h = T  80x50     8x8   640x400     16/256K  .   B800 WD90C
  1323.      = T  80x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1324.      = G    .      .    640x400    256      .    .  Tatung VGA
  1325.      = G    .      .    640x400    256      .    .  Video7 V-RAM VGA
  1326.      = G    .      .    640x480    32K      .   A000 Cirrus CL-GD 5422/5426
  1327.  67h = T  80x43     8x8   640x344     16/256K  .   B800 WD90C
  1328.      = T  80x43     8x8      .     16      .   B800 Diamond Speedstar 24X
  1329.      = G    .      .    640x480    256      .    .  Video7 V-RAM VGA
  1330.      = G    .      .    800x600    32K      .   A000 Cirrus CL-GD 5422/5426
  1331.      = G 128x48     8x16 1024x768      4      .   A000 ATI VGA Wonder
  1332.      = G 160x64     8x16 1280x1024     16      .   A000 NCR 77C22 [1,9]
  1333.  69h = T 132x50     8x8  1056x400     16/256K  .   B800 WD90C
  1334.      = T 132x50     8x8      .     16      .   B800 Diamond Speedstar 24X
  1335.      = G    .      .    720x540    256      .    .  Video7 V-RAM VGA
  1336.  6Ah = G    .      .    800x600     16      .   A000 VESA standard interface
  1337.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1338.      = G 100x75     8x8   800x600     16      .    .  Diamond Speedstar 24X
  1339.      = G    .      .    800x600     16      .   A000 Ahead A
  1340.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (VESA) (see 71h)
  1341.      = G    .      .    800x600     16      .    .  Zymos Poach, Hi Res 512
  1342.      = G    .      .    800x600     16      .    .  Epson LT-386SX in CRT Mode
  1343.      = G    .      .    800x600     16      .    .  Compuadd 316SL in CRT Mode
  1344.      = G 100x37     8x16  800x600     16/256K  .   A000 Cirrus CL-GD5420/5422/5426
  1345.      = G 100x42     8x14  800x600      .      .   A000 ATI VGA Wonder (undoc)
  1346.      = G    .      .    800x600     16      .    .  Chips&Technologies chipset
  1347.      = G 160x64     8x16 1280x1024 256      .   A000 NCR 77C22 [1,9]
  1348.  6Bh = T 100x37     8x16      .     16      .    .  Genoa 6400
  1349.      = T 100x37     8x16      .      .      .    .  NEL Electronics BIOS
  1350.  6Ch = G  80x30     8x16  640x480     16M      .   A000 Trident 8900CL/BIOS C04
  1351.      = G 100x75     8x8   800x600    256      .    .  Genoa 6400
  1352.      = G 160x60     8x16 1280x960     16/256K  .   A000 WD90C [1]
  1353.      = G 160x60     8x16 1280x960     16/256K  .   A000 Diamond Speedstar 24X [1]
  1354.      = G 160x64     8x16 1280x1024     16/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1355.  6Dh = G  80x25  8x14  640x350     64K      .    .  STB Lightspeed ET4000/W32P
  1356.      = G 160x64     8x16 1280x1024 256/256K  .   A000 Cirrus CL-GD 5422/5426 [1]
  1357.  6Eh = G  40x25     8x8   320x200     64K      .   A000 Cirrus CL-GD 5422/5426
  1358.  6Fh = G  40x25     8x8   320x200     16M      .   A000 Cirrus CL-GD 5422/5426
  1359.  70h =    extended mode set (see AX=0070h)    .  Everex Micro Enhancer EGA
  1360.      = T  40x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1361.      = T  40x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1362.      = G    .      .    360x480    256      .    .  Cirrus 510/520/5320 chips
  1363.      = G  90x28     8x14  720x392     16      1   A000 Ahead B
  1364.      = G    .      .    800x600     16      .    .  C&T chipset, Cardinal
  1365.      = G    .      .   1024x480    256      .    .  Trident 8900C BIOS C3.0
  1366.  71h = T  80x25     8x8      .     16      8   B800 Quadram (CGA double scan)
  1367.      = T  80x25     8x8   (CGA dblscan)      .    .  Genoa SuperEGA BIOS 3.0+
  1368.      = G    .      .    528x400    256      .    .  Cirrus 510/520 chipset
  1369.      = G  80x30     8x16  640x480     16M      .   A000 Cirrus CL-GD 5422/5426
  1370.      = G 100x35     8x16  800x600     16/64      .   A000 NSI Smart EGA+
  1371.      = G 100x75     8x8   800x600     16      1   A000 Ahead B (same as 6Ah)
  1372.      = G    .      .    960x720     16      .    .  C&T chipset, Cardinal
  1373.      = G    .      .   1024x480    256      .    .  Trident 8900C BIOS C3.0
  1374.  72h = T  80x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1375.      = T  80x60     8x8      .     16      .   B800 Genoa 6400
  1376.      = T  80x60     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1377.      = G    .      .    528x480    256      .    .  Cirrus 510/520 chipset
  1378.      = G  80x25     8x19  640x480     16      1   A000 DOS/V w/ any VGA
  1379.      = G    .      .    640x480    32K      .   A000 ATI
  1380.      = G    .      .    640x480    16M      .   A000 WD90C
  1381.      = G    .      .    640x480    16M      .   A000 Diamond Speedstar 24X
  1382.      = G    .      .   1024x768     16      .    .  C&T chipset, Cardinal
  1383.  73h = G  80x60     8x8   640x480     16      .   A000 Quadram Ultra VGA
  1384.      = G  80x60     8x8   640x480     16      .    .  Genoa 6400
  1385.      = G  80x60     8x8   640x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1386.      = T  80x25     8x19  640x475     16      1   none DOS/V, emulated in VGA graph
  1387.  74h = T  80x66     8x8      .     16      .   B800 Quadram Ultra VGA
  1388.      = T  80x66     8x8      .     16      .   B800 Genoa 6400
  1389.      = T  80x66     8x8      .     16      .   B800 Genoa SuperEGA BIOS 3.0+
  1390.      = G    .      .    640x400      2      .   B800 Toshiba 3100 AT&T mode
  1391.      = G  80x30     8x16  640x480     32K      .   A000 Trident 8900C/BIOS C03
  1392.      = G 128x48     8x16 1024x768     16      1   A000 Ahead A, Ahead B (512K)
  1393.      = G    .      .   1024x768     64K      .   A000 Cirrus CL-GD 5422/5426 [1]
  1394.  75h = G  80x30     8x16  640x480     64K      .   A000 Trident 8900C/BIOS C03
  1395.      = G  80x66      .    640x528     16???      .   A000 Quadram Ultra VGA
  1396.      = G  80x66      .    640x528     16      .    .  Genoa SuperEGA BIOS 3.0+
  1397.      = G 128x48     8x16 1024x768      4      1   A000 Ahead B
  1398.  76h = T  94x29     8x14      .     16      .   B800 Quadram Ultra VGA
  1399.      = T  94x29     8x14      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1400.      = G 100x75     8x8   800x600     32K      .   A000 Trident 8900C/BIOS C03
  1401.      = G 128x48     8x16 1024x768      2      1   A000 Ahead B
  1402.  77h = G  94x29      .    752x410     16???      .   A000 Quadram Ultra VGA
  1403.      = G  94x29      .    752x410     16      .    .  Genoa SuperEGA BIOS 3.0+
  1404.      = G 100x75     8x8   800x600     64K      .   A000 Trident 8900C/BIOS C03
  1405.  78h = T 100x37     8x16      .     16      .    .  Genoa 6400
  1406.      = T 100x75     8x8      .     16      .   B800 Quadram Ultra VGA
  1407.      = T 100x75     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1408.      = G    .      .    640x400    256      .    .  STB VGA/EM-16 Plus
  1409.      = G    .      .    640x400    256      .    .  Cardinal, C&T chipset
  1410.      = G    .      .    640x400    256      .    .  Cirrus 5320 chipset
  1411.  79h = G    .      .    640x480    256      .    .  Cardinal, C&T chipset
  1412.      = G 100x75      .    800x600     16???      .   A000 Quadram Ultra VGA
  1413.      = G 100x75     8x8   800x600     16      .    .  Genoa SuperEGA BIOS 3.0+
  1414.      = G 100x75     8x8   800x600     16      .    .  Genoa 6400
  1415.  7Ah = T 114x60     8x8      .     16      .   B800 Quadram Ultra VGA
  1416.      = T 114x60     8x8      .      .      .    .  Genoa SuperEGA BIOS 3.0+
  1417.      = G    .      .    720x540    256      .    .  C&T chipset, Cardinal
  1418.  7Bh = G    .      .    800x600    256      .    .  C&T chipset, Cardinal
  1419.      = G 114x60      .    912x480     16???      .   A000 Quadram Ultra VGA
  1420.      = G    .      .    912x480     16      .    .  Genoa SuperEGA BIOS 3.0+
  1421.  7Ch = G    .      .    512x512     16      .    .  Genoa
  1422.      = G    .      .    800x600    256      .    .  C&T 82C453 chipset
  1423.  7Dh = G  64x32     8x16  512x512    256      .    .  Genoa
  1424.  7Eh =    special mode set (see AX=007Eh)        .  Paradise VGA, AT&T VDC600
  1425.      = G  80x25     8x16  640x400    256      .    .  Genoa 6400
  1426.      = G    .      .   1024x768    256      .    .  C&T 82C453 chipset
  1427.  7Fh =    special function set (see AX=007Fh)    .  Paradise VGA, AT&T VDC600
  1428.      = G 128x48     8x16 1024x768      4      .    .  Genoa 6400
  1429.  82h = T  80x25      .      .    B&W      .    .  AT&T VDC overlay mode [6]
  1430.  83h = T  80x25      .      .      .      .    .  AT&T VDC overlay mode [6]
  1431.  86h = G    .      .    640x200    B&W      .    .  AT&T VDC overlay mode [6]
  1432.  88h = G  90x43     8x8   720x352    mono      .   B000 Hercules + MSHERC.COM
  1433.  C0h = G    .      .    640x400    2/prog palette    .  AT&T VDC overlay mode [6]
  1434.      = G    .      .    640x400    2/prog palette    .  Olivetti Quaderno overlay
  1435.  C4h =    disable output      .      .      .    .  AT&T VDC overlay mode [6]
  1436.  C8h = G  80x50     8x8   640x400      2      .   B800 Olivetti Quaderno overlay
  1437.  D0h = G    .      .    640x400      2      .   B800 DEC VAXmate AT&T mode
  1438. Notes:
  1439. [1] interlaced only
  1440. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1441.       SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1442.       otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1443.       color) 132x25 character mode.
  1444.     for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1445.       resident
  1446. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1447. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1448.       22h is page 1) even if there is no Hercules graphics board installed
  1449. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1450. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1451.       40h, or 44h
  1452. [7] BIOS text support is broken in this undocumented mode; scrolling moves only
  1453.       about 1/3 of the screen (and does even that portion incorrectly), while
  1454.       screen clears only clear about 3/4.
  1455. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1456.       may choose to use only partially or not at all; thus, not all Oak boards
  1457.       support all "Oak" modes listed here
  1458. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1459.       precluding the use of a monochrome adapter in the same system
  1460. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1461.       v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1462.       09/14/90 version
  1463. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1464.       installation check for HERKULES.COM is the signature "Herkules" two bytes
  1465.       beyond the INT 10 handler
  1466. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into modes
  1467.     21h or 27h; this version of the BIOS also sets the BIOS data area
  1468.     incorrectly for extended text modes, resulting in scrolling after only
  1469.     24 lines (the VMODE.EXE    utility does set the data area correctly)
  1470. [13] The Tandy 1000SL/TL BIOS does not actually support this mode
  1471. Index:    video modes
  1472. Index:    installation check|HERKULES
  1473. --------V-100070-----------------------------
  1474. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1475.     AX = 0070h
  1476.     BL = mode (see #0010)
  1477. Desc:    specify a proprietary display mode on the Everex Micro Enhancer or
  1478.       Viewpoint video adapters
  1479. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1480.  
  1481. (Table 0010)
  1482. Values for Everex video mode:
  1483.      text/ text pixel    pixel    colors disply scrn monitor    adapter
  1484.      grph resol     box  resolution       pages  addr
  1485.  00h = G    .      .    640x480     16      .    .  multisync  EGA,VGA
  1486.  01h = G    .      .    752x410     16      .    .  multisync  EGA,VGA
  1487.  02h = G    .      .    800x600     16      .    .  multisync  EGA,VGA
  1488.  03h = T  80x34      .      .      .      .    .  multisync  EGA,VGA
  1489.  04h = T  80x60      .      .      .      .    .  multisync  EGA,VGA
  1490.  05h = T  94x29      .      .      .      .    .  multisync  EGA only
  1491.  06h = T  94x51      .      .      .      .    .  multisync  EGA only
  1492.  07h = T 100x43     8x14      .     16      .    .  .          VGA only
  1493.  08h = T 100x75     8x8      .     16      .    .  .          VGA only
  1494.  09h = T  80x44      .      .      .      .    .  EGA          EGA only
  1495.  0Ah = T 132x25      .      .      .      .    .  EGA          EGA,VGA
  1496.  0Bh = T 132x44      .      .      .      .    .  EGA          EGA,VGA
  1497.  0Ch = T 132x25      .      .      .      .    .  CGA          EGA only
  1498.  0Dh = T  80x44      .      .      .      .    .  mono          EGA only
  1499.  0Eh = T 132x25      .      .      .      .    .  mono
  1500.  0Fh = T 132x44      .      .      .      .    .  mono
  1501.  10h =    reserved
  1502.  11h = G    .      .   1280x350      4      .    .  .          EGA only
  1503.  12h = G    .      .   1280x600      4      .    .  .          EGA only
  1504.  13h = G    .      .    640x350    256      .    .  .          EGA,EV673
  1505.  14h = G    .      .    640x400    256      .    .  .
  1506.  15h = G    .      .    512x480    256      .    .  .
  1507.  16h = T  80x30     8x16      .    256      .    .  .          VGA only
  1508.  18h = T 100x27     8x16      .     16      .    .  .          VGA only
  1509.  20h = G    .      .   1024x768     16      .    .  .          Everex 629,678
  1510.         .      .      .      .      .    .  .          Everex EV-673
  1511.  21h = T 160x64     8x16 1280x1024     16      .    .  .          1MB VGA only
  1512.  30h = G    .      .    640x480    256      .    .  .          Everex 629,678
  1513.         .      .      .      .      .    .  .          Everex EV-673
  1514.  31h = G    .      .    800x600    256      .    .  .          Everex 629,678
  1515.         .      .      .      .      .    .  .          Everex EV-673
  1516.  32h = G 128x48     8x16 1024x768    256      .    .  .          1MB VGA only
  1517.  40h = T 132x30     8x16      .     16      .    .  .          VGA only
  1518.  50h = T 132x32     8x16      .    mono      .    .  .          VGA only
  1519.  62h = G  40x25     8x8   320x200    32K      .    .  .          Vwpt TC (EV629)
  1520.  70h = G  64x30     8x16  512x480    32K      .    .  .          Viewpoint TC
  1521.  71h = G  80x30     8x16  640x480    32K      .    .  .          Viewpoint TC
  1522.  76h = G  64x30     8x16  512x480    16M      .    .  .          Viewpoint TC
  1523.  77h = G  80x30     8x16  640x480    16M      .    .  .          Viewpoint TC
  1524. Index:    video modes
  1525. --------V-10007E-----------------------------
  1526. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1527.     AX = 007Eh
  1528.     BX = horizontal dimension of the mode desired
  1529.     CX = vertical dimension of the mode desired
  1530.         (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1531.     DX = number of colors of the mode desired (0000h for monochrome modes)
  1532. Return: BH = 7Eh if successful (Paradise VGA)
  1533.     AL = 7Eh if successful (AT&T VDC600)
  1534. Desc:    specify a display mode by resolution rather than mode number
  1535. SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
  1536. Index:    video modes
  1537. --------V-10007FBH00-------------------------
  1538. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
  1539.     AX = 007Fh
  1540.     BH = 00h
  1541. Return: AL = 7Fh if successful (AT&T VDC600)
  1542.     BH = status (Paradise/Dell)
  1543.         00h invalid function
  1544.         7Fh successful
  1545. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1546. --------V-10007FBH01-------------------------
  1547. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
  1548.     AX = 007Fh
  1549.     BH = 01h
  1550. Return: AL = 7Fh if successful (AT&T VDC600)
  1551.     BH = status (Paradise/Dell)
  1552.         00h invalid function
  1553.         7Fh successful
  1554. Note:    color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
  1555.       mode 7 will set non-VGA MDA/Hercules operation
  1556. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
  1557. --------V-10007FBH02-------------------------
  1558. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
  1559.     AX = 007Fh
  1560.     BH = 02h
  1561. Return: AL = 7Fh if successful (AT&T VDC600)
  1562.     BH = status (Paradise/Dell)
  1563.         00h invalid function
  1564.         7Fh successful
  1565.     ---if successful---
  1566.     BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1567.     CH = total video RAM size in 64k byte units
  1568.     CL = video RAM used by the current mode
  1569. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1570. --------V-10007F-----------------------------
  1571. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
  1572.     AX = 007Fh
  1573.     BH = function
  1574.         03h     lock current mode
  1575.         allows current mode (VGA or non-VGA) to survive re-boot
  1576.         04h     enter MDA mode
  1577.         05h     enter CGA mode
  1578.         06h     enter monochrome VGA mode (also switches to video mode 7)
  1579.         07h     enter color VGA mode (also switches to video mode 3)
  1580.         0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1581.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1582.         BL = value to set in the paradise register
  1583.         1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1584.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1585.         Return: BL = value of the paradise register
  1586.             BH = 7Fh if successful
  1587.         29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
  1588. Return: AL = 7Fh if successful (AT&T VDC600)
  1589.     BH = status (Paradise/Dell)
  1590.         00h invalid function
  1591.         7Fh successful
  1592. Desc:    set emulation mode or access proprietary extended data registers
  1593. SeeAlso: AX=007Eh,AH=FF"Oak"
  1594. --------V-10007FBH60-------------------------
  1595. INT 10 - Paradise VGA - ???
  1596.     AX = 007Fh
  1597.     BH = 60h
  1598.     BL = ??? (00h-13h)
  1599.     ???
  1600. Return: BH = status (00h failed or not supported, 7Fh successful)
  1601.     ???
  1602. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1603. --------V-10007FBH61-------------------------
  1604. INT 10 - Paradise VGA - ???
  1605.     AX = 007Fh
  1606.     BH = 61h
  1607.     ES:DI -> buffer for list of ??? (see #0011)
  1608. Return: BH = status (00h failed or not supported, 7Fh successful)
  1609.     ???
  1610. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1611.  
  1612. Format of Paradise VGA list entry:
  1613. Offset    Size    Description    (Table 0011)
  1614.  00h    BYTE    ??? or 00h if end of list
  1615.  01h    BYTE    ???
  1616.  02h    WORD    ???
  1617.  04h    WORD    ???
  1618.  06h    WORD    ???
  1619. --------V-10007FBXA500-----------------------
  1620. INT 10 - Paradise VGA - ???
  1621.     AX = 007Fh
  1622.     BX = A500h
  1623.     ???
  1624. Return: BH = status (00h failed or not supported, 7Fh successful)
  1625.     ???
  1626. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1627. --------V-10007FBHA5-------------------------
  1628. INT 10 - Paradise VGA - ???
  1629.     AX = 007Fh
  1630.     BH = A5h
  1631.     BL = ???
  1632.         bits 3-0: ??? (0-4)
  1633.         bits 5,4: ???
  1634.     ???
  1635. Return: BH = status (00h failed or not supported, 7Fh successful)
  1636.     ???
  1637. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1638. --------V-10007FBHA6-------------------------
  1639. INT 10 - Paradise VGA - ???
  1640.     AX = 007Fh
  1641.     BH = A6h
  1642.     ???
  1643. Return: BH = status (00h failed or not supported, 7Fh successful)
  1644.     ???
  1645. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1646. --------V-1001-------------------------------
  1647. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1648.     AH = 01h
  1649.     CH = cursor start and options (see #0012)
  1650.     CL = bottom scan line containing cursor (bits 0-4)
  1651. Desc:    specify the starting and ending scan lines to be occupied by the
  1652.       hardware cursor in text modes
  1653. Notes:    buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1654.       returns unmapped cursor shape
  1655.     UltraVision scales size to the current font height by assuming 14-line
  1656.       monochrome and 8-line color fonts; this call is not valid if cursor
  1657.       emulation has been disabled
  1658.     applications which wish to change the cursor by programming the
  1659.       hardware directly on EGA or above should call INT 10/AX=1130h or
  1660.       read 0040h:0085h first to determine the current font height
  1661.     on some adapters, setting the end line greater than the number of lines
  1662.       in the font will result in the cursor extending to the top of the
  1663.       next character cell on the right
  1664. BUG:    AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1665.       is not equal to the current video mode
  1666. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h
  1667.  
  1668. Bitfields for cursor start and options:
  1669. Bit(s)    Description    (Table 0012)
  1670.  7    should be zero
  1671.  6,5    cursor blink
  1672.     (00=normal, 01=invisible, 10=erratic, 11=slow)
  1673.     (00=normal, other=invisible on EGA/VGA)
  1674.  4-0    topmost scan line containing cursor
  1675. --------V-1002-------------------------------
  1676. INT 10 - VIDEO - SET CURSOR POSITION
  1677.     AH = 02h
  1678.     BH = page number
  1679.         0-3 in modes 2&3
  1680.         0-7 in modes 0&1
  1681.         0 in graphics modes
  1682.     DH = row (00h is top)
  1683.     DL = column (00h is left)
  1684. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh
  1685. --------V-1003-------------------------------
  1686. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1687.     AH = 03h
  1688.     BH = page number
  1689.         0-3 in modes 2&3
  1690.         0-7 in modes 0&1
  1691.         0 in graphics modes
  1692. Return: AX = 0000h (Phoenix BIOS)
  1693.     CH = start scan line
  1694.     CL = end scan line
  1695.     DH = row (00h is top)
  1696.     DL = column (00h is left)
  1697. Notes:    a separate cursor is maintained for each of up to 8 display pages
  1698.     many ROM BIOSes incorrectly return the default size for a color display
  1699.       (start 06h, end 07h) when a monochrome display is attached
  1700. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h
  1701. --------V-1004-------------------------------
  1702. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  1703.     AH = 04h
  1704. Return: AH = light pen trigger flag
  1705.         00h not down/triggered
  1706.         01h down/triggered
  1707.         DH,DL = row,column of character light pen is on
  1708.         CH = pixel row (graphics modes 04h-06h)
  1709.         CX = pixel row (graphics modes with >200 rows)
  1710.         BX = pixel column
  1711. Desc:    determine the current position and status of the light pen (if
  1712.       present)
  1713. Notes:    on a CGA, returned column numbers are always multiples of 2 (320-
  1714.       column modes) or 4 (640-column modes)
  1715.     returned row numbers are only accurate to two lines
  1716. --------V-1004------------------------------------
  1717. INT 10 - HUNTER 16 - GET CURSOR ADDRESS
  1718.     AH = 04h
  1719.     BH = page
  1720. Return: DH = row (0..24)
  1721.     DL = column (0..79)
  1722.     CH = cursor pixel Y-address (0..199)
  1723.     CL = cursor pixel X-address (0..639)
  1724. Notes:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  1725.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  1726.     pixel coordinates are for the lower left corner of the character cell
  1727.       containing the cursor
  1728. SeeAlso: AH=60h"HUNTER"
  1729. --------V-1005-------------------------------
  1730. INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE
  1731.     AH = 05h
  1732.     AL = new page number (00h to number of pages - 1) (see #0009)
  1733. Desc:    specify which of possibly multiple display pages will be visible
  1734. Note:    to determine whether the requested page actually exists, use AH=0Fh
  1735.       to query the current page after making this call
  1736. SeeAlso: AH=0Fh,AH=43h,AH=45h
  1737. --------V-1005-------------------------------
  1738. INT 10 - VIDEO - PCjr, Tandy 1000 - MANIPULATE CRT/CPU PAGE REGISTERS
  1739.     AH = 05h
  1740.     AL = subfunction
  1741.         80h read CRT and CPU page registers
  1742.         Return: BH = CRT page register
  1743.             BL = CPU page register
  1744.         81h set CPU page register
  1745.         BL = CPU page
  1746.         82h set CRT page register
  1747.         BH = CRT page
  1748.         83h set both CPU and CRT page registers
  1749.         BL = CPU page
  1750.         BH = CRT page
  1751. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1752.       memory will be mapped at B800h by the hardware
  1753.     the CRT page determines the start address of the memory used by the
  1754.       video controller
  1755. --------V-1005-------------------------------
  1756. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER
  1757.     AH = 05h
  1758.     AL = function
  1759.         00h set address of graphics bitmap buffer (video modes 60h,61h)
  1760.         BX = segment of buffer
  1761.         0Fh get address of graphics bitmap buffer (video modes 60h,61h)
  1762.         Return: DX = segment of graphics bitmap buffer
  1763. --------V-1006-------------------------------
  1764. INT 10 - VIDEO - SCROLL UP WINDOW
  1765.     AH = 06h
  1766.     AL = number of lines by which to scroll up (00h = clear entire window)
  1767.     BH = attribute used to write blank lines at bottom of window
  1768.     CH,CL = row,column of window's upper left corner
  1769.     DH,DL = row,column of window's lower right corner
  1770. Note:    affects only the currently active page (see AH=05h)
  1771. Warning: some implementations have a bug which destroys BP
  1772. SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  1773. --------V-1007-------------------------------
  1774. INT 10 - VIDEO - SCROLL DOWN WINDOW
  1775.     AH = 07h
  1776.     AL = number of lines by which to scroll down (00h=clear entire window)
  1777.     BH = attribute used to write blank lines at top of window
  1778.     CH,CL = row,column of window's upper left corner
  1779.     DH,DL = row,column of window's lower right corner
  1780. Note:    affects only the currently active page (see AH=05h)
  1781. Warning: some implementations have a bug which destroys BP
  1782. SeeAlso: AH=06h,AH=72h,AH=73h,INT 50/AX=0014h
  1783. --------V-1008-------------------------------
  1784. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1785.     AH = 08h
  1786.     BH = page number (00h to number of pages - 1) (see #0009)
  1787. Return: AH = charater's attribute (see #0013)
  1788.     AL = character
  1789. Notes:    for monochrome displays, a foreground of 1 with background 0 is
  1790.       underlined
  1791.     the blink bit may be reprogrammed to enable intense background colors
  1792.       using AX=1003h or by programming the CRT controller
  1793.     the foreground intensity bit (3) can be programmed to switch between
  1794.       character sets A and B on EGA and VGA cards, thus enabling 512
  1795.       simultaneous characters on screen.  In this case the bit's usual
  1796.       function (intensity) is regularly turned off.
  1797. SeeAlso: AH=09h,AX=1003h,AX=1103h,AH=12h/BL=37h,AX=5001h
  1798.  
  1799. Bitfields for character's display attribute:
  1800. Bit(s)    Description    (Table 0013)
  1801.  7    foreground blink or (alternate) background bright (see also AX=1003h)
  1802.  6-4    background color (see #0014)
  1803.  3    foreground bright or (alternate) alternate character set (see AX=1103h)
  1804.  2-0    foreground color (see #0014)
  1805. SeeAlso: #0025
  1806.  
  1807. (Table 0014)
  1808. Values for character color:
  1809.     Normal        Bright
  1810.  000b    black        dark gray
  1811.  001b    blue        light blue
  1812.  010b    green        light green
  1813.  011b    cyan        light cyan
  1814.  100b    red        light red
  1815.  101b    magenta        light magenta
  1816.  110b    brown        yellow
  1817.  111b    light gray    white
  1818. --------V-1009-------------------------------
  1819. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1820.     AH = 09h
  1821.     AL = character to display
  1822.     BH = page number (00h to number of pages - 1) (see #0009)
  1823.     BL = attribute (text mode) or color (graphics mode)
  1824.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1825.     CX = number of times to write character
  1826. Notes:    all characters are displayed, including CR, LF, and BS
  1827.     replication count in CX may produce an unpredictable result in graphics
  1828.       modes if it is greater than the number of positions remaining in the
  1829.       current row
  1830. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F,INT 43,INT 44
  1831. --------V-100A-------------------------------
  1832. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  1833.     AH = 0Ah
  1834.     AL = character to display
  1835.     BH = page number (00h to number of pages - 1) (see #0009)
  1836.     BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
  1837.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1838.     CX = number of times to write character
  1839. Notes:    all characters are displayed, including CR, LF, and BS
  1840.     replication count in CX may produce an unpredictable result in graphics
  1841.       modes if it is greater than the number of positions remaining in the
  1842.       current row
  1843. SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
  1844. --------V-100B--BH00-------------------------
  1845. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  1846.     AH = 0Bh
  1847.     BH = 00h
  1848.     BL = background/border color (border only in text modes)
  1849. SeeAlso: AH=0Bh/BH=01h
  1850. --------V-100B--BH01-------------------------
  1851. INT 10 - VIDEO - SET PALETTE
  1852.     AH = 0BH
  1853.     BH = 01h
  1854.     BL = palette ID
  1855.         00h background, green, red, and brown/yellow
  1856.         01h background, cyan, magenta, and white
  1857. SeeAlso: AH=0Bh/BH=00h
  1858. --------V-100C-------------------------------
  1859. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  1860.     AH = 0Ch
  1861.     BH = page number
  1862.     AL = pixel color (if bit 7 set, value is xor'ed onto screen)
  1863.     CX = column
  1864.     DX = row
  1865. Desc:    set a single pixel on the display in graphics modes
  1866. Notes:    valid only in graphics modes
  1867.     BH is ignored if the current video mode supports only one page
  1868. SeeAlso: AH=0Dh,AH=46h
  1869. --------V-100D-------------------------------
  1870. INT 10 - VIDEO - READ GRAPHICS PIXEL
  1871.     AH = 0Dh
  1872.     BH = page number
  1873.     CX = column
  1874.     DX = row
  1875. Return: AL = pixel color
  1876. Desc:    determine the current color of the specified pixel in grahics modes
  1877. Notes:    valid only in graphics modes
  1878.     BH is ignored if the current video mode supports only one page
  1879. SeeAlso: AH=0Ch,AH=47h
  1880. --------V-100E-------------------------------
  1881. INT 10 - VIDEO - TELETYPE OUTPUT
  1882.     AH = 0Eh
  1883.     AL = character to write
  1884.     BH = page number
  1885.     BL = foreground color (graphics modes only)
  1886. Desc:    display a character on the screen, advancing the cursor and scrolling
  1887.       the screen as necessary
  1888. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  1889.       and do the expected things
  1890.     IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  1891.       the current active page
  1892. SeeAlso: AH=02h,AH=0Ah
  1893. --------V-100F-------------------------------
  1894. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  1895.     AH = 0Fh
  1896. Return: AH = number of character columns
  1897.     AL = display mode (see #0009 at AH=00h)
  1898.     BH = active page (see AH=05h)
  1899. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1900.       also have bit 7 set
  1901.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1902.       (monochrome) in all extended-row text modes
  1903. SeeAlso: AH=00h,AH=05h,AX=10F2h/BL=00h,AX=1130h,AX=CD04h
  1904. --------V-100F56BX4756-----------------------
  1905. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  1906.     AX = 0F56h
  1907.     BX = 4756h
  1908.     CX = 4944h
  1909.     DL = function
  1910.         01h installation check
  1911.         Return: AX = 5649h
  1912.             BX = 4443h
  1913.             CX = 5647h
  1914.             DH = 01h
  1915.         02h get first video mode's parameters
  1916.         Return: AX = BIOS mode number
  1917.             BX = width in pixels
  1918.             CX = height in pixels
  1919.             DX = number of colors
  1920.         03h get next video mode's parameters
  1921.         Return: as for DL=02h
  1922.         04h display line???
  1923.         ES:DI -> record (see #0015)
  1924.         ???
  1925.         Return: ???
  1926. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  1927. Note:    the use of TSR display drivers was discontinued after v2.20
  1928. Index:    installation check;VUIMAGE display driver
  1929.  
  1930. Format of record for VUIMAGE Function 04h:
  1931. Offset    Size    Description    (Table 0015)
  1932.  00h    WORD    row number
  1933.  02h    WORD    starting column???
  1934.  04h    WORD    ending column???
  1935.     ???
  1936. --------V-100F--SIF123-----------------------
  1937. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  1938.     AH = 0Fh
  1939.     SI = F123h
  1940.     DI = 321Fh
  1941. Return: AH = number of character columns
  1942.     AL = display mode (see #0009 at AH=00h)
  1943.     BH = active page (see AH=05h)
  1944.     SI = DI = F345h if installed
  1945. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1946.       also have bit 7 set
  1947.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1948.       (monochrome) in all extended-row text modes
  1949. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  1950. --------V-1010-------------------------------
  1951. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  1952.     AH = 10h
  1953.     CH,CL = row,column of upper left corner of window
  1954.     DH,DL = row,column of lower right corner of window
  1955. Return: AL = status
  1956.         00h successful
  1957.         01h failed
  1958.     AH destroyed
  1959. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  1960. Note:    when a window has been set, all output via AH=0Eh is restricted to
  1961.       the specified window
  1962. SeeAlso: AH=11h"Window",AH=12h"Window"
  1963. --------V-1010-------------------------------
  1964. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  1965.     AH = 10h
  1966.     AL = speed
  1967.         00h fast
  1968.         01h slow (scrolling only moves characters during vertical retrace)
  1969. Return: AH = previous speed
  1970. --------V-101000-----------------------------
  1971. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
  1972.     AX = 1000h
  1973.     BL = palette register number (00h-0Fh)
  1974.        = attribute register number (undocumented) (see #0016)
  1975.     BH = color or attribute register value
  1976. Notes:    on MCGA, only BX = 0712h is supported
  1977.     under UltraVision, the palette locking status (see AX=CD01h)
  1978.       determines the outcome
  1979. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  1980.  
  1981. (Table 0016)
  1982. Values for attribute register number:
  1983.  10h    attribute mode control register (should let BIOS control this)
  1984.  11h    overscan color register (see also AX=1001h)
  1985.  12h    color plane enable register (bits 3-0 enable corresponding
  1986.       text attribute bit)
  1987.  13h    horizontal PEL panning register
  1988.  14h    color select register
  1989. --------V-101001-----------------------------
  1990. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
  1991.     AX = 1001h
  1992.     BH = border color (00h-3Fh)
  1993. BUG:    the original IBM VGA BIOS incorrectly updates the parameter save area
  1994.       and places the border color at offset 11h of the palette table
  1995.       rather than offset 10h
  1996. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  1997.       determines the outcome
  1998. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  1999. --------V-101002-----------------------------
  2000. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
  2001.     AX = 1002h
  2002.     ES:DX -> palette register list
  2003. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  2004.       determines the outcome
  2005. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  2006.  
  2007. Format of palette register list:
  2008. Offset    Size    Description    (Table 0017)
  2009.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  2010.  10h    BYTE    border color
  2011. --------V-101003-----------------------------
  2012. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  2013.     AX = 1003h
  2014.     BL = new state
  2015.         00h background intensity enabled
  2016.         01h blink enabled
  2017.     BH = 00h to avoid problems on some adapters
  2018. Notes:    although there is no function to get the current status on adapters
  2019.       prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  2020.       VGA, use AH=1Bh and check offset 2Dh of the returned data (see #0037)
  2021.     when configured for a monochrome display, the Boca Research Multi-EGA
  2022.       with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  2023.     this call is reported to be "Get Cursor Position" on the Tandy
  2024.       1000SL/TL
  2025. SeeAlso: AH=08h,AH=1Bh
  2026. --------V-101007-----------------------------
  2027. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  2028.     AX = 1007h
  2029.     BL = palette or attribute (undoc) register number (see #0016)
  2030. Return: BH = palette or attribute register value
  2031. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2032.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2033.       registers will cause incorrect results because the EGA registers are
  2034.       write-only.  To guard against older versions or unsupported video
  2035.       modes, programs which expect to use this function on EGA systems
  2036.       should set BH to FFh on entry.
  2037. SeeAlso: AX=1000h,AX=1009h
  2038. --------V-101008-----------------------------
  2039. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  2040.     AX = 1008h
  2041. Return: BH = border color (00h-3Fh)
  2042. Note:    (see AX=1007h)
  2043. SeeAlso: AX=1001h
  2044. --------V-101009-----------------------------
  2045. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  2046.     AX = 1009h
  2047.     ES:DX -> 17-byte buffer for palette register list (see #0017)
  2048. Note:    UltraVision v2+ supports this function even on color EGA systems in
  2049.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  2050.       registers will cause incorrect results because the EGA registers are
  2051.       write-only.  To guard against older versions or unsupported video
  2052.       modes, programs which expect to use this function on EGA systems
  2053.       should set the ES:DX buffer to FFh before calling.
  2054. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  2055. --------V-101010-----------------------------
  2056. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2057.     AX = 1010h
  2058.     BX = register number
  2059.     CH = new value for green (0-63)
  2060.     CL = new value for blue (0-63)
  2061.     DH = new value for red (0-63)
  2062. SeeAlso: AX=1012h,AX=1015h
  2063. --------V-101012-----------------------------
  2064. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  2065.     AX = 1012h
  2066.     BX = starting color register
  2067.     CX = number of registers to set
  2068.     ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  2069.          byte each of red, green and blue (0-63)
  2070. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  2071. --------V-101013-----------------------------
  2072. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  2073.     AX = 1013h
  2074.     BL = subfunction
  2075.         00h select paging mode
  2076.         BH = 00h select 4 blocks of 64
  2077.         BH = 01h select 16 blocks of 16
  2078.         01h select page
  2079.         BH = page number (00h to 03h) or (00h to 0Fh)
  2080. Note:    this function is not valid in mode 13h
  2081. SeeAlso: AX=101Ah
  2082. --------V-101015-----------------------------
  2083. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2084.     AX = 1015h
  2085.     BL = palette register number
  2086. Return: DH = red value
  2087.     CH = green value
  2088.     CL = blue value
  2089. SeeAlso: AX=1010h,AX=1017h
  2090. --------V-101017-----------------------------
  2091. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  2092.     AX = 1017h
  2093.     BX = starting palette register
  2094.     CX = number of palette registers to read
  2095.     ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  2096. Return: buffer filled with CX red, green and blue triples
  2097. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  2098. --------V-101018-----------------------------
  2099. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  2100.     AX = 1018h
  2101.     BL = new PEL value
  2102. SeeAlso: AX=1019h
  2103. --------V-101019-----------------------------
  2104. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  2105.     AX = 1019h
  2106. Return: BL = value read
  2107. SeeAlso: AX=1018h
  2108. --------V-10101A-----------------------------
  2109. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  2110.     AX = 101Ah
  2111. Return: BL = paging mode
  2112.         00h four pages of 64
  2113.         01h sixteen pages of 16
  2114.     BH = current page
  2115. SeeAlso: AX=1013h
  2116. --------V-10101B-----------------------------
  2117. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  2118.     AX = 101Bh
  2119.     BX = starting palette register
  2120.     CX = number of registers to convert
  2121. Desc:    convert the RGB values of one or more palette registers such that the
  2122.       resulting values are grays with the same intensities as the original
  2123.       colors
  2124. SeeAlso: AH=12h/BL=33h
  2125. --------V-1010E0-----------------------------
  2126. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  2127.     AX = 10E0h
  2128.     BL = video mode (see also #0009 at AH=00h)
  2129.         2Eh = 640x480
  2130. Return: ???
  2131. SeeAlso: AH=00h,AX=10F0h
  2132. --------V-1010F0-----------------------------
  2133. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  2134.     AX = 10F0h
  2135.     BL = video mode (see also #0009 at AH=00h)
  2136.         13h = 320x200x32K
  2137.         2Dh = 640x350x32K
  2138.         2Eh = 640x480x32K
  2139.         2Fh = 640x400x32K
  2140.         30h = 800x600x32K
  2141.         3Eh = 640x480x16M (Genoa 7900)
  2142.         FFh Tseng 24-bit color mode
  2143.         BH = mode
  2144.             2Dh = 640x480
  2145.             2Eh = 640x480x16M
  2146.             2Fh = 640x400
  2147.             30h = 800x600
  2148.             38h = 1024x768??? (Tseng ET4000/W32i)
  2149. Return: AL = 10h if supported
  2150.     AH = status
  2151.         00h if successful
  2152.         other on error
  2153. Desc:    switch the display into a graphics mode with 15 or more bits per pixel
  2154. Note:    the Tseng HiColor BIOS extensions are supported by:
  2155.       Diamond Computer Systems    SpeedStar HiColor VGA
  2156.       Everex Systems        HC VGA
  2157.       Focus Information Systems    2theMax 4000
  2158.       Cardinal Technologies        VGA732
  2159.       Orchid ProDesigner IIs    Genoa 7900
  2160. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  2161. Index:    video modes
  2162. --------V-1010F1-----------------------------
  2163. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  2164.     AX = 10F1h
  2165. Return: AL = 10h if supported
  2166.     BL = type of digital/analog converter (see #0018)
  2167. Desc:    determine which type of digital-to-analog converter is installed on the
  2168.       display board
  2169. SeeAlso: AX=10F0h,AX=10F2h
  2170.  
  2171. (Table 0018)
  2172. Values for type of DAC:
  2173.  00h normal VGA DAC
  2174.  01h Sierra SC1148x HiColor DAC
  2175.  ---Diamond SpeedStar 24---
  2176.  02h new Sierra SS24 DAC (24-bit)
  2177.  ---generic Tseng BIOS v8+ ---
  2178.  02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
  2179.  03h ATT20c490/1/2 (15/16/24-bit)
  2180.  04h AcuMos ADAC1 (15/16/24-bit)
  2181.  05h unknown 15/16/24-bit DAC
  2182.  06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
  2183.  07h Diamond SS2410 (15/24-bit)
  2184.  08h unknown 15/16/24-bit DAC
  2185.  09h unknown 15/16/24-bit DAC
  2186.  else other HiColor DAC
  2187. --------V-1010F2-----------------------------
  2188. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
  2189.     AX = 10F2h
  2190.     BL = function
  2191.         00h get current HiColor mode
  2192.         01h set 15-bit HiColor mode
  2193.         02h set 16-bit HiColor mode
  2194. Return: AX = 0010h if supported
  2195.     BL = video mode type
  2196.         00h not in HiColor mode
  2197.         01h 15-bit RGB mode
  2198.         02h 16-bit RGB mode
  2199.         03h 24-bit RGB mode
  2200. Desc:    determine whether the display is in a graphics mode with 15 or more
  2201.       bits per pixel color resolution
  2202. Note:    set (BL=01h/02h) only works if already in a HiColor mode
  2203. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  2204. --------V-1011-------------------------------
  2205. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  2206.     AH = 11h
  2207. Return: CH,CL = row,column of upper left corner
  2208.     DH,DL = row,column of lower right corner
  2209. Desc:    determine the portion of the display to which output is restricted
  2210. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2211. SeeAlso: AH=10h"Window",AH=12h"Window"
  2212. --------V-1011-------------------------------
  2213. INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
  2214.     AH = 11h
  2215.     The following functions will cause a mode set, completely resetting
  2216.     the video environment, but without clearing the video buffer
  2217.     AL = 00h, 10h: load user-specified patterns
  2218.         ES:BP -> user table
  2219.         CX      = count of patterns to store
  2220.         DX      = character offset into map 2 block
  2221.         BL      = block to load in map 2
  2222.         BH      = number of bytes per character pattern
  2223.     AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
  2224.         BL      = block to load
  2225.     AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
  2226.         BL      = block to load
  2227.     AL = 03h: set block specifier (allows dual character sets on screen)
  2228.         BL      = block specifier (see #0019)
  2229.     AL = 04h, 14h: load ROM 8x16 character set (VGA)
  2230.         BL    = block to load
  2231. Notes:    The routines called with AL=1xh are designed to be called only
  2232.       immediately after a mode set and are similar to the routines called
  2233.       with AL=0xh, except that:
  2234.           Page 0 must be active.
  2235.           Bytes/character is recalculated.
  2236.           Max character rows is recalculated.
  2237.           CRT buffer length is recalculated.
  2238.           CRTC registers are reprogrammed as follows:
  2239.              R09 = bytes/char-1 ; max scan line (mode 7 only)
  2240.              R0A = bytes/char-2 ; cursor start
  2241.              R0B = 0        ; cursor end
  2242.              R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2243.              R14 = bytes/char    ; underline loc
  2244.                (*** BUG: should be 1 less ***)
  2245.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2246.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2247.       (see AH=1Bh,#0037)
  2248. SeeAlso: AH=1Bh,AX=CD10h
  2249.  
  2250. Bitfields for block specifier:
  2251. Bit(s)    Description    (Table 0019)
  2252. ---EGA/MCGA---
  2253.  0,1    block selected by characters with attribute bit 3 clear
  2254.  2,3    block selected by characters with attribute bit 3 set
  2255. ---VGA---
  2256.  0,1,4    block selected by characters with attribute bit 3 clear
  2257.  2,3,5    block selected by characters with attribute bit 3 set
  2258. --------V-1011-------------------------------
  2259. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2260.     AH = 11h
  2261.     AL = 07h load user-specified paterns and recalculate mode parms
  2262.          parameters are the same as for AL = 10h
  2263.     AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2264.          parameters are the same as for AL = 11h
  2265.     AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2266.          parameters are the same as for AL = 12h
  2267.     AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2268.          parameters are the same as for AL = 14h
  2269. Note:    these functions should only be called under the same conditions as
  2270.       AL=1xh (see entry above)
  2271. SeeAlso: AH=11h
  2272. --------V-10110F-----------------------------
  2273. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2274.     AX = 110Fh
  2275.     ES:BP -> user table for INT 1F
  2276. Note:    this function is meant to be called immediately after a mode set;
  2277.       results are unpredictable at other times
  2278. SeeAlso: AX=1110h,AX=1111h,AX=1112h,AX=1120h
  2279. --------V-101110-----------------------------
  2280. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2281.     AX = 1110h
  2282.     ES:BP -> user table
  2283.     CX = bytes per character
  2284.     BL = row specifier
  2285.         00h user set
  2286.         DL = number of rows
  2287.         01h 14 rows
  2288.         02h 25 rows
  2289.         03h 43 rows
  2290. Note:    this function is meant to be called immediately after a mode set;
  2291.       results are unpredictable at other times
  2292. SeeAlso: AX=110Fh,AX=1112h,AX=1121h
  2293. --------V-101111-----------------------------
  2294. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2295.     AX = 1111h
  2296.     BL = row specifier (see AX=1121h)
  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=1110h,AX=1122h
  2300. --------V-101112-----------------------------
  2301. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2302.     AX = 1112h
  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=1111h,AX=1123h
  2307. --------V-101120-----------------------------
  2308. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2309.     AX = 1120h
  2310.     ES:BP -> user table for INT 1F
  2311. Note:    this function is meant to be called immediately after a mode set;
  2312.       results are unpredictable at other times
  2313. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1125h,INT 1F,INT 43
  2314. --------V-101121-----------------------------
  2315. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2316.     AX = 1121h
  2317.     ES:BP -> user table
  2318.     CX = bytes per character
  2319.     BL = row specifier
  2320.         00h user set
  2321.         DL = number of rows
  2322.         01h 14 rows
  2323.         02h 25 rows
  2324.         03h 43 rows
  2325. Note:    this function is meant to be called immediately after a mode set;
  2326.       results are unpredictable at other times
  2327. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2328. --------V-101122-----------------------------
  2329. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2330.     AX = 1122h
  2331.     BL = row specifier (see AX=1121h)
  2332. Notes:    this function is meant to be called immediately after a mode set;
  2333.       results are unpredictable at other times
  2334.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2335. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2336. --------V-101123-----------------------------
  2337. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2338.     AX = 1123h
  2339.     BL = row specifier (see AX=1121h)
  2340. Notes:    this function is meant to be called immediately after a mode set;
  2341.       results are unpredictable at other times
  2342.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2343. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h,INT 1F,INT 43
  2344. --------V-101124-----------------------------
  2345. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2346.     AX = 1124h
  2347.     BL = row specifier (see AX=1121h)
  2348. Notes:    this function is meant to be called immediately after a mode set;
  2349.       results are unpredictable at other times
  2350.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2351. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h,INT 1F,INT 43
  2352. --------V-101129-----------------------------
  2353. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2354.     AX = 1129h
  2355.     BL = row specifier (see AX=1121h)
  2356. Notes:    this function is meant to be called immediately after a mode set;
  2357.       results are unpredictable at other times
  2358.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2359. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F, INT 43
  2360. --------V-101130-----------------------------
  2361. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2362.     AX = 1130h
  2363.     BH = pointer specifier
  2364.         00h INT 1Fh pointer
  2365.         01h INT 43h pointer
  2366.         02h ROM 8x14 character font pointer
  2367.         03h ROM 8x8 double dot font pointer
  2368.         04h ROM 8x8 double dot font (high 128 characters)
  2369.         05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2370.         06h ROM 8x16 font (MCGA, VGA)
  2371.         07h ROM alternate 9x16 font (VGA only) (see #0020)
  2372.         11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2373.         12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2374. Return: ES:BP = specified pointer
  2375.     CX    = bytes/character of on-screen font (not the requested font!)
  2376.     DL    = highest character row on screen
  2377. Note:    for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2378.       8xN font at ES:BP+256N
  2379. BUG:    the IBM EGA and some other EGA cards return in DL the number of rows on
  2380.       screen rather than the highest row number (which is one less).
  2381. SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
  2382.  
  2383. Format of alternate font table [array]:
  2384. Offset    Size    Description    (Table 0020)
  2385.  00h    BYTE    character to be replaced (00h = end of table)
  2386.  01h  N BYTEs    graphics data for character, one byte per scan line
  2387. --------V-101130BX4D4F-----------------------
  2388. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2389.     AX = 1130h
  2390.     BX = 4D4Fh
  2391. Return: CX = 4F4Dh if installed
  2392.         ES:BP -> M10_SCR INT 10 handler
  2393. Program: M10_SCR is a shareware extended text mode and font driver by
  2394.       I.V. Morozov
  2395. SeeAlso: INT 16/AX=4D4Fh
  2396. --------V-1012-------------------------------
  2397. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2398.     AH = 12h
  2399. Return: BH = attribute to use on blanked lines when scrolling
  2400. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2401. SeeAlso: AH=11h"Window",AH=12h"Window"
  2402. --------V-1012--BL10-------------------------
  2403. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2404.     AH = 12h
  2405.     BL = 10h
  2406. Return: BH = 00h color mode in effect (I/O port 3Dxh)
  2407.          01h mono mode in effect (I/O port 3Bxh)
  2408.     BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2409.     CH = feature connector bits (see #0021)
  2410.     CL = switch settings (see #0022,#0023)
  2411. Note:    one possible check for the presence of an EGA or later display card
  2412.       is to call this function with BH=FFh; if not present, BH will be
  2413.       unchanged on return
  2414.  
  2415. Bitfields for feature connector bits:
  2416. Bit(s)    Description    (Table 0021)
  2417.  0    FEAT 1 line, state 2
  2418.  1    FEAT 0 line, state 2
  2419.  2    FEAT 1 line, state 1
  2420.  3    FEAT 0 line, state 1
  2421.  4-7    unused (0)
  2422.  
  2423. Bitfields for switch settings:
  2424. Bit(s)    Description    (Table 0022)
  2425.  0    switch 1 OFF
  2426.  1    switch 2 OFF
  2427.  2    switch 3 OFF
  2428.  3    switch 4 OFF
  2429.  4-7    unused
  2430.  
  2431. (Table 0023)
  2432. Values for switch settings on original EGA/VGA:
  2433.  00h        primary MDA/HGC,    secondary EGA+ 40x25
  2434.  01h-03h    primary MDA/HGC,    secondary EGA+ 80x25
  2435.  04h        primary CGA 40x25,    secondary EGA+ 80x25 mono
  2436.  05h        primary CGA 80x25,    secondary EGA+ 80x25 mono
  2437.  06h        primary EGA+ 40x25,    secondary MDA/HGC (optional)
  2438.  07h-09h    primary EGA+ 80x25,    secondary MDA/HGC (optional)
  2439.  0Ah        primary EGA+ 80x25 mono,secondary CGA 40x25 (optional)
  2440.  0Bh        primary EGA+ 80x25 mono,secondary CGA 80x25 (optional)
  2441. --------V-1012--BL11-------------------------
  2442. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2443.     AH = 12h
  2444.     BL = 11h
  2445. Return: AL = 12h if function supported
  2446.         ES:BP -> BIOS info structure (see #0024)
  2447. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2448.  
  2449. Format of Trident BIOS Info structure:
  2450. Offset    Size     Description    (Table 0024)
  2451.  00h    BYTE     ??? (=0)
  2452.  01h    BYTE     OEM Code (00h for original Trident)
  2453.  02h    WORD     ID??? (1073h for 8800BR, 1074 for 8800CS)
  2454.  04h  8 BYTEs     BIOS date ('mm/dd/yy')
  2455.  0Ch    WORD     ???
  2456.  0Eh  8 BYTEs     BIOS Version (' C3-128 ', ' C3-129 ')
  2457. --------V-1012--BL12-------------------------
  2458. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  2459.     AH = 12h
  2460.     BL = 12h
  2461. Return: AL = 12h if function supported
  2462.         AH = number of 256K banks of RAM installed
  2463. SeeAlso: AH=12h/BL=11h"TRIDENT"
  2464. --------V-1012--BL20-------------------------
  2465. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  2466.     AH = 12h
  2467.     BL = 20h  select alternate print screen routine
  2468. Desc:    installs a PrtSc routine from the video card's BIOS to replace the
  2469.       default PrtSc handler from the ROM BIOS, which usually does not
  2470.       understand screen heights other than 25 lines
  2471. Note:    some adapters disable print-screen instead of enhancing it
  2472. SeeAlso: INT 05
  2473. --------V-1012--BL2E-------------------------
  2474. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2475.     AH = 12h
  2476.     BL = 2Eh
  2477. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2478.       crash the system on this function
  2479. --------V-1012--BL30-------------------------
  2480. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  2481.     AH = 12h
  2482.     BL = 30h
  2483.     AL = vertical resolution
  2484.          00h 200 scan lines
  2485.          01h 350 scan lines
  2486.          02h 400 scan lines
  2487. Return: AL = 12h if function supported
  2488. Desc:    specify the number of scan lines used to display text modes
  2489. Note:    the specified resolution will take effect on the next mode set
  2490. SeeAlso: AH=00h
  2491. --------V-1012--BL31-------------------------
  2492. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  2493.     AH = 12h
  2494.     BL = 31h
  2495.     AL = new state
  2496.         00h enable default palette loading
  2497.         01h disable default palette loading
  2498. Return: AL = 12h if function supported
  2499. Desc:    specify whether a default palette should be loaded when the display
  2500.       mode is set
  2501. SeeAlso: AH=00h
  2502. --------V-1012--BL32-------------------------
  2503. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  2504.     AH = 12h
  2505.     BL = 32h
  2506.     AL = new state
  2507.         00h enable video addressing
  2508.         01h disable video addressing
  2509. Return: AL = 12h if function supported
  2510. Desc:    specify whether the CPU should have access to video memory and the
  2511.       display adapters I/O registers
  2512. --------V-1012--BL33-------------------------
  2513. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  2514.     AH = 12h
  2515.     BL = 33h
  2516.     AL = new state
  2517.         00h enable gray scale summing
  2518.         01h disable gray scale summing
  2519. Return: AL = 12h if function supported
  2520. Desc:    specify whether or not colors should be converted to gray scale when
  2521.       palette or color registers are loaded
  2522. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  2523. --------V-1012--BL34-------------------------
  2524. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  2525.     AH = 12h
  2526.     BL = 34h
  2527.     AL = new state
  2528.         00h enable alphanumeric cursor emulation
  2529.         01h disable alphanumeric cursor emulation
  2530. Return: AL = 12h if function supported
  2531. Desc:    specify whether the BIOS should automatically remap cursor start/end
  2532.       according to the current character height in text modes
  2533. SeeAlso: AH=01h,AH=03h
  2534. --------V-1012--BL35-------------------------
  2535. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  2536.     AH = 12h
  2537.     BL = 35h
  2538.     AL = subfunction
  2539.         00h initial adapter video off
  2540.         01h initial planar video on
  2541.         02h switch active video off
  2542.         03h switch inactive video on
  2543.         80h *UNDOCUMENTED* set system board video active flag
  2544.     ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
  2545. Return: AL = 12h if function supported
  2546. Desc:    switch between two video adapters which may otherwise have address
  2547.       conflicts
  2548. --------V-1012--BL36-------------------------
  2549. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  2550.     AH = 12h
  2551.     BL = 36h
  2552.     AL = new state
  2553.         00h enable refresh
  2554.         01h disable refresh
  2555. Return: AL = 12h if function supported
  2556. Desc:    specify whether the contents of video memory should be displayed on
  2557.       the screen; disabling refresh effectively blanks the screen
  2558. SeeAlso: AX=BF05h
  2559. --------V-1012--BL37-------------------------
  2560. INT 10 - VIDEO - XGA - MAINFRAME INTERACTIVE SUPPORT
  2561.     AH = 12h
  2562.     BL = 37h
  2563.     AL = text attribute type (00h normal VGA, 01h mainframe type)
  2564. Return: AL = 12h if supported
  2565. SeeAlso: #0025,AH=08h
  2566.  
  2567. Bitfields for XGA mainframe type character attributes:
  2568. Bit(s)    Description    (Table 0025)
  2569.  7    blink double rate (75% ON time) or use color 8 as background
  2570.     (see AX=1003h)
  2571.  6    reverse video
  2572.  5    underlined
  2573.  4    left-most and right-most dots of underline area inverted
  2574.  3    foreground intensity/character font select
  2575.  2-0    foreground color
  2576. SeeAlso: #0013,#0033
  2577. --------V-1012--BL53-------------------------
  2578. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2579.     AH = 12h
  2580.     BL = 53h
  2581. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2582.       crash the system on this function
  2583. --------V-1012--BL57-------------------------
  2584. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2585.     AH = 12h
  2586.     BL = 57h
  2587. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2588.       crash the system on this function
  2589. --------V-1012--BH55-------------------------
  2590. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  2591.     AH = 12h
  2592.     BH = 55h
  2593.     BL = subfunction
  2594.         00h disable enhanced features
  2595.         01h enable enhanced features
  2596.         02h get status
  2597.         Return: AL = status flags (see #0026)
  2598.         03h disable register trapping (CGA emulation)
  2599.         04h enable register trapping
  2600.         05h program video mode
  2601.         ES:BP -> video mode table (see #0027)
  2602.         06h get mode table
  2603.         AL = video mode
  2604.         Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
  2605.             BP = FFFFh on error
  2606. SeeAlso: AH=FFh"Oak"
  2607.  
  2608. Bitfields for status flags:
  2609. Bit(s)    Description    (Table 0026)
  2610.  3    set if enhanced features enabled
  2611.  7-5    monitor type
  2612.     000 PS/2 mono
  2613.     001 PS/2 color
  2614.     010 multi-sync
  2615.     011 Taxan 650 25kHz
  2616.     100 RGB
  2617.     101 mono
  2618.     110 EGA
  2619.     111 Compaq internal
  2620.  
  2621. Format of ATI VGA Wonder video mode table:
  2622. Offset    Size    Description    (Table 0027)
  2623.  00h    BYTE    number of columns
  2624.  01h    BYTE    maximum row (number of rows - 1)
  2625.  02h    BYTE    scan lines per row
  2626.  03h    WORD    video buffer size in bytes
  2627.  05h  4 BYTEs    values for Sequencer registers 1-4
  2628.  09h    BYTE    value for Miscellaneous Output register
  2629.  0Ah 25 BYTEs    values for CRTC registers 00h-18h
  2630.         00h horizontal total size (chars)
  2631.         01h horizontal displayed (chars)
  2632.         02h horizontal sync position (chars)
  2633.         03h horizontal sync width (chars)
  2634.         04h vertical total size (char rows)
  2635.         05h vertical total adjust (scan lines)
  2636.         06h vertical displayed (char rows)
  2637.         07h vertical sync position (char rows)
  2638.         08h interlace mode
  2639.         09h max scan line in row
  2640.         0Ah cursor start scan line
  2641.         0Bh cursor end scan line
  2642.         0Ch screen memory start (high)
  2643.         0Dh screen memory start (low)
  2644.         0Eh cursor address (high)
  2645.         0Fh cursor address (low)
  2646.         10h light pen (high)
  2647.         11h light pen (low)
  2648.  23h 20 BYTEs    default palette (values for Attribute Controller regs 00h-13h)
  2649.  37h  9 BYTEs    values for Graphics Controller registers 00h-08h
  2650. --------V-1012--BL74-------------------------
  2651. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2652.     AH = 12h
  2653.     BL = 74h
  2654. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2655.       crash the system on this function
  2656. --------V-1012--BL80-------------------------
  2657. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2658.     AH = 12h
  2659.     BL = 80h
  2660. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2661.       crash the system on this function
  2662. --------V-1012--BL80-------------------------
  2663. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  2664.     AH = 12h
  2665.     BL = 80h
  2666. Return: AX = controller type in bits 13-0 (see #0028)
  2667.         bit 14: ???
  2668.         bit 15: ???
  2669.     BL = silicon revision number (bit 7 set if not available)
  2670. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2671.  
  2672. (Table 0028)
  2673. Values for Cirrus Logic video controller type:
  2674.  0000h    no extended alternate select support
  2675.  0002h    510/520
  2676.  0003h    610/620
  2677.  0004h    5320
  2678.  0005h    6410
  2679.  0006h    5410
  2680.  0007h    6420
  2681.  0008h    6412
  2682.  0010h    5401
  2683.  0011h    5402
  2684.  0012h    5420
  2685.  0013h    5422
  2686.  0014h    5424
  2687.  0015h    5426
  2688.  0016h    5420r1
  2689.  0017h    5402r1
  2690.  0018h    5428
  2691.  0020h    6205/15/25
  2692.  0030h    5432
  2693.  0031h    5434
  2694. --------V-1012--BL81-------------------------
  2695. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  2696.     AH = 12h
  2697.     BL = 81h
  2698. Return: AH = BIOS major version
  2699.     AL = BIOS minor version
  2700. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  2701. --------V-1012--BL82-------------------------
  2702. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  2703.     AH = 12h
  2704.     BL = 82h
  2705. Return: AL = chip revision
  2706.     AH = ??? (AFh for v1.01)
  2707. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h
  2708. ----------1012--BL84-------------------------
  2709. INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
  2710.     AH = 12h
  2711.     BL = 84h
  2712. Return: AX = user options word (see #0029)
  2713. SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2714. SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
  2715.  
  2716. Bitfields for Cirrus Logic user options word:
  2717. Bit(s)    Description    (Table 0029)
  2718.  1,0    centering
  2719.     00 vertical centered, 01 from bottom, 10 from top, 11 reserved
  2720.  3,2    720-dot fix-up options
  2721.     00 OR every 8th and 9th pixel
  2722.     01 display MGA mode from left
  2723.     10 display MGA mode from right
  2724.     11 skip every 9th pixel
  2725.  4    ???
  2726.  7-5    video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
  2727.  8    external monitor enabled instead of LCD panel
  2728.  9    vertical expand mode enabled
  2729.  10    8-bit mode instead of 16-bit mode
  2730.  11    normal video rather than reverse video (for LCD)
  2731.  12    attribute automap rather than attribute emulation
  2732.  13    bold mode disabled (default)
  2733.  14    fast bandwidth
  2734.  15    ???
  2735. --------V-1012--BL85-------------------------
  2736. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  2737.     AH = 12h
  2738.     BL = 85h
  2739. Return: AL = number of 64K banks of video memory
  2740. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  2741. --------V-1012--BL89-------------------------
  2742. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
  2743.     AH = 12h
  2744.     BL = 89h
  2745.     AL = new state (00h enabled, 01h disabled)
  2746. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
  2747. --------V-1012--BL8A-------------------------
  2748. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
  2749.     AH = 12h
  2750.     BL = 8Ah
  2751.     AL = new gray-scale color (00h = black to 0Fh = white)
  2752. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
  2753. --------V-1012--BL8B-------------------------
  2754. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
  2755.     AH = 12h
  2756.     BL = 8Bh
  2757.     AL = new state (00h enabled, 01h disabled)
  2758. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2759. --------V-1012--BL8C-------------------------
  2760. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
  2761.     AH = 12h
  2762.     BL = 8Ch
  2763.     AL = new state
  2764.         00h enable automap
  2765.         01h disable automap and emulate attributes
  2766. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
  2767. --------V-1012--BL8F-------------------------
  2768. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
  2769.     AH = 12h
  2770.     BL = 8Fh
  2771.     AL = new state (00h enabled, 01h disabled)
  2772. Note:    when expand mode is enabled, the vertical dimension is enlarged to
  2773.       full screen
  2774. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
  2775. --------V-1012--BL90-------------------------
  2776. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
  2777.     AH = 12h
  2778.     BL = 90h
  2779.     AL = new position
  2780.         00h centered
  2781.         01h from top
  2782.         02h from bottom
  2783.         03h from top
  2784. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
  2785. --------V-1012--BL91-------------------------
  2786. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
  2787.     AH = 12h
  2788.     BL = 91h
  2789.     AL = new mode
  2790.         00h display MGA mode from left of screen (default)
  2791.         01h display MGA from right
  2792.         02h skip every ninth pixel
  2793.         03h OR every 8th and 9th pixel
  2794. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
  2795. --------V-1012--BL92-------------------------
  2796. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
  2797.     AH = 12h
  2798.     BL = 92h
  2799.     AL = new display (00h LCD, 01h external monitor)
  2800. Note:    the deselected display is disabled
  2801. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
  2802. --------V-1012--BL93-------------------------
  2803. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  2804.     AH = 12h
  2805.     BL = 93h
  2806.     AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  2807. SeeAlso: AH=12h/BL=9Ah
  2808. --------V-1012--BL94-------------------------
  2809. INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
  2810.     AH = 12h
  2811.     BL = 94h
  2812.     AL = new state (00h wake up monitor, 01h shut down display)
  2813. Note:    AL=01h is reported not to work properly on the LCD panel
  2814. SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
  2815. --------V-1012--BL9A-------------------------
  2816. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  2817.     AH = 12h
  2818.     BL = 9Ah
  2819. Return: AX = options word 1 (see #0030)
  2820.     CX = options word 2 (see #0031)
  2821. SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
  2822. SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h
  2823.  
  2824. Bitfields for Cirrus Logic options word 1:
  2825. Bit(s)    Description    (Table 0030)
  2826.  0,1    reserved
  2827.  2-4    monitor type
  2828.  5-6    maximum vertical resolution
  2829.  7-9    reserved
  2830.  10    force 8-bit operation
  2831.  11-13    reserved
  2832.  14    vertical refresh frequency at 640x480
  2833.  15    reserved
  2834.  
  2835. Bitfields for Cirrus Logic options word 2:
  2836. Bit(s)    Description    (Table 0031)
  2837.  0-3    reserved
  2838.  4-5    vertical refresh frequency at 1280x1024
  2839.  6-10    reserved
  2840.  11-12    vertical refresh frequency at 800x600
  2841.  13-15    vertical refresh frequency at 1024x768
  2842. --------V-1012--BLA0-------------------------
  2843. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  2844.     AH = 12h
  2845.     BL = A0h
  2846.     AL = video mode number (00h-7Fh)
  2847. Return: AH bit 0: video mode supported
  2848.     BX = offset of BIOS subroutine to fixup standard video parameters
  2849.         (call subroutine with DS:SI and ES:DI as returned by this call)
  2850.     DS:SI -> standard video parameters or FFFFh:FFFFh
  2851.     ES:DI -> supplemental video parameters or FFFFh:FFFFh
  2852. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2853. --------V-1012--BLA1-------------------------
  2854. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  2855.     AH = 12h
  2856.     BL = A1h
  2857. Return: BH = monitor ID (see #0032)
  2858.     BL = monitor type (00h color, 01h grayscale, 02h no display)
  2859. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  2860.  
  2861. (Table 0032)
  2862. Values for Cirrus Logic monitor ID:
  2863.  00h-08h reserved
  2864.  09h    IBM 8604/8507 or equivalent
  2865.  0Ah    IBM 8514 or equivalent
  2866.  0Bh    IBM 8515 or equivalent
  2867.  0Dh    IBM 8503 or equivalent
  2868.  0Eh    IBM 8512/8513 or equivalent
  2869.  0Fh    no monitor
  2870. --------V-1012--BLA2-------------------------
  2871. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  2872.     AH = 12h
  2873.     BL = A2h
  2874.     AL = retrace rate
  2875.         00h standard VGA (31.5 kHz)
  2876.         01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  2877.         02h SuperVGA (31.5-35.1 kHz)
  2878.         03h extended SuperVGA (31.5-35.5 kHz)
  2879.         04h multi-frequency (31.5-37.8 kHz)
  2880.         05h extended multi-frequency (31.5-48.0 kHz)
  2881.         06h super multi-frequency (31.5-56.0 kHz)
  2882.         07h extended super multi-frequency (31.5-64.0 kHz)
  2883. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  2884. --------V-1012--BLA3-------------------------
  2885. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  2886.     AH = 12h
  2887.     BL = A3h
  2888.     AL = refresh rate for 640x480 (00h normal, 01h high)
  2889. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  2890. --------V-1012--BLA4-------------------------
  2891. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  2892.     AH = 12h
  2893.     BL = A4h
  2894.     AL bits 3-0 = maximum vertical resolution
  2895.         (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  2896.     AL bits 7-4 = vertical refresh at 640x480
  2897.         (0 = 60Hz, 1 = 72Hz, other reserved)
  2898.     BH bits 3-0 = vertical refresh at 800x600
  2899.         (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  2900.     BH bits 7-4 = vertical refresh at 1024x768
  2901.         (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  2902.     CH bits 4-7 = vertical refresh at 1280x1024
  2903.         (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  2904. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  2905. --------V-1012--BLBE-------------------------
  2906. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2907.     AH = 12h
  2908.     BL = BEh
  2909. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2910.       crash the system on this function
  2911. --------V-1012--BLC6-------------------------
  2912. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2913.     AH = 12h
  2914.     BL = C6h
  2915. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2916.       crash the system on this function
  2917. --------V-1012--BLF0-------------------------
  2918. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2919.     AH = 12h
  2920.     BL = F0h
  2921. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2922.       crash the system on this function
  2923. --------V-1013-------------------------------
  2924. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  2925.     AH = 13h
  2926.     AL = write mode
  2927.        bit 0: update cursor after writing
  2928.        bit 1: string contains alternating characters and attributes
  2929.        bits 2-7: reserved (0)
  2930.     BH = page number
  2931.     BL = attribute if string contains only characters
  2932.     CX = number of characters in string
  2933.     DH,DL = row,column at which to start writing
  2934.     ES:BP -> string to write
  2935. Notes:    recognizes CR, LF, BS, and bell
  2936.     also available PC or XT with EGA or higher
  2937.     HP 95LX only supports write mode 00h
  2938. BUG:    on the IBM VGA Adapter, any scrolling which may occur is performed on
  2939.       the active page rather than the requested page
  2940. SeeAlso: AH=09h,AH=0Ah,AH=13h"DOS/V"
  2941. --------J-1013-------------------------------
  2942. INT 10 - DOS/V - READ/WRITE DOUBLE-BYTE CHARACTER SET CHARACTERS/ATTRIBUTES
  2943.     AH = 13h
  2944.     AL = function
  2945.         10h read characters and standard attributes
  2946.         11h read characters and extended attributes
  2947.         12h write characters and standard attributes
  2948.         13h write characters and extended attributes
  2949.     BH = 00h
  2950.     CX = number of characters to transfer
  2951.     DH,DL = row,column at which to start transfer
  2952.     ES:BP -> buffer for/containing characters and attributes (see #0033)
  2953. Return: ES:BP buffer filled if reading
  2954. Program: DOS/V is a Japanese-language version of MS-DOS which can run on
  2955.       standard (non-Japanese) ATs and compatible equipped with a VGA or
  2956.       newer video adapter
  2957. Notes:    subfunctions 11h and 13h are only valid when DOS/V is using video
  2958.       mode 73h
  2959.     the cursor position is not changed by these functions
  2960.     extended attributes consist of three bytes; the first is the standard
  2961.       character attribute byte, the second is as described below, and the
  2962.       third is always zero in current versions
  2963. SeeAlso: AH=00h,AH=13h"VIDEO"
  2964.  
  2965. Bitfields for DOS/V second extended attribute byte:
  2966. Bit(s)    Description    (Table 0033)
  2967.  7    underline using foreground color
  2968.  6    reverse foreground/background specified in standard attribute byte
  2969.  5-4    unused
  2970.  3    vertical white grid line in cell
  2971.  2    horizontal white grid line in cell
  2972.  1-0    unused
  2973. SeeAlso: #0013,#0025
  2974. --------V-101400-----------------------------
  2975. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  2976.     AX = 1400h
  2977.     ES:DI -> character font
  2978.     BH = number of bytes per character
  2979.         08h or 10h (Compaq)
  2980.     BL = 00h load main font (block 0)
  2981.          01h load alternate font (block 1)
  2982.     CX = number of characters to store
  2983.     DX = character offset into RAM font area
  2984. SeeAlso: AH=11h,AX=1401h
  2985. --------V-101401-----------------------------
  2986. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  2987.     AX = 1401h
  2988.     BL = font to load
  2989.         00h main font (block 0)
  2990.         01h alternate font (block 1)
  2991. SeeAlso: AH=11h,AX=1400h
  2992. --------V-101402-----------------------------
  2993. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  2994.     AX = 1402h
  2995.     BL = function
  2996.         00h ignore high intensity attribute
  2997.         01h map high intensity to reverse video
  2998.         02h map high intensity to underscore
  2999.         03h map high intensity to selected alternate font
  3000.         B0h half intensity (Compaq)
  3001.         B1h toggle active intensity bit interpretation (CP386)
  3002. --------V-1015-------------------------------
  3003. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  3004.     AH = 15h
  3005. Return: AX = alternate display adapter type (see #0034)
  3006.     ES:DI -> parameter table (see #0035)
  3007. SeeAlso: AH=1Bh
  3008.  
  3009. (Table 0034)
  3010. Values for PC Convertible alternate display adapter type:
  3011.  0000h    none
  3012.  5140h    LCD
  3013.  5153h    CGA
  3014.  5151h    mono
  3015.  
  3016. Format of PC Convertible display parameter table:
  3017. Offset    Size    Description    (Table 0035)
  3018.  00h    WORD    monitor model number
  3019.  02h    WORD    vertical pixels per meter
  3020.  04h    WORD    horizontal pixels per meter
  3021.  06h    WORD    total vertical pixels
  3022.  08h    WORD    total horizontal pixels
  3023.  0Ah    WORD    horizontal pixel separation in micrometers
  3024.         (width, center-to-center)
  3025.  0Ch    WORD    vertical pixel separation in micrometers
  3026.         (height, center-to-center)
  3027. --------V-1015-------------------------------
  3028. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  3029.     AH = 15h
  3030.     AL = superimpose mode
  3031.         00h show graphics screen
  3032.         01h show text screen
  3033.         02h show text screen superimposed on graphics screen
  3034. --------J-1018-------------------------------
  3035. INT 10 - VIDEO - DOS/V - GET/SET FONT PATTERN
  3036.     AH = 18h
  3037.     AL = function
  3038.         00h get font pattern
  3039.         01h set font pattern
  3040.     BX = 0000h
  3041.     CL = character size in bytes (01h,02h)
  3042.     CH = 00h 
  3043.     DH = character width in pixels
  3044.     DL = character height in pixels
  3045.     ES:DI -> buffer for/containing font image
  3046. Return: AL = status (00h successful, else error)
  3047.     ES:DI buffer filled for function 00h if successful
  3048. Note:    the supported font sizes are 8x16 single-byte, 8x19 single-byte,
  3049.       16x16 double-byte, and 24x24 double-byte
  3050. SeeAlso: AH=19h,INT 16/AH=14h
  3051. --------V-1019-------------------------------
  3052. INT 10 - Japanese VIDEO - DOUBLE-BYTE CHARACTER SET SHIFT INFORMATION
  3053.     AH = 19h
  3054.     ???
  3055. Return: ???
  3056. SeeAlso: AH=18h,INT 16/AH=14h
  3057. --------V-101A00-----------------------------
  3058. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3059.     AX = 1A00h
  3060. Return: AL = 1Ah if function was supported
  3061.         BL = active display code (see #0036)
  3062.         BH = alternate display code (see #0036)
  3063. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh
  3064.  
  3065. (Table 0036)
  3066. Values for display combination code:
  3067.  00h    no display
  3068.  01h    monochrome adapter w/ monochrome display
  3069.  02h    CGA w/ color display
  3070.  03h    reserved
  3071.  04h    EGA w/ color display
  3072.  05h    EGA w/ monochrome display
  3073.  06h    PGA w/ color display
  3074.  07h    VGA w/ monochrome analog display
  3075.  08h    VGA w/ color analog display
  3076.  09h    reserved
  3077.  0Ah    MCGA w/ digital color display
  3078.  0Bh    MCGA w/ monochrome analog display
  3079.  0Ch    MCGA w/ color analog display
  3080.  FFh    unknown display type
  3081. --------V-101A01-----------------------------
  3082. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  3083.     AX = 1A01h
  3084.     BL = active display code (see #0036)
  3085.     BH = alternate display code
  3086. Return: AL = 1Ah if function was supported
  3087. SeeAlso: AH=12h/BL=35h,AX=1A00h
  3088. --------V-101B-------------------------------
  3089. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  3090.     AH = 1Bh
  3091.     BX = implementation type
  3092.         0000h return funtionality/state information
  3093.     ES:DI -> 64-byte buffer for state information (see #0037)
  3094. Return: AL = 1Bh if function supported
  3095.         ES:DI buffer filled with state information
  3096. BUG:    Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  3097.       do not correctly set the fields at offsets 27h and 29h of the
  3098.       state information
  3099. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  3100.  
  3101. Format of MCGA+ state information:
  3102. Offset    Size    Description    (Table 0037)
  3103.  00h    DWORD    address of static funtionality table (see #0040)
  3104.  04h    BYTE    video mode in effect
  3105.  05h    WORD    number of columns
  3106.  07h    WORD    length of regen buffer in bytes
  3107.  09h    WORD    starting address of regen buffer
  3108.  0Bh    WORD    cursor position for page 0
  3109.  0Dh    WORD    cursor position for page 1
  3110.  0Fh    WORD    cursor position for page 2
  3111.  11h    WORD    cursor position for page 3
  3112.  13h    WORD    cursor position for page 4
  3113.  15h    WORD    cursor position for page 5
  3114.  17h    WORD    cursor position for page 6
  3115.  19h    WORD    cursor position for page 7
  3116.  1Bh    WORD    cursor "type" (start/stop scan lines)
  3117.  1Dh    BYTE    active display page
  3118.  1Eh    WORD    CRTC port address
  3119.  20h    BYTE    current setting of register (3?8)
  3120.  21h    BYTE    current setting of register (3?9)
  3121.  22h    BYTE    number of rows - 1
  3122.  23h    WORD    bytes/character
  3123.  25h    BYTE    display combination code of active display
  3124.  26h    BYTE    DCC of alternate display
  3125.  27h    WORD    number of colors supported in current mode (0000h = mono)
  3126.  29h    BYTE    number of pages supported in current mode
  3127.  2Ah    BYTE    number of scan lines active
  3128.         (0,1,2,3) = (200,350,400,480)
  3129.         Tseng ET3000: (4,5,6 = 512,600,768)
  3130.  2Bh    BYTE    primary character block
  3131.  2Ch    BYTE    secondary character block
  3132.  2Dh    BYTE    miscellaneous flags (see #0038)
  3133.  2Eh  3 BYTEs    reserved (00h)
  3134.  31h    BYTE    video memory available
  3135.         00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  3136.  32h    BYTE    save pointer state flags (see #0039)
  3137.  33h 13 BYTEs    reserved (00h)
  3138.  
  3139. Bitfields for miscellaneous flags:
  3140. Bit(s)    Description    (Table 0038)
  3141.  0    all modes on all displays on
  3142.  1    gray summing on
  3143.  2    monochrome display attached
  3144.  3    default palette loading disabled
  3145.  4    cursor emulation enabled
  3146.  5    0 = intensity; 1 = blinking
  3147.  6    PS/2 P70 plasma display (without 9-dot wide font) active
  3148.  7    unused (0)
  3149.  
  3150. Bitfields for save pointer state flags:
  3151. Bit(s)    Description    (Table 0039)
  3152.  0    512 character set active
  3153.  1    dynamic save area present
  3154.  2    alpha font override active
  3155.  3    graphics font override active
  3156.  4    palette override active
  3157.  5    DCC override active
  3158.  6-7    unused (0)
  3159.  
  3160. Format of Static Functionality Table:
  3161. Offset    Size    Description    (Table 0040)
  3162.  00h    BYTE    modes supported 1
  3163.         bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 supported
  3164.  01h    BYTE    modes supported 2
  3165.         bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  3166.  02h    BYTE    modes supported 3
  3167.         bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  3168.         bit 4 to bit 7 unused (0)
  3169.  03h    BYTE    (IBM) reserved
  3170.         (Tseng ET3000/4000) modes supported 4
  3171.                 bit 0 to bit 7 = modes 18h-1Fh supported
  3172.  04h    BYTE    (IBM) reserved
  3173.         (Tseng ET3000/4000) modes supported 5
  3174.                 bit 0 to bit 7 = modes 20h-27h supported
  3175.  05h    BYTE    (IBM) reserved
  3176.         (Tseng ET3000/4000) modes supported 6
  3177.                 bit 0 to bit 7 = modes 28h-2Fh supported
  3178.  06h    BYTE    (IBM) reserved
  3179.         (Tseng ET3000/4000) modes supported 7
  3180.                 bit 0 to bit 7 = modes 30h-37h supported
  3181.  07h    BYTE    scan lines supported
  3182.         bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  3183.         bits 3-7 = unused (0)
  3184.  08h    BYTE    total number of character blocks available in text modes
  3185.  09h    BYTE    maximum number of active character blocks in text modes
  3186.  0Ah    WORD    miscellaneous function support flags (see #0041)
  3187.  0Ch    WORD    reserved
  3188.  0Eh    BYTE    save pointer function flags (see #0042)
  3189.  0Fh    BYTE    reserved
  3190.  
  3191. Bitfields for miscellaneous function support flags:
  3192. Bit(s)    Description    (Table 0041)
  3193.  0    all modes on all displays function supported
  3194.  1    gray summing function supported
  3195.  2    character font loading function supported
  3196.  3    default palette loading enable/disable supported
  3197.  4    cursor emulation function supported
  3198.  5    EGA palette present
  3199.  6    color palette present
  3200.  7    color-register paging function supported
  3201.  8    light pen supported (see AH=04h)
  3202.  9    save/restore state function 1Ch supported
  3203.  10    intensity/blinking function supported (see AX=1003h)
  3204.  11    Display Combination Code supported (see #0036)
  3205.  12-15    unused (0)
  3206.  
  3207. Bitfields for save pointer function flags:
  3208. Bit(s)    Description    (Table 0042)
  3209.  0    512 character set supported
  3210.  1    dynamic save area supported
  3211.  2    alpha font override supported
  3212.  3    graphics font override supported
  3213.  4    palette override supported
  3214.  5    DCC extension supported
  3215.  6-7    unused (0)
  3216. --------V-101C-------------------------------
  3217. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  3218.     AH = 1Ch
  3219.     AL = function
  3220.         00h return state buffer size
  3221.         Return: BX = number of 64-byte blocks needed
  3222.         01h save video state
  3223.         ES:BX -> buffer
  3224.         02h restore video state
  3225.         ES:BX -> buffer containing previously saved state
  3226.     CX = requested states (see #0043)
  3227. Return: AL = 1Ch if function supported
  3228. Notes:    many BIOSes corrupt the video registers when saving the state, so a
  3229.       program should restore the state immediately after saving it (the
  3230.       saved data is uncorrupted)
  3231.     the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  3232.     this function is not supported when DOS/V is running
  3233.  
  3234. Bitfields for requested states:
  3235. Bit(s)    Description    (Table 0043)
  3236.  0    video hardware (see #0044)
  3237.  1    BIOS data areas
  3238.  2    color registers and DAC state (see #0045)
  3239.  3-15    unused (0)
  3240.  
  3241. Format of VGA video hardware state:
  3242. Offset    Size    Description    (Table 0044)
  3243.  00h    BYTE    sequencer index register
  3244.  01h    BYTE    CRTC index register
  3245.  02h    BYTE    graphics controller index register
  3246.  03h    BYTE    attribute controller index register
  3247.  04h    BYTE    feature controller register
  3248.  05h  4 BYTEs    sequencer registers
  3249.  09h    BYTE    sequencer register 0
  3250.  0Ah 25 BYTEs    CRTC registers 0-8
  3251.  23h 16 BYTEs    palette registers 00h-0Fh
  3252.  33h  4 BYTEs    attribute registers 10h-13h
  3253.  37h  9 BYTEs    graphics controller registers 0-8
  3254.  40h    BYTE    CRTC base address (low)
  3255.  41h    BYTE    CRTC base address (high)
  3256.  42h    BYTE    plane 0 latch
  3257.  43h    BYTE    plane 1 latch
  3258.  44h    BYTE    plane 2 latch
  3259.  45h    BYTE    plane 3 latch
  3260.  
  3261. Format of VGA DAC state:
  3262. Offset    Size    Description    (Table 0045)
  3263.  00h    BYTE    read/write mode DAC
  3264.  01h    BYTE    pixel address
  3265.  02h    BYTE    pixel mask
  3266.  03h 768 BYTEs    color data (256 triples)
  3267. 303h    BYTE    color select register
  3268. --------J-101D-------------------------------
  3269. INT 10 - VIDEO - DOS/V - SHIFT STATUS LINE CONTROL
  3270.     AH = 1Dh
  3271.     AL = function
  3272.         00h enable shift status line(s)
  3273.         BX = number of lines to reserve at bottom of screen (usu. 1)
  3274.         01h disable shift status line
  3275.         BX = number of lines reserved at bottom of screen (usually 1)
  3276.         02h get number of status lines
  3277.         Return: BX = number of lines reserved for shift status
  3278. SeeAlso: AH=19h
  3279. --------V-101D-------------------------------
  3280. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  3281.     AH = 1Dh
  3282.     AL = video mode
  3283.     ES = caller's segment
  3284. Return: nothing
  3285. Note:    the caller's segment contains at offset 5Ch (FCB field in PSP)
  3286.       or 100h a table with sync parameters (see #0046) (BIOS looks at both
  3287.       offsets)
  3288.  
  3289. Format of SpeedSTAR Plus sync table:
  3290. Offset    Size    Description    (Table 0046)
  3291.  00h  9 BYTEs    ID contains string 'ey5CENTER'
  3292.  09h  5 BYTEs    sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  3293.  0Bh  5 BYTEs    sync parameters for 800x600 modes 29h,30h,2Ah
  3294.  13h  5 BYTEs    sync parameters for 1024x768 modes 37h,38h
  3295. --------V-101D-------------------------------
  3296. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3297.     AH = 1Dh
  3298. Note:    these versions of the BIOS jump to a random location on this function
  3299.       due to a fencepost error
  3300. --------V-101F00-----------------------------
  3301. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  3302.     AX = 1F00h
  3303. Return: AL = 1Fh if supported
  3304.         BX = number of bytes of DMQS data
  3305. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3306.       and later models.
  3307. SeeAlso: AX=1F01h
  3308. --------V-101F01-----------------------------
  3309. INT 10 - VIDEO - XGA - READ DMQS DATA
  3310.     AX = 1F01h
  3311.     ES:DI -> user buffer for return data (call AX=1F00h for size)
  3312. Return: AL = 1Fh if function supported
  3313.     user buffer filled with DMQS data (see #0047)
  3314. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3315.       and later models.
  3316. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  3317.  
  3318. Format of XGA DMQS buffer:
  3319. Offset    Size    Description    (Table 0047)
  3320.  00h    WORD    offset (in bytes) to DMQS data for next XGA instance
  3321.  02h    BYTE    slot number
  3322.  03h    BYTE    XGA implementation function level identifier
  3323.  04h    BYTE    XGA implementation resolution level identifier
  3324.  05h    WORD    vendor identifier - identifies card vendor
  3325.  07h    WORD    vendor defined field
  3326.  09h    WORD    XGA adapter I/O register base address
  3327.  0Bh    WORD    XGA coprocessor register base address
  3328.         (paragraph--multiply by 10h to get physical address)
  3329.  0Dh    WORD    1 Megabyte system video memory aperture
  3330.         0000h if not allocated
  3331.         (Multiply by 100000h to get physical address)
  3332.  0Fh    WORD    4 Megabyte system video memory aperture
  3333.         0000h if not allocated
  3334.         (multiply by 100000h to get physical address)
  3335.  11h    WORD    video memory base address
  3336.         (multiply by 100000h to get physical address)
  3337.  13h    WORD    composite ID of the attached display
  3338.  15h    BYTE    amount of video memory available, in multiples of 256K bytes
  3339.  16h    DWORD    alternate XGA coprocessor register base address.  0 = none.
  3340.  1Ah    var    DMQS Data for further XGA Instances (as above)
  3341. Note:    "Instances" refers to the capability of having up to 8 XGA
  3342.       adapters in one computer.
  3343. --------V-103000CX0000-----------------------
  3344. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  3345.     AX = 3000h
  3346.     CX = 0000h
  3347.     DX = 0000h
  3348. Return: CX:DX -> 3270PC configuration table (see #0048)
  3349.     CX:DX = 0000h:0000h if 3270PC Control Program not active
  3350. SeeAlso: AX=1F01h
  3351.  
  3352. Format of 3270 PC configuration table:
  3353. Offset    Size    Description    (Table 0048)
  3354.  00h    BYTE    aspect ratio X
  3355.  01h    BYTE    aspect ratio Y
  3356.  02h    BYTE    monitor type (see #0049)
  3357.  03h    BYTE    reserved
  3358.  04h    BYTE    adapter ID
  3359.         00h = 5151/5272 adapter
  3360.         04h = 5151/5272 with XGA adapter
  3361.         30h = 3295 or 3270PC G/GX adapter
  3362.  05h    BYTE    reserved
  3363.  06h    BYTE    function flags 1 (see #0050)
  3364.  07h    BYTE    function flags 2
  3365.         bit 6: GPI graphics supported
  3366.  08h    WORD    segment address of Control Program Level table (see #0051)
  3367.  0Ah 10 BYTEs    reserved
  3368.  
  3369. (Table 0049)
  3370. Values for 3270 PC monitor type:
  3371.  00h    5151 (mono) or 5272 (color)
  3372.  01h    3295
  3373.  02h    5151 or 5272 with XGA (???) graphics adapter
  3374.  03h    5279 with 3270PC G adapter
  3375.  04h    5379 model C01 with 3270PC GX adapter
  3376.  05h    5379 model M01 with 3270PC GX adapter
  3377.  07h    non-3270PC with 3270 Workstation Program
  3378.  FFh    3270PC Control Program not loaded
  3379.  
  3380. Bitfields for 3270 PC function flags 1:
  3381. Bit(s)    Description    (Table 0050)
  3382.  7    mono text, 1 page
  3383.  6    color text, 1 page
  3384.  5    color text, 4 pages
  3385.  4    CGA color graphics
  3386.  3    720x350 two-color graphics
  3387.  2    360x350 four-color graphics
  3388.  1    720x350 eight-color graphics
  3389.  
  3390. Format of Control Program Level table:
  3391. Offset    Size    Description    (Table 0051)
  3392.  00h    WORD    program version
  3393.         02xxh = 3270PC Control Program v2.xx
  3394.         03xxh = 3270PC Control Program v3.xx
  3395.         04xxh = 3270 Workstation Program v1.xx
  3396.  02h    BYTE    Control Program ID (00h)
  3397.  03h 27 BYTEs    Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  3398. --------a-103800-----------------------------
  3399. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  3400.     AX = 3800h
  3401. Return: ES:DI -> configuration info (see #0052)
  3402. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3403. Notes:    this call is also used as the installation check by verifying that the
  3404.       returned ES:DI points at valid configuration info
  3405.     Tinytalk v1.09f ignores AL and always returns the configuration info;
  3406.       v1.10 adds several subfunctions selected with AL
  3407. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  3408. SeeAlso: INT 2F/FB00h"AutoBraille"
  3409. Index:    installation check;Tinytalk Personal
  3410.  
  3411. Format of Tinytalk Personal configuration info:
  3412. Offset    Size    Description    (Table 0052)
  3413.  00h  8 BYTEs    signature "TTCONFIG"
  3414.  08h    WORD    size of configuration data, not counting signature, this WORD,
  3415.           or the following byte
  3416.  0Ah    BYTE    ???
  3417.  0Bh    ???    configuration data
  3418. --------a-103801-----------------------------
  3419. INT 10 - Tinytalk Personal v1.10 - ???
  3420.     AX = 3801h
  3421.     DL = ???
  3422. Return: ???
  3423. SeeAlso: AX=3800h,AX=3802h
  3424. --------a-103802-----------------------------
  3425. INT 10 - Tinytalk Personal v1.10 - ???
  3426.     AX = 3802h
  3427.     DL = ???
  3428. Return: ???
  3429. SeeAlso: AX=3800h,AX=3801h
  3430. --------a-103803-----------------------------
  3431. INT 10 - Tinytalk Personal v1.10 - GET ???
  3432.     AX = 3803h
  3433. Return: AL = ???
  3434. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  3435. --------a-103804-----------------------------
  3436. INT 10 - Tinytalk Personal v1.10 - GET ???
  3437.     AX = 3804h
  3438. Return: AX = ???
  3439. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  3440. --------a-103805-----------------------------
  3441. INT 10 - Tinytalk Personal v1.10 - GET ???
  3442.     AX = 3805h
  3443. Return: AL = ???
  3444. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  3445. --------a-103806-----------------------------
  3446. INT 10 - Tinytalk Personal v1.10 - ???
  3447.     AX = 3806h
  3448.     ES:DX -> ASCIZ ???
  3449. Return: ???
  3450. SeeAlso: AX=3800h
  3451. --------a-1039-------------------------------
  3452. INT 10 - Tinytalk Personal v1.10 - ???
  3453.     AH = 39h
  3454. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3455. Note:    this function was a NOP in TTDEMO.EXE, but may be implemented in other
  3456.       variants of Tinytalk
  3457. --------V-1040-------------------------------
  3458. INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
  3459.     AH = 40h
  3460. Desc:    switch the Hercules Graphics Card into graphics mode (720x348)
  3461. SeeAlso: AH=00h,AH=41h
  3462. Index:    video modes
  3463. --------V-1041-------------------------------
  3464. INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
  3465.     AH = 41h
  3466. Desc:    switch the Hercules Graphics Card into text mode
  3467. SeeAlso: AH=00h,AH=40h
  3468. Index:    video modes
  3469. --------V-1042-------------------------------
  3470. INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
  3471.     AH = 42h
  3472. SeeAlso: AH=45h
  3473. --------V-1043-------------------------------
  3474. INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
  3475.     AH = 43h
  3476.     AL = page number (0,1)
  3477. Desc:    specify which of the two pages of video memory is to be used for
  3478.       output
  3479. SeeAlso: AH=05h,AH=44h,AH=45h
  3480. --------V-1044-------------------------------
  3481. INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
  3482.     AH = 44h
  3483.     AL = drawing function
  3484.         00h clear pixels
  3485.         01h set pixels
  3486.         02h invert pixels
  3487. Desc:    specify how graphics output will change the display
  3488. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  3489. --------V-1045-------------------------------
  3490. INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
  3491.     AH = 45h
  3492.     AL = page number (0,1)
  3493. Desc:    specify which of the two pages of video memory is visible on screen
  3494. SeeAlso: AH=05h,AH=42h,AH=43h
  3495. --------V-1046-------------------------------
  3496. INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
  3497.     AH = 46h
  3498.     DI = x (0-720)
  3499.     BP = y (0-347)
  3500. Note:    function 44h determines operation and function 43h which page to use
  3501. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  3502. --------V-1047-------------------------------
  3503. INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
  3504.     AH = 47h
  3505.     DI = x (0-720)
  3506.     BP = y (0-347)
  3507. Return: AL = 00h pixel clear
  3508.     AL = 01h pixel set
  3509. Note:    function 43h specifies which page is used
  3510. SeeAlso: AH=0Dh,AH=46h
  3511. --------V-1048-------------------------------
  3512. INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
  3513.     AH = 48h
  3514.     DI = x (0-720)
  3515.     BP = y (0-347)
  3516. Desc:    specify the location from which to start the next graphics output
  3517. SeeAlso: AH=49h
  3518. --------V-1049-------------------------------
  3519. INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
  3520.     AH = 49h
  3521.     DI = x (0-720)
  3522.     BP = y (0-347)
  3523. Note:    function 48h or 49h specify first point, 44h operation and 43h page to
  3524.       use
  3525. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  3526. --------V-104A-------------------------------
  3527. INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
  3528.     AH = 4Ah
  3529.     DI = x coordinate of lower left corner
  3530.     BP = y coordinate of lower left corner
  3531.     BX = height in pixels
  3532.     CX = width in pixels
  3533. Desc:    draw a solid rectangle of the specified size at the given location
  3534. SeeAlso: AH=4Eh
  3535. --------V-104B-------------------------------
  3536. INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
  3537.     AH = 4Bh
  3538.     AL = character to display
  3539.     DI = x (0-720)
  3540.     BP = y (0-347)
  3541. Note:    unlike the other BIOS character functions character position is
  3542.       specified in pixels rather than rows and columns
  3543. SeeAlso: AH=09h,AH=0Ah
  3544. ----------104B-------------------------------
  3545. INT 10 - FRIEZE - API
  3546.     AH = 4Bh
  3547.     CL = function
  3548.         00h (v6.x-) print window
  3549.         AL = mode
  3550.             00h character
  3551.             01h normal
  3552.             02h sideways
  3553.         01h load window
  3554.         ES:BX -> ASCIZ filename from which to read
  3555.         02h save window
  3556.         ES:BX -> ASCIZ filename to which to write
  3557.         03h set print width
  3558.         AL = width in 1/4 inches
  3559.         04h set print height
  3560.         AL = height in 1/4 inches
  3561.         05h reserved
  3562.         06h set left margin
  3563.         AL = printout margin in 1/4 inches
  3564.         07h set window size
  3565.         ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  3566.         08h reserved
  3567.         09h set patterns
  3568.         ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  3569.         0Ah get patterns
  3570.         ES:BX -> 16-BYTE buffer for color correspondences
  3571.         0Bh set mode
  3572.         AL = mode
  3573.         0Ch (v7.41) ???
  3574.         AL = ???
  3575.             00h ??? (calls original INT 05)
  3576.             else ???
  3577.         0Dh (v7.41) ???
  3578.         AL = ???
  3579.             00h ??? (calls original INT 05)
  3580.             else ???
  3581.         0Eh (v7.41) ???
  3582.         ???
  3583.         0Fh get window
  3584.         ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  3585.         10h set print options
  3586.         ES:BX -> printer options in same format as FRIEZE cmdline
  3587.         11h initialize
  3588.         ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  3589.         12h (v7.41) ???
  3590.         ???
  3591.         13h (v7.41) ???
  3592.         ???
  3593.         14h get version
  3594.         Return: AH = major version (00h if FRIEZE version before 7)
  3595.             AL = minor version
  3596.         15h set parameters
  3597.         ES:BX -> parameter table (see #0054)
  3598.         16h get parameters
  3599.         ES:BX -> buffer for parameter table (see #0054)
  3600.         17h get printer resolution
  3601.         ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  3602.         18h (v8.0 only) reserved
  3603.         50h (v7.41) get ???
  3604.         Return: AX = ???
  3605.         51h (v7.41) get ???
  3606.         Return: ES = ??? (seen 2348h)
  3607.             AX = ??? (seen 8432h)
  3608. Return: AX = status (see #0053)
  3609. SeeAlso: AH=0Fh/SI=F123h
  3610.  
  3611. (Table 0053)
  3612. Values for FRIEZE function status:
  3613.  00h    successful
  3614.  01h    user aborted printout with ESC
  3615.  02h    reserved
  3616.  03h    file read error
  3617.  04h    file write error or printer error
  3618.  05h    file not found
  3619.  06h    invalid header (not an image or wrong screen mode) or can't create file
  3620.  07h    file close error
  3621.  08h    disk error
  3622.  09h    (v7.0+) printer error
  3623.  0Ah    invalid function
  3624.  0Bh    (v7.0+) can't create file
  3625.  0Ch    (v7.0+) wrong video mode
  3626.  
  3627. Format of FRIEZE parameter table:
  3628. Offset    Size    Description    (Table 0054)
  3629.  00h    WORD    top margin (1/100 inch)
  3630.  02h    WORD    left margin (1/100 inch)
  3631.  04h    WORD    horizontal size (1/100 inch)
  3632.  06h    WORD    vertical size (1/100 inch)
  3633.  08h    WORD    quality/draft mode
  3634.         00h draft mode
  3635.         01h quality mode
  3636.         02h use horizontal/vertical resolution for output resolution
  3637.  0Ah    WORD    printer horizontal resolution (dots per inch)
  3638.  0Ch    WORD    printer vertical resolution (dots per inch)
  3639.  0Eh    WORD    reserved (FFFFh)
  3640. Note:    any field which should remain unchanged may be filled with FFFFh
  3641. --------V-104C-------------------------------
  3642. INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
  3643.     AH = 4Ch
  3644.     AL = quadrant (1 = upper right, 2 = upper left, etc)
  3645.     DI = x coordinate of center
  3646.     BP = y coordinate of center
  3647.     BX = radius
  3648. SeeAlso: AH=49h,AH=4Dh
  3649. --------V-104D-------------------------------
  3650. INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
  3651.     AH = 4Dh
  3652.     DI = x of center
  3653.     BP = y of center
  3654.     BX = radius
  3655. SeeAlso: AH=49h,AH=4Ch
  3656. --------V-104E-------------------------------
  3657. INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
  3658.     AH = 4Eh
  3659.     DI = x coordinate of an interior point
  3660.     BP = y coordinate of an interior point
  3661. Desc:    fill a convex polygonal area bounded by a contiguous line of the
  3662.       opposite color with the border color
  3663. Note:    the first fill makes the figure solid, the second erases it
  3664. SeeAlso: AH=4Ah
  3665. --------V-104E00-----------------------------
  3666. INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
  3667.     AX = 4E00h
  3668.     ES:DI -> 256-byte buffer for XGA information (see #0055)
  3669. Return: AL = 4Eh if function supported
  3670.         AH = status
  3671.         00h successful
  3672.         else error code
  3673. Desc:    determine whether VESA XGA extensions are present and the capabilities
  3674.       supported by the display adapter
  3675. SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
  3676. Index:    installation check;VESA XGA
  3677.  
  3678. Format of XGA information buffer:
  3679. Offset    Size    Description    (Table 0055)
  3680.  00h  4 BYTEs    signature ("VESA")
  3681.  04h    WORD    VESA version number
  3682.  06h    DWORD    pointer to ASCIZ OEM string
  3683.  0Ah    DWORD    environment flags (see #0056)
  3684.  0Eh    WORD    number of XGA adapters installed (other VESA XGA functions
  3685.           require a handle indicating which adapter to use)
  3686.  10h 240 BYTEs    reserved
  3687.  
  3688. Bitfields for XGA environment flags:
  3689. Bit(s)    Description    (Table 0056)
  3690.  0-1    system bus (00 = MCA, 01 = ISA, 10 = EISA)
  3691.  2    bus mastering available
  3692.  3-31    reserved
  3693. --------V-104E01----------------------------
  3694. INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
  3695.     AX = 4E01h
  3696.     DX = XGA handle (0 to number of XGAs-1)
  3697.     ES:DI -> 256-byte buffer for subsystem information (see #0057)
  3698. Return: AL = 4Eh if function supported
  3699.     AH = status
  3700.         00h     function successful
  3701.         else error code
  3702. SeeAlso: AX=4E00h,AX=4E02h
  3703.  
  3704. Format of XGA subsystem information:
  3705. Offset    Size    Description    (Table 0057)
  3706.  00h    DWORD    pointer to null-terminated board OEM string
  3707.  04h    DWORD    capabilities (see #0058)
  3708.  08h    DWORD    pointer to 8KB XGA ROM (or NULL)
  3709.  0Ch    DWORD    pointer to the XGA memory mapped registers
  3710.  10h    WORD    base address of XGA I/O registers (21x0h)
  3711.  12h    DWORD    pointer to start of physical video memory
  3712.         (A000h:0000h or B000h:0000h)
  3713.  16h    DWORD    physical address of 4MB aperture (or NULL if none)
  3714.  1Ah    DWORD    physical address of 1MB aperture (or NULL if none)
  3715.  1Eh    DWORD    physical address of 64KB aperture (or NULL if not enabled)
  3716.  22h    DWORD    physical address of OEM aperture (or NULL if none)
  3717.  26h    WORD    size of OEM aperture in 64KByte units
  3718.  28h    DWORD    pointer to list of video modes
  3719.         The list is a series of WORDs terminated by FFFFh
  3720.  2Ch    WORD    number of 64KB blocks on the board
  3721.  2Eh    DWORD    XGA manufacturer ID
  3722.         byte 0 POS data index 1
  3723.         byte 1 is index 2
  3724.         byte 2 is 21xAh index 75h
  3725.  32h 206 BYTEs    reserved
  3726.  
  3727. Bitfields for XGA capabilities:
  3728. Bit(s)    Description    (Table 0058)
  3729.  0-1    board bus architecture: 0=MCA, 1=ISA, 3=EISA
  3730.  2-3    reserved
  3731.  4-6    DMA Channel assigned for acquiring bus mastership (only for ISA bus)
  3732.  7    DMA Channel Status (ISA only). enabled if set
  3733.  8-31    reserved
  3734. --------V-104E02-----------------------------------
  3735. INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
  3736.     AX = 4E02h
  3737.     CX = Video mode
  3738.     DX = XGA handle
  3739.     ES:DI -> 256 byte buffer for mode information (see #0059)
  3740. Return: AL = 4Eh if function supported
  3741.     AH = status
  3742.         00h     function successful
  3743.         else error code
  3744. SeeAlso: AX=4E00h,AX=4E01h
  3745.  
  3746. Format of XGA mode information:
  3747. Offset    Size    Description    (Table 0059)
  3748.  00h    WORD    attributes of the mode (see #0060)
  3749.  02h    WORD    bytes per logical scanline
  3750.  04h    WORD    horizontal resolution in pixels
  3751.  06h    WORD    vertical resolution in scanlines
  3752.  08h    BYTE    character Width in pixels
  3753.  09h    BYTE    character Height in pixels
  3754.  0Ah    BYTE    number of planes
  3755.  0Bh    BYTE    bits per pixels
  3756.  0Ch    BYTE    memory model (see #0061)
  3757.  0Dh    BYTE    number of Image Pages
  3758.  0Eh    BYTE    number of Red bits
  3759.  0Fh    BYTE    bit position of Red bit field
  3760.  10h    BYTE    number of Green bits
  3761.  11h    BYTE    bit position of Green bit field
  3762.  12h    BYTE    number of Blue bits
  3763.  13h    BYTE    bit position of Blue bit field
  3764.  14h    BYTE    number of Reserved bits
  3765.  15h    BYTE    bit position of Reserved bit field
  3766.  16h 235 BYTEs    reserved
  3767.  
  3768. Bitfields for XGA mode attributes:
  3769. Bit(s)    Description    (Table 0060)
  3770.  0    set if mode is supported
  3771.  1    reserved
  3772.  2    output is supported by the BIOS
  3773.  3    reserved
  3774.  4    if set this is a graphics mode (VGA registers inactive, XGA active),
  3775.       if clear this is a text mode (VGA registers active, XGA inactive)
  3776.  
  3777. (Table 0061)
  3778. Values for XGA video memory model:
  3779.  00h    Text Mode
  3780.  01h    CGA graphics
  3781.  02h    Hercules graphics
  3782.  03h    4-planar graphics
  3783.  04h    Packed Pixel
  3784.  05h    Non-chain 4, 256 color
  3785.  06h    Direct Color
  3786.  07h    YUV-24
  3787. --------V-104E03-----------------------------------
  3788. INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
  3789.     AX = 4E03h
  3790.     BX = video mode
  3791.     CX = other command flags
  3792.          bit 0  If clear the feature connector is set to the default state
  3793.     DX = XGA handle
  3794.     ES:DI -> 256 byte buffer
  3795. Return: AL = 4Eh if function supported
  3796.     AH = status
  3797.         00h     function successful
  3798.         else error code
  3799. SeeAlso: AH=00h,AX=4E04h,AX=4F02h
  3800. --------V-104E04-----------------------------------
  3801. INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
  3802.     AX = 4E04h
  3803.     DX = XGA handle
  3804. Return: AL = 4Eh if function supported
  3805.     AH = status
  3806.         00h     function successful
  3807.         BX??? = current mode
  3808.         else error code
  3809. SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
  3810. --------V-104E05-----------------------------------
  3811. INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
  3812.     AX = 4E05h
  3813.     BX = Feature Connector State (see #0062)
  3814.     DX = XGA handle
  3815. Return: AL = 4Eh if function supported
  3816.     AH = status
  3817.         00h     function successful
  3818.         else error code
  3819. SeeAlso: AX=4E00h,AX=4E06h
  3820.  
  3821. Bitfields for XGA Feature Connector State:
  3822. Bit(s)    Description    (Table 0062)
  3823.  0    Feature Connector is enabled
  3824.  1    Feature Connector is in Output Mode rather than Input Mode
  3825.  2-15    reserved (0)
  3826. --------V-104E06-----------------------------------
  3827. INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
  3828.     AX = 4E06h
  3829.     DX = XGA handle
  3830. Return: AL = 4Eh if function supported
  3831.     AH = status
  3832.         00h     function successful
  3833.         else error code
  3834.     BX = Feature Connector State (see #0062)
  3835. SeeAlso: AX=4E00h,AX=4E05h
  3836. --------V-104F00-----------------------------
  3837. INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
  3838.     AX = 4F00h
  3839.     ES:DI -> 256-byte buffer for SuperVGA information (see #0063)
  3840. Return: AL = 4Fh if function supported
  3841.     AH = status
  3842.         00h successful
  3843.         ES:DI buffer filled
  3844.         01h failed
  3845. Desc:    determine whether VESA BIOS extensions are present and the capabilities
  3846.       supported by the display adapter
  3847. SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h,AX=A00Ch
  3848. Index:    installation check;VESA SuperVGA
  3849.  
  3850. Format of SuperVGA information:
  3851. Offset    Size    Description    (Table 0063)
  3852.  00h  4 BYTEs    signature ("VESA")
  3853.  04h    WORD    VESA version number
  3854.  06h    DWORD    pointer to OEM name
  3855.         "761295520" for ATI
  3856.  0Ah  4 BYTEs    capabilities
  3857.  0Eh    DWORD    pointer to list of supported VESA and OEM video modes
  3858.         (list of words terminated with FFFFh)
  3859.  12h    WORD    total amount of video memory in 64K blocks
  3860.  14h 236 BYTEs    reserved
  3861. Notes:    the list of supported video modes is stored in the reserved portion of
  3862.       the SuperVGA information record by some implementations, and it may
  3863.       thus be necessary to either copy the mode list or use a different
  3864.       buffer for all subsequent VESA calls
  3865.     the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  3866.       buffer should be 262 bytes to ensure that it is not overrun
  3867. --------V-104F01-----------------------------
  3868. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  3869.     AX = 4F01h
  3870.     CX = SuperVGA video mode
  3871.     ES:DI -> 256-byte buffer for mode information (see #0064)
  3872. Return: AL = 4Fh function supported
  3873.     AH = status
  3874.         00h successful
  3875.         ES:DI buffer filled
  3876.         01h failed
  3877. Desc:    determine the attributes of the specified video mode
  3878. SeeAlso: AX=4F00h,AX=4F02h
  3879.  
  3880. Format of VESA SuperVGA mode information:
  3881. Offset    Size    Description    (Table 0064)
  3882.  00h    WORD    mode attributes (see #0065)
  3883.  02h    BYTE    window attributes, window A (see #0066)
  3884.  03h    BYTE    window attributes, window B (see #0066)
  3885.  04h    WORD    window granularity in KB
  3886.  06h    WORD    window size in KB
  3887.  08h    WORD    start segment of window A
  3888.  0Ah    WORD    start segment of window B
  3889.  0Ch    DWORD    -> FAR window positioning function (equivalent to AX=4F05h)
  3890.  10h    WORD    bytes per scan line
  3891. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  3892.  12h    WORD    width in pixels (graphics) or characters (text)
  3893.  14h    WORD    height in pixels (graphics) or characters (text)
  3894.  16h    BYTE    width of character cell in pixels
  3895.  17h    BYTE    height of character cell in pixels
  3896.  18h    BYTE    number of memory planes
  3897.  19h    BYTE    number of bits per pixel
  3898.  1Ah    BYTE    number of banks
  3899.  1Bh    BYTE    memory model type (see #0067)
  3900.  1Ch    BYTE    size of bank in KB
  3901.  1Dh    BYTE    number of image pages
  3902.  1Eh    BYTE    reserved (0)
  3903. ---VBE v1.2+---
  3904.  1Fh    BYTE    red mask size
  3905.  20h    BYTE    red field position
  3906.  21h    BYTE    green mask size
  3907.  22h    BYTE    green field size
  3908.  23h    BYTE    blue mask size
  3909.  24h    BYTE    blue field size
  3910.  25h    BYTE    reserved mask size
  3911.  26h    BYTE    reserved mask position
  3912.  27h    BYTE    direct color mode info
  3913.  28h 216 BYTEs    reserved (0)
  3914.  
  3915. Bitfields for VESA SuperVGA mode attributes:
  3916. Bit(s)    Description    (Table 0065)
  3917.  0    mode supported
  3918.  1    optional information available
  3919.  2    BIOS output supported
  3920.  3    set if color, clear if monochrome
  3921.  4    set if graphics mode, clear if text mode
  3922.  
  3923. Bitfields for VESA SuperVGA window attributes:
  3924. Bit(s)    Description    (Table 0066)
  3925.  0    exists
  3926.  1    readable
  3927.  2    writable
  3928.  3-7    reserved
  3929.  
  3930. (Table 0067)
  3931. Values for VESA SuperVGA memory model type:
  3932.  00h    text
  3933.  01h    CGA graphics
  3934.  02h    HGC graphics
  3935.  03h    16-color (EGA) graphics
  3936.  04h    packed pixel graphics
  3937.  05h    "sequ 256" (non-chain 4) graphics
  3938.  06h    direct color (HiColor, 24-bit color)
  3939.  07h    YUV (luminance-chrominance, also called YIQ)
  3940.  08h-0Fh reserved for VESA
  3941.  10h-FFh OEM memory models
  3942. --------V-104F02-----------------------------
  3943. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  3944.     AX = 4F02h
  3945.     BX = mode
  3946.         bit 15 set means don't clear video memory
  3947. Return: AL = 4Fh function supported
  3948.     AH = status
  3949.         00h successful
  3950.         01h failed
  3951. SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
  3952.  
  3953. (Table 0068)
  3954. Values for VESA video mode:
  3955.  00h-FFh OEM video modes (see #0009 at AH=00h)
  3956.  100h    640x400x256
  3957.  101h    640x480x256
  3958.  102h    800x600x16
  3959.  103h    800x600x256
  3960.  104h    1024x768x16
  3961.  105h    1024x768x256
  3962.  106h    1280x1024x16
  3963.  107h    1280x1024x256
  3964.  108h    80x60 text
  3965.  109h    132x25 text
  3966.  10Ah    132x43 text
  3967.  10Bh    132x50 text
  3968.  10Ch    132x60 text
  3969. ---VBE v1.2---
  3970.  10Dh    320x200x32K
  3971.  10Eh    320x200x64K
  3972.  10Fh    320x200x16M
  3973.  110h    640x480x32K
  3974.  111h    640x480x64K
  3975.  112h    640x480x16M
  3976.  113h    800x600x32K
  3977.  114h    800x600x64K
  3978.  115h    800x600x16M
  3979.  116h    1024x768x32K
  3980.  117h    1024x768x64K
  3981.  118h    1024x768x16M
  3982.  119h    1280x1024x32K
  3983.  11Ah    1280x1024x64K
  3984.  11Bh    1280x1024x16M
  3985. Index:    video modes
  3986.  
  3987. (Table 0069)
  3988. Values for S3 OEM video mode:
  3989.  201h    640x480x256
  3990.  202h    800x600x16
  3991.  203h    800x600x256
  3992.  204h    1024x768x16
  3993.  205h    1024x768x256
  3994.  206h    1280x960x16
  3995.  208h    1280x1024x16
  3996.  211h    640x480x64K (Diamond Stealth 24)
  3997.  212h    640x480x16M (Diamond Stealth 24)
  3998.  301h    640x480x32K
  3999. Note:    these modes are only available on video cards using S3's VESA driver
  4000. Index:    video modes
  4001. --------V-104F03-----------------------------
  4002. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  4003.     AX = 4F03h
  4004. Return: AL = 4Fh function supported
  4005.     AH = status
  4006.         00h successful
  4007.         BX = video mode (see #0068,#0069)
  4008.         01h failed
  4009. SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
  4010. --------V-104F04-----------------------------
  4011. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  4012.     AX = 4F04h
  4013.     DL = subfunction
  4014.         00h get state buffer size
  4015.         Return: BX = number of 64-byte blocks needed
  4016.         01h save video states
  4017.         ES:BX -> buffer
  4018.         02h restore video states
  4019.         ES:BX -> buffer
  4020.     CX = states to save/restore (see #0070)
  4021. Return: AL = 4Fh function supported
  4022.     AH = status
  4023.         00h successful
  4024.         01h failed
  4025.  
  4026. Bitfields for VESA SuperVGA states to save/restore:
  4027. Bit(s)    Description    (Table 0070)
  4028.  0    video hardware state
  4029.  1    video BIOS data state
  4030.  2    video DAC state
  4031.  3    SuperVGA state
  4032. --------V-104F05-----------------------------
  4033. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  4034.     AX = 4F05h
  4035.     BH = subfunction
  4036.         00h select video memory window
  4037.         DX = window address in video memory (in granularity units)
  4038.         01h get video memory window
  4039.         Return: DX = window address in video memory (in gran. units)
  4040.     BL = window number
  4041.         00h window A
  4042.         01h window B
  4043. Return: AL = 4Fh function supported
  4044.     AH = status
  4045.         00h successful
  4046.         01h failed
  4047. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  4048. --------V-104F06-----------------------------
  4049. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH
  4050.     AX = 4F06h
  4051.     BL = function
  4052.         00h set scan line length
  4053.         CX = desired width in pixels
  4054.         01h get scan line length
  4055. Return: AL = 4Fh if function supported
  4056.     AH = status
  4057.         00h successful
  4058.         01h failed
  4059.     BX = bytes per scan line
  4060.     CX = number of pixels per scan line
  4061.     DX = maximum number of scan lines
  4062. Notes:    if the desired width is not achievable, the next larger width will be
  4063.       set
  4064.     the scan line may be wider than the visible area of the screen
  4065.     this function is valid in text modes, provided that values are
  4066.       multiplied by the character cell width/height
  4067. SeeAlso: AX=4F01h,AX=4F05h,AX=4F07h
  4068. --------V-104F07BH00-------------------------
  4069. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  4070.     AX = 4F07h
  4071.     BH = 00h (reserved)
  4072.     BL = function
  4073.         00h set display start
  4074.         CX = leftmost displayed pixel in scan line
  4075.         DX = first displayed scan line
  4076.         01h get display start
  4077.         Return: BH = 00h
  4078.             CX = leftmost displayed pixel in scan line
  4079.             DX = first displayed scan line
  4080. Return: AL = 4Fh if function supported
  4081.     AH = status
  4082.         00h successful
  4083.         01h failed
  4084. Note:    this function is valid in text modes, provided that values are
  4085.       multiplied by the character cell width/height
  4086. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  4087. --------V-104F08-----------------------------
  4088. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  4089.     AX = 4F08h
  4090.     BL = function
  4091.         00h set DAC palette width
  4092.         BH = desired number of bits per primary color
  4093.         01h get DAC palette width
  4094. Return: AL = 4Fh if function supported
  4095.     AH = status
  4096.     BH = current number of bits per primary (06h = standard VGA)
  4097. --------s-104F13-----------------------------
  4098. INT 10 - VESA Audio Interface - API
  4099.     AX = 4F13h
  4100.     ??? details not yet available
  4101. ----------104F4D-----------------------------
  4102. INT 10 - VESA - VIDEO CURSOR INTERFACE REQUEST
  4103.     AX = 4F4Dh
  4104.     BX = number of bytes available for VCI use
  4105.     DS:0000h -> buffer for VCI
  4106.     ES:DI -> VCI driver callback function
  4107. Return: AL = 4Fh if supported
  4108.         AH = status
  4109.         00h successful
  4110.             BX = number of bytes used by VCI
  4111.             ES:DI -> VCI request handler
  4112.         01h failed
  4113. Desc:    allow the VESA BIOS Extensions to cooperate with a pointing-device
  4114.       (typically mouse) driver
  4115. --------V-104FFF-----------------------------
  4116. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  4117.     AX = 4FFFh
  4118.     DL = new state (00h off, 01h on)
  4119. Return: AX = 0000h if successful
  4120. --------V-104FFF-----------------------------
  4121. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  4122.     AX = 4FFFh
  4123.     BX = dual display mode
  4124.         00h reset
  4125.         01h set dual display, 32KB VGA test
  4126.         02h set dual display, 64KB VGA test
  4127. Return: AX = 4F00h if successful
  4128.         BX = number of scanlines off screen for test mode
  4129. --------U-1050-------------------------------
  4130. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  4131.     AH = 50h
  4132. Return: BX = 1954h if installed
  4133.         AL = 00h if inactive, nonzero if active
  4134. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  4135. SeeAlso: AH=51h
  4136. --------J-105000-----------------------------
  4137. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  4138.     AX = 5000h
  4139.     BX = country code
  4140.         0001h USA (English), 0051h Japan
  4141. Return: AL = status
  4142.         00h successful
  4143.         01h bad country code
  4144.         02h other error
  4145. SeeAlso: AX=5001h,INT 16/AX=5000h
  4146. --------J-105001-----------------------------
  4147. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  4148.     AX = 5001h
  4149. Return: AL = status
  4150.         00h successful
  4151.         BX = country code
  4152.         02h error
  4153. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  4154. --------V-105049-----------------------------
  4155. INT 10 - VIDEO - SCREENR v1.55+ - API
  4156.     AX = 5049h ('PI')
  4157.     BX = function
  4158.         0000h installation check
  4159.         0001h lock mode
  4160.         0002h unlock mode
  4161.         0003h lock palette
  4162.         0004h unlock palette
  4163. Return: AX = 0000h if installed
  4164.         BX = TSR version (BH=major,BL=minor)
  4165.         CL = mode locking status
  4166.         00h mode not locked
  4167.         01h mode locked: INT 10/AH=00h disabled
  4168.         CH = palette locking status
  4169.         00h palette not locked
  4170.         01h palette locked, the following functions are disabled:
  4171.             AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  4172. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  4173.       utility.
  4174. Index:    installation check;SCREENR
  4175. --------U-1051-------------------------------
  4176. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  4177.     AH = 51h
  4178.     AL = state
  4179.         00h disable
  4180.         nonzero enable
  4181. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  4182. SeeAlso: AH=50h"SCROLOCK"
  4183. --------J-105100-----------------------------
  4184. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  4185.     AX = 5100h
  4186.     BH = character width in bits (10h)
  4187.     BL = character height (10h)
  4188.     DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  4189.     ES:BP -> character bitmap
  4190. Return: AL = status (00h successful, 01h failed)
  4191. SeeAlso: AX=5101h,INT 1F
  4192. --------J-105101-----------------------------
  4193. INT 10 - VIDEO - AX PC - READ CHARACTER
  4194.     AX = 5101h
  4195.     BH = character width in bits
  4196.     BL = character height
  4197.     DX = character code (DH = 00h if 8-bit character)
  4198.     ES:BP -> buffer for character bitmap
  4199. Return: AL = status (00h successful, 01h failed)
  4200. SeeAlso: AH=09h,AX=5100h
  4201. --------J-105200-----------------------------
  4202. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  4203.     AX = 5200h
  4204.     BX = segment of buffer
  4205. SeeAlso: AX=5201h
  4206. --------J-105201-----------------------------
  4207. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  4208.     AX = 5201h
  4209. Return: BX = segment of buffer or 0000h if failed
  4210. SeeAlso: AX=8300h,AH=FEh
  4211. ----------1053-------------------------------
  4212. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  4213.     AH = 53h
  4214.     DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  4215.         .PR2)
  4216. Return: ???
  4217. SeeAlso: AH=55h
  4218. ----------1055-------------------------------
  4219. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  4220.     AH = 55h
  4221. Return: FXSHOW.EXE removed from memory
  4222. SeeAlso: AH=53h
  4223. --------V-105555-----------------------------
  4224. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  4225.     AX = 5555h
  4226. Return: AX = AAAAh    if installed
  4227.     BX:CX -> ??? routine in SMS.COM resident portion
  4228.           -> data area (see #0071) in VCONFIG
  4229. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  4230.       ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  4231. SeeAlso: INT 10/AH=00h,INT 14/AX=AA01h,INT 2F/AX=6400h
  4232. Index:    screen saver;ATI Wonder SMS.COM
  4233.  
  4234. Format of ATI Super Switch data area:
  4235. Offset    Size    Description    (Table 0071)
  4236.  00h    DWORD    original INT 09 vector
  4237.  04h    DWORD    original INT 10 vector
  4238.  08h    DWORD    original INT 1C vector
  4239.  0Ch    WORD    screen saver state, 0=off, 1=on
  4240.  0Eh    WORD    blanking interval in clock ticks
  4241. --------V-105F00-----------------------------
  4242. INT 10 - Chips & Technologies Extended BIOS - RETURN 82C45X CHIP INFORMATION
  4243.     AX = 5F00h
  4244. Return: AL = 5Fh function supported
  4245.         BL = chip type (see #0072)
  4246.         BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
  4247.         CX = miscellaneous information (see #0073)
  4248. SeeAlso: AX=5F01h
  4249.  
  4250. Bitfields for Chips&Technologies chip type:
  4251. Bit(s)    Description    (Table 0072)
  4252.  7-4    chip type
  4253.     0000: 82c451
  4254.     0001: 82c452
  4255.     0010: 82c455
  4256.     0011: 82c453
  4257.     0101: 82c456
  4258.     0110: 82c457
  4259.     0111: F65520
  4260.     1000: F65530
  4261.  3-0    revision number
  4262.  
  4263. Bitfields for Chips&Technologies miscellaneous information:
  4264. Bit(s)    Description    (Table 0073)
  4265.  0    DAC size (0=6-bit, 1=8-bit)
  4266.  1    system type (0=PC/AT, 1=PS/2)
  4267.  2    extended text modes supported by BIOS
  4268.  3    reserved
  4269.  4    extended graphics modes supported by BIOS
  4270.  5    reserved
  4271.  6    BIOS supports graphics cursor
  4272.  7    BIOS supports anti-aliased font
  4273.  8    BIOS supports pre-programmed emulation
  4274.  9    BIOS supports auto emulation
  4275.  10    BIOS supports variable mode set at cold boot
  4276.  11    BIOS supports variable mode set on warm boot
  4277.  12    BIOS supports emulation mode set at cold boot
  4278.  13    BIOS supports emulation mode set on warm boot
  4279.  14-15    reserved
  4280. --------V-105F00-----------------------------
  4281. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  4282.     AX = 5F00h
  4283. Return: AH = 00h, if successful
  4284.     AL = chip version (the same value that VTEST.EXE reads)
  4285.         00h RTG3103???
  4286.         01h RTG31030/RTG3105
  4287.         02h RTG3106???
  4288.         3Fh non-Realtek chip
  4289. BUG:    in v3.C10, AX=5F00h on return due to improper stack restoration code
  4290. SeeAlso: AX=5F01h"RTVGA"
  4291. --------V-105F01-----------------------------
  4292. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  4293.     AX = 5F01h
  4294.     BL = emulation type (see #0074)
  4295. Return: AL = 5Fh if function supported
  4296.         AH = status
  4297.         00h unsuccessful
  4298.         01h successful
  4299. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  4300.  
  4301. (Table 0074)
  4302. Values for Chips&Technologies emulation type:
  4303.  00h,01h reserved
  4304.  02h    CGA
  4305.  03h    MDA
  4306.  04h    Hercules
  4307.  05h    EGA
  4308.  06h    VGA
  4309. --------V-105F01-----------------------------
  4310. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  4311.     AX = 5F01h
  4312.     ES:DI -> zero-filled buffer for BIOS ID string
  4313. Return: AH = 00h if successful
  4314.     ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  4315. BUG:    in v3.C10, AX=5F01h on return due to improper stack restoration code
  4316. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  4317. --------V-105F02-----------------------------
  4318. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  4319.     AX = 5F02h
  4320.     BL = new state of autmatic emulation (00h enabled, 01h disabled)
  4321. Return: AL = 5Fh if function supported
  4322.         AH = status
  4323.         00h unsuccessful
  4324.         01h successful
  4325. SeeAlso: AX=5F01h,AX=5F03h
  4326. --------V-105F02-----------------------------
  4327. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  4328.     AX = 5F02h
  4329. Return: AH = 00h, if successful
  4330.     AL = on-board memory size
  4331.          (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  4332. BUG:    in v3.C10, AX=5F02h on return due to improper stack restoration code
  4333. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  4334. --------V-105F03-----------------------------
  4335. INT 10 - VIDEO - Realtek RTVGA - SET ???
  4336.     AX = 5F03h
  4337.     BL = 0-3 (???)
  4338. Return: AH = 00h if successful
  4339. BUG:    in v3.C10, AX=5F03h on return due to improper stack restoration code
  4340. SeeAlso: AX=5F02h"RTVGA"
  4341. --------V-105F03-----------------------------
  4342. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON VIDEO CONDITIONS
  4343.     AX = 5F03h
  4344.     BL = configuration
  4345.         00h power-up display mode
  4346.         CL = display mode
  4347.         CH = mode (see #0075)
  4348.         01h power-up emulation mode
  4349.         CL = emulation mode (see #0074)
  4350.         CH = permanence (00h reset after next boot, 01h until changed)
  4351. Return: AL = 5Fh if function supported
  4352.         AH = status
  4353.         00h unsuccessful
  4354.         01h successful
  4355. SeeAlso: AX=5F02h,AX=5F03h/BL=01h,AX=5F90h
  4356.  
  4357. Bitfields for Chips&Technologies display mode:
  4358. Bit(s)    Description    (Table 0075)
  4359.  1-0    scanlines (00 = 200, 01 = 350, 10 = 400)
  4360.  7    persistence (0 reset on next boot, 1 until changed)
  4361. --------V-105F03BL01-------------------------
  4362. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  4363.     AX = 5F03h
  4364.     BL = 01h
  4365.     CL = emulation mode
  4366.     CH = mode
  4367.         bit 7 persistence (0 reset on next boot, 1 until changed)
  4368. Return: AL = 5Fh if function supported
  4369.         AH = status
  4370.         00h unsuccessful
  4371.         01h successful
  4372. SeeAlso: AX=5F02h,AX=5F03h/BL=00h,AX=5F90h
  4373. --------V-105F-------------------------------
  4374. INT 10 - Chips & Technologies Extended BIOS - SAVE/RESTORE SUPERVGA STATE
  4375.     AH = 5Fh
  4376.     AL = subfunction
  4377.         90h determine size of save buffer
  4378.         91h save state
  4379.         92h restore state
  4380.     CX = state mask (see #0076)
  4381.     ES:BX -> save buffer (subfunctions 91h,92h only)
  4382. Return: AL = 5Fh if function supported
  4383.         ---subfunction 90h---
  4384.         BX = number of 64-byte blocks required
  4385.         ---subfunction 92h---
  4386.         buffer at ES:BX filled
  4387. SeeAlso: AH=1Ch,AX=5F03h
  4388.  
  4389. Bitfields for Chips&Technologies state mask:
  4390. Bit(s)    Description    (Table 0076)
  4391.  0    video hardware
  4392.  1    BIOS data state
  4393.  2    DAC state
  4394.  15    type (0 all state info, 1 SuperVGA state only)
  4395. --------V-1060------------------------------------
  4396. INT 10 - HUNTER 16 - SET GRAPHICS FONT
  4397.     AH = 60h
  4398.     AL = new font
  4399.         bit 7    output characters in reverse video
  4400.         bits 0-6 font number (see #0090 at AH=77h)
  4401. Return: BH = cell width            
  4402.     BL = cell height
  4403. Desc:    select the font to use for output in mode 6; this can be used to mix
  4404.       fonts on the screen
  4405. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  4406.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  4407. SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
  4408. --------V-1061------------------------------------
  4409. INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
  4410.     AH = 61h
  4411.     CX = column
  4412.     DX = row
  4413. Note:    this function is only valid in graphics modes
  4414. SeeAlso: AH=62h
  4415. --------V-1062------------------------------------
  4416. INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
  4417.     AH = 62h
  4418. Return: CX = column
  4419.     DX = row
  4420. Note:    this function is only valid in graphics modes
  4421. SeeAlso: AH=61h
  4422. --------V-1063------------------------------------
  4423. INT 10 - HUNTER 16 - SET CONTRAST
  4424.     AH = 63h
  4425.     AL = contrast (0..127)
  4426. Desc:    set the LCD screen contrast to improve visibility
  4427. SeeAlso: AH=64h,AH=75h
  4428. --------V-1064------------------------------------
  4429. INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
  4430.     AH = 64h
  4431.     AL = level (0..15)
  4432. Desc:    set the LCD backlight level to improve visibility in bad lighting
  4433. SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
  4434. --------V-106500----------------------------------
  4435. INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
  4436.     AX = 6500h
  4437. Return: BX = timeout in seconds (0-300)
  4438. Desc:    returns the time after which the backlight will turn off
  4439. SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
  4440. --------V-106501----------------------------------
  4441. INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
  4442.     AX = 6501h
  4443.     BX = timeout in seconds (0-300)
  4444. Desc:    set the idle time after which the backlight will turn off
  4445. SeeAlso: AH=64h,AX=6500h
  4446. --------V-1066------------------------------------
  4447. INT 10 - HUNTER 16 - SPLIT DISPLAY
  4448.     AH = 66h
  4449.     AL = control bits (see #0077)
  4450.     BH = top row of lower section of LCD (0..7)
  4451.     BL = top row of lower section of the virtual screen (0..24)
  4452. Desc:    split the LCD screen horizontally into two parts; each part may be 
  4453.       individually scrollable or fixed.
  4454. Note:    the Hunter 16 has a 240x64 LCD display which serves as a window into
  4455.       a 640x200 virtual screen
  4456.  
  4457. Bitfields for HUNTER 16 control bits:
  4458. Bit(s)    Description    (Table 0077)
  4459.  0-1    01: no split, 10: allow split
  4460.  2    allow scrolling the upper part
  4461.  3    allow scrolling the lower part 
  4462. --------V-106A00BX0000-----------------------
  4463. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  4464.     AX = 6A00h
  4465.     BX = 0000h
  4466.     CX = 0000h
  4467.     DX = buffer length (may be 0)
  4468.     ES:DI -> buffer
  4469. Return: BX = number of bytes stored in buffer
  4470.     CX = bytes required for all descriptions (0 if no DGIS)
  4471. Note:    buffer contains descriptions and addresses of DGIS-compatible
  4472.       display(s) and printer(s)
  4473. SeeAlso: AX=6A02h
  4474. --------V-106A01CX0000-----------------------
  4475. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  4476.     AX = 6A01h
  4477.     CX = 0000h
  4478.     ES:DI = address of device to send INT 10 output to
  4479. Return: CX = 0000h  output could not be redirected
  4480.          else INT 10h output now routed to requested display
  4481. SeeAlso: AX=6A02h
  4482. --------V-106A02-----------------------------
  4483. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  4484.     AX = 6A02h
  4485.     ES:DI = 0000h:0000h
  4486. Return: ES:DI = 0000h:0000h  if current display is non-DGIS
  4487.         else address of the current DGIS INT 10 display
  4488. SeeAlso: AX=6A00h,AX=6A01h
  4489. --------V-106E00-----------------------------
  4490. INT 10 - Paradise VGA internal - GET ???
  4491.     AX = 6E00h
  4492. Return: BX = 5744h ('WD') if supported
  4493.         DH:AH:AL = last three ASCII digits of ROM serial number
  4494.         CL = ???
  4495.         CH = ???
  4496. SeeAlso: AX=6E04h,AX=6E05h
  4497. --------V-106E04-----------------------------
  4498. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  4499.     AX = 6E04h
  4500. Return: BX = screen width (columns)
  4501.     CX = screen height (lines)
  4502.     AH = ??? (05h or FFh)
  4503.     AL = ??? (04h or video mode)
  4504. SeeAlso: AX=6E00h,AX=6E05h
  4505. --------V-106E05-----------------------------
  4506. INT 10 - Paradise VGA internal - SET MODE
  4507.     AX = 6E05h
  4508.     BL = mode
  4509. Note:    like AH=00h, AL=BL.
  4510. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  4511. --------V-106F00BX0000-----------------------
  4512. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - INSTALLATION CHECK
  4513.     AX = 6F00h
  4514.     BX = 0000h
  4515. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  4516.     BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  4517. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  4518. --------V-106F01-----------------------------
  4519. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - GET MONITOR INFO
  4520.     AX = 6F01h
  4521. Return: AL = monitor type code (HP,VEGA VGA only) (see #0078)
  4522.     AH = status register information (see #0079)
  4523.     CL = current value of Extended Control register (HP Ext BIOS, and only
  4524.         if AL=41h)
  4525. Note:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  4526.  
  4527. (Table 0078)
  4528. Values for monitor type code (HP Extended BIOS):
  4529.  00h    non-HP card with ROM and possibly its own INT 10h driver
  4530.  41h    MultiMode video display adapter
  4531.  42h-44h reserved
  4532.  45h    industry standard monochrome display adapter
  4533.  46h    industry standard color display adapter
  4534.  51h    reserved
  4535.  
  4536. Bitfields for status register information:
  4537. Bit(s)    Description    (Table 0079)
  4538.  0    display enable
  4539.     0 = display enabled
  4540.     1 = vertical or horizontal retrace in progress
  4541.  1    light pen flip flop set
  4542.  2    light pen switch activated
  4543.  3    vertical sync
  4544.  4    monitor resolution
  4545.     0 = high resolution (>200 lines)
  4546.     1 = low resolution (<=200 lines)
  4547.  5    display type (0 = color, 1 = monochrome)
  4548.  6,7    diagnostic bits
  4549. --------V-106F02-----------------------------
  4550. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - SET MONITOR INFO
  4551.     AX = 6F02h
  4552.     BL = new value for extended control register (see #0080)
  4553. Return: nothing
  4554. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  4555.       is installed
  4556.     the Extended Control register is at I/O address 3DDh
  4557. SeeAlso: AX=6F01h,AX=6F03h
  4558.  
  4559. Bitfields for HP Vectra extended control register:
  4560. Bit(s)    Description    (Table 0080)
  4561.  0    screen resolution (0 = 200 lines, 1 = 400 lines)
  4562.  1    underline enable (if set, 'blue' of fg color = underl)
  4563.  2    font (0 = Standard-8, 1 = HP-Roman-8)
  4564.  3    memory disabled for CPU access
  4565.  4    allow access to full 32K memory instead of wrapping at 16K
  4566.  5    select second 16K page instead of first
  4567.  6,7    unused
  4568. --------V-106F03-----------------------------
  4569. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - MODIFY MONITOR INFO
  4570.     AX = 6F03h
  4571.     BH = exclude mask (set bits are not modified)
  4572.     BL = new values for bits indicated by BH (see #0080)
  4573. Return: nothing
  4574. Note:    this function is only valid when an HP MultiMode Video Display Adapter
  4575.       is installed
  4576. SeeAlso: AX=6F01h,AX=6F02h
  4577. --------V-106F04-----------------------------
  4578. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  4579.     AX = 6F04h
  4580. Return: AL = current video mode (see #0081)
  4581.     BX = horizontal columns (text) or pixels (graphics)
  4582.     CX = vertical columns (text) or pixels (graphics)
  4583. SeeAlso: AX=6F05h
  4584. --------V-106F05-----------------------------
  4585. INT 10 - VIDEO - Video7 VGA, VEGA EXTENDED EGA/VGA - SET VIDEO MODE
  4586.     AX = 6F05h
  4587.     BL = mode (see #0081)
  4588. Notes:    also supported by the HP Vectra Extended BIOS
  4589.     on the HP Vectra, this function rather than AH=00h must be used to
  4590.       return to an IBM-standard mode after setting an HP-specified mode
  4591.       from 08h to 0Fh.
  4592. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4593.  
  4594. (Table 0081)
  4595. Values for Video7/VEGA video mode:
  4596.      text/ text pixel    pixel    colors disply scrn  system
  4597.      grph resol     box  resolution       pages  addr
  4598.  00h-13h = standard IBM modes (see #0009 at AH=00h)
  4599.  08h = T  80x27      .      .    mono      .    .  HP MultiMode Video
  4600.  09h = T  80x27      .      .      .      .    .  HP MultiMode Video
  4601.  0Ah = T  40x27      .      .    mono      .    .  HP MultiMode Video
  4602.  0Bh = T  40x27      .      .      .      .    .  HP MultiMode Video
  4603.  0Ch = reserved                       HP MultiMode Video
  4604.  0Dh = G    .      .    640x400      .      .    .  HP MultiMode Video
  4605.  0Eh = G    .      .    320x400      .      .    .  HP MultiMode Video
  4606.  0Fh = G    .      .    320x400      .      .    .  HP MultiMode Video
  4607.  40h = T  80x43     8x8      .      .      .    .  Video7/VEGA VGA
  4608.  41h = T 132x25     8x14      .      .      .    .  Video7/VEGA VGA
  4609.  42h = T 132x43     8x8      .      .      .    .  Video7/VEGA VGA
  4610.  43h = T  80x60     8x8      .      .      .    .  Video7/VEGA VGA
  4611.  44h = T 100x60     8x8      .      .      .    .  Video7/VEGA VGA
  4612.  45h = T 132x28     8x8      .      .      .    .  Video7/VEGA VGA
  4613.  60h = G    .      .    752x410     16      .    .  Video7 VGA, VEGA VGA
  4614.  61h = G    .      .    720x540     16      .    .  Video7 VGA, VEGA VGA
  4615.      = G    .      .    720x540     16      .    .  Northgate, Headland 1024i
  4616.  62h = G    .      .    800x600     16      .    .  Video7 VGA, VEGA Ext EGA
  4617.      = G    .      .    800x600     16      .    .  Headland 1024i
  4618.  63h = G    .      .   1024x768      2      .    .  Video7 VGA
  4619.  64h = G    .      .   1024x768      4      .    .  Video7 VGA
  4620.  65h = G    .      .   1024x768     16      .    .  Video7 VGA, VEGA Ext EGA
  4621.      = G    .      .   1024x768     16      .    .  Headland 1024i
  4622.  66h = G    .      .    640x400    256      .    .  Video7 VGA, VEGA Ext VGA
  4623.      = G    .      .    640x400    256      .    .  Northgate, Headland 1024i
  4624.  67h = G    .      .    640x480    256      .    .  Video7 VGA, VEGA Ext VGA
  4625.      = G    .      .    640x480    256      .    .  Headland 1024i
  4626.  68h = G    .      .    720x540    256      .    .  Video7 VGA, VEGA Ext VGA
  4627.      = G    .      .    720x540    256      .    .  Headland 1024i
  4628.  69h = G    .      .    800x600    256      .    .  Video7 VGA, VEGA Ext VGA
  4629.      = G    .      .    800x600    256      .    .  Headland 1024i
  4630.  70h = G    .      .    752x410     16gray      .    .  Video7 VGA, VEGA VGA
  4631.  71h = G    .      .    720x540     16gray      .    .  Video7 VGA, VEGA VGA
  4632.  72h = G    .      .    800x600     16gray      .    .  Video7 VGA
  4633.  73h = G    .      .   1024x768      2gray      .    .  Video7 VGA
  4634.  74h = G    .      .   1024x768      4gray      .    .  Video7 VGA
  4635.  75h = G    .      .   1024x768     16gray      .    .  Video7 VGA
  4636.  76h = G    .      .    640x400    256gray      .    .  Video7 VGA
  4637.  77h = G    .      .    640x480    256gray      .    .  Video7 VGA
  4638.  78h = G    .      .    720x540    256gray      .    .  Video7 VGA
  4639.  79h = G    .      .    800x600    256gray      .    .  (future)
  4640. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4641. Index:    video modes
  4642. --------V-106F06-----------------------------
  4643. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  4644.     AX = 6F06h
  4645.     BL = Autoswitch mode select
  4646.          00h select EGA/VGA-only modes
  4647.          01h select Autoswitched VGA/EGA/CGA/MGA modes
  4648.          02h select 'bootup' CGA/MGA modes
  4649.     BH = enable/disable (00h enable, 01h = disable selection)
  4650. --------V-106F07-----------------------------
  4651. INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  4652.     AX = 6F07h
  4653. Return: AL = 6Fh
  4654.     AH = memory configuration
  4655.         bits 0-6 = number of 256K blocks of video memory
  4656.         bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
  4657.     BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  4658.     BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  4659.     CX = 0000h
  4660. SeeAlso: AH=12h/BL=10h
  4661. --------V-1070-------------------------------
  4662. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  4663.     AH = 70h
  4664. Return: AX:BX -> WORD containing green plane's offset
  4665.     AX:CX -> WORD containing green plane's segment
  4666.     AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  4667.             4000) planes
  4668. SeeAlso: AH=71h
  4669. --------V-1070------------------------------------
  4670. INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
  4671.     AH = 70h
  4672.     DS:BX -> control block (see #0082)
  4673. Desc:    Draws a circle or ellipse. Only valid in graphics modes.
  4674. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  4675.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  4676. SeeAlso: AH=71h"HUNTER"
  4677.  
  4678. Format of HUNTER 16 control block:
  4679. Offset    Size    Description    (Table 0082)
  4680.  00h    WORD    center X co-ordinate
  4681.  02h    BYTE    center Y co-ordinate
  4682.  03h    WORD    radius in pixels
  4683.  05h    BYTE    color (00h white, 01h black, FFh invert)
  4684.  06h    BYTE    aspect ratio x:x (1-127)
  4685.  07h    BYTE    aspect ratio y:y (1-127)
  4686. --------V-107000BX0000-----------------------
  4687. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  4688.     AX = 7000h
  4689.     BX = 0000h
  4690. Return: AL = 70h if Trident-based Everex card
  4691.     CL = monitor type (see #0083)
  4692.     CH = feature bits (see #0084)
  4693.     DX = video board info
  4694.         bits 4-15: board ID model (see #0085)
  4695.         bits 0-3:  board ID revision
  4696.     DI = BCD BIOS version number
  4697. SeeAlso: AX=5F01h,AH=FF"Oak"
  4698.  
  4699. (Table 0083)
  4700. Values for Everex monitor type:
  4701.  00h    mono
  4702.  01h    CGA
  4703.  02h    EGA
  4704.  03h    digital multifrequency
  4705.  04h    IBM PS/2
  4706.  05h    IBM 8514
  4707.  06h    SuperVGA
  4708.  07h    analog multifrequency
  4709.  08h    super multifrequency
  4710.  
  4711. Bitfields for Everex feature bits:
  4712. Bit(s)    Description    (Table 0084)
  4713.  7-6    memory size
  4714.     00 = 256K
  4715.     01 = 512K
  4716.     10 = 1024K
  4717.     11 = 2048K
  4718.  5    special oscillator present
  4719.  4    VGA protect enabled
  4720.  0    6845 emulation
  4721.  
  4722. (Table 0085)
  4723. Values for board model for Trident-based Everex cards:
  4724.  0236h    Ultragraphics II
  4725.  0620h    Vision VGA
  4726.  0673h    EVGA
  4727.  0678h    Viewpoint
  4728. --------V-107000BX0004-----------------------
  4729. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  4730.     AX = 7000h
  4731.     BX = 0004h
  4732. Return: ES:DI -> FAR paging function (call with DL = page to set)
  4733. Note:    the word preceding ES:DI is the length of the function in bytes, and
  4734.       the last byte of the function is a FAR return instruction.
  4735. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  4736. --------V-107000BX0005-----------------------
  4737. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  4738.     AX = 7000h
  4739.     BX = 0005h
  4740.     CL = maximum number of modes to get info for
  4741.     CH = mode type to get info for (see #0086)
  4742.     DL = monitor type to get info for
  4743.     ES:DI -> buffer for mode info (see #0087)
  4744. Return: CL = total number of modes fitting criteria
  4745.     CH = size of each info record
  4746. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  4747.  
  4748. (Table 0086)
  4749. Values for Everex mode type:
  4750.  00h    all modes
  4751.  01h    monochrome text modes
  4752.  02h    color text modes
  4753.  03h    four-color CGA graphics modes
  4754.  04h    two-color CGA graphics modes
  4755.  05h    16-color graphics modes
  4756.  06h    256-color graphics modes
  4757.  
  4758. Format of Everex mode information record:
  4759. Offset    Size    Description    (Table 0087)
  4760.  00h    BYTE    mode number (bit 7 set if extended mode)
  4761.  01h    BYTE    mode type (see #0086)
  4762.  02h    BYTE    info bits (see #0088)
  4763.  03h    BYTE    font height
  4764.  04h    BYTE    text columns on screen
  4765.  05h    BYTE    text rows on screen
  4766.  06h    WORD    number of scan lines
  4767.  08h    BYTE    color information
  4768.         bits 7-4 reserved
  4769.              3-0 bits per pixel
  4770.  
  4771. Bitfields for Everex info bits:
  4772. Bit(s)    Description    (Table 0088)
  4773.  7,6    reserved
  4774.  5    monochrome mode
  4775.  4    interlaced display
  4776.  3    requires special oscillator
  4777.  2,1    memory required (00 = 256K, 01 = 512K, 10 = 1024K, 11 = 2048K)
  4778.  0    reserved
  4779. --------V-1071-------------------------------
  4780. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  4781.     AH = 71h
  4782. Return: AX:BX -> WORD containing segment address of INCRAM
  4783.     AX:CX -> WORD containing offset of INCRAM
  4784. SeeAlso: AH=70h"TANDY"
  4785. --------V-1071------------------------------------
  4786. INT 10 - HUNTER 16 - DRAW LINE/BOX
  4787.     AH = 71h
  4788.     DS:BX -> control block (see #0089)
  4789. Desc:    Draws a line or box. Only valid in graphics modes.
  4790. SeeAlso: AH=70h"HUNTER"
  4791.  
  4792. Format of HUNTER 16 control block:
  4793. Offset    Size    Description    (Table 0089)
  4794.  00h    WORD    left edge X co-ordinate
  4795.  02h    BYTE    lower edge Y co-ordinate
  4796.  03h    WORD    right edge X co-ordinate
  4797.  05h    BYTE    upper edge Y co-ordinate
  4798.  06h    BYTE    color (00h white, 01h black, FFh invert)
  4799.  07h    BYTE    type (00h line, 01h box)
  4800.  08h    BYTE    if non-zero (and type is BOX) fill with color
  4801. --------V-1072-------------------------------
  4802. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  4803.     AH = 72h
  4804.     AL = number of columns to shift scroll area, 00h to clear entire area
  4805.     BH = new attributes for blanked columns at left
  4806.     CH,CL = row, column of upper left corner of scroll area
  4807.     DH,DL = row, column of lower right corner of scroll area
  4808. SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
  4809. --------V-1072------------------------------------
  4810. INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
  4811.     AH = 72h
  4812.     AL = mechanism to use
  4813.         00h do not use inverse video
  4814.         01h emulate MDA. Display attribute 07h is normal video and 70h is
  4815.         inverse video.
  4816.         02h use inverse video if background is non-black.
  4817.         03h use inverse video for high intensity text.
  4818.         04h use inverse video for text with background intensity greater
  4819.         than foreground intensity.
  4820.         05h use inverse video for text with background color other than
  4821.         black or high intensity foreground.
  4822. SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
  4823. --------V-1073-------------------------------
  4824. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  4825.     AH = 73h
  4826.     AL = number of columns to shift scroll area, 00h to clear entire area
  4827.     BH = new attributes for blanked columns at right
  4828.     CH,CL = row, column of upper left corner of scroll area
  4829.     DH,DL = row, column of lower right corner of scroll area
  4830. SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
  4831. --------V-1073------------------------------------
  4832. INT 10 - HUNTER 16 - SELECT TEXT FONT
  4833.     AH = 73h
  4834.     AL = new font
  4835.           00h  7x7 in a 8x8 cell
  4836.           01h  5x7 in a 6x8 cell
  4837.           06h  3x5 in a 4x6 cell
  4838. Retuen: BH = cell width
  4839.     BL = cell height
  4840. SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
  4841. --------V-1074------------------------------------
  4842. INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
  4843.     AH = 74h
  4844.     DH = row (0..24)
  4845.     DL = column (0..79)
  4846. Desc:    set the position in the virtual screen being displayed in the LCD
  4847.       screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
  4848.       position for the window which has the cursor.
  4849. SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
  4850. --------V-1075------------------------------------
  4851. INT 10 - HUNTER 16 - SET ZOOM
  4852.     AH = 75h
  4853.     AL = new Zoom state (00h off, nonzero on)
  4854. SeeAlso: AH=74h,AH=76h
  4855. --------V-1076------------------------------------
  4856. INT 10 - HUNTER 16 - LOOKING KEYS
  4857.     AH = 76h
  4858.     AL = Action
  4859.          00h home the window
  4860.          01h move up one line
  4861.          02h move down one line
  4862.          03h move left one character
  4863.          04h move right one character
  4864.          05h flip window to other side of virtual screen
  4865. Desc:    moves the displayed screen around the virtual screen
  4866. SeeAlso: AH=74h,AH=75h
  4867. --------V-1077------------------------------------
  4868. INT 10 - HUNTER 16 - GET GRAPHICS FONT
  4869.     AH = 77h
  4870. Return: AL = font number (see #0090)
  4871. SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
  4872.  
  4873. (Table 0090)
  4874. Values for HUNTER 16 graphics font number:
  4875.  00h     7x7  in a  8x8     cell 
  4876.  01h     5x7  in a  6x8     cell
  4877.  02h     7x9  in a  8x10 cell
  4878.  03h    14x9  in a 16x10 cell
  4879.  04h     7x18 in a  8x20 cell
  4880.  05h    14x18 in a 16x20 cell
  4881.  06h     3x5  in a  4x6     cell
  4882. Note:    size is X * Y
  4883. --------V-1078------------------------------------
  4884. INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
  4885.     AH = 78h 
  4886.     AL = new state of backlight (00h on, 01h off)
  4887. SeeAlso: AH=64h,INT 15/AH=74h
  4888. --------V-107F00-----------------------------
  4889. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  4890.     AX = 7F00h
  4891. Return: AL <> 7Fh if not supported
  4892.     AL = 7Fh if supported
  4893.         AH = status
  4894.         00h successful
  4895.             ES:DI -> info structure (see #0091)
  4896.         01h failed
  4897. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  4898.       an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  4899.       Seiko Epson Corporation intended to provided a standardized interface
  4900.       to SuperVGA functionality not addressed by the VESA standard
  4901. SeeAlso: AX=4F00h
  4902.  
  4903. Format of SOLLEX SuperVGA info structure:
  4904. Offset    Size    Description    (Table 0091)
  4905.  00h    DWORD    pointer to VESA function dispatch table
  4906.  04h    DWORD    pointer to SOLLEX function dispatch table
  4907.  08h    DWORD    pointer to VESA SuperVGA info (see #0063 at AX=4F00h)
  4908.  0Ch    DWORD    pointer to mode info structure table, consisting of
  4909.           alternating ResInfo (see #0092) and VESA mode information
  4910.           (see #0064 at AX=4F01h) blocks, terminated with an FFFFh word
  4911.  10h    DWORD    pointer to font info structure table (see #0093)
  4912.  14h    WORD    high resolution crystal frequency in Hz (0000h = not present)
  4913.  16h    DWORD    pointer to ASCIZ ID string
  4914.  1Ah    DWORD    pointer to timeout reset table
  4915.         array of bytes, each a multiple of the minimum time increment
  4916.  1Eh    WORD    minimum time increment in timer ticks
  4917.  20h    BYTE    inverse options supported
  4918.         bit 0: inverse supported
  4919.         bits 1-7: reserved
  4920.  21h    BYTE    normal color value
  4921.  22h    BYTE    inverse color value
  4922.  23h    WORD    port to be accessed for normal/inverse settings
  4923.  25h    WORD    type of interface chip (currently undefined)
  4924.  27h    WORD    program operational mode
  4925.         bits 1-0: 00 no preference
  4926.               01 terse (minimum detail in program messages)
  4927.               10 verbose
  4928.               11 use menus if supported, verbose mode otherwise
  4929.         bits 7-2: reserved
  4930.  29h    WORD    SOLLEX specification version
  4931.  2Bh    WORD    version of VESA/SOLLEX implementation
  4932.  2Dh    DWORD    offset to relocatable portion of SOLLEX extensions (for CONFIG)
  4933.  2Eh    DWORD    offset to unused section of the extensions ROM
  4934.  31h 16 BYTEs    reserved
  4935. Note:    all DWORD pointers initially require segment fixups; if the segment
  4936.       is 0000h, it should be changed to the returned ES, otherwise it
  4937.       may be assumed to be correct
  4938.  
  4939. Format of SOLLEX SuperVGA ResInfo:
  4940. Offset    Size    Description    (Table 0092)
  4941.  00h    WORD    16-bit mode number
  4942.  02h    WORD    adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  4943.  04h    WORD    display info (see #0096)
  4944.  06h    DWORD    pointer to video parameter table
  4945.  0Ah    BYTE    replacement entry in master Video Parameter
  4946.  0Bh    BYTE    mode requested for mode set by BIOS
  4947.  0Ch    DWORD    pointer to LoadReg table
  4948.  10h    BYTE    index into table of clock values (see #0094)
  4949.  
  4950. Format of SOLLEX SuperVGA font info table [array] entry:
  4951. Offset    Size    Description    (Table 0093)
  4952.  00h    BYTE    required font height
  4953.  01h    BYTE    parameter to load text mode font
  4954.  02h    BYTE    parameter to load graphics mode font
  4955.  
  4956. (Table 0094)
  4957. Values for SOLLEX SuperVGA clock value index:
  4958.  00h    25 MHz
  4959.  01h    28 MHz
  4960.  02h    PCLK
  4961.  03h    31.5 MHz (VESA 640x480)
  4962.  04h    reserved
  4963.  05h    16 MHz (EGA)
  4964.  06h    PCLK
  4965.  07h    24 MHz (EGA)
  4966.  08h    25 MHz
  4967.  09h    28 MHz
  4968.  0Ah    36 MHz
  4969.  0Bh    45 MHz (for 1024x768)
  4970.  0Ch    80 MHz
  4971.  0Dh    40 MHz
  4972.  0Eh    65 MHz
  4973.  0Fh     1 MHz (for powerdown)
  4974. --------V-107F00BX4000-----------------------
  4975. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  4976.     AX = 7F00h
  4977.     BX = 4000h
  4978. Return: AX = 007Fh if supported
  4979.         DX:BX -> DAC set mode routine
  4980. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h
  4981. --------V-107F00BX4001-----------------------
  4982. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  4983.     AX = 7F00h
  4984.     BX = 4001h
  4985. Return: AX = 007Fh if supported
  4986.         CX = current linear address base (high word)
  4987. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  4988. --------V-107F00BX4002-----------------------
  4989. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  4990.     AX = 7F00h
  4991.     BX = 4002h
  4992.     CX = new linear address base (high word)
  4993. Return: AX = 007Fh if supported
  4994. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  4995. --------V-107F01BL00-------------------------
  4996. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  4997.     AX = 7F01h
  4998.     BL = 00h
  4999.     CX = adapter request (see #0095)
  5000. Return:    AL <> 7Fh if not supported
  5001.     AL = 7Fh if supported
  5002.         AH = status
  5003.         00h successful
  5004.         01h failed
  5005. Note:    initializes video hardware to a particular standard
  5006. SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
  5007.  
  5008. Bitfields for SOLLEX SuperVGA adapter request:
  5009. Bit(s)    Description    (Table 0095)
  5010.  1-0    adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  5011.  2    reserved
  5012.  4-3    change displays (00 none, 01 analog 10 digital 11 panel)
  5013.  6-5    desired monitor sense (01 color, 10 mono, 11=8514)
  5014.  7    lock override
  5015.  8    alternate adapter mode
  5016.  15-9    reserved
  5017. --------V-107F01BL01-------------------------
  5018. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  5019.     AX = 7F01h
  5020.     BL = 01h
  5021. Return: AL <> 7Fh if not supported
  5022.     AL = 7Fh if supported
  5023.         AH = status
  5024.         00h successful
  5025.         01h failed
  5026.         BX = adapter type (see #0095)
  5027.         DX = display type (see #0096)
  5028. SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
  5029.  
  5030. Bitfields for SOLLEX SuperVGA display type:
  5031. Bit(s)    Description    (Table 0096)
  5032.  15-9    reserved
  5033.  8    alternate display active
  5034.  7    Enhanced Color Display monitor active
  5035.  6    multi-frequency digital monitor active
  5036.  5    PS/2-type monitor active
  5037.  4    plasma/electroluminescent panel active
  5038.  3    LCD panel active
  5039.  2    multi-frequency analog monitor active
  5040.  1-0    monitor sense (00 none, 01 color, 10 mono, 11=8514)
  5041. --------V-107F01BL02-------------------------
  5042. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  5043.     AX = 7F01h
  5044.     BL = 02h
  5045.     CX = adapter request (see #0095)
  5046. Return: AL <> 7Fh if not supported
  5047.     AL = 7Fh if supported
  5048.         AH = status
  5049.         00h requested setting can successfully be made
  5050.         01h requested setting not available in this configuration
  5051. SeeAlso: AX=7F00h,AX=7F01h/BL=00h
  5052. --------V-107F02BL00-------------------------
  5053. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  5054.     AX = 7F02h
  5055.     BL = 00h
  5056.     CX = display output setting (see #0097)
  5057. Return: AL <> 7Fh if not supported
  5058.     AL = 7Fh if supported
  5059.         AH = status
  5060.         00h successful
  5061.         01h failed
  5062. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  5063.  
  5064. Bitfields for SOLLEX SuperVGA display output setting:
  5065. Bit(s)    Description    (Table 0097)
  5066.  0    CRTC control in 2,1 valid
  5067.  1    enable digital output
  5068.  2    enable analog output
  5069.  3    panel control in 5,4 valid
  5070.  4    enable LCD output
  5071.  5    enable plasma/EL output
  5072.  6    inverse control in 7 valid
  5073.  7    0=normal, 1=inverse
  5074.  15-8    reserved
  5075. --------V-107F02BL01-------------------------
  5076. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  5077.     AX = 7F02h
  5078.     BL = 01h
  5079. Return: AL <> 7Fh if not supported
  5080.     AL = 7Fh if supported
  5081.         AH = status
  5082.         00h successful
  5083.             BX = display output setting (see #0097)
  5084.             CX = displays attached (see #0098)
  5085.         01h failed
  5086. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  5087.  
  5088. Bitfields for SOLLEX SuperVGA displays attached:
  5089. Bit(s)    Description    (Table 0098)
  5090.  0    PS/2 display on analog output
  5091.  1    multi-frequency monitor on analog output
  5092.  2    LCD panel attached
  5093.  3    plasma/electroluminescent panel attached
  5094.  4    multi-frequency monitor on digital output
  5095.  5    Enhanced Color Display attached to digital outpt
  5096.  6    alternate display
  5097.  15-7    reserved
  5098. --------V-107F03BL00-------------------------
  5099. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  5100.     AX = 7F03h
  5101.     BL = 00h
  5102.     CX = support type
  5103.         0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  5104.         0005h-0012h reserved for SOLLEX, 0013h Hercules,
  5105.         0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  5106. Return: AL <> 7Fh if not supported
  5107.     AL = 7Fh if supported
  5108.         AH = status
  5109.         00h successful
  5110.             CX = size of video support code
  5111.             DX = segment of physical video support (0000h if no ROM)
  5112.             ES = segment of active video support
  5113.             ES:DI -> information block (DI = 0000h if none available)
  5114.         01h failed
  5115. SeeAlso: AX=7F03h/BL=01h
  5116. --------V-107F03BL01-------------------------
  5117. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  5118.     AX = 7F03h
  5119.     BL = 01h
  5120.     CX = support request
  5121.     ES = segment of support code
  5122. Return: AL <> 7Fh if not supported
  5123.     AL = 7Fh if supported
  5124.         AH = status
  5125.         00h successful
  5126.         01h failed
  5127. Note:    initializes the indicated video support by calling ES:0003h; this
  5128.       function may be used to switch the active video support back to
  5129.       ROM after AX=7F03h/BL=02h
  5130. SeeAlso: AX=7F03h/BL=00h
  5131. --------V-107F03BL02-------------------------
  5132. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  5133.     AX = 7F03h
  5134.     BL = 02h
  5135.     CX = support request
  5136.     ES = destination segment
  5137. Return: AL <> 7Fh if not supported
  5138.     AL = 7Fh if supported
  5139.         AH = status
  5140.         00h successful
  5141.         01h failed
  5142. SeeAlso: AX=7F00h,AX=7F03h/BL=01h
  5143. --------V-107F04BL00-------------------------
  5144. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  5145.     AX = 7F04h
  5146.     BL = 00h
  5147.     CX = new power state
  5148. Return: AL <> 7Fh if not supported
  5149.     AL = 7Fh if supported
  5150.         AH = status
  5151.         00h successful
  5152.         01h failed
  5153. Note:    higher values progressively reduce the operations available on the
  5154.       video adapter while yielding increasing power savings
  5155. SeeAlso: AX=7F00h,AX=7F04h/BL=01h
  5156. --------V-107F04BL01-------------------------
  5157. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  5158.     AX = 7F04h
  5159.     BL = 01h
  5160. Return: AL <> 7Fh if not supported
  5161.     AL = 7Fh if supported
  5162.         AH = status
  5163.         00h successful
  5164.             CX = current power state
  5165.             DX = maximum state
  5166.         01h failed
  5167. SeeAlso: AX=7F00h,AX=7F04h/BL=00h
  5168. --------V-107F04BL02-------------------------
  5169. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  5170.     AX = 7F04h
  5171.     BL = 02h
  5172.     CX = timeout reset
  5173. Return: AL <> 7Fh if not supported
  5174.     AL = 7Fh if supported
  5175.         AH = status
  5176.         00h successful
  5177.         01h failed
  5178. SeeAlso: AX=7F00h,AX=7F04h/BL=03h
  5179. --------V-107F04BL03-------------------------
  5180. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  5181.     AX = 7F04h
  5182.     BL = 03h
  5183. Return: AL <> 7Fh if not supported
  5184.     AL = 7Fh if supported
  5185.         AH = status
  5186.         00h successful
  5187.             BX = time increment
  5188.             CX = current timeout reset
  5189.             DX = maximum timeout reset
  5190.             ES:DI -> timeout reset table (array of bytes)
  5191.         01h failed
  5192. Note:    the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  5193. SeeAlso: AX=7F00h,AX=7F04h/BL=02h
  5194. --------V-107F05-----------------------------
  5195. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  5196.     AX = 7F05h
  5197.     ES:DI -> register value table (see #0099)
  5198. Return: AL <> 7Fh if not supported
  5199.     AL = 7Fh if supported
  5200.         AH = status
  5201.         00h successful
  5202.         01h failed
  5203. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  5204.  
  5205. Format of SOLLEX SuperVGA register value table:
  5206. Offset    Size    Description    (Table 0099)
  5207.  00h    WORD    base I/O register (FFFFh = end of list)
  5208.  02h 2N BYTEs    pairs of values to be written to the base I/O register as an
  5209.           index value and the following register as a data byte
  5210.  2N+2    WORD    FFFFh (end of data list)
  5211.     ... (repeats until FFFFh base address)
  5212. --------V-107F06-----------------------------
  5213. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  5214.     AX = 7F06h
  5215.     BL = subfunction
  5216.         00h set multiple font state
  5217.         CX = new state (00h off, 01h on)
  5218.         01h get multiple font state
  5219.         Return: BL = current state (00h off, 01h on)
  5220. Return: AL <> 7Fh if not supported
  5221.     AL = 7Fh if supported
  5222.         AH = status
  5223.         00h successful
  5224.         01h failed
  5225. SeeAlso: AH=11h
  5226. --------V-107F07-----------------------------
  5227. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  5228.     AX = 7F07h
  5229.     BL = how much to fill
  5230.        00h regen size
  5231.        01h all video memory
  5232.     CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  5233. Return: AL <> 7Fh if not supported
  5234.     AL = 7Fh if supported
  5235.         AH = status
  5236.         00h successful
  5237.         01h failed
  5238. SeeAlso: AH=06h
  5239. --------A-1080-------------------------------
  5240. INT 10 - CU Writer v1.4 - GET OPTION
  5241.     AH = 80h
  5242.     AL = desired option
  5243. Return: ???
  5244. Program: CU Writer is a public-domain Thai-English word processor from
  5245.       Chulalongkorn University, Bangkok
  5246. SeeAlso: AH=81h"CU Writer"
  5247. --------Q-1080--DX4456-----------------------
  5248. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  5249.     AH = 80h
  5250.     DX = 4456h ('DV')
  5251.     ES:DI -> FAR subroutine to be called on ???
  5252. Return: DS = segment of DESQview data structure for video buffer
  5253. Note:    this function is probably meant for internal use only, due to the magic
  5254.       value required in DX
  5255.     the subroutine seems to be called when the DESQview menu is accessed;
  5256.       on entry, AL = 03h or 04h
  5257. --------A-1081-------------------------------
  5258. INT 10 - CU Writer v1.4 - SET OPTION
  5259.     AH = 81h
  5260.     ???
  5261. Return: ???
  5262. SeeAlso: AH=80h"CU Writer"
  5263. --------Q-1081--DX4456-----------------------
  5264. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  5265.     AH = 81h
  5266.     DX = 4456h ('DV')
  5267. Return: ES = segment of DESQview data structure for video buffer
  5268.         BYTE ES:[0] = current window number in DV 2.0x
  5269. Note:    this function is probably meant for internal use only, due to the magic
  5270.       value required in DX
  5271. SeeAlso: AH=82h"DESQview"
  5272. --------Q-1082--DX4456-----------------------
  5273. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  5274.     AH = 82h
  5275.     DX = 4456h ('DV')
  5276. Return: DS = segment in DESQview for data structure
  5277.          in DV 2.00,
  5278.           BYTE DS:[0] = window number
  5279.           WORD DS:[1] = segment of other data structure
  5280.           WORD DS:[3] = segment of window's object handle
  5281.     ES = segment of DESQview data structure for video buffer
  5282.     AL = current window number
  5283.     AH = ???
  5284.     BL = direct screen writes
  5285.         00h program does not do direct writes
  5286.         01h program does direct writes, so shadow buffer not usable
  5287.     BH = ???
  5288.     CL = current video mode
  5289.     CH = ???
  5290. Note:    this function is probably meant for internal use only, due to the magic
  5291.       value required in DX
  5292. SeeAlso: AH=81h"DESQview"
  5293. --------J-108200-----------------------------
  5294. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  5295.     AX = 8200h
  5296.     BL = new scroll mode or FFh to get current mode
  5297.         00h dynamic, 01h software
  5298. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  5299. SeeAlso: AH=06h,AH=07h
  5300. --------J-108300-----------------------------
  5301. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  5302.     AX = 8300h
  5303. Return: AX = offset of video RAM
  5304.     ES:BX -> virtual text RAM buffer
  5305. SeeAlso: AX=5201h
  5306. --------N-108B-------------------------------
  5307. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  5308.     AH = 8Bh
  5309. SeeAlso: AH=92h,AH=93h
  5310. --------N-1090-------------------------------
  5311. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  5312.     AH = 90h
  5313. Return: AL = current video mode (see #0009 at AH=00h)
  5314. SeeAlso: AH=91h
  5315. --------N-1091-------------------------------
  5316. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  5317.     AH = 91h
  5318. Return: AL = video adapter type (see #0100)
  5319. Note:    types less than 80h do not imply that the current user is on the host
  5320. SeeAlso: AH=90h
  5321.  
  5322. (Table 0100)
  5323. Values for Alloy MW386 video adapter type:
  5324.  00h    monochrome
  5325.  01h    Hercules monochrome graphics
  5326.  02h    CGA
  5327.  03h    EGA
  5328.  04h    VGA
  5329.  80h    monochrome text terminal
  5330.  81h    Hercules graphics terminal
  5331.  82h    color graphics terminal
  5332. --------N-1092-------------------------------
  5333. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  5334.     AH = 92h
  5335. Note:    the terminal will be updated even when screen updates are inhibited if
  5336.       TTY output is used
  5337. SeeAlso: AH=8Bh
  5338. --------N-1093-------------------------------
  5339. INT 10 - Alloy MW386 - REDRAW SCREEN
  5340.     AH = 93h
  5341. SeeAlso: AH=8Bh,AH=FFh
  5342. --------A-10A0-------------------------------
  5343. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  5344.     AH = A0h
  5345.     ???
  5346. Return: ???
  5347. Program: CU Writer is a public-domain Thai-English word processor from
  5348.       Chulalongkorn University, Bangkok
  5349. SeeAlso: AH=80h"CU Writer",AH=B0h
  5350. --------p-10A0-------------------------------
  5351. INT 10 - VESA VBE/PM - Display Power Management Signalling API
  5352.     AH = A0h
  5353.     AL = function (00h-13h)
  5354.     ???
  5355. Return: AH = status
  5356.         00h successful
  5357.         01h failed
  5358.     ???
  5359. --------p-10A00C-----------------------------
  5360. INT 10 - VESA VBE/PM - SET SLEEP MODE
  5361.     AX = A00Ch
  5362.     CL = new state
  5363.         01h standby
  5364.         02h suspend
  5365.         03h off
  5366. Return: AH = status
  5367.         00h successful
  5368.         01h failed
  5369. SeeAlso: AX=4F00h
  5370. --------A-10B0-------------------------------
  5371. INT 10 - CU Writer v1.4 - PUT PIXEL
  5372.     AH = B0h
  5373.     ???
  5374. Return: ???
  5375. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  5376. --------A-10B1-------------------------------
  5377. INT 10 - CU Writer v1.4 - MOVE TO
  5378.     AH = B1h
  5379.     ???
  5380. Return: ???
  5381. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  5382. --------A-10B2-------------------------------
  5383. INT 10 - CU Writer v1.4 - DRAW LINE TO
  5384.     AH = B2h
  5385.     ???
  5386. Return: ???
  5387. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  5388. --------A-10B3-------------------------------
  5389. INT 10 - CU Writer v1.4 - FLOOD FILL
  5390.     AH = B3h
  5391.     ???
  5392. Return: ???
  5393. SeeAlso: AH=B2h,AH=B5h
  5394. --------A-10B4-------------------------------
  5395. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  5396.     AH = B4h
  5397.     ???
  5398. Return: ???
  5399. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  5400. --------A-10B5-------------------------------
  5401. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  5402.     AH = B5h
  5403.     ???
  5404. Return: ???
  5405. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  5406. --------b-10BF00-----------------------------
  5407. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  5408.     AX = BF00h
  5409. Desc:    specify that the external monitor become the active monitor
  5410. Note:    all registers preserved and the internal monitor is blanked
  5411. SeeAlso: AX=BF01h,AX=BF12h
  5412. --------b-10BF01-----------------------------
  5413. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  5414.     AX = BF01h
  5415. Desc:    specify that the internal monitor become the active monitor
  5416. Note:    all registers preserved and the external monitor is blanked
  5417. SeeAlso: AX=BF00h,AX=BF12h
  5418. --------b-10BF02-----------------------------
  5419. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
  5420.     AX = BF02h
  5421.     BH = master mode
  5422.         04h CGA
  5423.         05h EGA
  5424.         07h MDA
  5425. SeeAlso: AX=BF03h
  5426. --------b-10BF03BX0000-----------------------
  5427. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  5428.     AX = BF03h
  5429.     BX = 0000h
  5430. Return: BH = active monitor
  5431.         (00h = external, 01h = internal, 03h both, 04h neither)
  5432.     BL = master mode (see #0101)
  5433.     CH = ASIC type and version
  5434.         00h (reserved, very early Compaq VGCs)
  5435.         31h if QVision VGA
  5436.     CL = switchable VDU modes supported (see #0102)
  5437.     DH = internal monitor type (see #0103)
  5438.     DL = external monitor type (see #0103)
  5439. SeeAlso: AX=1A00h,AX=BF00h,AX=BF01h,AX=BF02h,AX=BF11h
  5440.  
  5441. (Table 0101)
  5442. Values for Compaq video master mode:
  5443.  00h    switchable VDU not present
  5444.  04h    CGA
  5445.  05h    EGA
  5446.  07h    MDA
  5447.  08h    switchable LCD controller present
  5448.  09h    plasma VGA
  5449.  0Ah    TFT (active-matrix) VGA
  5450.  
  5451. Bitfields for Compaq switchable VDU modes support:
  5452. Bit(s)    Description    (Table 0102)
  5453.  0    CGA supported
  5454.  1,2    reserved (1)
  5455.  3    MDA supported
  5456.  4    BitBLT engine available
  5457.  5    132-column support availble
  5458.  6    640x480x256 mode available
  5459.  7    8-bit DAC mode available
  5460.  
  5461. (Table 0103)
  5462. Values for Compaq monitor type:
  5463.  00h    none
  5464.  01h    dual-mode monitor
  5465.  02h    5153 RGB monitor (RGBI 16-color)
  5466.  03h    Compaq Color monitor
  5467.  04h    640x400 flat panel (Plasma CGA)
  5468.  05h    VGC monochrome
  5469.  06h    VGC color
  5470.  07h    8-level mono LCD VGA (internal)
  5471.     1024x768 mono VGA (external)
  5472.  08h    16-level mono plasma VGA (internal)
  5473.     1024x768 color VGA (external)
  5474.  09h    4-level mono LCD CGA
  5475.  0Ah    16-level mono LCD VGA
  5476.  0Bh    active-matrix color VGA
  5477.  0Ch    active-matrix mono VGA
  5478.  0Dh    STN color VGA
  5479. --------b-10BF04-----------------------------
  5480. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  5481.     AX = BF04h
  5482.     BH = new state of delay (00h enabled, 01h disabled)
  5483. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  5484.       version of the list will provide more definite information
  5485. SeeAlso: AX=BF05h
  5486. --------b-10BF05-----------------------------
  5487. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  5488.     AX = BF05h
  5489.     BH = new state of video
  5490.         00h off
  5491.         01h on
  5492. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  5493.       version of the list will provide more definite information
  5494. SeeAlso: AH=12h/BL=36h,AX=BF04h
  5495. --------b-10BF06-----------------------------
  5496. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  5497.     AX = BF06h
  5498.     CL = address to be read from gray scale table
  5499. Return: AL = bit 3-0 - Value read from gray scale table
  5500.     CL = address to be read from gray scale table
  5501. SeeAlso: AH=12h/BL=33h,AX=BF07h
  5502. --------b-10BF07-----------------------------
  5503. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  5504.     AX = BF07h
  5505.     CH = value to write to gray scale table
  5506.     CL = address to be written to gray scale table
  5507. SeeAlso: AX=BF06h,AX=BF08h
  5508. --------b-10BF08-----------------------------
  5509. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  5510.     AX = BF08h
  5511.     CH = bits 7-4 green weight
  5512.          bits 3-0 blue weight
  5513.     CL = bits 7-4 unused
  5514.          bits 3-0 red weight
  5515. SeeAlso: AH=12h/BH=33h,AX=BF07h
  5516. --------b-10BF09-----------------------------
  5517. INT 10 - VIDEO - Compaq Extensions - TURN ON REVERSE VIDEO
  5518.     AX = BF09h
  5519. Return: CF clear
  5520. Notes:    sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  5521.       to 6Fh and index 83h to 04h
  5522.     supported by at least the QVision board and the LTE Lite ROM BIOS
  5523. SeeAlso: AX=BF0Ah,AX=BF0Bh
  5524. --------b-10BF0A-----------------------------
  5525. INT 10 - VIDEO - Compaq Extensions - TURN OFF REVERSE VIDEO
  5526.     AX = BF0Ah
  5527. Return: CF clear
  5528. Notes:    clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  5529.       to 80h and index 83h to FBh
  5530.     supported by at least the QVision board and the LTE Lite ROM BIOS
  5531. SeeAlso: AX=BF09h,AX=BF0Bh
  5532. --------b-10BF0B-----------------------------
  5533. INT 10 - VIDEO - Compaq Extensions - CHECK WHETHER VIDEO REVERSED
  5534.     AX = BF0Bh
  5535. Return: CF clear
  5536.     AX = state (0000h normal video, 0001h reverse video)
  5537. Note:    supported by at least the QVision board and the LTE Lite ROM BIOS
  5538. SeeAlso: AX=BF09h,AX=BF0Ah
  5539. --------b-10BF0C-----------------------------
  5540. INT 10 - VIDEO - Compaq Extensions - SET DAC 6-BIT MODE
  5541.     AX = BF0Ch
  5542. Return: CF clear
  5543. Desc:    specify that video DAC registers use only six bits of color info
  5544. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  5545. SeeAlso: AX=BF0Dh,AX=BF0Eh
  5546. --------b-10BF0D-----------------------------
  5547. INT 10 - VIDEO - Compaq Extensions - SET DAC 8-BIT MODE
  5548.     AX = BF0Dh
  5549. Return: CF clear
  5550. Desc:    specify that video DAC registers use all eight bits of color info
  5551. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  5552. SeeAlso: AX=BF0Ch,AX=BF0Eh
  5553. --------b-10BF0E-----------------------------
  5554. INT 10 - VIDEO - Compaq Extensions - CHECK DAC 6-BIT/8-BIT mode
  5555.     AX = BF0Eh
  5556. Return: CF clear
  5557.     AL = DAC mode
  5558.         00h in 6-bit mode
  5559.         01h in 8-bit mode
  5560. Note:    supported by at least the QVision board and the SystemPro XL ROM BIOS
  5561. SeeAlso: AX=BF0Ch,AX=BF0Dh
  5562. --------b-10BF0F-----------------------------
  5563. INT 10 - VIDEO - Compaq Extensions - SET HIGH ADRESS MAP REGISTER
  5564.     AX = BF0Fh
  5565.     BX = high address map location in megabytes, or
  5566.         0000h to disable high address map, or
  5567.         FFFFh to let ROM configure high address map
  5568. Return: CF clear
  5569.     AX = previous value of high address map register
  5570. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  5571.       Lite ROM BIOSes
  5572. SeeAlso: AX=BF10h
  5573. --------b-10BF10-----------------------------
  5574. INT 10 - VIDEO - Compaq Extensions - GET HIGH ADDRESS MAP REGISTER
  5575.     AX = BF10h
  5576. Return: CF clear
  5577.     AX = current value of high address map register
  5578. Notes:    supported by at least the QVision board and the SystemPro XL and LTE
  5579.       Lite ROM BIOSes
  5580.     the Compaq QVision documentation (October 1993) says the value is
  5581.       returned in BX, but this appears to be one of many typos
  5582. SeeAlso: AX=BF0Fh
  5583. --------b-10BF11-----------------------------
  5584. INT 10 - VIDEO - Compaq Extensions - GET EXTENDED ENVIRONMENT
  5585.     AX = BF11h
  5586. Return: AL = BFh if supported
  5587.         CF clear
  5588.         ES:BX -> ASCII signature "COMPAQ"
  5589.         ES:DI -> advanced functionality table (see #0104)
  5590. Notes:    supported by at least the QVision board and the LTE Lite and ProSignia
  5591.       ROM BIOSes
  5592.     the QVision documentation (October 1993) states that the signature
  5593.       pointer is in ES:DI and the table pointer in ES:SI -- can someone
  5594.       check on this?
  5595. SeeAlso: AX=1A00h,AX=BF03h
  5596.  
  5597. Bitfields for Compaq advanced video functionality:
  5598. Bit(s)    Description    (Table 0104)
  5599.  31    future graphics extensions (reserved, set to 0)
  5600.  30-16    reserved
  5601.  15-12    available video memory in 256K blocks, less one (0000 = 256K, etc.)
  5602.  11-8    reserved
  5603.  7    QVision modes supported
  5604.  6    Advanced VGA modes supported
  5605.  5    Accelerated VGA modes supported
  5606.  4    standard VGA modes supported
  5607.  3-2    reserved
  5608.  1    132-column modes supported
  5609.  0    reserved
  5610. --------b-10BF12-----------------------------
  5611. INT 10 - VIDEO - Compaq Extensions - NEW ACTIVE MONITOR
  5612.     AX = BF12h
  5613.     BH reserved
  5614.     BL = function mask (see #0105)
  5615. Return: CF clear
  5616. Notes:    this function is a NOP if the VGA subsystem is inactive or the current
  5617.       Display Combination Code is 10h or higher
  5618.     supported by at least the QVision board and the LTE Lite and ProSignia
  5619.       ROM BIOSes
  5620. SeeAlso: AX=BF01h,AX=BF02h
  5621.  
  5622. Bitfields for function mask:
  5623. Bit(s)    Description    (Table 0105)
  5624.  7    command mode
  5625.     if set, bits 1 and 0 make the monitor active when set
  5626.     if clear, bits 1 and 0 toggle the monitor's state when set
  5627.  6-2    reserved
  5628.  1    internal monitor
  5629.  0    external monitor
  5630. --------b-10BF13-----------------------------
  5631. INT 10 - VIDEO - Compaq QVision - GAMMA CORRECTION
  5632.     AX = BF13h
  5633.     BL = subfunction
  5634.         00h load gamma correction table for true-color mode
  5635.         DS = BIOS data segment
  5636.         01h set palette RAM bypass
  5637.     BH = 00h
  5638. Return:    nothing
  5639. Note:    these functions must be called after a video mode set, and are in
  5640.       effect only for the current video mode
  5641. --------V-10BFA0BXADAD-----------------------
  5642. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  5643.     AX = BFA0h
  5644.     BX = ADADh
  5645. Return: AX = BDBDh if newer ADAPT.COM installed
  5646.         BX = BCD version (BH = major, BL = minor)
  5647.         CL = ???
  5648.         CH = ???
  5649.         DL = ???
  5650.     AX = ADADh if older version of ADAPT.COM installed
  5651. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  5652.       optionally-resident utility for setting display colors and cursor
  5653.       size; when resident, it also includes a screen blanker
  5654. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  5655. Index:    screen saver;ADAPT
  5656. --------V-10BFA1-----------------------------
  5657. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  5658.     AX = BFA1h
  5659. Return: AX = BDBEh if supported
  5660.         CH = current value of ???
  5661.         DL = current value of ???
  5662. SeeAlso: AX=BFA0h,AX=BFA2h
  5663. --------V-10BFA2-----------------------------
  5664. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  5665.     AX = BFA2h
  5666.     CH = new value for ???
  5667.     DL = new value for ???
  5668. Return: AX = BDBEh if supported
  5669. SeeAlso: AX=BFA0h,AX=BFA1h
  5670. --------A-10C0-------------------------------
  5671. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  5672.     AH = C0h
  5673.     ???
  5674. Return: ???
  5675. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  5676. --------A-10C1-------------------------------
  5677. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  5678.     AH = C1h
  5679.     ???
  5680. Return: ???
  5681. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  5682. --------A-10C2-------------------------------
  5683. INT 10 - CU Writer v1.4 - REVERSE TEXT
  5684.     AH = C2h
  5685.     ???
  5686. Return: ???
  5687. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  5688. --------A-10C3-------------------------------
  5689. INT 10 - CU Writer v1.4 - TEXT BAR
  5690.     AH = C3h
  5691.     ???
  5692. Return: ???
  5693. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  5694. --------A-10C4-------------------------------
  5695. INT 10 - CU Writer v1.4 - TEXT MENU
  5696.     AH = C4h
  5697.     ???
  5698. Return: ???
  5699. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  5700. ----------10CB00-----------------------------
  5701. INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
  5702.     AX = CB00h
  5703. Note:    combined with AX=CB06h, this function permits the use of video mode
  5704.       13h together with the VGA's unchained mode
  5705. SeeAlso: AX=CB06h,AX=CBFFh
  5706. ----------10CB01-----------------------------
  5707. INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
  5708.     AX = CB01h
  5709.     BX = offset of page 1
  5710. Desc:    inform UNCHAIN of the location of video page 1 in video memory; the
  5711.       default is 0000h
  5712. SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
  5713. ----------10CB02-----------------------------
  5714. INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
  5715.     AX = CB02h
  5716.     BX = offset of page 2
  5717. Desc:    inform UNCHAIN of the location of video page 2 in video memory; the
  5718.       default is 3E80h (16000, for 320x200)
  5719. SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
  5720. ----------10CB03-----------------------------
  5721. INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
  5722.     AX = CB03h
  5723.     BX = offset of page 3
  5724. Desc:    inform UNCHAIN of the location of video page 3 in video memory; the
  5725.       default is 7D00h (32000, for 320x200)
  5726. SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
  5727. ----------10CB04-----------------------------
  5728. INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
  5729.     AX = CB04h
  5730.     BX = offset of page 4
  5731. Desc:    inform UNCHAIN of the location of video page 4 in video memory; the
  5732.       default is BB80h (48000, for 320x200)
  5733. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
  5734. ----------10CB05-----------------------------
  5735. INT 10 - UNCHAIN - SAVE PALETTE
  5736.     AX = CB05h
  5737. SeeAlso: AX=CB00h,AX=CB06h
  5738. ----------10CB06-----------------------------
  5739. INT 10 - UNCHAIN - RESTORE VGA REGISTERS
  5740.     AX = CB06h
  5741. SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
  5742. ----------10CBFF-----------------------------
  5743. INT 10 - UNCHAIN - INSTALLATION CHECK
  5744.     AX = CBFFh
  5745. Return: AX = CCBBh if installed
  5746. Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
  5747.       development tools with Mode X video in the absence of a second
  5748.       monitor
  5749. SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
  5750. --------V-10CC00SI0000-----------------------
  5751. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  5752.     AX = CC00h
  5753.     SI = 0000h (if checking version)
  5754. Return: CX = ABCDh
  5755.     AL = Ultravision extensions
  5756.         00h enabled
  5757.         FFh disabled
  5758.     AH = card designator
  5759.     BX:00F0h -> palette values (for compatibility with NEWFONT)
  5760.     DX = support for high resolution modes
  5761.         00h not active
  5762.         01h active
  5763.     SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  5764.         unchanged for versions <1.2
  5765. SeeAlso: AX=CC01h,AX=CC02h
  5766. --------V-10CC01-----------------------------
  5767. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  5768.     AX = CC01h
  5769. Notes:    subsequent BIOS calls will be passed through to previous handler
  5770.     should be followed immediately by mode set to restore normal EGA/VGA
  5771.       state
  5772. SeeAlso: AX=CC02h
  5773. --------V-10CC02-----------------------------
  5774. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  5775.     AX = CC02h
  5776. Note:    should be followed immediately by mode set to restore previous
  5777.       UltraVision state
  5778. SeeAlso: AX=CC01h
  5779. --------V-10CD00-----------------------------
  5780. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  5781.     AX = CD00h
  5782.     CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  5783.     DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  5784. Notes:    if palette locking is in effect for the current mode, the new colors
  5785.       will be displayed immediately; otherwise, the system reverts to the
  5786.       default palette
  5787.     palette table 0 is reserved for the default palette and cannot be set
  5788.     UltraVision always sets the border color to black
  5789. SeeAlso: AX=CD01h,AX=CD02h
  5790. --------V-10CD01-----------------------------
  5791. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  5792.     AX = CD01h
  5793.     CL = palette locking value
  5794.         00h none
  5795.         01h text modes only (02h,03h)
  5796.         FFh all modes (all standard color text and graphics modes)
  5797. Notes:    intended for video modes with 16 or fewer colors
  5798. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  5799. --------V-10CD02-----------------------------
  5800. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  5801.     AX = CD02h
  5802. Return: CL = palette table number
  5803.     DS:DX -> 17-byte palette register list (see #0106)
  5804.     DS:SI -> current font names table (see #0107,#0108)
  5805. Note:    only the font names are valid on monochrome EGA systems
  5806. SeeAlso: AX=1009h,AX=CD00h
  5807.  
  5808. Format of UltraVision palette register list:
  5809. Offset    Size    Description    (Table 0106)
  5810.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  5811.  10h    BYTE    border color
  5812.  
  5813. Format of UltraVision v2+ current font names table:
  5814. Offset    Size    standard EGA    HiRes EGA    VGA    (Table 0107)
  5815.  00h  8 BYTEs    N/A        F19 font    F20 font
  5816.  08h  8 BYTEs    F14 font    F14 font    F14 font
  5817.  10h  8 BYTEs    N/A        F11 font    F10 font
  5818.  18h  8 BYTEs    F8 font        F8 font        F8 font
  5819.  
  5820. Format of UltraVision v1.x current font names table:
  5821. Offset    Size    HiRes EGA    (Table 0108)
  5822.  00h  8 BYTEs    F19/F14 font
  5823.  08h  8 BYTEs    F11/F8 font
  5824. --------V-10CD03-----------------------------
  5825. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  5826.     AX = CD03h
  5827. Return: CL = palette locking value
  5828.         00h none
  5829.         01h text modes only
  5830.         FFh all modes
  5831. SeeAlso: AX=CD01h
  5832. --------V-10CD04-----------------------------
  5833. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  5834.     AX = CD04h
  5835. Return: AL = mode number (see #0109)
  5836. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  5837.  
  5838. (Table 0109)
  5839. Values for UltraVision video mode number:
  5840.  11h    80x25
  5841.  12h    80x43, 80x50
  5842.  13h    80x34, 80x36
  5843.  14h    80x60, 80x63
  5844.  19h    94x25
  5845.  1Ah    94x43, 94x50
  5846.  1Bh    94x36
  5847.  1Ch    94x63
  5848.  21h    108x25
  5849.  22h    108x43, 108x50
  5850.  23h    107x34, 108x36
  5851.  24h    108x60, 108x63
  5852.  31h    120x25
  5853.  32h    120x43, 120x50
  5854.  33h    132x25
  5855.  34h    132x44, 132x50
  5856.  39h    120x36
  5857.  3Ah    120x63
  5858.  3Bh    132x36
  5859.  3Ch    132x60
  5860. Index:    video modes
  5861. --------V-10CD05-----------------------------
  5862. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  5863.     AX = CD05h
  5864.     CL = type
  5865.         00h line cursor
  5866.         FFh box cursor
  5867. Note:    sets default cursor type for text-based programs
  5868. SeeAlso: AH=01h,AX=CD06h
  5869. --------V-10CD06-----------------------------
  5870. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  5871.     AX = CD06h
  5872. Return: CL = type
  5873.         00h line cursor
  5874.         FFh box cursor
  5875. SeeAlso: AH=03h,AX=CD05h
  5876. --------V-10CD07-----------------------------
  5877. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  5878.     AX = CD07h
  5879.     CL = hardware underline status (see #0110)
  5880.     BL = foreground color for normal text (FFh = current)
  5881.     BH = foreground color for bright text (FFh = current)
  5882. Return: CL = hardware underline status
  5883.     BL = current foreground color for normal text
  5884.     BH = current foreground color for bright text
  5885. Notes:    when underline or strikeout is enabled in color text modes, the
  5886.       specified colors will be assigned temporarily to colors 01h and 09h,
  5887.       allowing affected text to match non-underlined text.    The color
  5888.       remapping uses values from the current onscreen palette regardless
  5889.       of the palette locking status (see AX=CD01h)
  5890.     specify the standard colors (BL=01h,BH=09h) to enable underline or
  5891.       strikeout without color remapping
  5892. SeeAlso: AX=CD08h
  5893.  
  5894. (Table 0110)
  5895. Values for hardware underline status:
  5896.  00h    off (color systems only)
  5897.  01h    underline below characters
  5898.  02h    strike through characters
  5899. --------V-10CD08-----------------------------
  5900. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  5901.     AX = CD08h
  5902. Return: CL = hardware underline status (see #0110)
  5903.     BL = foreground color for normal text
  5904.     BH = foreground color for bright text
  5905. Note:    only CL is valid on monochrome EGA systems
  5906. SeeAlso: AX=CD07h
  5907. --------V-10CD10-----------------------------
  5908. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  5909.     AX = CD10h
  5910.     BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  5911.     CX = ABCDh load 9xN alternate font (v2+)
  5912.        else number of characters to load
  5913.         DX = character offset into font table
  5914.         DS:SI -> 8-byte ASCII font name
  5915.     ES:BP -> font definitions
  5916. Return: AX = FFFFh if invalid font parameters
  5917. Notes:    loads the designated characters into UltraVision's resident font area
  5918.     should be followed by a video mode set to reload character generator
  5919. SeeAlso: AX=1100h
  5920. --------V-10CD-------------------------------
  5921. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  5922.     AH = CDh
  5923.     AL = text mode number (see #0109)
  5924. Return: AX = CDCDh if invalid mode
  5925. SeeAlso: AX=CD04h
  5926. --------A-10D0-------------------------------
  5927. INT 10 - CU Writer v1.4 - LOAD PICTURE
  5928.     AH = D0h
  5929.     ???
  5930. Return: ???
  5931. SeeAlso: AH=B0h"CU Writer",AH=C4h
  5932. --------V-10D5-------------------------------
  5933. INT 10 - Netroom SCRNCLK - ???
  5934.     AH = D5h
  5935.     ???
  5936. Return: ???
  5937. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  5938. --------V-10DFA5-----------------------------
  5939. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  5940.     AX = DFA5h
  5941. Return: AX = BDBFh if supported
  5942.         ES:DI -> ??? data area
  5943.         BX = ES
  5944. SeeAlso: AX=BFA0h
  5945. --------V-10EF-------------------------------
  5946. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  5947.     AH = EFh
  5948. Return: DL = video adapter type
  5949.         00h original Hercules
  5950.         01h Hercules Plus
  5951.         02h Hercules InColor???
  5952.     DH = memory mode byte
  5953.         01h "half" mode
  5954.         03h "full" mode
  5955. Program: MSHERC.COM is a support program for the Microsoft Quick languages
  5956.       which makes their graphics libraries compatible with a Hercules card
  5957.       by adding video modes 08h and 88h, and supporting text in the new
  5958.       graphics modes.
  5959. Notes:    while in mode 08h or 88h, INT 10 supports the Hercules card much like
  5960.       a CGA.
  5961.     MSHERC performs an installation check by setting DL=FFh and testing
  5962.       whether it has been changed on return
  5963. Index:    installation check;MSHERC
  5964. --------V-10F0-------------------------------
  5965. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  5966.     AH = F0h
  5967.     BL = register number
  5968.     BH = 00h
  5969.     DX = group index (see #0111)
  5970. Return: BL = data
  5971. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5972.       compatibility box, and others
  5973. SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
  5974.  
  5975. (Table 0111)
  5976. Values for group index:
  5977.  Pointer/data chips
  5978.  00h    CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  5979.  08h    Sequencer (5 registers) 3C4h
  5980.  10h    Graphics Controller (9 registers) 3CEh
  5981.  18h    Attribute Controller (20 registers) 3C0h
  5982.  Single registers
  5983.  20h    Miscellaneous Output register 3C2h
  5984.  28h    Feature Control register (3BAh mono modes, 3DAh color modes)
  5985.  30h    Graphics 1 Position register 3CCh
  5986.  38h    Graphics 2 Position register 3CAh
  5987. --------V-10F1-------------------------------
  5988. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  5989.     AH = F1h
  5990.     DX = group index (see #0111)
  5991.         if single register:
  5992.         BL = value to write
  5993.         otherwise
  5994.         BL = register number
  5995.         BH = value to write
  5996. Return: BL = data
  5997. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5998.       compatibility box, and others
  5999. SeeAlso: AX=7F05h,AH=F0h,AH=F3h
  6000. --------V-10F2-------------------------------
  6001. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  6002.     AH = F2h
  6003.     CH = starting register number
  6004.     CL = number of registers (>1)
  6005.     DX = group index (00h,08h,10h,18h) (see #0111)
  6006.     ES:BX -> buffer, CL bytes
  6007. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6008.       compatibility box, and others
  6009. SeeAlso: AH=F0h,AH=F3h
  6010. --------V-10F3-------------------------------
  6011. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  6012.     AH = F3h
  6013.     CH = starting register
  6014.     CL = number of registers (>1)
  6015.     DX = group index (00h,08h,10h,18h) (see #0111)
  6016.     ES:BX -> buffer, CL bytes
  6017. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6018.       compatibility box, and others
  6019. SeeAlso: AX=7F05h,AH=F1h,AH=F2h
  6020. --------V-10F4-------------------------------
  6021. INT 10 - EGA Register Interface Library - READ REGISTER SET
  6022.     AH = F4h
  6023.     CX = number of registers to read (>1)
  6024.     ES:BX -> table of register records (see #0112)
  6025. Return: register values in table filled in
  6026. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6027.       compatibility box, and others
  6028. SeeAlso: AH=F0h,AH=F2h,AH=F5h
  6029.  
  6030. Format of EGA RIL entries in table of register records:
  6031. Offset    Size    Description    (Table 0112)
  6032.  00h    WORD    group index
  6033.         Pointer/data chips
  6034.            00h CRTC (3B4h mono modes, 3D4h color modes)
  6035.            08h Sequencer 3C4h
  6036.            10h Graphics Controller 3CEh
  6037.            18h Attribute Controller 3C0h
  6038.         Single registers
  6039.            20h Miscellaneous Output register 3C2h
  6040.            28h Feature Control register (3BAh mono modes, 3DAh color)
  6041.            30h Graphics 1 Position register 3CCh
  6042.            38h Graphics 2 Position register 3CAh
  6043.  02h    BYTE    register number (0 for single registers)
  6044.  03h    BYTE    register value
  6045. --------V-10F5-------------------------------
  6046. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  6047.     AH = F5h
  6048.     CX = number of registers to write (>1)
  6049.     ES:BX -> table of records (see #0112)
  6050. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6051.       compatibility box, and others
  6052. SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
  6053. --------V-10F6-------------------------------
  6054. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  6055.     AH = F6h
  6056. Note:    provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  6057.       others
  6058. SeeAlso: AH=F7h
  6059. --------V-10F7-------------------------------
  6060. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  6061.     AH = F7h
  6062.     DX = port number
  6063.        Pointer/data chips
  6064.           00h CRTC (3B4h mono modes, 3D4h color modes)
  6065.           08h Sequencer 3C4h
  6066.           10h Graphics Controller 3CEh
  6067.           18h Attribute Controller 3C0h
  6068.        Single registers
  6069.           20h Miscellaneous Output register 3C2h
  6070.           28h Feature Control register (3BAh mono modes, 3DAh color modes)
  6071.           30h Graphics 1 Position register 3CCh
  6072.           38h Graphics 2 Position register 3CAh
  6073.     ES:BX -> table of one-byte entries, one byte to be written to each
  6074.          register
  6075. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6076.       compatibility box, and others
  6077. SeeAlso: AH=F6h
  6078. --------V-10FA--BX0000-----------------------
  6079. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  6080.     AH = FAh
  6081.     BX = 0000h
  6082. Return: BX = 0000h if RIL driver not present
  6083.     ES:BX -> EGA Register Interface version number, if present:
  6084.         byte 0 = major release number
  6085.         byte 1 = minor release number
  6086. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  6087.       compatibility box, and others
  6088. SeeAlso: AH=F6h,INT 2F/AX=BC00h
  6089. --------K-10FA-------------------------------
  6090. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  6091.     AH = FAh
  6092. Return: AX = 00FAh if installed
  6093.         ES = segment of resident code
  6094. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  6095.       Steiner
  6096. Index:    screen saver;FASTBUFF
  6097. --------V-10FE-------------------------------
  6098. INT 10 - TopView - GET SHADOW BUFFER
  6099.     AH = FEh
  6100.     ES:DI -> assumed video buffer
  6101.         B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  6102.           or A000h:0000h EGA/VGA graphics (RSIS environments only)
  6103. Return: ES:DI -> actual video buffer for calling process
  6104. Desc:    Determine the address of the virtual screen to which the program
  6105.       should write instead of the actual video memory; this permits
  6106.       programs to be multitasked without interfering with each other's
  6107.       output, and allows memory managers to move the video memory to
  6108.       permit larger programs to be loaded.
  6109. Notes:    if no multitasker or RSIS-compliant environment is installed, ES:DI is
  6110.       returned unchanged; RSIS is the Relocated Screen Interface
  6111.       Specification
  6112.     for display pages other than 0, use AH=05h and AH=0Fh to determine
  6113.       whether a particular page exists
  6114.     TopView requires a call to AH=FFh to notify it that the screen has
  6115.       changed; DESQview will check for changes itself until the first call
  6116.       to AH=FFh
  6117. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  6118. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  6119. --------V-10FF-------------------------------
  6120. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  6121.     AH = FFh
  6122.     CX = number of consecutive changed characters
  6123.     ES:DI -> first changed character in shadow buffer
  6124. Notes:    avoid CX=0000h
  6125.     DESQview will discontinue the automatic screen updating initiated by
  6126.       AH=FEh after this call
  6127.     not supported (ignored) by DESQview/X 1.0x
  6128. SeeAlso: AH=93h,AH=FEh
  6129. --------E-10FF-------------------------------
  6130. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  6131.     AH = FFh
  6132.     AL = video mode (see #0113)
  6133. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  6134.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  6135. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  6136.  
  6137. (Table 0113)
  6138. Values for GO32 video mode number:
  6139.  00h    80x25 text
  6140.  01h    default text
  6141.  02h    CXxDX text
  6142.  03h    biggest text
  6143.  04h    320x200 graphics
  6144.  05h    default graphics
  6145.  06h    CXxDX graphics
  6146.  07h    biggest non-interlaced graphics
  6147.  08h    biggest graphics
  6148. Index:    video modes
  6149. --------V-10FF-------------------------------
  6150. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  6151.     AH = FFh
  6152.     AL = emulation
  6153.         43h ('C') CGA emulation
  6154.         45h ('E') EGA emulation
  6155.         4Dh ('M') Hercules emulation
  6156.         56h ('V') VGA emulation
  6157.     ES:DI -> signature string "Calamity"
  6158. Return: VGA switched to suggested mode
  6159. SeeAlso: AH=00h,AX=007Fh,AX=5F01h
  6160. --------R-10FF00-----------------------------
  6161. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  6162.     AX = FF00h
  6163. Return: BL = state
  6164.         00h not connected
  6165.         01h connected
  6166. SeeAlso: AX=FF01h,AX=FF02h
  6167. --------R-10FF01-----------------------------
  6168. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  6169.     AX = FF01h
  6170. SeeAlso: AX=FF00h,AX=FF02h
  6171. --------R-10FF02-----------------------------
  6172. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  6173.     AX = FF02h
  6174. Return: ES:DI -> ASCIZ phone number
  6175. SeeAlso: AX=FF00h,AX=FF01h
  6176. --------C-11---------------------------------
  6177. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  6178. Desc:    automatically generated by the CPU when the AC flag is set, the current
  6179.       privilege level is 3, and a misaligned memory access (WORD not on an
  6180.       even address or DWORD not on a multiple of 4) is made
  6181. Note:    not all V86 monitors allow the AC flag to be set, such as Turbo
  6182.       Debugger 386
  6183. --------B-11---------------------------------
  6184. INT 11 - BIOS - GET EQUIPMENT LIST
  6185. Return: (E)AX = BIOS equipment list word (see #0114)
  6186. Note:    since older BIOSes do not know of the existence of EAX, the high word
  6187.       of EAX should be cleared before this call if any of the high bits
  6188.       will be tested
  6189.  
  6190. Bitfields for BIOS equipment list:
  6191. Bit(s)    Description    (Table 0114)
  6192.  0    floppy disk(s) installed (see 6-7)
  6193.  1    80x87 coprocessor installed
  6194.  3-2    number of 16K banks of RAM on motherboard (PC only)
  6195.     number of 64K banks of RAM on motherboard (XT only)
  6196.  2    pointing device installed (PS)
  6197.  3    unused (PS)
  6198.  5-4    initial video mode
  6199.     00 EGA, VGA, or PGA
  6200.     01 40x25 color
  6201.     10 80x25 color
  6202.     11 80x25 monochrome
  6203.  7-6    number of floppies installed less 1 (if 0 set)
  6204.  8    DMA support installed (PCjr, Tandy 1400LT)
  6205.     DMA support *not* installed (Tandy 1000's)
  6206.  11-9    number of serial ports installed
  6207.  12    game port installed
  6208.  13    serial printer attached (PCjr)
  6209.     internal modem installed (PC/Convertible)
  6210.  15-14    number of parallel ports installed
  6211. ---Compaq, Dell, and many other 386/486 machines--
  6212.  23    page tables set so that Weitek coprocessor addressable in real mode
  6213.  24    Weitek math coprocessor present
  6214. ---Compaq Systempro---
  6215.  25    internal DMA parallel port available
  6216.  26    IRQ for internal DMA parallel port (if bit 25 set)
  6217.     0 = IRQ5
  6218.     1 = IRQ7
  6219.  28-27    parallel port DMA channel
  6220.     00 DMA channel 0
  6221.     01 DMA channel 0 ???
  6222.     10 reserved
  6223.     11 DMA channel 3
  6224. SeeAlso: INT 12
  6225. --------d-11----SI6A6A-----------------------
  6226. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  6227.     SI = 6A6Ah
  6228.     AH = command (see #0115)
  6229.     AL = SCSI Addressing (see #0116)
  6230. Return: CF clear if successful
  6231.         DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  6232.         AH = ??? for command 01h
  6233.     CF set on error
  6234.         AL = error code
  6235. SeeAlso: INT 21/AX=4402h"ASPI"
  6236.  
  6237. (Table 0115)
  6238. Values for SDLP command:
  6239.  00h    SDLP initialization
  6240.  01h    SDLP System Identify
  6241.  02h    simple read sectors
  6242.  03h    simple write sectors
  6243.  04h    simple verify sectors/seek to sector
  6244.  05h    get device size/type
  6245.  06h    ready unit
  6246.  07h    format unit
  6247.  08h    diagnostics
  6248.  09h    rewind
  6249.  0Ah    erase
  6250.  0Bh    write filemarks
  6251.  0Ch    space
  6252.  0Dh    prevent/allow media removal
  6253.  0Eh    load/unload media
  6254.  0Fh    reserved - returns good status
  6255.  10h    set block size
  6256.  11h    write setmark
  6257.  12h    set error level
  6258.  13h    get address of Request Sense Buffer
  6259.  14h    get SDLP error via Request Sense
  6260.  F0h    Vendor Unique Function (WD7000-FASST2 only)
  6261.  FDh    reset current SCSI HAC
  6262.  FEh    get/set current SCSI HAC
  6263.  FFh    execute SCSI command
  6264.  
  6265. Bitfields for SDLP SCSI addressing:
  6266. Bit(s)    Description    (Table 0116)
  6267.  7-6    Host Adapter
  6268.  5-3    SCSI Target ID
  6269.  2-0    SCSI Target LUN (logical unit number)
  6270. --------V-110225BX6900-----------------------
  6271. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  6272.     AX = 0225h
  6273.     BX = 6900h
  6274. Return: BL = 23h
  6275.     ES:DI -> ASCIZ "BLNKIT"
  6276. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  6277.       Inc.
  6278. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h,INT 14/AX=AA01h
  6279. Index:    screen saver;Blank-It
  6280. --------V-110225BX6901-----------------------
  6281. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  6282.     AX = 0225h
  6283.     BX = 6901h
  6284.     CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  6285.          largest value is 59 minutes (FBACh or 64428)
  6286. Return: CF clear if successful
  6287.         DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  6288.         AH = ???
  6289.     CF set on error
  6290.         AL = error code
  6291. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6904h
  6292. Index:    screen saver;Blank-It
  6293. --------V-110225BX6902-----------------------
  6294. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  6295.     AX = 0225h
  6296.     BX = 6902h
  6297. Return: CF clear if successful
  6298.     CF set on error
  6299.         AL = error code
  6300. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6903h
  6301. Index:    screen saver;Blank-It
  6302. --------V-110225BX6903-----------------------
  6303. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  6304.     AX = 0225h
  6305.     BX = 6903h
  6306. Return: CF clear if successful
  6307.     CF set on error
  6308.         AL = error code
  6309. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6902h
  6310. Index:    screen saver;Blank-It
  6311. --------V-110225BX6904-----------------------
  6312. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  6313.     AX = 0225h
  6314.     BX = 6904h
  6315. Return: CF clear if successful
  6316.         BX = timeout (see BX=6901h)
  6317.     CF set on error
  6318.         AL = error code
  6319. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6901h
  6320. Index:    screen saver;Blank-It
  6321. --------V-110225BX6905-----------------------
  6322. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  6323.     AX = 0225h
  6324.     BX = 6905h
  6325. Return: CF clear if successful
  6326.     CF set on error
  6327.         AL = error code
  6328. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6906h
  6329. Index:    screen saver;Blank-It
  6330. --------V-110225BX6906-----------------------
  6331. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  6332.     AX = 0225h
  6333.     BX = 6906h
  6334. Return: CF clear if successful
  6335.     CF set on error
  6336.         AL = error code
  6337. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  6338.       Inc.
  6339. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6905h
  6340. Index:    screen saver;Blank-It
  6341. --------V-110225BX6907-----------------------
  6342. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  6343.     AX = 0225h
  6344.     BX = 6907h
  6345. Return: CF clear if successful
  6346.     CF set on error
  6347.         AL = error code
  6348. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6908h
  6349. Index:    screen saver;Blank-It
  6350. --------V-110225BX6908-----------------------
  6351. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  6352.     AX = 0225h
  6353.     BX = 6908h
  6354. Return: CF clear if successful
  6355.     CF set on error
  6356.         AL = error code
  6357. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6907h
  6358. Index:    screen saver;Blank-It
  6359. --------V-110225BX6909-----------------------
  6360. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  6361.     AX = 0225h
  6362.     BX = 6909h
  6363.     CL = key scan code (see #0117)
  6364. Return: CF clear if successful
  6365.     CF set on error
  6366.         AL = error code
  6367. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  6368.       Inc.
  6369. SeeAlso: AX=0225h/BX=6900h
  6370. Index:    screen saver;Blank-It|hotkeys;Blank-It
  6371.  
  6372. (Table 0117)
  6373. Values for Blank-It hotkey scan code:
  6374.  00h    No hot key
  6375.  1Dh    Left CTRL
  6376.  2Ah    Left Shift
  6377.  36h    Right Shift
  6378.  57h    F11
  6379.  58h    F12
  6380. ----------1105D7-----------------------------
  6381. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  6382.     AX = 05D7h
  6383.     BX = product ID (0088h)
  6384. Note:    called by the BC++ IDE when an application calls
  6385.       INT 12/AX=05D7h/BX=05D7h
  6386. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  6387. Index:    installation check;Borland C++ IDE
  6388. --------F-1177-------------------------------
  6389. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  6390.     AH = 77h
  6391.     AL = subfunction
  6392.         01h request SFENGINE start
  6393.         Return: AX = 0001h
  6394.         02h check if SFENGINE started
  6395.         Return: AX = 0000h or 0001h
  6396.         03h request SFENGINE stop
  6397.         Return: AX = 0001h
  6398.         04h check if SFENGINE stopped
  6399.         Return: AX = 0000h or 0001h
  6400.         05h installation check
  6401.         Return: AX = 0001h
  6402.         06h uninstall???
  6403.         BX:DX -> return address for successful uninstall???
  6404.         Return: (at caller's address)
  6405.             AX = 0000h
  6406.         else
  6407.         Return: AX = FFFFh
  6408. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  6409.         followed by internal data area???
  6410. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  6411. Index:    installation check;RainbowFAX|installation check;SFENGINE
  6412. Index:    uninstall;RainbowFAX|uninstall;SFENGINE
  6413. --------F-1178-------------------------------
  6414. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6415.     AH = 78h
  6416.     AL = subfunction
  6417.         7801h set ???
  6418.         BX = new state for ???
  6419.             0000h ???
  6420.             else ???
  6421.         Return: AX = 0001h
  6422.         7802h set ???
  6423.         BX = ???
  6424.         CX = ???
  6425.         Return: AX = 0001h
  6426.         7803h set ???
  6427.         BX = new state for ???
  6428.             0000h ???
  6429.             else ???
  6430.         Return: AX = 0001h
  6431.         78XXh invalid subfunction
  6432.         Return: AX = FFFFh
  6433. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  6434. --------F-1179-------------------------------
  6435. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6436.     AH = 79h
  6437.     AL = subfunction
  6438.         01h set ??? flag
  6439.         Return: AX = previous state (0000h already set, 0001h clear)
  6440.         02h clear ??? flag (see subfunc 01h)
  6441.         Return: AX = 0001h
  6442.         03h set ??? flag (different from subfn 02h or 04h)
  6443.         Return: AX = 0001h
  6444.         04h clear ??? flag (different from subfn 02h or 03h)
  6445.         Return: AX = 0001h
  6446.         else
  6447.         Return: AX = FFFFh
  6448. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  6449. --------F-117A-------------------------------
  6450. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6451.     AH = 7Ah
  6452.     AL = subfunction
  6453.         01h set ??? flag
  6454.         Return: AX = previous state (0000h already set, 0001h clear)
  6455.         02h clear ??? flag
  6456.         Return: AX = 0001h
  6457.         03h set ??? flag (different from subfn 02h)
  6458.         Return: AX = 0001h
  6459.         else
  6460.         Return: AX = FFFFh
  6461. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  6462. --------F-117C-------------------------------
  6463. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6464.     AH = 7Ch
  6465.     AL = subfunction
  6466.         01h set ??? flag (see also subfn 02h)
  6467.         Return: AX = 0001h
  6468.         02h clear ??? flag (see also subfn 01h)
  6469.         Return: AX = 0001h
  6470.         else
  6471.         Return: AX = FFFFh
  6472. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah
  6473. --------S-11BC--DX1954-----------------------
  6474. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  6475.     AH = BCh
  6476.     DX = 1954h
  6477. Return: AX = 1954h
  6478.     ES:DX -> entry point of driver (instead of INT 14)
  6479. SeeAlso: INT 14/AH=04h"FOSSIL"
  6480. --------d-11FF--SI6A6A-----------------------
  6481. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  6482.     AH = FFh
  6483.     SI = 6A6Ah
  6484.     AL = SCSI Addressing (see #0118)
  6485.     CX = bytes of data to be transmitted (max FFF0h)
  6486.     DH = 00h
  6487.     DL = length of SCSI Command Descriptor Block
  6488.     DS:DI -> SCSI Command Descriptor Block
  6489.     ES:BX -> data buffer
  6490. Return: CF set on error
  6491.         AL = error code
  6492.     CF clear if successful
  6493. Note:    because of busmaster operations with WD7000FASST avoid accessing
  6494.       video memory directly; check 386 memory manager for VDS support.
  6495.       The WD7000XTAT works with programmed IO and does not have this
  6496.       limitation.
  6497. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  6498.  
  6499. Bitfields for SDLP SCSI addressing:
  6500. Bit(s)    Description    (Table 0118)
  6501.  2-0    SCSI Target LUN (logical unit number)
  6502.  5-3    SCSI Target ID
  6503.  7    write flag, set for write operations, clear otherwise
  6504. --------T-11FFFECXFFFE-----------------------
  6505. INT 11 - BACK&FORTH (before v1.62) API
  6506.     AX = FFFEh
  6507.     CX = FFFEh
  6508.     BX = function
  6509.         00h installation check
  6510.         Return: AX = installation state
  6511.                 0001h BNFHIGH and BNFLOW both loaded
  6512.                 0003h only BNFHIGH loaded
  6513.                 else neither loaded
  6514.         01h ???
  6515.         Return: DX:AX -> ???
  6516.         02h ???
  6517.         03h ???
  6518.         04h ???
  6519.         05h ??? switches current PSP segment and stack if BNFLOW has not
  6520.             yet announced itself installed
  6521.         06h ???
  6522.         Return: AX = ???
  6523. SeeAlso: INT 12/AX=FFFEh
  6524. Index:    installation check;BACK&FORTH
  6525. --------B-12---------------------------------
  6526. INT 12 - BIOS - GET MEMORY SIZE
  6527. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6528. Note:    this call returns the contents of the word at 0040h:0013h; in PC and
  6529.       XT, this value is set from the switches on the motherboard
  6530. SeeAlso: INT 11,INT 2F/AX=4A06h
  6531. --------K-12----CX1806-----------------------
  6532. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  6533.     CX = 1806h
  6534. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6535.     CX = 1960h if installed
  6536. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  6537.       accented characters and box drawing on standard QWERTY keyboards; it
  6538.       also provides break-to-DOS and screen blanking capabilities
  6539. SeeAlso: INT 14/AX=AA01h
  6540. Index:    screen saver;KEYBUI
  6541. --------d-12----CX1807-----------------------
  6542. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  6543.     CX = 1807h
  6544. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6545.     CX = 1961h if installed
  6546. Program: PARKER is an optionally-resident hard disk parking program by Johan
  6547.       Zwiekhorst
  6548. ----------1205D7BX05D7-----------------------
  6549. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  6550.     AX = 05D7h (1495d)
  6551.     BX = 05D7h
  6552. Note:    the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  6553. SeeAlso: INT 11/AX=05D7h/BX=0088h
  6554. ----------124350BX4920-----------------------
  6555. INT 12 C - CPI-standard virus - "FRIEND" CHECK
  6556.     AX = 4350h
  6557.     BX = 4920h
  6558.     CX = AB46h
  6559.     DX = 554Eh
  6560. Return: if friendly (not to be infected)
  6561.         CX:DX -> ASCIZ identity code (changes yearly)
  6562. SeeAlso: INT 21/AX=0B56h
  6563. --------T-12FFFECXFFFE-----------------------
  6564. INT 12 - Back&Forth v1.62+ - API
  6565.     AX = FFFEh
  6566.     CX = FFFEh
  6567.     BX = function
  6568.         00h installation check
  6569.         Return: AX = 0001h installed
  6570.                  else  not loaded
  6571.         02h build program ID list
  6572.         ES:DI -> buffer of at least 100 bytes, to be filled with words
  6573.         Return: AX = number of programs defined
  6574.             ES:DI buffer filled with AX words
  6575.         03h switch to specified task (task need not be open yet)
  6576.         DX = two-letter program ID
  6577.         Return: AX = 0000h if task undefined
  6578.         04h ???
  6579.         05h ???
  6580.         06h get version (undoc)
  6581.         Return: AX = version * 100 (v1.71 = 00ABh)
  6582.         07h ???
  6583.         08h get open tasks (undoc)
  6584.         ES:DI -> task info buffer (see #0119)
  6585.         Return: AX = number of open tasks (max 20)
  6586.         09h ???
  6587. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  6588. SeeAlso: INT 11/AX=FFFEh
  6589. Index:    installation check;BACK&FORTH
  6590.  
  6591. Format of Back&Forth task info buffer:
  6592. Offset    Size    Description    (Table 0119)
  6593.  00h 21 BYTEs    ASCIZ task name
  6594.  15h    BYTE    hotkey shift state (as for INT 16/AH=02h)
  6595.  16h    WORD    hotkey scan code
  6596.  18h    WORD    program ID
  6597. Index:    hotkeys;Back&Forth
  6598. --------B-1300-------------------------------
  6599. INT 13 - DISK - RESET DISK SYSTEM
  6600.     AH = 00h
  6601.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  6602. Return: AH = status (see #0120)
  6603.     CF clear if successful (returned AH=00h)
  6604.     CF set on error
  6605. Note:    forces controller to recalibrate drive heads (seek to track 0)
  6606. SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4E"TI Professional"
  6607. --------B-1301-------------------------------
  6608. INT 13 - DISK - GET STATUS OF LAST OPERATION
  6609.     AH = 01h
  6610.     DL = drive (bit 7 set for hard disk)
  6611. Return: CF clear if successful (returned status 00h)
  6612.     CF set on error
  6613.     AH = status of previous operation (see #0120)
  6614. Note:    some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  6615.       status in both AH and AL
  6616.  
  6617. (Table 0120)
  6618. Values for disk operation status:
  6619.  00h    successful completion
  6620.  01h    invalid function in AH or invalid parameter
  6621.  02h    address mark not found
  6622.  03h    disk write-protected
  6623.  04h    sector not found/read error
  6624.  05h    reset failed (hard disk)
  6625.  06h    disk changed (floppy)
  6626.  07h    drive parameter activity failed (hard disk)
  6627.  08h    DMA overrun
  6628.  09h    data boundary error (attempted DMA across 64K boundary or >80h sectors)
  6629.  0Ah    bad sector detected (hard disk)
  6630.  0Bh    bad track detected (hard disk)
  6631.  0Ch    unsupported track or invalid media
  6632.  0Dh    invalid number of sectors on format (PS/2 hard disk)
  6633.  0Eh    control data address mark detected (hard disk)
  6634.  0Fh    DMA arbitration level out of range (hard disk)
  6635.  10h    uncorrectable CRC or ECC error on read
  6636.  11h    data ECC corrected (hard disk)
  6637.  20h    controller failure
  6638.  31h    no such drive (Compaq)
  6639.  32h    incorrect drive type stored in CMOS (Compaq)
  6640.  40h    seek failed
  6641.  80h    timeout (not ready)
  6642.  AAh    drive not ready (hard disk)
  6643.  BBh    undefined error (hard disk)
  6644.  CCh    write fault (hard disk)
  6645.  E0h    status register error (hard disk)
  6646.  FFh    sense operation failed (hard disk)
  6647. --------B-1302-------------------------------
  6648. INT 13 - DISK - READ SECTOR(S) INTO MEMORY
  6649.     AH = 02h
  6650.     AL = number of sectors to read (must be nonzero)
  6651.     CH = low eight bits of cylinder number
  6652.     CL = sector number 1-63 (bits 0-5)
  6653.          high two bits of cylinder (bits 6-7, hard disk only)
  6654.     DH = head number
  6655.     DL = drive number (bit 7 set for hard disk)
  6656.     ES:BX -> data buffer
  6657. Return: CF set on error
  6658.         if AH = 11h (corrected ECC error), AL = burst length
  6659.     CF clear if successful
  6660.     AH = status (see #0120)
  6661.     AL = number of sectors transferred
  6662. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6663.       enough; the read should be retried at least three times, resetting
  6664.       the disk with AH=00h between attempts
  6665.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6666.       DH (head number) since the WD-1003 controller which is the standard
  6667.       AT controller (and the controller that IDE emulates) only supports
  6668.       16 heads
  6669.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6670.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6671.       into bits 6 and 7 of DH
  6672. SeeAlso: AH=03h,AH=0Ah,AH=21h"PS/1"
  6673. --------B-1303-------------------------------
  6674. INT 13 - DISK - WRITE DISK SECTOR(S)
  6675.     AH = 03h
  6676.     AL = number of sectors to write (must be nonzero)
  6677.     CH = low eight bits of cylinder number
  6678.     CL = sector number 1-63 (bits 0-5)
  6679.          high two bits of cylinder (bits 6-7, hard disk only)
  6680.     DH = head number
  6681.     DL = drive number (bit 7 set for hard disk)
  6682.     ES:BX -> data buffer
  6683. Return: CF set on error
  6684.     CF clear if successful
  6685.     AH = status (see #0120)
  6686.     AL = number of sectors transferred
  6687. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6688.       enough; the write should be retried at least three times, resetting
  6689.       the disk with AH=00h between attempts
  6690.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6691.       DH (head number) since the WD-1003 controller which is the standard
  6692.       AT controller (and the controller that IDE emulates) only supports
  6693.       16 heads
  6694.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6695.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6696.       into bits 6 and 7 of DH
  6697. SeeAlso: AH=02h,AH=0Bh,AH=22h"PS/1"
  6698. --------B-1304-------------------------------
  6699. INT 13 - DISK - VERIFY DISK SECTOR(S)
  6700.     AH = 04h
  6701.     AL = number of sectors to verify (must be nonzero)
  6702.     CH = low eight bits of cylinder number
  6703.     CL = sector number 1-63 (bits 0-5)
  6704.          high two bits of cylinder (bits 6-7, hard disk only)
  6705.     DH = head number
  6706.     DL = drive number (bit 7 set for hard disk)
  6707.     ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
  6708. Return: CF set on error
  6709.     CF clear if successful
  6710.     AH = status (see #0120)
  6711.     AL = number of sectors verified
  6712. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6713.       enough; the write should be retried at least three times, resetting
  6714.       the disk with AH=00h between attempts
  6715.     this function does not compare the disk with memory, it merely
  6716.       checks whether the sector's stored CRC matches the data's actual CRC
  6717.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6718.       DH (head number) since the WD-1003 controller which is the standard
  6719.       AT controller (and the controller that IDE emulates) only supports
  6720.       16 heads
  6721.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6722.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6723.       into bits 6 and 7 of DH
  6724. SeeAlso: AH=02h
  6725. --------B-1305-------------------------------
  6726. INT 13 - FLOPPY - FORMAT TRACK
  6727.     AH = 05h
  6728.     AL = number of sectors to format
  6729.     CH = track number
  6730.     DH = head number
  6731.     DL = drive number
  6732.     ES:BX -> address field buffer (see #0121)
  6733. Return: CF set on error
  6734.     CF clear if successful
  6735.     AH = status (see #0120)
  6736. Notes:    on AT or higher, call AH=17h first
  6737.     the number of sectors per track is read from the diskette parameter
  6738.       table pointed at by INT 1E
  6739. SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
  6740.  
  6741. Format of floppy format address field buffer entry (one per sector in track):
  6742. Offset    Size    Description    (Table 0121)
  6743.  00h    BYTE    track number
  6744.  01h    BYTE    head number (0-based)
  6745.  02h    BYTE    sector number
  6746.  03h    BYTE    sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
  6747. --------B-1305-------------------------------
  6748. INT 13 - FIXED DISK - FORMAT TRACK
  6749.     AH = 05h
  6750.     AL = interleave value (XT-type controllers only)
  6751.     ES:BX -> 512-byte format buffer
  6752.         the first 2*(sectors/track) bytes contain F,N for each sector
  6753.            F = sector type
  6754.             00h for good sector
  6755.             20h to unassign from alternate location
  6756.             40h to assign to alternate location
  6757.             80h for bad sector
  6758.            N = sector number
  6759.     CH = cylinder number (bits 8,9 in high bits of CL)
  6760.     CL = high bits of cylinder number (bits 7,6)
  6761.     DH = head
  6762.     DL = drive
  6763. Return: CF set on error
  6764.     CF clear if successful
  6765.     AH = status code (see #0120)
  6766. Notes:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6767.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6768.       into bits 6 and 7 of DH
  6769.     for XT-type controllers on an AT or higher, AH=0Fh should be called
  6770.       first
  6771.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6772.       DH (head number) since the WD-1003 controller which is the standard
  6773.       AT controller (and the controller that IDE emulates) only supports
  6774.       16 heads
  6775.     not all controller support sector types 20h and 40h
  6776. SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
  6777. --------d-1305-------------------------------
  6778. INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
  6779.     AH = 05h
  6780.     DL = hard drive ID
  6781.     ES:BX -> mode select data (see #0122)
  6782. Return: CF set on error
  6783.     CF clear if successful
  6784.     AH = status code (see #0120)
  6785. Notes:    this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  6786.       format a SCSI disk with the desired parameters
  6787.     the mode select data below is from the SCSI-1 specification
  6788.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6789.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6790. SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
  6791.  
  6792. Format of Future Domain SCSI mode select data:
  6793. Offset    Size    Description    (Table 0122)
  6794.  00h    BYTE    number of bytes of remaining data (12 + vendor unique length)
  6795.  01h    BYTE    reserved (0)
  6796.  02h    BYTE    medium type (0 for hard disk)
  6797.  03h    BYTE    reserved (0)
  6798.  04h    BYTE    block descriptor length (8)
  6799.  05h    BYTE    density code (0 for hard disk)
  6800.  06h  3 BYTEs    (big-endian) number of blocks (000000h for entire disk)
  6801.  09h    BYTE    reserved (0)
  6802.  0Ah  3 BYTEs    (big-endian) block length (512 standard, or 256)
  6803.  0Dh    ???    vendor-specific parameter bytes (optional)
  6804. --------B-13057FSI324D-----------------------
  6805. INT 13 - 2M - FORMAT TRACK
  6806.     AX = 057Fh
  6807.     SI = 324Dh ("2M")
  6808.     CH = track number
  6809.     DH = head number
  6810.     DL = drive number
  6811.     ES:BX -> boot sector of future 2M diskette
  6812. Return:    CF set on error
  6813.     CF clear if successful
  6814.     AH = status (see #0120)
  6815. Program: 2M is a TSR developed by Ciriaco Garcia de Celis to support
  6816.       non standard diskettes with 820-902/1476-1558K (5.25 DD/HD)
  6817.       and 984-1066/1804-1886K (3.5 DD/HD)
  6818. Notes:    it is not necessary to call AH=17h/AH=18h first (will be ignored)
  6819.     the boot sector can be obtained from an already-formatted 2M diskette
  6820.       (by calling AH=02h with head number 80h for 2M v2+)
  6821.     the installation check for 2M must search for a "CiriSOFT:2M:1.3"
  6822.       signature string or similar (recomended ":2M:" substring) in the
  6823.       CiriSOFT TSR interface
  6824.     the diskette format must always begin on cylinder 0 head 0
  6825.     since 2M v2.0, the BOOT sector is emulated using the first physical
  6826.       sector of FAT2; the second-sixth physical sectors of FAT2 in HD or ED
  6827.       diskettes store the SuperBOOT code. To skip the FAT2 emulation (using
  6828.       FAT1) of 2M, in order to read the SuperBOOT code, head number must be
  6829.       80h-81h instead 0-1 (bit 7 active) in standard read/write functions.
  6830.       This lets diskcopy programs format 2M target diskettes copying
  6831.       SuperBOOT code. If the target diskette is already 2MF formatted
  6832.       (containing boot code) this trick it is not necessary.
  6833.     when using STV technology (offset 65 of boot sector equal to 1) it is
  6834.       necessary to write the full track before formatting (except track 0
  6835.       side 0) to complete the format and skip future CRC errors on read; in
  6836.       track 0 side 1 the head used must be 81h instead 1. Diskcopy programs
  6837.       may do a format-write-verify secuential phases to improve performance
  6838. SeeAlso: AH=05h"FLOPPY",INT 2F"CiriSOFT TSR interface"
  6839. --------B-1306-------------------------------
  6840. INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
  6841.     AH = 06h
  6842.     AL = interleave value
  6843.     CH = cylinder number (bits 8,9 in high bits of CL)
  6844.     CL = sector number
  6845.     DH = head
  6846.     DL = drive
  6847. Return: AH = status code (see #0120)
  6848. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6849.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6850.       into bits 6 and 7 of DH
  6851. SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
  6852. --------d-1306-------------------------------
  6853. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
  6854.     AH = 06h
  6855.     AL = interleave
  6856.          (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
  6857.     DL = hard drive ID
  6858.     DH = defect list info (see #0123)
  6859.     ES:BX -> defect table A, B or C (see #0124,#0125,#0126)
  6860. Return: CF set on error
  6861.     CF clear if successful
  6862.     AH = status code (see #0120)
  6863. Notes:    block addresses must be in ascending order (for table B, cylinder is
  6864.       most significant, byte from index least significant; for table C,
  6865.       cylinder is most significant, sector number least significant)
  6866.     table B defect bytes from index of FFFFFFFFh indicates that the entire
  6867.       track shall be reassigned
  6868.     table C defect sector number of FFFFFFFFh indicates that the entire
  6869.       track shall be reassigned
  6870.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6871.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6872. SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
  6873.  
  6874. Bitfields for Future Domain SCSI defect list info:
  6875. Bit(s)    Description    (Table 0123)
  6876.  7-5    drive LUN
  6877.  4    defect list is available
  6878.  3    defect list is complete (erase drive's defect list)
  6879.  2-0    defect table format
  6880.     (000=use defect table A, 100=use defect table B,
  6881.      101=use defect table C)
  6882.  
  6883. Format of Future Domain SCSI defect table A:
  6884. Offset    Size    Description    (Table 0124)
  6885.  00h    WORD    number of bytes remaining in table
  6886.  02h    BYTE    reserved (0)
  6887.  03h    BYTE    reserved (0)
  6888.  04h    WORD    (big-endian) defect list length (4*number of defects)
  6889.  06h  4 DWORDs    (big-endian) defect block addresses
  6890.  
  6891. Format of Future Domain SCSI defect table B:
  6892. Offset    Size    Description    (Table 0125)
  6893.  00h    WORD    number of bytes remaining in table
  6894.  02h    BYTE    reserved (0)
  6895.  03h    BYTE    reserved (0)
  6896.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6897.  06h 8N BYTEs    defect list [array] (see #0127)
  6898.  
  6899. Format of Future Domain SCSI defect table C:
  6900. Offset    Size    Description    (Table 0126)
  6901.  00h    WORD    number of bytes remaining in table
  6902.  02h    BYTE    reserved (0)
  6903.  03h    BYTE    reserved (0)
  6904.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6905.  06h 8N BYTEs    defect list [array] (see #0127)
  6906.  
  6907. Format of Future Domain SCSI defect list entry:
  6908. Offset    Size    Description    (Table 0127)
  6909.  00h  3 BYTEs    (big-endian) cylinder number of defect
  6910.  03h    BYTE    head number of defect
  6911.  04h    DWORD    (big-endian) defect bytes from index
  6912. --------d-1306-------------------------------
  6913. INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
  6914.     AH = 06h
  6915. Return: AH = status code (see #0120)
  6916.     CF clear if successful
  6917.         AL = first drive supported
  6918.         (80h nonconcurrent operation, 81h concurrent operation)
  6919.     CF set on error
  6920. Desc:    determine the number of the first supported SCSI drive
  6921. Note:    the return value is 80h when two SCSI drives are supported, 81h if
  6922.       only one SCSI drive is installed
  6923. SeeAlso: AH=08h
  6924. --------B-1307-------------------------------
  6925. INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
  6926.     AH = 07h
  6927.     AL = interleave value (XT only)
  6928.     ES:BX = 512-byte format buffer (see AH=05h)
  6929.     CH = cylinder number (bits 8,9 in high bits of CL)
  6930.     CL = sector number
  6931.     DH = head
  6932.     DL = drive
  6933. Return: AH = status code (see #0120)
  6934. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6935.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6936.       into bits 6 and 7 of DH
  6937. SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
  6938. --------d-1307-------------------------------
  6939. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
  6940.     AH = 07h
  6941.     AL = interleave (0 = default, 1 = consecutive sectors,
  6942.            2 - 255 = vendor unique)
  6943.     DL = hard drive ID
  6944. Return: CF set on error
  6945.     CF clear if successful
  6946.     AH = status code (see #0120)
  6947. SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
  6948. --------B-1308-------------------------------
  6949. INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
  6950.     AH = 08h
  6951.     DL = drive (bit 7 set for hard disk)
  6952. Return: CF set on error
  6953.         AH = status (07h) (see #0120)
  6954.     CF clear if successful
  6955.         AH = 00h
  6956.         BL = drive type (AT/PS2 floppies only) (see #0128)
  6957.         CH = low eight bits of maximum cylinder number
  6958.         CL = maximum sector number (bits 5-0)
  6959.          high two bits of maximum cylinder number (bits 7-6)
  6960.         DH = maximum head number
  6961.         DL = number of drives
  6962.         ES:DI -> drive parameter table (floppies only)
  6963. Notes:    may return successful even though specified drive is greater than the
  6964.       number of attached drives of that type (floppy/hard); check DL to
  6965.       ensure validity
  6966.     for systems predating the IBM AT, this call is only valid for hard
  6967.       disks, as it is implemented by the hard disk BIOS rather than the
  6968.       ROM BIOS
  6969.     Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  6970.       but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.
  6971.     may indicate only two drives present even if more are attached; to
  6972.       ensure the correct count, one can use AH=15h to scan through possible
  6973.       drives
  6974. SeeAlso: AH=06h"Adaptec",AH=13h"SyQuest",AH=15h,INT 1E,INT 41
  6975.  
  6976. (Table 0128)
  6977. Values for diskette drive type:
  6978.  01h    360K
  6979.  02h    1.2M
  6980.  03h    720K
  6981.  04h    1.44M
  6982.  05h    ??? (reportedly an obscure drive type shipped on some IBM machines)
  6983.     2.88M on some machines (at least AMI 486 BIOS)
  6984.  06h    2.88M
  6985. --------B-1309-------------------------------
  6986. INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
  6987.     AH = 09h
  6988.     DL = drive (80h for first, 81h for second)
  6989. Return: CF clear if successful
  6990.     CF set on error
  6991.     AH = status (see #0120)
  6992. Notes:    on the PC and XT, this function uses the parameter table pointed at by
  6993.       INT 41
  6994.     on the AT and later, this function uses the parameter table pointed at
  6995.       by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  6996.       DL=81h
  6997. SeeAlso: INT 41,INT 46
  6998. --------B-130A-------------------------------
  6999. INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
  7000.     AH = 0Ah
  7001.     AL = number of sectors
  7002.     CH = low eight bits of cylinder number
  7003.     CL = sector number (bits 5-0)
  7004.          high two bits of cylinder number (bits 7-6)
  7005.     DH = head number
  7006.     DL = drive number (80h = first, 81h = second)
  7007.     ES:BX -> data buffer
  7008. Return: CF clear if successful
  7009.     CF set on error
  7010.     AH = status (see #0120)
  7011.     AL = number of sectors transferred
  7012. Notes:    this function reads in four to seven bytes of error-correcting code
  7013.       along with each sector's worth of information
  7014.     data errors are not automatically corrected, and the read is aborted
  7015.       after the first sector with an ECC error
  7016.     used for diagnostics only on PS/2 systems
  7017. SeeAlso: AH=02h,AH=0Bh
  7018. --------B-130B-------------------------------
  7019. INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
  7020.     AH = 0Bh
  7021.     AL = number of sectors
  7022.     CH = low eight bits of cylinder number
  7023.     CL = sector number (bits 5-0)
  7024.          high two bits of cylinder number (bits 7-6)
  7025.     DH = head number
  7026.     DL = drive number (80h = first, 81h = second)
  7027.     ES:BX -> data buffer
  7028. Return: CF clear if successful
  7029.     CF set on error
  7030.     AH = status (see #0120)
  7031.     AL = number of sectors transferred
  7032. Notes:    each sector's worth of data must be followed by four to seven bytes of
  7033.       error-correction information
  7034.     used for diagnostics only on PS/2 systems
  7035. SeeAlso: AH=03h,AH=0Ah
  7036. --------B-130C-------------------------------
  7037. INT 13 - HARD DISK - SEEK TO CYLINDER
  7038.     AH = 0Ch
  7039.     CH = low eight bits of cylinder number
  7040.     CL = sector number (bits 5-0)
  7041.         high two bits of cylinder number (bits 7-6)
  7042.     DH = head number
  7043.     DL = drive number (80h = first, 81h = second hard disk)
  7044. Return: CF set on error
  7045.     CF clear if successful
  7046.     AH = status (see #0120)
  7047. SeeAlso: AH=00h,AH=02h,AH=0Ah
  7048. --------d-130D-------------------------------
  7049. INT 13 - HARD DISK - RESET HARD DISKS
  7050.     AH = 0Dh
  7051.     DL = drive number (80h = first, 81h = second hard disk)
  7052. Return: CF set on error
  7053.     CF clear if successful
  7054.     AH = status (see #0120)
  7055. Notes:    reinitializes the hard disk controller, resets the specified drive's
  7056.       parameters, and recalibrates the drive's heads (seek to track 0)
  7057.     not for PS/2 ESDI drives
  7058. SeeAlso: AH=00h,INT 21/AH=0Dh
  7059. --------B-130E-------------------------------
  7060. INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
  7061.     AH = 0Eh
  7062.     DL = drive number (80h = first, 81h = second hard disk)
  7063.     ES:BX -> buffer
  7064. Return: CF set on error
  7065.     CF clear if successful
  7066.     AH = status code (see #0120)
  7067. Notes:    transfers controller's sector buffer.  No data is read from the drive
  7068.     used for diagnostics only on PS/2 systems
  7069. SeeAlso: AH=0Ah
  7070. --------B-130F-------------------------------
  7071. INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
  7072.     AH = 0Fh
  7073.     DL = drive number (80h = first, 81h = second hard disk)
  7074.     ES:BX -> buffer
  7075. Return: CF set on error
  7076.     CF clear if successful
  7077.     AH = status code (see #0120)
  7078. Notes:    does not write data to the drive
  7079.     should be called before formatting to initialize an XT-type
  7080.       controller's sector buffer
  7081.     used for diagnostics only on PS/2 systems
  7082. SeeAlso: AH=0Bh
  7083. --------B-1310-------------------------------
  7084. INT 13 - HARD DISK - CHECK IF DRIVE READY
  7085.     AH = 10h
  7086.     DL = drive number (80h = first, 81h = second hard disk)
  7087. Return: CF set on error
  7088.     CF clear if successful
  7089.     AH = status (see #0120 at AH=01h)
  7090. --------B-1311-------------------------------
  7091. INT 13 - HARD DISK - RECALIBRATE DRIVE
  7092.     AH = 11h
  7093.     DL = drive number (80h = first, 81h = second hard disk)
  7094. Return: CF set on error
  7095.     CF clear if successful
  7096.     AH = status (see #0120 at AH=01h)
  7097. Note:    causes hard disk controller to seek the specified drive to cylinder 0
  7098. SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
  7099. --------B-1312-------------------------------
  7100. INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
  7101.     AH = 12h
  7102.     DL = drive number (80h = first, 81h = second hard disk)
  7103. Return: CF set on error
  7104.     CF clear if successful
  7105.     AH = status code (see #0120 at AH=01h)
  7106.     AL = 00h
  7107. SeeAlso: AH=13h,AH=14h
  7108. --------d-1312-------------------------------
  7109. INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
  7110.     AH = 12h
  7111.     DL = hard drive ID
  7112. Return: CF set on error
  7113.     CF clear if successful
  7114.     AH = status code (see #0120 at AH=01h)
  7115. Notes:    available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
  7116.     if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  7117.       and either "Disk prepared for shipping" or "Disk Stop command failed"
  7118.       is displayed
  7119.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7120.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7121. --------d-1312-------------------------------
  7122. INT 13 - SyQuest - START/STOP SCSI DISK
  7123.     AH = 12h
  7124.     AL = subfunction
  7125.         00h start disk
  7126.         01h stop disk
  7127.     CX = wait flag
  7128.         00h wait for ready
  7129.         01h don't wait for ready
  7130.     DL = hard drive ID (bit 7 for hard disks must be set)
  7131. Return: CF set on error
  7132.     CF clear if successful
  7133.     AH = status
  7134.         00h successful
  7135.         01h invalid function request
  7136.         80h timeout
  7137. SeeAlso: AH=12h"Future Domain",AH=13h"SyQuest"
  7138. --------B-1313-------------------------------
  7139. INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
  7140.     AH = 13h
  7141.     DL = drive number (80h = first, 81h = second hard disk)
  7142. Return: CF set on error
  7143.     CF clear if successful
  7144.     AH = status code (see #0120 at AH=01h)
  7145.     AL = 00h
  7146. SeeAlso: AH=12h"HARD DISK",AH=14h"HARD DISK"
  7147. --------d-1313-------------------------------
  7148. INT 13 - SyQuest - READ DRIVE PARAMATERS (for DOS 5+)
  7149.     AH = 13h
  7150.     DL = drive ID (bit 7 set for hard disks)
  7151. Return: CF set on error
  7152.         AH = status (07h) (see #0120 at AH=01h)
  7153.     CF clear if successful
  7154.         AH = 00h
  7155.         BL = drive type (AT/PS2 floppies only) (see #0128)
  7156.         CH = low eight bits of maximum cylinder number
  7157.         CL = maximum sector number (bits 5-0)
  7158.          high two bits of maximum cylinder number (bits 7-6)
  7159.         DH = maximum head number
  7160.         DL = number of drives
  7161.         ES:DI -> drive parameter table (floppies only)
  7162. Notes:    the return values are identical to the standard INT 13/AH=08h, but the
  7163.       number of drives is not limited to 2, so 
  7164.     scanning all possible drive numbers with the Read DASD Type call
  7165.       (AH=15h) should generally be preferred to determine the number of
  7166.       drives attached to the system.
  7167. SeeAlso: AH=08h,AH=12h"SyQuest",AH=15h,AH=59h"SyQuest"
  7168. --------B-1314-------------------------------
  7169. INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
  7170.     AH = 14h
  7171. Return: CF set on error
  7172.     CF clear if successful
  7173.     AH = status code (see #0120 at AH=01h)
  7174.     AL = 00h
  7175. SeeAlso: AH=12h,AH=13h
  7176. --------B-1315-------------------------------
  7177. INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
  7178.     AH = 15h
  7179.     DL = drive number (bit 7 set for hard disk)
  7180. Return: CF clear if successful
  7181.         AH = type code
  7182.         00h no such drive
  7183.         01h floppy without change-line support
  7184.         02h floppy with change-line support
  7185.         03h hard disk
  7186.             CX:DX = number of 512-byte sectors
  7187.     CF set on error
  7188.         AH = status (see #0120 at AH=01h)
  7189. Note:    SyQuest can report type 01h or 02h for 'hard disks', since its media
  7190.       is removable
  7191. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
  7192. --------B-1316-------------------------------
  7193. INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
  7194.     AH = 16h
  7195.     DL = drive number
  7196. Return: CF clear if change line inactive
  7197.         AH = 00h (disk not changed)
  7198.     CF set if change line active
  7199.         AH = status
  7200.         01h invalid command (SyQuest)
  7201.         06h change line active or not supported
  7202.         80h drive not ready or not present
  7203. Notes:    call AH=15h first to determine whether the drive supports a change
  7204.       line
  7205.     this call also clears the media-change status, so that a disk change
  7206.       is only reported once
  7207. SeeAlso: AH=15h
  7208. --------B-1317-------------------------------
  7209. INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
  7210.     AH = 17h
  7211.     AL = format type
  7212.         01h = 320/360K disk in 360K drive
  7213.         02h = 320/360K disk in 1.2M drive
  7214.         03h = 1.2M disk in 1.2M drive
  7215.         04h = 720K disk in 720K or 1.44M drive
  7216.     DL = drive number
  7217. Return: CF set on error
  7218.     CF clear if successful
  7219.     AH = status (see #0120 at AH=01h)
  7220. Note:    this function does not handle 1.44M drives; use AH=18h instead
  7221. SeeAlso: AH=15h,AH=18h
  7222. --------d-131700-----------------------------
  7223. INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
  7224.     AX = 1700h
  7225.     CL = length of buffer
  7226.     DL = hard drive ID
  7227.     ES:BX -> buffer for info (see #0129)
  7228. Return: CF clear if successful
  7229.         CH = number of bytes returned in buffer???
  7230.     CF set on error
  7231.         AH = status code (see #0120 at AH=01h)
  7232. Notes:    this function is not available with 8-bit controller ROM versions < 7.0
  7233.     information block bytes 5-n are vendor-specific in older SCSI devices
  7234.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7235.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7236. SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
  7237.  
  7238. Format of Future Domain SCSI inquiry information block:
  7239. Offset    Size    Description    (Table 0129)
  7240.  00h    BYTE    device type
  7241.         bits 0-4: peripheral device type (see #0130)
  7242.         bits 5-7: peripheral qualifier (see #0131)
  7243.  01h    BYTE    device type modifier
  7244.         bits 0-6: device type modifier
  7245.         bit 7: removable medium
  7246.  02h    BYTE    SCSI version (see #0132)
  7247.  03h    BYTE    data format/capabilities (see #0133)
  7248.  04h    BYTE    additional data length (total remaining bytes)
  7249.  05h  2 BYTEs    reserved
  7250.  07h    BYTE    device capabilities (see #0134)
  7251.  08h  8 BYTEs    vendor identification (space-padded ASCII)
  7252.  10h  8 BYTEs    product identification (space-padded ASCII)
  7253.  20h  4 BYTEs    product revision level (space-padded ASCII)
  7254.  24h 20 BYTEs    vendor specific
  7255.  38h 40 BYTEs    reserved
  7256.  60h    var    vendor specific parameters
  7257.  
  7258. (Table 0130)
  7259. Values for Future Domain SCSI peripheral device type:
  7260.  00h    direct-access device (e.g., magnetic disk)
  7261.  01h    sequential-access device (e.g., magnetic tape)
  7262.  02h    printer device
  7263.  03h    processor device
  7264.  04h    write-once device (e.g., some optical disks)
  7265.  05h    CD-ROM device
  7266.  06h    scanner device
  7267.  07h    optical memory device (e.g., some optical disks)
  7268.  08h    medium changer device (e.g., jukeboxes)
  7269.  09h    communications device
  7270.  0Ah    (defined by ASC IT8)
  7271.  0Bh    (defined by ASC IT8)
  7272.  0Ch-1Eh reserved
  7273.  1Fh    unknown or no device type
  7274.  
  7275. (Table 0131)
  7276. Values for Future Domain SCSI peripheral qualifier:
  7277.  000b    device is currently connected to this logical unit and available
  7278.  001b    target is capable of supporting the specified peripheral, but the
  7279.       physical device is not currently connected to this logical unit
  7280.  010b    reserved
  7281.  011b    target can't support a physical device on this logical unit
  7282.  1xxb    vendor specific
  7283.  
  7284. Bitfields for Future Domain SCSI version:
  7285. Bit(s)    Description    (Table 0132)
  7286.  0-2    ANSI-approved version
  7287.     000 device might or might not comply to ANSI standard
  7288.     001 device complies to ANSI SCSI-1
  7289.     010 device complies to ANSI SCSI-2
  7290.     other reserved
  7291.  3-5    ECMA version
  7292.  6-7    ISO version
  7293.  
  7294. Bitfields for Future Domain SCSI data format/capabilities:
  7295. Bit(s)    Description    (Table 0133)
  7296.  0-2    response data format
  7297.     000 information block is as specified in SCSI-1
  7298.     001 information block is as specified in CCS
  7299.     010 information block is as specified in SCSI-2
  7300.     other reserved
  7301.  4-5    reserved
  7302.  6    terminate I/O process supported
  7303.  7    asynchronous event notification supported
  7304.  
  7305. Bitfields for Future Domain SCSI device capabilities:
  7306. Bit(s)    Description    (Table 0134)
  7307.  0    device responds to RESET with a hard RESET
  7308.  1    tagged command queuing supported
  7309.  2    reserved
  7310.  3    linked commands supported
  7311.  4    synchronous data transfer supported
  7312.  5    16-transfers supported
  7313.  6    32-transfers supported
  7314.  7    relative addressing supported
  7315. --------B-1318-------------------------------
  7316. INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
  7317.     AH = 18h
  7318.     DL = drive number
  7319.     CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
  7320.     CL = sectors per track (bits 0-5)
  7321.          top 2 bits of highest cylinder number (bits 6,7)
  7322. Return: AH = status
  7323.         00h requested combination supported
  7324.         01h function not available
  7325.         0Ch not supported or drive type unknown
  7326.         80h there is no disk in the drive
  7327.     ES:DI -> 11-byte parameter table (see INT 1E)
  7328. SeeAlso: AH=05h,AH=07h,AH=17h
  7329. --------d-1318-------------------------------
  7330. INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
  7331.     AH = 18h
  7332.     DL = hard drive ID
  7333. Return: CF set on error
  7334.         AH = status code (see #0120 at AH=01h)
  7335.     CF clear if successful
  7336.         AX = 4321h (magic number)
  7337.         CX = controller family code (see #0135)
  7338.         ---if family code=0200h
  7339.         DH = number of exclusively ROM-controlled SCSI devices
  7340.         DL = canonical SCSI device number for specified drive
  7341.         ---if family code <> 0200h
  7342.         BH = number of exclusively ROM-controlled SCSI devices
  7343.         BL = canonical SCSI device number for specified drive
  7344. Notes:    also sets an internal flag (non-resettable) which prevents some
  7345.       controller messages from being displayed, allows writes to
  7346.       removable devices (use caution!), and enables the INT 13 interface
  7347.       for more than one drive (i.e. DL >= 81h) in at least some ROM
  7348.       versions
  7349.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7350.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7351. SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
  7352.  
  7353. (Table 0135)
  7354. Values for Future Domain SCSI controller family code:
  7355.  0200h    TMC-1680/? (ROM 3.0)
  7356.  0203h    TMC-1650/1660/1670/1680 (ROM 2.0)
  7357.  040Ah    TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
  7358.  050Dh    TMC-840/841/880/881 (ROM 5.2D)
  7359.  0700h    TMC-830/850/860/875/885 (ROM 7.0)
  7360. --------B-1319-------------------------------
  7361. INT 13 - FIXED DISK - PARK HEADS ON ESDI DRIVE (XT286,PS)
  7362.     AH = 19h
  7363.     DL = drive
  7364. Return: CF set on error
  7365.     CF clear if successful
  7366.     AH = status (see #0120 at AH=01h)
  7367. SeeAlso: AH=11h
  7368. --------d-1319-------------------------------
  7369. INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
  7370.     AH = 19h
  7371.     DL = hard drive ID
  7372. Return: CF set on error
  7373.         AH = status code (see #0120 at AH=01h)
  7374.     CF clear if successful
  7375.         AH = disk type (03h = fixed disk)
  7376.         CX:DX = number of 512-byte sectors
  7377. Notes:    sends SCSI Read Capacity command to get number of logical blocks and
  7378.       adjusts the result for 512-byte sectors
  7379.     displays either "Error in Read Capacity Command" or "nnn Bytes per
  7380.       sector" (nnn=256 or 512, the only sizes supported in the translation
  7381.       code)
  7382.     should probably be called when a removable device has its media changed
  7383.     returns the same values as AH=15h
  7384.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7385.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7386. SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
  7387. --------d-131A-------------------------------
  7388. INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
  7389.     AH = 1Ah
  7390.     AL = defect table entry count
  7391.     CL = format modifiers (see #0136)
  7392.     DL = drive (80h,81h)
  7393.     ES:BX -> defect table (see #0137), ignored if AL=00h
  7394. Return: CF set on error
  7395.     CF clear if successful
  7396.     AH = status (see #0120 at AH=01h)
  7397. Note:    if periodic interrupt selected, INT 15/AH=0Fh is called after each
  7398.       cylinder is formatted
  7399. SeeAlso: AH=07h,INT 15/AH=0Fh
  7400.  
  7401. Bitfields for ESDI format modifiers:
  7402. Bit(s)    Description    (Table 0136)
  7403.  4    generate periodic interrupt
  7404.  3    perform surface analysis
  7405.  2    update secondary defect map
  7406.  1    ignore secondary defect map
  7407.  0    ignore primary defect map
  7408.  
  7409. Format of defect table entry [array]:
  7410. Offset    Size    Description    (Table 0137)
  7411.  00h  3 BYTEs    relative sector address (little-endian)
  7412.  03h    BYTE    flags and defect count
  7413.         bit 7: last logical sector on track
  7414.         bit 6: first logical sector on track
  7415.         bit 5: last logical sector on cylinder
  7416.         bit 4: logical sectors are pushed onto next track
  7417.         bits 3-0: number of defects pushed from previous cylinder
  7418. --------d-131A-------------------------------
  7419. INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
  7420.     AH = 1Ah
  7421.     CH = track (bits 8,9 in high bits of CL)
  7422.     CL = sector (01h to number of sectors/track for drive)
  7423.     DH = head
  7424.     DL = hard drive ID
  7425. Return: CF set on error
  7426.     AH = status code (see #0120 at AH=01h)
  7427.     CX:DX = logical block number of last quickly-accessible block after
  7428.         given block
  7429. Notes:    sends SCSI Read Capacity command with the PMI bit set to obtain the
  7430.       logical block address of the last block after which a substantial
  7431.       delay in data transfer will be encountered (usually the last block
  7432.       on the current cylinder).  No translation to 512 byte sectors is
  7433.       performed on the result if data is stored on the disk in other than
  7434.       512 byte sectors.
  7435.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7436.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7437. SeeAlso: AH=15h,AH=19h"SCSI"
  7438. --------d-131B-------------------------------
  7439. INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
  7440.     AH = 1Bh
  7441.     AL = number of sectors to read
  7442.     DL = drive
  7443.     ES:BX -> buffer for manufacturing header (defect list)
  7444. Return: CF set on error
  7445.     CF clear if successful
  7446.     AH = status
  7447. Note:    manufacturing header format (Defect Map Record format) can be found
  7448.       in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
  7449.     the first sector read contains the manufacturing header with the number
  7450.       of defect entries and the beginning of the defect map; the remaining
  7451.       sectors contain the remainder of the defect map
  7452. --------d-131B-------------------------------
  7453. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
  7454.     AH = 1Bh
  7455.     DL = hard drive ID
  7456. Return: CF set on error
  7457.         AH = status code (see #0120 at AH=01h)
  7458.     CF clear if successful
  7459.         ES:BX -> SCSI disk information block (see #0138)
  7460. Notes:    also sets a non-resettable flag which prevents some controller messages
  7461.       from being displayed
  7462.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  7463.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  7464. SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
  7465.  
  7466. Format of Future Domain SCSI disk information block:
  7467. Offset    Size    Description    (Table 0138)
  7468.  00h    BYTE    drive physical information (see #0139)
  7469.  01h    WORD    translated number of cylinders
  7470.  03h    BYTE    translated number of heads
  7471.  04h    BYTE    translated number of sectors per track (17, 34, or 63)
  7472.  05h    BYTE    drive address
  7473.         bits 0-2: logical unit number
  7474.         bits 3-5: device number
  7475.  06h    BYTE    01h at initialization
  7476.  07h    BYTE    sense code byte 00h, or extended sense code byte 0Ch
  7477.  08h    BYTE    00h
  7478.  09h    BYTE    00h or extended sense code byte 02h (sense key)
  7479.  0Ah    BYTE    00h
  7480.  0Bh 10 BYTEs    copy of Command Descriptor Block (CDB)
  7481.  15h    DWORD    translated number of sectors on device
  7482.  
  7483. Bitfields for Future Domain SCSI device physical information:
  7484. Bit(s)    Description    (Table 0139)
  7485.  0    ???
  7486.  1    device uses parity
  7487.  2    256 bytes per sector instead of 512
  7488.  3    don't have capacity yet???
  7489.  4    disk is removable
  7490.  5    logical unit number is not present
  7491. --------d-131C-------------------------------
  7492. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
  7493.     AH = 1Ch
  7494.     DL = hard drive ID (any valid SCSI hard disk)
  7495. Return: CF set on error
  7496.         AH = status code (see #0120 at AH=01h)
  7497.     CF clear if successful
  7498.         ES:BX -> first byte of free RAM on controller
  7499. Notes:    the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
  7500.       to 1BFFh on-board the controller for storing drive information and
  7501.       controller status; ES:BX points to the first byte available for other
  7502.       uses
  7503.     ES contains the segment at which the controller resides; the
  7504.       controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
  7505. SeeAlso: AH=1Bh"SCSI"
  7506. --------d-131C-------------------------------
  7507. INT 13 U - ESDI FIXED DISK - ???
  7508.     AH = 1Ch
  7509.     AL = subfunction (01h-06h)
  7510.     DL = drive (80h,81h)
  7511.     ???
  7512. Return: ???
  7513. Note:    these functions perform a controller command 0612h without DMA
  7514. --------d-131C08-----------------------------
  7515. INT 13 U - ESDI FIXED DISK - GET COMMAND COMPLETION STATUS
  7516.     AX = 1C08h
  7517.     DL = drive (80h,81h)
  7518.     ES:BX -> buffer for Command Complete Status Block (see #0140)
  7519. Return: CF set on error
  7520.     CF clear if successful
  7521.     AH = status (see #0120 at AH=01h)
  7522. SeeAlso: AX=1C09h,AX=1C0Ah
  7523.  
  7524. Format of ESDI Command Complete Status Block:
  7525. Offset    Size    Description    (Table 0140)
  7526.  00h    BYTE    07h
  7527.  01h    BYTE    size of block in words (07h)
  7528.  02h    BYTE    command error code (see #0141)
  7529.  03h    BYTE    command status code (see #0142)
  7530.  04h    BYTE    device error code, group 1 (see #0143)
  7531.  05h    BYTE    device error flags, group 2 (see #0144)
  7532.  06h    WORD    number of unprocessed sectors due to abnormal termination
  7533.  08h    DWORD    last Relative Sector Address processed by command
  7534.  0Ch    WORD    number of sectors corrected by ECC codes
  7535.  
  7536. (Table 0141)
  7537. Values for ESDI command error code:
  7538.  00h    successful
  7539.  01h    parameter invalid
  7540.  02h    unknown function
  7541.  03h    unsupported command
  7542.  04h    command cancelled
  7543.  05h    unknown function
  7544.  06h    controller diagnostics failed
  7545.  07h    formatting failed
  7546.  08h    format error in primary map
  7547.  09h    format error in secondary map
  7548.  0Ah    diagnostic failure during formatting
  7549.  0Bh    warning: secondary map too large during formatting
  7550.  0Ch    warning: non-zero defect
  7551.  0Dh    system checksum error during formatting
  7552.  0Eh    warning: incompatible device
  7553.  0Fh    warning: push table overflowed
  7554.  10h    warning: more than 15 sectors pushed to next cylinder
  7555.  11h    internal hardware error
  7556.  12h    warning: errors found while verifying sectors
  7557.  13h    invalid device
  7558.  FFh    device error
  7559.  
  7560. (Table 0142)
  7561. Values for ESDI command status code:
  7562.  01h    successful
  7563.  03h    successful after ECC
  7564.  05h    successful after retries
  7565.  06h    format partially completed
  7566.  07h    successful after ECC and retries
  7567.  08h    command completed with warning (see #0141)
  7568.  09h    abort complete
  7569.  0Ah    reset complete
  7570.  0Bh    data transfer ready (no status block)
  7571.  0Ch    command completed with failure (see #0143,#0144)
  7572.  0Dh    DMA error
  7573.  0Eh    command block error (see #0141)
  7574.  0Fh    bad attention code
  7575.  
  7576. (Table 0143)
  7577. Values for ESDI device error code, group 1:
  7578.  00h    successful
  7579.  01h    seek fault detected by device
  7580.  02h    interface fault
  7581.  03h    sector ID not found
  7582.  04h    disk not formatted
  7583.  05h    unrecoverable ECC error
  7584.  06h    ECC error in sector ID
  7585.  07h    invalid relative sector address
  7586.  08h    timeout
  7587.  09h    sector defective
  7588.  0Ah    disk changed (removable media)
  7589.  0Bh    selection error
  7590.  0Ch    write protected (removable media)
  7591.  0Dh    write fault
  7592.  0Eh    read fault
  7593.  0Fh    no index or sector pulse
  7594.  10h    device not ready
  7595.  11h    seek error detected by adapter
  7596.  12h    bad format
  7597.  13h    volume overflow
  7598.  14h    data address mark not found
  7599.  15h    sector ID not found
  7600.  16h    missing device configuration data
  7601.  17h    first/last relative sector flags missing
  7602.  18h    track empty
  7603.  81h    timeout while waiting for stop
  7604.  82h    timeout while waiting for end of data transfer
  7605.  84h    stopped awaiting data transfer during formatting
  7606.  85h    timeout while waiting for head switch
  7607.  86h    timeout while awaiting DMA completion
  7608.  
  7609. Bitfields for ESDI device error flags, group 2:
  7610. Bit(s)    Description    (Table 0144)
  7611.  7-5    unused
  7612.  4    ready
  7613.  3    selected
  7614.  2    write fault
  7615.  1    on track 0
  7616.  0    seek/command complete
  7617. --------d-131C09-----------------------------
  7618. INT 13 U - ESDI FIXED DISK - GET DEVICE STATUS
  7619.     AX = 1C09h
  7620.     DL = drive (80h,81h)
  7621.     ES:BX -> buffer for Device Status Block (see #0145)
  7622. Return: CF set on error
  7623.     CF clear if successful
  7624.     AH = status (see #0120 at AH=01h)
  7625. SeeAlso: AX=1C08h,AX=1C0Ah
  7626.  
  7627. Format of ESDI Device Status Block:
  7628. Offset    Size    Description    (Table 0145)
  7629.  00h    BYTE    08h
  7630.  01h    BYTE    number of words in block (09h)
  7631.  02h    BYTE    error flags
  7632.  03h    BYTE    unused
  7633.  04h    BYTE    command error code (see #0141)
  7634.  05h    BYTE    command status code (see #0142)
  7635.  06h    WORD    ESDI standard status
  7636.  08h  5 WORDs    ESDI vendor-specific status codes
  7637. --------d-131C0A-----------------------------
  7638. INT 13 U - ESDI FIXED DISK - GET DEVICE CONFIGURATION
  7639.     AX = 1C0Ah
  7640.     DL = drive (80h,81h)
  7641.     ES:BX -> buffer for Drive Configuration Status Block (see #0146)
  7642. Return: CF set on error
  7643.     CF clear if successful
  7644.     AH = status (see #0120 at AH=01h)
  7645. Note:    device configuration format can be found in IBM ESDI Fixed Disk Drive
  7646.       Adapter/A Technical Reference
  7647. SeeAlso: AX=1C08h,AX=1C0Bh,AX=1C0Ch
  7648.  
  7649. Format of ESDI Drive Configuration Status Block:
  7650. Offset    Size    Description    (Table 0146)
  7651.  00h    BYTE    09h
  7652.  01h    BYTE    number of words in block (06h)
  7653.  02h    BYTE    flags
  7654.  03h    BYTE    number of spare sectors per cylinder
  7655.  04h    DWORD    total number of usable sectors
  7656.  08h    WORD    total number of cylinders
  7657.  0Ah    BYTE    tracks per cylinder
  7658.  0Bh    BYTE    sectors per track
  7659. --------d-131C0B-----------------------------
  7660. INT 13 U - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
  7661.     AX = 1C0Bh
  7662.     ES:BX -> buffer for Controller Configuration Status Block (see #0147)
  7663. Return: CF set on error
  7664.     CF clear if successful
  7665.     AH = status (see #0120 at AH=01h)
  7666. SeeAlso: AX=1C0Ch
  7667.  
  7668. Format of ESDI Controller Configuration Status Block:
  7669. Offset    Size    Description    (Table 0147)
  7670.  00h    BYTE    E9h
  7671.  01h    BYTE    number of words in block (06h)
  7672.  02h    WORD    unused (0000h)
  7673.  04h    DWORD    controller microcode revision level
  7674.  08h  2 WORDs    unused (0000h)
  7675. --------d-131C0C-----------------------------
  7676. INT 13 U - ESDI FIXED DISK - GET POS INFORMATION
  7677.     AX = 1C0Ch
  7678.     ES:BX -> buffer for POS Information Status Block (see #0148)
  7679. Return: CF set on error
  7680.     CF clear if successful
  7681.     AH = status (see #0120 at AH=01h)
  7682. SeeAlso: AX=1C0Bh
  7683.  
  7684. Format of ESDI POS Information Status Block:
  7685. Offset    Size    Description    (Table 0148)
  7686.  00h    BYTE    EAh
  7687.  01h    BYTE    number of words in block (05h)
  7688.  02h    WORD    magic value FFDDh
  7689.  04h    BYTE    POS register 3
  7690.  05h    BYTE    POS register 2
  7691.  06h    BYTE    POS register 5 (unused, FFh)
  7692.  07h    BYTE    POS register 4 (unused, FFh)
  7693.  08h    BYTE    POS register 7 (unused, FFh)
  7694.  09h    BYTE    POS register 6 (unused, FFh)
  7695. --------d-131C0D-----------------------------
  7696. INT 13 U - ESDI FIXED DISK - ???
  7697.     AX = 1C0Dh
  7698.     DL = drive (80h,81h)
  7699.     ???
  7700. Return: ???
  7701. Note:    invokes controller command 0614h without DMA
  7702. SeeAlso: AH=1Ch"ESDI",AX=1C0Fh
  7703. --------d-131C0E-----------------------------
  7704. INT 13 U - ESDI FIXED DISK - TRANSLATE RBA TO ABA
  7705.     AX = 1C0Eh
  7706.     CH = low 8 bits of cylinder number
  7707.     CL = sector number, high two bits of cylinder number in bits 6 and 7
  7708.     DH = head number
  7709.     DL = drive number (80h,81h)
  7710.     ES:BX -> ABA number
  7711. Return: CF set on error
  7712.     CF clear if successful
  7713.     AH = status (see #0120 at AH=01h)
  7714. Note:    ABA (absolute block address) format can be found in IBM ESDI Adapter
  7715.       Technical Reference by using its Device Configuration Status Block
  7716. --------d-131C0F-----------------------------
  7717. INT 13 U - ESDI FIXED DISK - ???
  7718.     AX = 1C0Fh
  7719.     DL = drive (80h,81h)
  7720.     ???
  7721. Return: ???
  7722. Note:    invokes controller command 0614h without DMA
  7723. SeeAlso: AH=1Ch"ESDI",AX=1C0Dh,AX=1C12h
  7724. --------d-131C12-----------------------------
  7725. INT 13 U - ESDI FIXED DISK - ???
  7726.     AX = 1C12h
  7727.     DL = drive (80h,81h)
  7728.     ???
  7729. Return: ???
  7730. Note:    invokes controller command 0612h without DMA
  7731. SeeAlso: AH=1Ch"ESDI",AX=1C0Fh
  7732. --------c-131D-------------------------------
  7733. INT 13 - IBMCACHE.SYS - CACHE STATUS
  7734.     AH = 1Dh
  7735.     AL = subfunction
  7736.         01h get status record
  7737.         DL = drive???
  7738.         Return: ES:BX -> status record (see #0149)
  7739.             CF set on error
  7740.                 AH = error code
  7741.         02h set cache status
  7742.         ES:BX -> status record (see #0149)
  7743.         DL = drive???
  7744.         Return: CF set on error
  7745.  
  7746. Format of IBMCACHE.SYS status record:
  7747. Offset    Size    Description    (Table 0149)
  7748.  00h    DWORD    total number of read requests
  7749.  04h    DWORD    total number of hits
  7750.  08h    DWORD    number of physical disk reads
  7751.  0Ch    DWORD    total number of sectors requested by physical disk reads
  7752.  10h  6 BYTEs    ???
  7753.  16h    DWORD    pointer to start of error list (see #0150)
  7754.  1Ah    DWORD    pointer to end of error list
  7755.  1Eh    WORD    ???
  7756.  20h    BYTE    using extended memory if nonzero
  7757.  21h    BYTE    ???
  7758.  22h  4 BYTEs    ASCII version number
  7759.  26h    WORD    cache size in KB
  7760.  28h    WORD    sectors per page
  7761.  
  7762. Format of IBMCACHE.SYS error list:
  7763. Offset    Size    Description    (Table 0150)
  7764.  00h    DWORD    relative block address of bad page
  7765.  04h    BYTE    drive
  7766.  05h    BYTE    sector bit-map
  7767.  06h    WORD    next error
  7768. --------d-131F-------------------------------
  7769. INT 13 - SyQuest - DOOR LATCH/DOOR BUTTON DETECT
  7770.     AH = 1Fh
  7771.     AL = subfunction
  7772.         00h allow media removal
  7773.         01h prevent media removal (lock door)
  7774.     DL = drive ID (bit 7 set for hard disks)
  7775. Return:    CF clear if successful
  7776.         AH = 00h
  7777.     CF set on error
  7778.         AH = error code
  7779.         00h successful
  7780.         01h invalid function request
  7781.         80h timeout
  7782.         DDh media change requested
  7783. SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=59h"SyQuest"
  7784. --------d-1320-------------------------------
  7785. INT 13 - DISK - ??? (Western Digital "Super BIOS")
  7786.     AH = 20h
  7787.     ???
  7788. Return: ???
  7789. Notes:    returns some kind of status related to whether the drive contains its
  7790.       default media type
  7791.     QEMM v6.00 calls INT 13/AX=2000h/DL=81h in some cases
  7792. --------b-1320-------------------------------
  7793. INT 13 U - Compaq DESKPRO/i - GET CURRENT MEDIA FORMAT
  7794.     AH = 20h
  7795.     DL = drive number (00h,01h)
  7796. Return: CF clear if successful
  7797.         AL = media type (see #0151)
  7798.     CF set on error
  7799.         AH = error code
  7800.         31h no such drive
  7801.         32h incorrect drive type stored in CMOS
  7802. Note:    this function is supported by the 3/8/93 ROM BIOS, but only partially
  7803.       (AL is always 00h when successful) by the 8/3/93 version
  7804.  
  7805. (Table 0151)
  7806. Values for Compaq diskette media type:
  7807.  03h    720K
  7808.  04h    1.44M
  7809.  06h    2.88M
  7810.  0Ch    360K
  7811.  0Dh    1.2M
  7812.  0Eh    ???
  7813.  0Fh    ??? (1024-byte sectors)
  7814. --------c-1320-------------------------------
  7815. INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
  7816.     AH = 20h
  7817.     AL = drive (00h = A:, etc. or 7Fh for all removable drives???
  7818.                    or FFh for all drives)
  7819. Return: AX = status (0000h successful)
  7820. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7821.       Associates, Inc.
  7822. Desc:    flush any dirty buffers for the specified drive(s) and then discard
  7823.       those sector buffers
  7824. SeeAlso: AH=21h"QUICKCACHE",AH=22h"QUICKCACHE",AH=28h
  7825. --------d-1321-------------------------------
  7826. INT 13 U - PS/1 HARD DISK - READ MULTIPLE DISK SECTORS
  7827.     AH = 21h
  7828.     AL = number of sectors to write
  7829.     CH = low byte of 12-bit cylinder number
  7830.     CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
  7831.     DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
  7832.     DL = drive number (80h,81h)
  7833.     ES:BX -> buffer for data to be read
  7834. Return: CF clear if successful
  7835.         ES:BX buffer filled
  7836.     CF set on error
  7837.     AH = status (see #0120 at AH=01h)
  7838. Desc:    read from the disk using the Multiple Block mode available on newer
  7839.       IDE drives and some hard disk controllers, which generates an
  7840.       interrupt only after the end of transferring a group of sectors
  7841.       rather than after each sector
  7842. Note:    must call AH=24h"PS/1" before using this function
  7843. SeeAlso: AH=02h,AH=22h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
  7844. --------c-1321-------------------------------
  7845. INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
  7846.     AH = 21h
  7847. Return: AX = status (0000h successful)
  7848. Desc:    immediately write all dirty sectors back to disk
  7849. SeeAlso: AH=25h"QUICKCACHE",AH=2Eh,AH=2Fh
  7850. --------d-1322-------------------------------
  7851. INT 13 U - PS/1 HARD DISK - WRITE MULTIPLE DISK SECTORS
  7852.     AH = 22h
  7853.     AL = number of sectors to write
  7854.     CH = low byte of 12-bit cylinder number
  7855.     CL = starting sector (bits 0-5) and bits 8-9 of cylinder (bits 6-7)
  7856.     DH = head number (bits 0-5) and bits 10-11 of cylinder (bits 6-7)
  7857.     DL = drive number (80h,81h)
  7858.     ES:BX -> buffer containing data to be written
  7859. Return: CF clear if successful
  7860.     CF set on error
  7861.     AH = status (see #0120 at AH=01h)
  7862. Desc:    write to the disk using the Multiple Block mode available on newer
  7863.       IDE drives and some hard disk controllers, which generates an
  7864.       interrupt only after the end of transferring a group of sectors
  7865.       rather than after each sector
  7866. Note:    must call AH=24h"PS/1" before using this function
  7867. SeeAlso: AH=03h,AH=21h"PS/1",AH=23h"PS/1",AH=24h"PS/1"
  7868. --------c-1322-------------------------------
  7869. INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
  7870.     AH = 22h
  7871.     AL = new state (00h disabled, 01h enabled)
  7872. Return: AX = status (0000h successful)
  7873. Note:    enables/disables caching of all drives
  7874. SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
  7875. --------d-1323-------------------------------
  7876. INT 13 U - PS/1 HARD DISK - SET CONTROLLER FEATURES REGISTER
  7877.     AH = 23h
  7878.     AL = feature number (see #0152)
  7879.     DL = drive number (80h,81h)
  7880.     ???
  7881. Return: CF clear if successful
  7882.     CF set on error
  7883.     AH = status (see #0120 at AH=01h)
  7884. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=24h"PS/1",AH=25h"PS/1"
  7885.  
  7886. (Table 0152)
  7887. Values for PS/1 hard disk feature number:
  7888.  01h    select 8-bit data transfers instead of 16-bit
  7889.  02h    enable write cache
  7890.  22h    Write Same, user-specified area
  7891.  33h    disable retries
  7892.  44h    set number of ECC bytes for read long/write long (see AH=0Ah,AH=0Bh)
  7893.  54h    set cache segments
  7894.  55h    disable lookahead
  7895.  66h    disable reverting to power-on defaults
  7896.  77h    disable error correctioni
  7897.  81h    select 16-bit data transfers (default)
  7898.  82h    disable write cache
  7899.  88h    enable error correction (default)
  7900.  99h    enable retries (default)
  7901.  AAh    enable lookahead
  7902.  BBh    set ECC length for read long/write long to four bytes
  7903.  CCh    enable reverting to power-on defaults
  7904.  DDh    Write Same, entire disk
  7905. --------c-1323-------------------------------
  7906. INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
  7907.     AH = 23h
  7908. Return: AX = status (0000h successful)
  7909.     ES = segment of ??? data
  7910. --------d-1324-------------------------------
  7911. INT 13 U - PS/1 HARD DISK - SET MULTIPLE BLOCKS
  7912.     AH = 24h
  7913.     AL = number of sectors per block (2,4,8,16)
  7914.     DL = drive number (80h,81h)
  7915.     ???
  7916. Return: CF clear if successful
  7917.     CF set onerror
  7918.     AH = status (see #0120 at AH=01h)
  7919. Desc:    specify how many sectors the controller should transfer as a group
  7920.       between operation-complete interrupts when using the Read Multiple
  7921.       and Write Multiple functions (AH=21h,AH=22h)
  7922. SeeAlso: AH=21h"PS/1",AH=22h"PS/1",AH=23h"PS/1",AH=25h"PS/1"
  7923. --------c-1324-------------------------------
  7924. INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
  7925.     AH = 24h
  7926.     BX = new number of sector buffers in cache
  7927. Return: AX = status
  7928.         0000h successful
  7929.         0001h failed--size adjusted
  7930.         8000h cache cannot be resized while enabled
  7931. SeeAlso: AH=36h
  7932. --------d-1325-------------------------------
  7933. INT 13 - PS/1 HARD DISK - GET DRIVE INFORMATION
  7934.     AH = 25h
  7935.     ???
  7936. Return: ???
  7937. Desc:    retrieves the 256 words of drive data stored on an IDE hard disk
  7938. SeeAlso: AH=23h"PS/1"
  7939. --------c-1325-------------------------------
  7940. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
  7941.     AH = 25h
  7942.     BX = interval
  7943. Return: AX = status (0000h successful)
  7944. Desc:    specify how often the cache should write dirty buffers to disk when
  7945.       buffered writes are enabled
  7946. SeeAlso: AH=21h"QUICKCACHE",AH=2Ch,AH=2Eh
  7947. --------c-1326-------------------------------
  7948. INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
  7949.     AH = 26h
  7950. Return: AX = status
  7951.         0000h successful
  7952.         0001h-00FFh interrupt vector which was hooked by another TSR
  7953. SeeAlso: AH=27h
  7954. --------c-1327--BX0000-----------------------
  7955. INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
  7956.     AH = 27h
  7957.     BX = 0000h
  7958. Return: AX = 0000h if installed
  7959.     BX nonzero if installed
  7960.         BH = major version
  7961.         BL = binary minor version
  7962. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7963.       Associates, Inc.
  7964. SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
  7965. --------c-1328-------------------------------
  7966. INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
  7967.     AH = 28h
  7968.     AL = new state (00h disabled, 01h enabled)
  7969. Return: AX = status (0000h successful)
  7970. SeeAlso: AH=20h"QUICKCACHE"
  7971. --------c-1329-------------------------------
  7972. INT 13 U - QUICKCACHE II v4.20 - NOP
  7973.     AH = 29h
  7974. Return: AX = 0000h
  7975. --------c-132A-------------------------------
  7976. INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
  7977.     AH = 2Ah
  7978.     AL = buffer size (1-30)
  7979. Return: AX = status (0000h successful)
  7980. Desc:    specify the number of cache sector buffers to dedicate to buffered read
  7981.       and write operations
  7982. SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
  7983. --------c-132B-------------------------------
  7984. INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
  7985.     AH = 2Bh
  7986.     AL = new state (00h disabled, 01h enabled)
  7987. Return: AX = status (0000h successful)
  7988. --------c-132C-------------------------------
  7989. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
  7990.     AH = 2Ch
  7991.     AL = new state (00h disabled, 01h enabled)
  7992. Return: AX = status (0000h successful)
  7993. Desc:    specify whether the cache should delay disk writes
  7994. Note:    this function enables or disables delayed writes for all drives; use
  7995.       AH=38h to change a single drive
  7996. SeeAlso: AH=25h"QUICKCACHE",AH=2Dh,AH=2Eh,AH=38h
  7997. --------c-132D-------------------------------
  7998. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
  7999.     AH = 2Dh
  8000.     AL = new state (00h disabled, 01h enabled)
  8001. Return: AX = status (0000h successful)
  8002. Desc:    specify whether the cache should attempt to read ahead of actual
  8003.       requests
  8004. Note:    this function enables or disables read-ahead for all drives; use AH=37h
  8005.       to change a single drive
  8006. SeeAlso: AH=2Ch,AH=37h
  8007. --------c-132E-------------------------------
  8008. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
  8009.     AH = 2Eh
  8010.     BX = flush count
  8011. Return: AX = status (0000h successful)
  8012. Desc:    specify how many dirty sectors the cache should write after each flush
  8013.       interval (see AH=25h"QUICKCACHE") when buffered writes are enabled
  8014. SeeAlso: AH=21h"QUICKCACHE",AH=25h"QUICKCACHE",AH=2Ch
  8015. --------c-132F-------------------------------
  8016. INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
  8017.     AH = 2Fh
  8018. Return: AX = status (0000h successful)
  8019. Desc:    immediately flush up to "flushcount" dirty sectors to disk as if the
  8020.       flush interval had expired
  8021. SeeAlso: AH=21h"QUICKCACHE"
  8022. --------c-1330-------------------------------
  8023. INT 13 u - QUICKCACHE II v4.20 - GET INFO
  8024.     AH = 30h
  8025.     AL = what to get
  8026.         00h system info (see #0153)
  8027.         01h drive info (see #0154)
  8028.         02h access frequency (array of 30 words)
  8029.         03h drive index
  8030.         (array of 32 bytes indicating BIOS drive for DOS drive)
  8031.     DS:DX -> buffer for info
  8032. Return: AX = status (0000h successful, 8000h invalid info specifier)
  8033. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  8034.       Associates, Inc.
  8035.  
  8036. Format of QUICKCACHE II system info:
  8037. Offset    Size    Description    (Table 0153)
  8038.  00h    BYTE    flag: cache enabled
  8039.  01h    BYTE    flag: buffered writes enabled
  8040.  02h    BYTE    flag: buffered reads enabled
  8041.  03h    BYTE    flag: sounds enabled
  8042.  04h    BYTE    flag: autodismount enabled
  8043.  05h    BYTE    ???
  8044.  06h    BYTE    flag: ???
  8045.  07h    BYTE    flag: ???
  8046.  08h    BYTE    flag: "em_assigned"
  8047.  09h    BYTE    flag: emulated EMS
  8048.  0Ah    BYTE    single sector bonus
  8049.  0Bh    BYTE    "sticky_max"
  8050.  0Ch    BYTE    write sector bonus
  8051.  0Dh    BYTE    bonus threshold
  8052.  0Eh    WORD    flush interval
  8053.  10h    WORD    flush count
  8054.  12h    WORD    reserve pool size
  8055.  14h    WORD    remaining space in reserve pool
  8056.  16h    WORD    required free memory
  8057.  18h    WORD    total cache sectors
  8058.  1Ah    WORD    dirty cache sectors
  8059.  1Ch    BYTE    trace buffer size
  8060.  1Dh    BYTE    reserved (padding)
  8061.  
  8062. Format of QUICKCACHE II drive info [16-element array, one element]:
  8063. Offset    Size    Description    (Table 0154)
  8064.  00h    BYTE    DOS drive number
  8065.  01h    BYTE    BIOS drive number
  8066.  02h    BYTE    maximum sector number
  8067.  03h    BYTE    maximum head number
  8068.  04h    BYTE    read buffer size
  8069.  05h    BYTE    write buffer size
  8070.  06h    BYTE    last status
  8071.  07h    BYTE    flag: enabled
  8072.  08h    BYTE    flag: buffered write enabled
  8073.  09h    BYTE    flag: buffered read enabled
  8074.  0Ah    BYTE    flag: in use (drive info is valid)
  8075.  0Bh    BYTE    flag: cylinder flush
  8076.  0Ch    BYTE    reserved (padding)
  8077.  0Dh    BYTE    sectors per track
  8078.  0Eh    WORD    sector size
  8079.  10h    WORD    sectors assigned
  8080.  12h    WORD    dirty sectors
  8081.  14h    WORD    reserved sectors
  8082.  16h    WORD    number of read errors
  8083.  18h    WORD    number of write errors
  8084.  1Ah    DWORD    "rio_count"
  8085.  1Eh    DWORD    number of cache misses
  8086.  22h    DWORD    "wio_count"
  8087.  26h    DWORD    "dio_count"
  8088. --------c-1331-------------------------------
  8089. INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
  8090.     AH = 31h
  8091.     BX = number of paragraphs of conventional memory to reserve for apps
  8092. Return: AX = status (0000h successful)
  8093. --------c-1332-------------------------------
  8094. INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
  8095.     AH = 32h
  8096.     AL = drive number (00h=A:)
  8097. Return: AX = status (0000h successful)
  8098. SeeAlso: AH=22h"QUICKCACHE",AH=33h
  8099. --------c-1333-------------------------------
  8100. INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
  8101.     AH = 33h
  8102.     AL = drive number (00h=A:)
  8103. Return: AX = status (0000h successful)
  8104. SeeAlso: AH=22h"QUICKCACHE",AH=32h
  8105. --------c-1334-------------------------------
  8106. INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
  8107.     AH = 34h
  8108.     AL = function
  8109.         00h end sector locking/unlocking
  8110.         01h lock all accessed sectors into cache
  8111.         02h unlock all accessed sectors and discard from cache
  8112. Return: AX = status (0000h successful)
  8113. SeeAlso: AH=20h"QUICKCACHE",AH=35h
  8114. --------c-1335-------------------------------
  8115. INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
  8116.     AH = 35h
  8117.     BX = number of sectors in lock pool
  8118. Return: AX = status (0000h successful)
  8119. Desc:    specify the number of cache sector buffers which may be dedicated to
  8120.       data locked into the cache
  8121. SeeAlso: AH=34h
  8122. --------c-1336-------------------------------
  8123. INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
  8124.     AH = 36h
  8125.     AL = new size of trace buffer
  8126. Return: AX = status (0000h successful)
  8127. Note:    called with AL=05h during an INT 13/AH=24h"QUICKCACHE" call
  8128. SeeAlso: AH=24h"QUICKCACHE"
  8129. --------c-1337-------------------------------
  8130. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
  8131.     AH = 37h
  8132.     AL = new state (00h disabled, else enabled)
  8133.     DL = drive number (00h = A:)
  8134. Return: AX = status (0000h successful)
  8135. SeeAlso: AH=2Dh,AH=38h
  8136. --------c-1338-------------------------------
  8137. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
  8138.     AH = 38h
  8139.     AL = new state (00h disabled, else enabled)
  8140.     DL = drive number (00h = A:)
  8141. Return: AX = status (0000h successful)
  8142. SeeAlso: AH=2Ch,AH=37h
  8143. --------c-1339-------------------------------
  8144. INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
  8145.     AH = 39h
  8146.     AL = new size of read buffer
  8147.     DL = drive number (00h = A:)
  8148. Return: AX = status (0000h successful)
  8149. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  8150.       Associates, Inc.
  8151. SeeAlso: AH=2Ah,AH=3Ah
  8152. --------c-133A-------------------------------
  8153. INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
  8154.     AH = 3Ah
  8155.     AL = new size of write buffer
  8156.     DL = drive number (00h = A:)
  8157. Return: AX = status (0000h successful)
  8158. SeeAlso: AH=2Ah,AH=39h
  8159. --------c-133B-------------------------------
  8160. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  8161.     AH = 3Bh
  8162.     AL = new state of ??? (01h enabled, else disabled)
  8163. Return: AX = status (0000h successful)
  8164. Note:    is affected by the flag reported at offset 05h of the system info
  8165.       returned by AH=30h, and sets the flag at offset 06h
  8166. SeeAlso: AH=3Ch
  8167. --------c-133C-------------------------------
  8168. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  8169.     AH = 3Ch
  8170.     AL = new state of ??? (01h enabled, else disabled)
  8171. Return: AX = status (0000h successful)
  8172. Note:    is affected by the flag reported at offset 05h of the system info
  8173.       returned by AH=30h, and sets the flag at offset 07h
  8174. SeeAlso: AH=3Bh
  8175. --------c-133D-------------------------------
  8176. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
  8177.     AH = 3Dh
  8178.     AL = new state (01h enabled, else disabled)
  8179.     DL = drive number (00h = A:)
  8180. Return: AX = status (0000h successful)
  8181. --------c-133E-------------------------------
  8182. INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
  8183.     AH = 3Eh
  8184.     AL = new value for bonus
  8185. Return: AX = status (0000h successful)
  8186. Desc:    specify the bonus score to give to single-sector transfers in order to
  8187.       keep those sectors in the cache longer
  8188. --------c-133F-------------------------------
  8189. INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
  8190.     AH = 3Fh
  8191.     AL = new value for bonus threshold
  8192. Return: AX = status (0000h successful)
  8193. --------c-1340-------------------------------
  8194. INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
  8195.     AH = 40h
  8196.     AL = new value for "sticky_max"
  8197. Return: AX = status (0000h successful)
  8198. --------c-1341-------------------------------
  8199. INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
  8200.     AH = 41h
  8201.     AL = direction
  8202.         01h save to file
  8203.         else restore from file
  8204.     ES:DI -> 1024-byte buffer for ???
  8205. Return: AX = status (0000h successful, 8000h failed)
  8206. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  8207.       Associates, Inc.
  8208. --------N-134257DX1234-----------------------
  8209. INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
  8210.     AX = 4257h ("BW")
  8211.     DX = 1234h
  8212. Return: BX = 414Ch if installed
  8213. Program: BWLPD is the printer daemon from the BW-NFS package
  8214. SeeAlso: INT 62/AH=00h"ETHDEV"
  8215. --------v-135342CX0001-----------------------
  8216. INT 13 - ScanBoot - INSTALLATION CHECK
  8217.     AX = 5342h ("SB")
  8218.     CX = 0001h
  8219.     DX = 0000h
  8220. Return: CF clear if ScanBoot installed
  8221.        AX = 0000h
  8222.        CX = serial number ("SW" if shareware release)
  8223.        DX = version
  8224.        BX,SI,ES destroyed
  8225. Program: ScanBoot is a virus-detection TSR by PanSoft
  8226. --------d-135501-----------------------------
  8227. INT 13 - Seagate ST01/ST02 - Inquiry
  8228.     AX = 5501h
  8229.     DH = number of bytes to transfer
  8230.     DL = drive ID (80h, 81h, ...)
  8231.     ES:BX -> buffer for results
  8232. Return:    ES:BX buffer filled with the Inquiry results
  8233. Notes:    the ST01/ST02 BIOS does not return any success/failure indication,
  8234.       so all commands must be assumed to have been successful
  8235.     the ST01/ST02 BIOS always maps its drives after the previous BIOS
  8236.       drives without changing the BIOS drive count at 0040h:0075h
  8237.     this command is identical to the SCSI Inquiry command
  8238. --------d-135502-----------------------------
  8239. INT 13 - Seagate ST01/ST02 - RESERVED
  8240.     AX = 5502h
  8241. --------d-135503-----------------------------
  8242. INT 13 - Seagate ST01/ST01 - Set Device Type Qualifier (DTQ)
  8243.     AX = 5503h
  8244.     DH = DTQ byte (see #0155)
  8245.     DL = drive ID (80h, 81h, ...)
  8246. Return:    nothing
  8247.  
  8248. Bitfields for DTQ byte:
  8249. Bit(s)    Description    (Table 0155)
  8250.  7    reserved
  8251.  6    SCSI drive attached
  8252.  5    reserved
  8253.  4    selected drive is ST225N/NP (Paired)
  8254.  3    selected drive is ST225N
  8255.  2    Host Adapter checks parity on the selected drive 
  8256.  1    selected drive has been installed
  8257.  0    Seagate installation software present
  8258. --------d-135504-----------------------------
  8259. INT 13 U - Seagate - ??? - RETURN IDENTIFICATION
  8260.     AX = 5504h
  8261.     DX = drive (bit 7 set for hard disk)
  8262. Return: CF clear if successful
  8263.         AX = 4321h if ST01/ST02h
  8264.         AX = 4322h if ??? Seagate controller
  8265.     CF set on error
  8266. SeeAlso: AX=5505h,AX=5514h
  8267. --------d-135504-----------------------------
  8268. INT 13 - Seagate ST01/ST02 - RETURN IDENTIFICATION
  8269.     AX = 5504h
  8270.     DL = drive ID (80h, 81h, ...)
  8271. Return:    AX = 4321h
  8272.     BL = selected drive number (00h, 01h)
  8273.     BH = number of drives attached to Host Adapter (max. 2)
  8274. --------d-135505-----------------------------
  8275. INT 13 - Seagate - ??? - PARK HEADS
  8276.     AX = 5505h
  8277.     DX = drive (bit 7 set for hard disk)
  8278. Return: CF clear if successful
  8279.     CF set on error
  8280. SeeAlso: AX=5504h,AX=5515h
  8281. --------d-135505-----------------------------
  8282. INT 13 - Seagate ST01/ST02 - PARK HEADS
  8283.     AX = 5505h
  8284.     DL = drive ID (80h, 81h, ...)
  8285.     DH = subfunction
  8286.         00h park heads (SCSI Stop command)
  8287.         01h un-park heads (SCSI Start command)      
  8288. Return:    nothing
  8289. --------d-135506-----------------------------
  8290. INT 13 - Seagate ST01/ST02 - SCSI Bus Parity
  8291.     AX = 5506h
  8292.     DL = drive ID (80h, 81h, ...)
  8293.     DH = subfunction
  8294.         00h disable parity check
  8295.         01h enable parity check
  8296.         02h return current parity setting
  8297. Return:    AL = status
  8298.         00h parity checking disabled
  8299.         01h parity checking enabled
  8300. --------d-135507-----------------------------
  8301. INT 13 - Seagate ST01/ST02 - RESERVED FUNCTIONS
  8302.     AX = 5507h to 550Dh
  8303. Note:    officially listed as "reserved"
  8304. --------d-135514-----------------------------
  8305. INT 13 U - Seagate - ???
  8306.     AX = 5514h
  8307.     DX = drive (bit 7 set for hard disk)
  8308. Return: CF clear if successful
  8309.     CF set on error
  8310.     AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)
  8311. SeeAlso: AX=5504h,AX=5515h
  8312. --------d-135515-----------------------------
  8313. INT 13 U - Seagate - PARK HEADS???
  8314.     AX = 5515h
  8315.     DX = drive (bit 7 set for hard disk)
  8316. Return: CF clear if successful
  8317.     CF set on error
  8318. Note:    appears to be identical to AX=5505h
  8319. SeeAlso: AX=5504h,AX=5505h
  8320. --------d-1359-------------------------------
  8321. INT 13 - SyQuest - Generic SCSI pass through
  8322.     AH = 59h
  8323.     CX = HOST_ID, 0-based
  8324.     DX = 80h
  8325.     ES:BX pointer to SCSI structure (see #0156)
  8326. Return: CF clear
  8327.     AH = 95h
  8328. SeeAlso: AH=12h"SyQuest",AH=13h"SyQuest",AH=1Fh"SyQuest"
  8329.  
  8330. Format of SyQuest SCSI structure:
  8331. Offset    Size    Description    (Table 0156)
  8332.  00h    WORD    opcode (see #0157)
  8333.  02h    BYTE    target's SCSI ID
  8334.  03h    BYTE    target's logical unit number
  8335.  04h    BYTE    data direction (00h no data xfer, 01h data in, FFh data out)
  8336.  05h    BYTE    host status
  8337.         00h successful
  8338.         01h selection time out
  8339.         02h data over-run or under-run
  8340.  06h    BYTE    target status at command completion
  8341.         00h successful
  8342.         02h check status
  8343.         08h busy
  8344.  07h    BYTE    command data block length
  8345.  08h    DWORD    request data length
  8346.  0Ch    DWORD    result data length (actual length of data transferred)
  8347.  10h    DWORD    -> CDB
  8348.  14h    DWORD    -> data buffer
  8349. Note:    The handler does not perform a 'Request Sense' command if there was an error
  8350.  
  8351. (Table 0157)
  8352. Values for SCSI opcode:
  8353.  00h    verify interface
  8354.     clears carry flag and returns if function is available
  8355.  01h    returns the ID of the INT 13h Handler in a NULL terminated string of 
  8356.     length less than 40 byte including the terminator.
  8357.     The string is stored in the buffer pointed by p_buf.
  8358.  02h    device mapping info. The caller provides a one byte buffer.
  8359.     The handler stores the Int 13h Device ID (80h or above) in the buffer.
  8360.     It stores 0 if that target does not exists.
  8361.  03h    execute SCSI command
  8362.  04h    device reset
  8363.  05h    SCSI bus reset
  8364. --------d-1370-------------------------------
  8365. INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
  8366.     AH = 70h
  8367.     ???
  8368. Return: ???
  8369. Note:    Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
  8370.       formatting program) make this call, presumably to EDVR.SYS (the
  8371.       partitioning driver)
  8372. SeeAlso: AH=ADh
  8373. ----------1375-------------------------------
  8374. INT 13 - ???
  8375.     AH = 75h
  8376.     ???
  8377. Return: AH = ???
  8378.     ???
  8379. Note:    intercepted by PC-Cache (v5.1 only)
  8380. ----------1376-------------------------------
  8381. INT 13 - ???
  8382.     AH = 76h
  8383.     ???
  8384. Return: AH = ???
  8385.     ???
  8386. Note:    intercepted by PC-Cache (v5.1 only)
  8387. --------c-137B00-----------------------------
  8388. INT 13 - NOW! v3.05 - GET INFORMATION
  8389.     AX = 7B00h
  8390.     CX:DX -> 1F8h-byte buffer for information record (see #0158)
  8391. Return: AX = 0000h
  8392.     BX = segment of main resident code
  8393.     ES = ???
  8394. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  8395. SeeAlso: AX=7B02h,AH=EFh
  8396.  
  8397. Format of NOW! information record:
  8398. Offset    Size    Description    (Table 0158)
  8399.  00h 80 BYTEs    name of directory from which NOW! was started
  8400.  50h 424 BYTEs    ???
  8401.  81h  ? BYTEs    array of bytes for ???
  8402.  F7h 250 BYTEs    array of 25 entries, one per drive???
  8403.     Offset    Size    Description
  8404.      00h  2 BYTEs    ???
  8405.      02h    WORD    ???
  8406.      04h    WORD    ???
  8407.      06h  4 BYTEs    ???
  8408. 1F1h  7 BYTEs    ???
  8409. --------c-137B01-----------------------------
  8410. INT 13 - NOW! v3.05 - ???
  8411.     AX = 7B01h
  8412. Return: DX = segment of ???
  8413. SeeAlso: AX=7B00h
  8414. --------c-137B02-----------------------------
  8415. INT 13 - NOW! v3.05 - SET INFORMATION
  8416.     AX = 7B02h
  8417.     BX = segment of ??? (10h above a PSP)
  8418.     CX:DX -> 1F8h-byte information record (see #0158)
  8419. Return: ???
  8420. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  8421. Note:    NOW! grabs the INT 24h value from the PSP reached via the segment in
  8422.       BX
  8423. SeeAlso: AX=7B00h
  8424. --------c-137B03-----------------------------
  8425. INT 13 - NOW! v3.05 - ???
  8426.     AX = 7B03h
  8427.     ???
  8428. Return: ???
  8429. SeeAlso: AX=7B00h,AX=7B04h
  8430. --------c-137B04-----------------------------
  8431. INT 13 - NOW! v3.05 - ???
  8432.     AX = 7B04h
  8433.     ???
  8434. Return: ???
  8435. SeeAlso: AX=7B03h
  8436. --------c-137B05-----------------------------
  8437. INT 13 - NOW! v3.05 - GET DISK ACCESSES???
  8438.     AX = 7B05h
  8439. Return: BX:AX = number of physical accesses???
  8440.     DX:CX = total disk accesses???
  8441. SeeAlso: AX=7B00h,AX=7B06h
  8442. --------c-137B06-----------------------------
  8443. INT 13 - NOW! v3.05 - GET ???
  8444.     AX = 7B06h
  8445.     BX = ???
  8446. Return: AX = 0000h
  8447.     BX = ???
  8448. SeeAlso: AX=7B05h,AX=7B07h
  8449. --------c-137B07-----------------------------
  8450. INT 13 - NOW! v3.05 - GET ???
  8451.     AX = 7B07h
  8452. Return: AX = ???
  8453.     BX = ???
  8454.     CX = ???
  8455.     DX = ???
  8456. SeeAlso: AX=7B06h
  8457. --------c-137B08-----------------------------
  8458. INT 13 - NOW! v3.05 - ???
  8459.     AX = 7B08h
  8460.     CX = ??? (default 00h)
  8461. Return: ???
  8462. SeeAlso: AX=7B00h
  8463. --------c-1380--CX6572-----------------------
  8464. INT 13 - FAST! v4.02+ - API
  8465.     AH = 80h
  8466.     CX = 6572h
  8467.     DX = 1970h
  8468.     ES:BX -> request packet (see #0160)
  8469.     AL = function number (see #0159)
  8470. Return: AH = status (except function 06h)
  8471.         00h if successful
  8472.         01h invalid function
  8473.         05h not supported by the installed variant
  8474.     CF clear if successful
  8475.     CF set on error
  8476.     AL may be destroyed
  8477. Program: FAST! is a disk cache by Future Computing Systems and marketed by BLOC
  8478.       Publishing Corp.
  8479. SeeAlso: AX=8001h,AX=8006h,AX=8007h
  8480. Index:    hotkeys;FAST!
  8481.  
  8482. (Table 0159)
  8483. Values for FAST! function:
  8484.  01h    get cache information (see separate entry)
  8485.  04h    disable cache
  8486.  05h    enable cache and reset statistics
  8487.  06h    installation check (see separate entry)
  8488.  07h    unhook interrupts (see separate entry)
  8489.  09h    flush cache
  8490.  0Ah    (v4.02+) enable staged writes
  8491.  0Bh    (v4.02+) disable staged writes
  8492.  0Ch    (v4.02+) enable beep on flush
  8493.  0Dh    (v4.02+) disable beep on flush
  8494.  0Eh    ???
  8495.  0Fh    ???
  8496.  10h    (v4.12+) enable hotkeys
  8497.  11h    (v4.12+) disable hotkeys
  8498.  12h    (v4.13+) set idle delay
  8499.  13h    (v4.13+) set flush dirty percentage
  8500.  14h    (v5.00+) enable mouse checks
  8501.  15h    (v5.00+) disable mouse checks
  8502.  16h    (v5.00d+) reduce cache size to minimum
  8503.  17h    (v5.00d+) increase cache size to maximum
  8504.  
  8505. Format of FAST! request packet:
  8506. Offset    Size    Description    (Table 0160)
  8507.  00h    DWORD    pointer to 19-byte signature string (see #0161)
  8508.  04h    DWORD    pointer to buffer for data (if needed by function)
  8509.  
  8510. (Table 0161)
  8511. Values for FAST! v4.04-v5.03 signature string:
  8512.  13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15h
  8513. --------c-138001CX6572-----------------------
  8514. INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
  8515.     AX = 8001h
  8516.     CX = 6572h
  8517.     DX = 1970h
  8518.     ES:BX -> request packet (see #0162)
  8519. Return: AH = 00h if successful
  8520. SeeAlso: AH=80h,AX=8006h
  8521.  
  8522. Format of FAST! request packet:
  8523. Offset    Size    Description    (Table 0162)
  8524.  00h    DWORD    -> 19-byte signature string (see #0161)
  8525.  04h    DWORD    -> buffer for cache information (see #0163)
  8526.  
  8527. Format of FAST! cache information (v5.00-5.03):
  8528. Offset    Size    Description    (Table 0163)
  8529.  00h    WORD    binary version number of FAST! (v5.00 = 01F4h)
  8530.  02h    BYTE    revision letter (61h = X.XXa, 62h = X.XXb, etc.)
  8531.  03h    BYTE    FAST! variant
  8532.         (01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS)
  8533.  04h    DWORD    total number of read requests
  8534.  08h    DWORD    number of physical disk reads
  8535.  0Ch    DWORD    grabbed hash buckets
  8536.  10h    DWORD    "st_386mem"
  8537.  14h    DWORD    total number of writes (only counted when staging enabled)
  8538.  18h    DWORD    number of physical disk writes (only when staging enabled)
  8539.  1Ch    DWORD    number of write errors while flushing cache
  8540.  20h    WORD    flags1 (see #0164)
  8541.  22h    WORD    flags
  8542.         bit 0: ???
  8543.         bit 1: staged writes enabled
  8544.  24h    WORD    ???
  8545.  26h    WORD    maximum cache size in KB
  8546.  28h    WORD    minimum cache size in KB
  8547.  2Ah    WORD    segment of first cache buffer (FASTC)
  8548.         segment of EMS page frame (FASTE)
  8549.         XMS handle (FASTX XMS)
  8550.  2Ch    WORD    number of hash buckets containing no entries
  8551.  2Eh    WORD    number of hash buckets containing one entry
  8552.  30h    WORD    number of hash buckets containing two entries
  8553.  32h    WORD    number of hash buckets containing three entries
  8554.  34h    WORD    number of hash buckets containing four entries
  8555.  36h    WORD    number of hash buckets containing five entries
  8556.  38h    WORD    maximum contiguous sectors
  8557.  3Ah    WORD    hash factor
  8558.  3Ch    WORD    number of paragraphs of memory used below 1M
  8559.  3Eh    WORD    entries per hash bucket
  8560.  40h    WORD    idle delay in seconds
  8561.  42h  2 BYTEs    ???
  8562.  44h    WORD    staged write threshold percentage
  8563.  46h  2 BYTEs    ???
  8564.  48h    WORD    number of dirty sectors
  8565.  4Ah    WORD    number of staged write buffers
  8566.  4Ch    WORD    current cache size in KB
  8567.  4Eh    WORD    beep frequency in Hz
  8568.  50h    WORD    ???
  8569.  52h    WORD    ???
  8570.  
  8571. Bitfields for FAST! flags1:
  8572. Bit(s)    Description    (Table 0164)
  8573.  0    beep on flush
  8574.  3    hotkeys enabled
  8575.  4    mouse idle check enabled
  8576.  8    caching enabled
  8577.  13    ???
  8578. --------c-138006CX6572-----------------------
  8579. INT 13 - FAST! v4.02+ - INSTALLATION CHECK
  8580.     AX = 8006h
  8581.     CX = 6572h
  8582.     DX = 1970h
  8583.     ES:BX -> request packet (see #0165)
  8584. Return: AX = 1965h if installed
  8585. SeeAlso: AH=80h,AX=8001h,AX=8007h
  8586.  
  8587. Format of FAST! request packet:
  8588. Offset    Size    Description    (Table 0165)
  8589.  00h    DWORD    -> 19-byte signature string (see #0161)
  8590. --------c-138007CX6572-----------------------
  8591. INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
  8592.     AX = 8007h
  8593.     CX = 6572h
  8594.     DX = 1970h
  8595.     ES:BX -> request packet (see #0166)
  8596. Return: AX = 1965h if installed
  8597. SeeAlso: AH=80h,AX=8006h
  8598. Index:    uninstall;FAST!
  8599.  
  8600. Format of FAST! request packet:
  8601. Offset    Size    Description    (Table 0166)
  8602.  00h    DWORD    -> 19-byte signature string (see #0161)
  8603. --------c-1381--SI4358-----------------------
  8604. INT 13 - Super PC-Kwik v3.20+ - ???
  8605.     AH = 81h
  8606.     SI = 4358h
  8607.     ???
  8608. Return: ???
  8609. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8610.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  8611.       to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27)
  8612.     returns immediately in PC-Cache v5.x
  8613. Index:    PC-Cache|Qualitas Qcache
  8614. --------c-1382--SI4358-----------------------
  8615. INT 13 - Super PC-Kwik v3.20+ - ???
  8616.     AH = 82h
  8617.     SI = 4358h
  8618.     ???
  8619. Return: AL = ???
  8620. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8621.       Super PC-Kwik, and thus support this call
  8622. SeeAlso: AH=84h
  8623. Index:    PC-Cache|Qualitas Qcache
  8624. --------c-1383--SI4358-----------------------
  8625. INT 13 - Super PC-Kwik v3.20+ - ???
  8626.     AH = 83h
  8627.     SI = 4358h
  8628.     AL = ???
  8629.     ES:BX -> ???
  8630.     ???
  8631. Return: ???
  8632. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8633.       Super PC-Kwik, and thus support this call
  8634. SeeAlso: AH=85h
  8635. Index:    PC-Cache|Qualitas Qcache
  8636. --------c-1384--SI4358-----------------------
  8637. INT 13 - Super PC-Kwik v3.20+ - ???
  8638.     AH = 84h
  8639.     SI = 4358h
  8640.     AL = ???
  8641.     ???
  8642. Return: AL = ???
  8643. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8644.       Super PC-Kwik, and thus support this call
  8645. SeeAlso: AH=82h
  8646. Index:    PC-Cache|Qualitas Qcache
  8647. --------c-1385--SI4358-----------------------
  8648. INT 13 - Super PC-Kwik v3.20+ - ???
  8649.     AH = 85h
  8650.     SI = 4358h
  8651.     AL = ???
  8652.     DL = ???
  8653.     ???
  8654. Return: ???
  8655. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8656.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  8657.       to PC-Kwik v3.20)
  8658. SeeAlso: AH=83h
  8659. Index:    PC-Cache|Qualitas Qcache
  8660. --------c-1386--SI4358-----------------------
  8661. INT 13 - Super PC-Kwik v4.00+ - ???
  8662.     AH = 86h
  8663.     SI = 4358h
  8664.     ???
  8665. Return: ???
  8666. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  8667.       thus supports this call
  8668. Index:    Qualitas Qcache
  8669. --------c-1387--SI4358-----------------------
  8670. INT 13 - Super PC-Kwik v4.00+ - ???
  8671.     AH = 87h
  8672.     SI = 4358h
  8673.     ???
  8674. Return: AH = status??? (00h)
  8675.     CX = ???
  8676.     DX = ??? (0000h)
  8677. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  8678.       thus supports this call
  8679. Index:    Qualitas Qcache
  8680. --------c-1388--SI4358-----------------------
  8681. INT 13 - Super PC-Kwik v4.00+ - ???
  8682.     AH = 88h
  8683.     SI = 4358h
  8684.     ???
  8685. Return: AH = status??? (00h)
  8686.     CX = ???
  8687.     DX = ??? (0000h)
  8688. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  8689.       thus supports this call
  8690. Index:    Qualitas Qcache
  8691. --------c-1389--SI4358-----------------------
  8692. INT 13 - Super PC-Kwik v5.10+ - ???
  8693.     AH = 89h
  8694.     SI = 4358h
  8695.     ???
  8696. Return: ???
  8697. --------c-138A--SI4358-----------------------
  8698. INT 13 - Super PC-Kwik v5.10+ - ???
  8699.     AH = 8Ah
  8700.     SI = 4358h
  8701.     ???
  8702. Return: ???
  8703. --------c-138EED-----------------------------
  8704. INT 13 - HyperDisk v4.01+ - ???
  8705.     AX = 8EEDh
  8706.     ???
  8707. Return: ???
  8708. Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
  8709. SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AH=DFh
  8710. --------c-138EEE-----------------------------
  8711. INT 13 - HyperDisk v4.01+ - ???
  8712.     AX = 8EEEh
  8713. Return: CF set
  8714.     AX = CS of HyperDisk resident code
  8715.     ???
  8716. Note:    identical to AX=8EEFh in HYPERDKX v4.21-4.30
  8717. SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh
  8718. --------c-138EEF-----------------------------
  8719. INT 13 - HyperDisk v4.01+ - ???
  8720.     AX = 8EEFh
  8721. Return: CF set
  8722.     AX = CS of HyperDisk resident code
  8723.     ???
  8724. Note:    identical to AX=8EEEh in HYPERDKX v4.21-4.30
  8725. SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh
  8726. --------c-1392--SI4358-----------------------
  8727. INT 13 - Super PC-Kwik v5.10+ - ???
  8728.     AH = 92h
  8729.     SI = 4358h
  8730.     ???
  8731. Return: AH = status??? (00h)
  8732.     DL = ???
  8733. SeeAlso: AH=93h
  8734. --------c-1393--SI4358-----------------------
  8735. INT 13 - Super PC-Kwik v5.10+ - ???
  8736.     AH = 93h
  8737.     SI = 4358h
  8738.     ???
  8739. Return: AH = status??? (00h)
  8740.     AL = ???
  8741. SeeAlso: AH=92h
  8742. --------c-1394--SI4358-----------------------
  8743. INT 13 - Super PC-Kwik v5.10+ - ???
  8744.     AH = 94h
  8745.     SI = 4358h
  8746.     ???
  8747. Return: ???
  8748. --------c-1395--SI4358-----------------------
  8749. INT 13 - Super PC-Kwik v5.10+ - ???
  8750.     AH = 95h
  8751.     SI = 4358h
  8752.     ???
  8753. Return: AH = status??? (00h)
  8754.     DX = ???
  8755. --------c-1396--SI4358-----------------------
  8756. INT 13 - Super PC-Kwik v5.10+ - ???
  8757.     AH = 96h
  8758.     SI = 4358h
  8759.     AL = ??? (01h)
  8760.     BX = ??? (0790h)
  8761.     DL = ???
  8762. Return: AH = status??? (00h)
  8763.     DX = ???
  8764. --------c-1397--SI4358-----------------------
  8765. INT 13 - Super PC-Kwik v5.10+ - ???
  8766.     AH = 97h
  8767.     SI = 4358h
  8768.     ???
  8769. Return: ???
  8770. --------c-1398--SI4358-----------------------
  8771. INT 13 - Super PC-Kwik v5.10+ - ???
  8772.     AH = 98h
  8773.     SI = 4358h
  8774.     ???
  8775. Return: ???
  8776. --------c-1399--SI4358-----------------------
  8777. INT 13 - Super PC-Kwik v5.10+ - ???
  8778.     AH = 99h
  8779.     SI = 4358h
  8780.     ???
  8781. Return: ???
  8782. --------c-139A--SI4358-----------------------
  8783. INT 13 - Super PC-Kwik v5.10+ - ???
  8784.     AH = 9Ah
  8785.     SI = 4358h
  8786.     ???
  8787. Return: ???
  8788. --------c-139B--SI4358-----------------------
  8789. INT 13 - Super PC-Kwik v5.10+ - ???
  8790.     AH = 9Bh
  8791.     SI = 4358h
  8792.     ???
  8793. Return: ???
  8794. --------c-139C--SI4358-----------------------
  8795. INT 13 - Super PC-Kwik v5.10+ - ???
  8796.     AH = 9Ch
  8797.     SI = 4358h
  8798.     ???
  8799. Return: ???
  8800. Note:    functions 9Ch and 9Dh are the only ones which are fully reentrant; all
  8801.       other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear
  8802.       if a previous call is still in progress
  8803. --------c-139D--SI4358-----------------------
  8804. INT 13 - Super PC-Kwik v5.10+ - ???
  8805.     AH = 9Dh
  8806.     SI = 4358h
  8807.     ???
  8808. Return: ???
  8809. --------c-13A0--SI4358-----------------------
  8810. INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
  8811.     AH = A0h
  8812.     SI = 4358h
  8813. Return: AX = segment of resident code
  8814. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8815.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.5
  8816.       corresponds to PC-Kwik v3.27)
  8817. SeeAlso: INT 16/AX=FFA5h/CX=1111h
  8818. Index:    PC-Cache|Qualitas Qcache
  8819. --------c-13A1--SI4358-----------------------
  8820. INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
  8821.     AH = A1h
  8822.     SI = 4358h
  8823. Return: CF clear
  8824.     AH = 00h (v5.10)
  8825. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8826.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  8827.       corresponds to PC-Kwik v3.20)
  8828. SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
  8829. Index:    PC-Cache|Qualitas Qcache
  8830. --------c-13A2--SI4358-----------------------
  8831. INT 13 - Super PC-Kwik v3.20+ - ???
  8832.     AH = A2h
  8833.     SI = 4358h
  8834.     ???
  8835. Return: ???
  8836. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  8837.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  8838.       corresponds to PC-Kwik v3.20)
  8839. Index:    PC-Cache|Qualitas Qcache
  8840. --------c-13A3--SI4358-----------------------
  8841. INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
  8842.     AH = A3h
  8843.     SI = 4358h
  8844. Return: CF clear
  8845. SeeAlso: AH=A4h
  8846. --------c-13A4--SI4358-----------------------
  8847. INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
  8848.     AH = A4h
  8849.     SI = 4358h
  8850. Return: CF clear
  8851. SeeAlso: AH=A3h
  8852. --------c-13A5--SI4358-----------------------
  8853. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
  8854.     AH = A5h
  8855.     SI = 4358h
  8856. Return: AX = ???
  8857.     SI = ???
  8858. Notes:    called and used internally by Super PC-Kwik when a program terminates
  8859.       via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch
  8860.     this call is not supported by Qualitas Qcache 4.00
  8861. Index:    PC-Cache
  8862. SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  8863. --------c-13A6--SI4358-----------------------
  8864. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
  8865.     AH = A6h
  8866.     SI = 4358h
  8867.     DS:DX -> ASCIZ program name
  8868.     ES:BX -> EXEC data block (see #0706 at INT 21/AH=4Bh)
  8869. Return: ???
  8870. Note:    called and used internally by Super PC-Kwik when a program is loaded
  8871.       with INT 21/AX=4B00h
  8872. SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4Bh
  8873. --------c-13A7--SI4358-----------------------
  8874. INT 13 CU - Super PC-Kwik 5.1 - ???
  8875.     AH = A7h
  8876.     SI = 4358h
  8877. Return: ???
  8878. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  8879. SeeAlso: AH=A5h,AH=A6h,AH=A8h
  8880. --------v-13A759-----------------------------
  8881. INT 13 U - Novell DOS 7 - SDRes v27.03 - ???
  8882.     AX = A759h
  8883. Return: AX = 59A7h if installed
  8884.         DX:BX -> ??? data
  8885. Program: SDRes is the resident portion of the Search&Destroy antiviral by
  8886.       Fifth Generation Systems, as bundled with Novell DOS 7
  8887. SeeAlso: INT 21/AH=0Eh/DL=ADh
  8888. --------c-13A8--SI4358-----------------------
  8889. INT 13 CU - Super PC-Kwik 5.1 - ???
  8890.     AH = A8h
  8891.     SI = 4358h
  8892. Return: ???
  8893. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  8894. SeeAlso: AH=A5h,AH=A6h,AH=A7h
  8895. --------c-13A9--SI4358-----------------------
  8896. INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
  8897.     AH = A9h
  8898.     SI = 4358h
  8899. Return: ???
  8900. Note:    called and used internally by Super PC-Kwik when an application issues
  8901.       INT 21/AH=4Dh
  8902. SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4Dh
  8903. --------c-13AA--SI4358-----------------------
  8904. INT 13 - Super PC-Kwik v4+ - ???
  8905.     AH = AAh
  8906.     SI = 4358h
  8907.     ???
  8908. Return: ???
  8909. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8910.       this call
  8911. --------c-13AB--SI4358-----------------------
  8912. INT 13 - Super PC-Kwik v4+ - ???
  8913.     AH = ABh
  8914.     SI = 4358h
  8915.     ???
  8916. Return: ???
  8917. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8918.       this call
  8919. --------c-13AC--SI4358-----------------------
  8920. INT 13 - Super PC-Kwik v4+ - ???
  8921.     AH = ACh
  8922.     SI = 4358h
  8923.     ???
  8924. Return: ???
  8925. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8926.       this call
  8927. --------d-13AD-------------------------------
  8928. INT 13 - Priam HARD DISK CONTROLLER???
  8929.     AH = ADh
  8930.     ???
  8931. Return: ???
  8932. Note:    this call is made from Priam's EFMT.EXE (low-level formatter), probably
  8933.       to check the ROM type on the controller for their hard disk kits
  8934. SeeAlso: AH=70h
  8935. --------c-13AD--SI4358-----------------------
  8936. INT 13 - Super PC-Kwik v4+ - ???
  8937.     AH = ADh
  8938.     SI = 4358h
  8939.     ???
  8940. Return: ???
  8941. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8942.       this call
  8943. --------c-13AE--SI4358-----------------------
  8944. INT 13 - Super PC-Kwik v5.10+ - ???
  8945.     AH = AEh
  8946.     SI = 4358h
  8947.     ???
  8948. Return: ???
  8949. --------c-13B0--SI4358-----------------------
  8950. INT 13 - Super PC-Kwik v3.20+ - ???
  8951.     AH = B0h
  8952.     SI = 4358h
  8953.     ???
  8954. Return: ???
  8955. Note:    PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus
  8956.       supports this call; Qualitas Qcache does not support it
  8957. Index:    PC-Cache
  8958. --------d-13EE-------------------------------
  8959. INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
  8960.     AH = EEh
  8961.     DL = drive number (80h, 81h)
  8962. Return: CF clear
  8963.        AH = 00h
  8964. Program: SWBIOS is a TSR by Ontrack Computer Systems
  8965. Desc:    the following INT 13 call will add 1024 to the specified cylinder
  8966.       number to get the actual cylinder number desired
  8967. Notes:    the flag is cleared by all INT 13 calls except AH=EEh and AH=EFh
  8968.     Disk Manager also supports these calls
  8969.     this function is also supported by HyperDisk v4.01+ and PC-Cache v5.5+,
  8970.       in order to allow caching of drives using SWBIOS to access more than
  8971.       1024 cylinders
  8972.     for software which supports that call, this function is equivalent to
  8973.       calling AH=EFh with CX=0400h
  8974. SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AH=DFh
  8975. Index:    PC-Cache;huge disks|Disk Manager
  8976. --------c-13EF-------------------------------
  8977. INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
  8978.     AH = EFh
  8979.     CX = cylinder offset for next INT 13 call
  8980.     DL = drive number (80h, 81h)
  8981. Return: CF clear
  8982.         AH = 00h
  8983. Program: Drive Rocket is a drive accelerator by Ontrack Computer Systems for
  8984.       IDE drives supporting the read multiple and write multiple commands
  8985. Desc:    the following INT 13 call will add the number given by this call to
  8986.       the specified cylinder to get the actual cylinder number, then reset
  8987.       the offset to zero
  8988. Note:    this function is also supported by the NOW! disk cache, and presumably
  8989.       newer versions of SWBIOS and Disk Manager
  8990.     for software which supports this call, AH=EEh is equivalent to calling
  8991.       this function with CX=0400h
  8992.     the cylinder offset is reset to 0 by all INT 13 called except AH=EEh
  8993.       and AH=EFh
  8994. SeeAlso: AX=7B00h
  8995. --------d-13F9-------------------------------
  8996. INT 13 - SWBIOS - INSTALLATION CHECK
  8997.     AH = F9h
  8998.     DL = drive number (80h,81h)
  8999. Return: CF clear
  9000.         DX = configuration word
  9001.         bit 15 set if other SWBIOS extensions available
  9002.     CF set on error
  9003. Program: SWBIOS is a TSR by Ontrack Computer Systems
  9004. Note:    Disk Manager also supports these calls
  9005. SeeAlso: AH=EEh
  9006. Index:    Disk Manager
  9007. --------v-13FA--DX5945-----------------------
  9008. INT 13 - PC Tools v8+ VSAFE, VWATCH - API
  9009.     AH = FAh
  9010.     DX = 5945h
  9011.     AL = function (00h-07h)
  9012. Return: varies by function
  9013.     if not installed:
  9014.         CF set
  9015.         AH = 01h
  9016. Note:    this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
  9017.       so it is listed in its entirety under INT 16/AX=FA00h and following
  9018. SeeAlso: INT 16/AX=FA00h
  9019. --------d-13FE-------------------------------
  9020. INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
  9021.     AH = FEh
  9022.     DL = drive number (80h, 81h)
  9023. Return: CF clear
  9024.     DX = number of cylinders beyond 1024 on drive
  9025. Program: SWBIOS is a TSR by Ontrack Computer Systems
  9026. Notes:    standard INT 13/AH=08h will return a cylinder count truncated to 1024
  9027.     BIOS without this extension would return count modulo 1024
  9028.     Disk Manager also supports these calls
  9029. SeeAlso: AH=EEh
  9030. --------U-13FFFFBHAA-------------------------
  9031. INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
  9032.     AX = FFFFh
  9033.     BH = AAh
  9034.     BL = subfunction
  9035.         00h installation check
  9036.         Return: AX = 1234h if installed
  9037.         01h turn on Turbo mode
  9038.         02h turn off Turbo mode
  9039.         03h set Turbo mode according to hardware switch
  9040.         04h set disk access to Turbo mode
  9041.         05h set disk access to Normal mode
  9042. SeeAlso: INT 15/AH=DFh
  9043. Index:    installation check;UNIQUE UX Turbo Utility
  9044. --------!---Section--------------------------
  9045.