home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 13 / CD_ASCQ_13_0494.iso / maj / 4266 / interrup.a < prev    next >
Text File  |  1994-02-06  |  353KB  |  9,188 lines

  1. Interrupt List        Release 39            Last change 2/6/94
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  3. --------!---FILELIST-------------------------
  4. Please redistribute the following files unmodified as a group, in a trio of
  5. archives named INTER39A through INTER39C (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 14/0F \
  9.     INTERRUP.B    INT 14/10 through INT 15  \
  10.     INTERRUP.C    INT 16 through INT 21/41   \   total 1449 pages at
  11.     INTERRUP.D    INT 21/42 through INT 21/7F \  60 lines per page,
  12.     INTERRUP.E    INT 21/80 through INT 21/FF  \ 1553 with INTPRINT -p
  13.     INTERRUP.F    INT 22 through INT 2F/7F     / (6153 entries)
  14.     INTERRUP.G    INT 2F/80 through INT 2F/FF /
  15.     INTERRUP.H    INT 30 through INT 60       /
  16.     INTERRUP.I    INT 61 through INT 68      /
  17.     INTERRUP.J    INT 69 through INT FF     /
  18.     INTERRUP.PRI    a brief introduction to interrupts
  19.     INTPRINT.COM    a simple formatter that also generates a list summary
  20.     INTPRINT.DOC    instructions for INTPRINT
  21.     86BUGS.LST    a listing of CPU bugs and undocumented features
  22.     CMOS.LST    a description of the CMOS RAM data bytes
  23.     GLOSSARY.LST    a glossary of terms, abbreviations, and acronyms
  24.     MEMORY.LST    format of the BIOS data area
  25.     PORTS.LST    a listing of I/O ports
  26.     COMBINE.BAT    combine the pieces of the list into a single file
  27. The following files should be distributed in an archive called INTER39D:
  28.     INT.COM        invoke interrupts from commandline
  29.     INT2GUID.*    convert list into TurboPower GUIDE or POPHELP database
  30.     INT2HLP.BAT    Perl script to convert list into QuickHelp database
  31.     INT2QH.*    program to convert list into QuickHelp database
  32.     INTERVUE.EXE    indexed interrupt list browser
  33.     INTHELP.*    convert list into TurboPower GUIDE database
  34.     INTLIST.E    Epsilon extension for handling list
  35.     INTLIST.ICO    Windows icon for INTERVUE
  36.     INTPRINT.C    source code for INTPRINT
  37.     RB2NG.*        convert list into Norton Guides database
  38. --------!---CONTACT_INFO---------------------
  39. If you notice any mistakes or omissions, please let me know!  It is only with
  40. YOUR help that the list can continue to grow at the current rate.  Please send
  41. all changes to me rather than distributing a modified version of the list.
  42.  
  43. Please read the file INTERRUP.1ST before asking me any questions.  You may find
  44. that they have already been addressed.
  45.  
  46.      Ralf Brown
  47.  
  48. Internet: ralf@telerama.lm.com        !!NOTE NEW DOMAIN NAME!!
  49. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  50. FIDO: Ralf Brown 1:129/26.1
  51.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  52.     unless you address it to me)
  53. CIS:  >INTERNET:ralf@telerama.lm.com
  54.  
  55. I reply to all e-mail submissions and inquiries, but some of my replies bounce
  56. because of bad return paths.  If you don't get a response from me within a
  57. reasonable period of time, send it again with a better return path (starting at
  58. harvard or ucbvax for UUCP, from the Internet for others).
  59. --------!------------------------------------
  60. See INTERRUP.1ST for the key to system abbreviations and a list of the
  61. trademarks mentioned here.
  62. --------!---DISCLAIMER-----------------------
  63. DISCLAIMER:  THIS MATERIAL IS PROVIDED "AS IS".     I verify the information
  64. contained in this list to the best of my ability, but I cannot be held
  65. responsible for any problems caused by use or misuse of the information,
  66. especially for those functions not officially  documented.  If it is marked
  67. "internal" or undocumented, you should check it carefully to make sure it
  68. works the same way in your version of the software (and please let me know
  69. whether or not it works the same way).    Information marked with "???" is
  70. known to be incomplete or guesswork.
  71. --------!---FLAGS----------------------------
  72. The use of -> instead of = signifies that the indicated register or register
  73. pair contains a pointer to the specified item, rather than the item itself.
  74. One or more letters may follow the interrupt number; they have the following
  75. meanings:  U - undocumented function, u - partially documented function,
  76. P - available only in protected mode, R - available only in real or V86 mode,
  77. C - callout or callback (usually hooked rather than called),
  78. O - obsolete (no longer present in current versions)
  79. --------!---CATEGORIES-----------------------
  80. The ninth column of the divider line preceding an entry usually contains a
  81. classification code (the entry has not been classified if that character is
  82. a dash).  The codes currently in use are:
  83.     A - applications, a - access software (screen readers, etc),
  84.     B - BIOS, b - vendor-specific BIOS extensions,
  85.     C - CPU-generated, c - caches/spoolers,
  86.     D - DOS kernel, d - disk I/O enhancements,
  87.     E - DOS extenders, e - electronic mail, F - FAX,
  88.     f - file manipulation, G - debuggers/debugging tools,
  89.     H - hardware, h - vendor-specific hardware,
  90.     I - IBM workstation/terminal emulators, i - system info/monitoring
  91.     J - Japanese, j - joke programs,
  92.     K - keyboard enhancers, k - file compression,
  93.     l - shells/command interpreters,
  94.     M - mouse/pointing device, m - memory management,
  95.     N - network, n - non-traditional input devices,
  96.     O - other operating systems,
  97.     P - printer enhancements, p - power management,
  98.     Q - DESQview/TopView and Quarterdeck programs,
  99.     R - remote control/file access, r - runtime support,
  100.     S - serial I/O, s - sound/speech,
  101.     T - DOS-based task switchers/multitaskers, t - TSR libraries
  102.     U - resident utilities, u - emulators,
  103.     V - video, v - virus/antivirus,
  104.     W - MS Windows, X - expansion bus BIOSes,
  105.     y - security, * - reserved (and not otherwise classified)
  106. --------C-00---------------------------------
  107. INT 00 - CPU-generated - DIVIDE ERROR
  108. Desc:    generated if the divisor of a DIV or IDIV instruction is zero or the
  109.       quotient overflows the result register; DX and AX will be unchanged.
  110. Notes:    on an 8086/8088, the return address points to the following instruction
  111.     on an 80286+, the return address points to the divide instruction
  112.     an 8086/8088 will generate this interrupt if the result of a division
  113.       is 80h (byte) or 8000h (word)
  114. SeeAlso: INT 04
  115. --------G-00---------------------------------
  116. INT 00 - Zenith - ROM DEBUGGER
  117. Desc:    invokes the ROM Debugger when at the BIOS level; equivalent to
  118.       pressing Ctrl-Alt-Ins on booting.
  119. Note:    since DOS revectors INT 00, it is necessary to restore this vector to
  120.       its original ROM BIOS value in order to invoke the debugger once DOS
  121.       loads
  122. SeeAlso: INT 03"Columbia"
  123. --------C-01---------------------------------
  124. INT 01 - CPU-generated - SINGLE STEP
  125. Desc:    generated after each instruction if TF (trap flag) is set; TF is
  126.       cleared on invoking the single-step interrupt handler
  127. Notes:    interrupts are prioritized such that external interrupts are invoked
  128.       after the INT 01 pushes CS:IP/FLAGS and clears TF, but before the
  129.       first instruction of the handler executes
  130.     used by debuggers for single-instruction execution tracing, such as
  131.       MS-DOS DEBUG's T command
  132. SeeAlso: INT 03
  133. --------C-01---------------------------------
  134. INT 01 - CPU-generated (80386+) - DEBUGGING EXCEPTIONS
  135. Desc:    generated by the CPU on various occurrences which may be of interest
  136.       to a debugger program
  137. Note:    events which may trigger the interrupt:
  138.       Instruction address breakpoint fault - will return to execute inst
  139.       Data address breakpoint trap - will return to following instruction
  140.       General detect fault, debug registers in use
  141.       Task-switch breakpoint trap
  142.       undocumented 386/486 opcode F1h - will return to following instruc
  143. SeeAlso: INT 03
  144. --------H-02---------------------------------
  145. INT 02 - external hardware - NON-MASKABLE INTERRUPT
  146. Desc:    generated by the CPU when the input to the NMI pin is asserted
  147. Notes:    return address points to start of interrupted instruction on 80286+
  148.     on the 80286+, further NMIs are disabled until the next IRET
  149.       instruction, but one additional NMI is remembered by the hardware
  150.       and will be serviced after the IRET instruction reenables NMIs
  151.     maskable interrupts may interrupt the NMI handler if interrupts are
  152.       enabled
  153.     although the Intel documentation states that this interrupt is
  154.       typically used for power-failure procedures, it has many other uses
  155.       on IBM-compatible machines:
  156.         Memory parity error: all except Jr, CONV, and some machines
  157.                 without memory parity
  158.         Breakout switch on hardware debuggers
  159.         Coprocessor interrupt: all except Jr and CONV
  160.         Keyboard interrupt: Jr, CONV
  161.         I/O channel check: CONV, PS50+
  162.         Disk-controller power-on request: CONV
  163.         System suspend: CONV
  164.         Real-time clock: CONV
  165.         System watch-dog timer, time-out interrupt: PS50+
  166.         DMA timer time-out interrupt: PS50+
  167.         Low battery: HP 95LX
  168.         Module pulled: HP 95LX
  169. --------C-03---------------------------------
  170. INT 03 - CPU-generated - BREAKPOINT
  171. Desc:    generated by the one-byte breakpoint instruction (opcode CCh)
  172. Notes:    used by debuggers to implement breakpoints, such as MS-DOS DEBUG's G
  173.       command
  174.     also used by Turbo Pascal versions 1,2,3 when {$U+} specified
  175.     return address points to byte following the breakpoint instruction
  176. SeeAlso: INT 01
  177. --------G-03---------------------------------
  178. INT 03 - Columbia PCs (desktop,VP portables) - ROM DEBUGGER
  179. Desc:    invokes the ROM Debugger if INT 03 has not been revectored; equivalent
  180.       to pressing Esc on booting.
  181. SeeAlso: INT 00"Zenith"
  182. --------G-030910-----------------------------
  183. INT 03 - Soft-ICE - BACK DOOR COMMANDS - DISPLAY STRING IN Soft-ICE WINDOW
  184.     AX = 0910h
  185.     SI = magic value 4647h ('FG')
  186.     DI = magic value 4A4Dh ('JM')
  187.     DS:DX -> ASCIZ string to display (max 100 bytes, 0Dh OK)
  188. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  189. --------G-030911-----------------------------
  190. INT 03 - Soft-ICE - BACK DOOR COMMANDS - EXECUTE Soft-ICE COMMAND
  191.     AX = 0911h
  192.     SI = magic value 4647h ('FG')
  193.     DI = magic value 4A4Dh ('JM')
  194.     DS:DX -> ASCIZ command string (max 100 bytes, 0Dh OK)
  195. --------G-030912-----------------------------
  196. INT 03 - Soft-ICE - BACK DOOR COMMANDS - GET BREAKPOINT INFORMATION
  197.     AX = 0912h
  198.     SI = magic value 4647h ('FG')
  199.     DI = magic value 4A4Dh ('JM')
  200. Return: BH = entry number of last breakpoint set
  201.     BL = type of last breakpoint set
  202.         00h BPM (breakpoint register types)
  203.         01h I/O
  204.         02h INTerrupt
  205.         03h BPX (INT 03h-style breakpoint)
  206.         04h reserved
  207.         05h range
  208.     DH = entry number of last breakpoint to be triggered
  209.     DL = type of last triggered breakpoint (see above)
  210. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  211. SeeAlso: AX=0913h,AX=0914h
  212. --------G-030913-----------------------------
  213. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - SET Soft-ICE BREAKPOINT
  214.     AX = 0913h
  215.     SI = magic value 4647h ('FG')
  216.     DI = magic value 4A4Dh ('JM')
  217.     DS:DX -> breakpoint structure (see below)
  218. Return: AX = status
  219.         00h successful
  220.         BX = breakpoint number
  221.         03h breakpoint table full
  222.         06h memory limit error
  223.         07h I/O limit error
  224.         09h range limit error
  225.         16h duplicate breakpoint
  226. SeeAlso: AX=0912h,AX=0914h
  227.  
  228. Format of breakpoint structure:
  229. Offset    Size    Description
  230.  00h    BYTE    breakpoint type (see below)
  231.  01h    DWORD    breakpoint address 1
  232.         (lower range limit for memory BPs, interrupt # for interrupt
  233.         BPs, address of BP for execution BPs, I/O address (only word)
  234.         for I/O BPs)
  235.  05h    DWORD    breakpoint address 2
  236.         (upper range limit for memory BPs,
  237.         optional value to check for for interrupt BPs,
  238.         overlay number (0 = root) for execution BPs)
  239.  09h    DWORD    breakpoint address 3
  240.  0Dh    BYTE    breakpoint mode 1 (see below)
  241.         (for interrupt BPs = register to check
  242.              00h  no value checking
  243.              01h  check AL
  244.              02h  check AH
  245.              03h  check AX)
  246.  0Eh    BYTE    breakpoint mode 2 (see below)
  247.  0Fh    BYTE    breakpoint size (00h byte, 01h word, 03h dword)
  248.  10h    BYTE    breakpoint pass count before program stop
  249.  11h    BYTE    breakpoint state
  250. Note:    all unused fields should contain zeros
  251.  
  252. Values for breakpoint type:
  253.  00h    memory location
  254.  01h    memory range
  255.  03h    I/O
  256.  04h    interrupt
  257.  05h    execution break
  258.  
  259. Values for breakpoint mode:
  260.  01h    read
  261.  02h    write
  262.  04h    execution
  263. --------G-030914-----------------------------
  264. INT 03 - Soft-ICE v2.5x - BACK DOOR COMMANDS - REMOVE Soft-ICE BREAKPOINT
  265.     AX = 0914h
  266.     SI = magic value 4647h ('FG')
  267.     DI = magic value 4A4Dh ('JM')
  268.     BX = breakpoint number (returned by AX=0913h)
  269. Return: BX = ???
  270. Program: Soft-ICE is a debugger by Nu-Mega Technologies, Inc.
  271. SeeAlso: AX=0912h,AX=0913h
  272. --------C-04---------------------------------
  273. INT 04 - CPU-generated - INTO DETECTED OVERFLOW
  274. Desc:    the INTO instruction will generate this interrupt if OF (Overflow Flag)
  275.       is set; otherwise, INTO is effectively a NOP
  276. Note:    may be used for convenient overflow testing (to prevent errors from
  277.       propagating) instead of JO or a JNO/JMP combination
  278. SeeAlso: INT 00
  279. --------B-05---------------------------------
  280. INT 05 - PRINT SCREEN
  281. Desc:    dump the current text screen to the first printer
  282. Notes:    normally invoked by the INT 09 handler when PrtSc key is pressed, but
  283.       may be invoked directly by applications
  284.     byte at 0050h:0000h contains status used by default handler
  285.       00h not active
  286.       01h PrtSc in progress
  287.       FFh last PrtSc encountered error
  288.     default handler is at F000h:FF54h in IBM PC and 100%-compatible BIOSes
  289. SeeAlso: INT 10/AH=12h/BL=20h
  290. --------C-05---------------------------------
  291. INT 05 - CPU-generated (80186+) - BOUND RANGE EXCEEDED
  292. Desc:    generated by BOUND instruction when the value to be tested is less than
  293.       the indicated lower bound or greater than the indicated upper bound.
  294. Note:    returning from this interrupt re-executes the failing BOUND instruction
  295. --------P-05454A-----------------------------
  296. INT 05 U - PSPS v2.01 - EJECT PAGE
  297.     AX = 454Ah ('EJ')
  298. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  299.       Technologies
  300. Note:    sends a ^D to the current printer
  301. SeeAlso: AX=4E57h,AX=5053h,AX=554Eh
  302. --------P-054E57-----------------------------
  303. INT 05 U - PSPS v2.01 - SET PARAMETERS
  304.     AX = 4E57h ('NW')
  305.     ES:SI -> 11-byte buffer containing new settings
  306. Return: buffer filled
  307. SeeAlso: AX=454Ah,AX=5053h,INT 17/AH=63h
  308. --------P-055053-----------------------------
  309. INT 05 U - PSPS v2.01 - GET PARAMETERS
  310.     AX = 5053h ('PS')
  311.     ES:SI -> 11-byte buffer for settings
  312. Return: buffer filled
  313. SeeAlso: AX=4E57h,AX=554Eh,INT 17/AH=64h
  314. --------P-05554E-----------------------------
  315. INT 05 U - PSPS v2.01 - UNINSTALL
  316.     AX = 554Eh ('UN')
  317. Program: PSPS is shareware PostScript PrintScreen utility by A.N.D.
  318.       Technologies
  319. SeeAlso: AX=454Ah,AX=4E57h,INT 17/AH=62h
  320. --------C-06---------------------------------
  321. INT 06 - CPU-generated (80286+) - INVALID OPCODE
  322. Desc:    this interrupt is generated when the CPU attempts to execute an
  323.       invalid opcode (most protected-mode instructions are considered
  324.       invalid in real mode) or a BOUND, LDS, LES, or LIDT instruction
  325.       which specifies a register rather than a memory address
  326. Notes:    return address points to beginning of invalid instruction
  327.     with proper programming, this interrupt may be used to emulate
  328.       instructions which do not exist; many 386 BIOSes emulate the 80286
  329.       undocumented LOADALL instruction which was removed from the 80386+
  330.     generated by the 80386+ when the LOCK prefix is used with instructions
  331.       other than BTS, BTR, BTC, XCHG, XADD (486), CMPXCHG (486), INC, DEC,
  332.       NOT, NEG, ADD, ADC, SUB, SBB, AND, OR, or XOR, or any instruction
  333.       not accessing memory.
  334. SeeAlso: INT 0C"CPU",INT 0D"CPU"
  335. --------b-06---------------------------------
  336. INT 06 C - HP 95LX - SLEEP/WAKEUP
  337. Desc:    this interrupt is called just before going into light or deep
  338.       (shutdown) sleep and just after returning from light or deep sleep
  339. SeeAlso: INT 0B"HP 95LX",INT 15/AX=4DD4h,INT 15/AH=4Eh
  340. --------C-07---------------------------------
  341. INT 07 - CPU-generated (80286+) - PROCESSOR EXTENSION NOT AVAILABLE
  342. Desc:    this interrupt is automatically called if a coprocessor instruction is
  343.       encountered when no coprocessor is installed
  344. Note:    can be used to emulate a numeric coprocessor in software
  345. SeeAlso: INT 09"MATH UNIT PROTECTION"
  346. --------H-08---------------------------------
  347. INT 08 - IRQ0 - SYSTEM TIMER
  348. Desc:    generated 18.2 times per second by channel 0 of the 8254 system timer,
  349.       this interrupt is used to keep the time-of-day clock updated
  350. Notes:    programs which need to be invoked regularly should use INT 1C unless
  351.       they need to reprogram the timer while still keeping the time-of-day
  352.       clock running at the proper rate
  353.     default handler is at F000h:FEA5h in IBM PC and 100%-compatible BIOSes
  354.     may be masked by setting bit 0 on I/O port 21h
  355. SeeAlso: INT 1C,INT 4A,INT 50"DESQview",INT 58"DoubleDOS",INT 70,INT 78"GO32"
  356. SeeAlso: INT D8"Screen Thief"
  357. --------C-08---------------------------------
  358. INT 08 - CPU-generated (80286+) - DOUBLE EXCEPTION DETECTED
  359. Desc:    called when multiple exceptions occur on one instruction, or an
  360.       exception occurs in an exception handler
  361. Notes:    called in protected mode if an interrupt above the defined limit of
  362.       the interrupt vector table occurs
  363.     return address points at beginning of instruction with errors or the
  364.       beginning of the instruction which was about to execute when the
  365.       external interrupt caused the exception
  366.     if an exception occurs in the double fault handler, the CPU goes into
  367.       SHUTDOWN mode (which circuitry in the PC/AT converts to a reset);
  368.       this "triple fault" is a faster way of returning to real mode on
  369.       many 80286 machines than the standard keyboard controller reset
  370. --------H-09---------------------------------
  371. INT 09 - IRQ1 - KEYBOARD DATA READY
  372. Desc:    this interrupt is generated when data is received from the keyboard.
  373.       This is normally a scan code (from either a keypress *or* a key
  374.       release), but may also be an ACK or NAK of a command on AT-class
  375.       keyboards.
  376. Notes:    this IRQ may be masked by setting bit 1 on I/O port 21h
  377.     if the BIOS supports an enhanced (101/102-key) keyboard, it calls
  378.       INT 15/AH=4Fh after reading the scan code from the keyboard and
  379.       before further processing; all further processing uses the scan
  380.       code returned from INT 15/AH=4Fh
  381.     the default interrupt handler is at F000h:E987h in 100%-compatible
  382.       BIOSes
  383.     the interrupt handler performs the following actions for certain
  384.       special keystrokes:
  385.         Ctrl-Break     clear keyboard buffer, place word 0000h in buffer,
  386.              invoke INT 1B, and set flag at 0040h:0071h
  387.         SysRq     invoke INT 15/AH=85h
  388.         Ctrl-Numlock place system in a tight wait loop until next INT 09
  389.         Ctrl-Alt-Del jump to BIOS startup code (either F000h:FFF0h or the
  390.                destination of the jump at that address)
  391.         Shift-PrtSc     invoke INT 05
  392.     DRDOS hooks this interrupt to control the cursor shape (underscore/
  393.       half block) for overwrite/insert mode
  394.     DR Multiuser DOS hooks this interrupt for cursor shape control and to
  395.       control whether Ctrl-Alt-Del reboots the current session or the
  396.       entire system
  397. SeeAlso: INT 05,INT 0B"HP 95LX",INT 15/AH=4Fh,INT 15/AH=85h,INT 16,INT 1B
  398. SeeAlso: INT 2F/AX=A901h,INT 51"DESQview",INT 59"DoubleDOS",INT 79"GO32"
  399.  
  400. Values for scan code:
  401.  01h    Esc         31h    N
  402.  02h    1 !         32h    M
  403.  03h    2 @         33h    , <         63h    F16
  404.  04h    3 #         34h    . >         64h    F17
  405.  05h    4 $         35h    / ?         65h    F18
  406.  06h    5 %         36h    Right Shift     66h    F19
  407.  07h    6 ^         37h    Grey*         67h    F20
  408.  08h    7 &         38h    Alt         68h    F21
  409.  09h    8 *         39h    SpaceBar     69h    F22
  410.  0Ah    9 (         3Ah    CapsLock     6Ah    F23
  411.  0Bh    0 )         3Bh    F1         6Bh    F24
  412.  0Ch    - _         3Ch    F2         6Ch    --
  413.  0Dh    = +         3Dh    F3         6Dh    EraseEOF
  414.  0Eh    Backspace     3Eh    F4
  415.  0Fh    Tab         3Fh    F5         6Fh    Copy/Play
  416.  10h    Q         40h    F6
  417.  11h    W         41h    F7
  418.  12h    E         42h    F8         72h    CrSel
  419.  13h    R         43h    F9
  420.  14h    T         44h    F10         74h    ExSel
  421.  15h    Y         45h    NumLock         75h    --
  422.  16h    U         46h    ScrollLock     76h    Clear
  423.  17h    I         47h    Home
  424.  18h    O         48h    UpArrow
  425.  19h    P         49h    PgUp
  426.  1Ah    [ {         4Ah    Grey-
  427.  1Bh    ] }         4Bh    LeftArrow
  428.  1Ch    Enter         4Ch    Keypad 5
  429.  1Dh    Ctrl         4Dh    RightArrow
  430.  1Eh    A         4Eh    Grey+
  431.  1Fh    S         4Fh    End
  432.  20h    D         50h    DownArrow     E0h    prefix code
  433.  21h    F         51h    PgDn         E1h    prefix code
  434.  22h    G         52h    Ins         FAh    ACK
  435.  23h    H         53h    Del         FEh    RESEND
  436.  24h    J         54h    SysRq         FFh    kbd error/buffer full
  437.  25h    K
  438.  26h    L         56h    left \| (102-key)
  439.  27h    ; :         57h    F11
  440.  28h    ' "         58h    F12
  441.  29h    ` ~
  442.  2Ah    Left Shift     5Ah    PA1
  443.  2Bh    \ |         5Bh    F13
  444.  2Ch    Z         5Ch    F14
  445.  2Dh    X         5Dh    F15
  446.  2Eh    C
  447.  2Fh    V
  448.  30h    B
  449. Note:    scan codes 56h-E1h are only available on the extended (101/102-key)
  450.       keyboard and Host Connected (122-key) keyboard; scan codes 5Ah-76h
  451.       are only available on the 122-key keyboard
  452. --------C-09---------------------------------
  453. INT 09 - CPU-generated (80286,80386) - PROCESSOR EXTENSION PROTECTION ERROR
  454. Desc:    called if the coprocessor attempts to access memory outside a segment
  455.       boundary; it may occur at an arbitrary time after the coprocessor
  456.       instruction was issued
  457. Note:    until the condition is cleared or the coprocessor is reset, the only
  458.       coprocessor instruction which may be used is FNINIT; WAIT or other
  459.       coprocessor instructions will cause a deadlock because the
  460.       coprocessor is still busy waiting for data
  461. SeeAlso: INT 07"CPU"
  462. --------*-09---------------------------------
  463. INT 09 P - internal hardware - RESERVED BY Intel (80486)
  464. Note:    this exception has been moved to INT 0D
  465. SeeAlso: INT 09"MATH",INT 0D
  466. --------H-0A---------------------------------
  467. INT 0A - IRQ2 - LPT2 (PC), VERTICAL RETRACE INTERRUPT (EGA,VGA)
  468. Notes:    the TOPS and PCnet adapters use this interrupt request line by default
  469.     DOS 3.2 revectors IRQ2 to a stack-switching routine
  470.     on ATs and above, the physical data line for IRQ2 is labeled IRQ9 and
  471.       connects to the slave 8259.  The BIOS redirects the interrupt for
  472.       IRQ9 back here.
  473.     under DESQview, only the INT 15h vector and BASIC segment address (the
  474.       word at 0000h:0510h) may be assumed to be valid for the handler's
  475.       process
  476.     many VGA boards do not implement the vertical retrace interrupt,
  477.       including the IBM VGA Adapter where the traces are either cut or
  478.       removed
  479. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  480. --------H-0A---------------------------------
  481. INT 0A - IRQ2 - Tandy 1000-series HARD DISK
  482. Notes:    this interrupt may be masked by setting bit 2 on I/O port 21h
  483.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  484.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  485.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  486.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  487.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  488.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  489.       interrupt use IRQ5 for vertical retrace.
  490. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  491. --------H-0A---------------------------------
  492. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  493. Note:    newer Roland cards and MIDI interfaces by other manufacturers use
  494.       a jumper-selectable IRQ, but software and hardware generally defaults
  495.       to IRQ2
  496. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  497. --------C-0A---------------------------------
  498. INT 0A P - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  499. Desc:    automatically called during a task switch if the new TSS specified by
  500.       the task gate is invalid for any of the following reasons:
  501.         TSS limit is less than 43 (80286) or 103 (80386/80486)
  502.         LDT selector invalid or segment not present
  503.         null SS selector, or SS selector outside LDT/GDT limit
  504.         stack segment is read-only
  505.         stack segment DPL differs from new CPL, or RPL <> CPL
  506.         CS selector is outside LDT/GDT limit or not code
  507.         non-conforming code segment's DPL differs from CPL
  508.         conforming code segment's DPL > CPL
  509.         DS/ES selectors outside LDT/GDT limit or not readable segments
  510. Note:    the handler must use a task gate in order to have a valid TSS under
  511.       which to execute; it must also reset the busy bit in the new TSS
  512. SeeAlso: INT 0B"CPU"
  513. --------H-0B---------------------------------
  514. INT 0B - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  515. Desc:    automatically asserted by the UART when COM2 needs attention, if the
  516.       UART has been programmed to generate interrupts
  517. Notes:    the TOPS and PCnet adapters use this interrupt request line as an
  518.       alternate
  519.     on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  520.       shares this interrupt
  521.     may be masked by setting bit 3 on I/O port 21h
  522. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  523. --------C-0B---------------------------------
  524. INT 0B P - CPU-generated (80286+) - SEGMENT NOT PRESENT
  525. Desc:    generated when loading a segment register if the segment descriptor
  526.       indicates that the segment is not currently in memory, unless the
  527.       segment is an LDT (see INT 0A"CPU") or stack segment (see
  528.       INT 0C"CPU") needed by a task switch
  529. Note:    may be used to implement virtual memory by loading in segments as they
  530.       are accessed, clearing the "not present" bit after loading
  531. SeeAlso: INT 0A"CPU",INT 0E"hardware"
  532. --------h-0B---------------------------------
  533. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  534. Desc:    this is the lowest-level keyboard handler on an HP 95LX palmtop
  535. Note:    debounces key, places the keycode in I/O register 60h, and calls INT 09
  536. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  537. --------H-0C---------------------------------
  538. INT 0C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  539. Desc:    automatically asserted by the UART when COM1 needs attention, if the
  540.       UART has been programmed to generate interrupts
  541. BUG:    this vector is modified but not restored by Direct Access v4.0, and
  542.       may be left dangling by other programs written with the same version
  543.       of compiled BASIC
  544. Notes:    on many PC's, COM3 shares this interrupt
  545.     may be masked by setting bit 4 on I/O port 21h
  546. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  547. --------C-0C---------------------------------
  548. INT 0C - CPU-generated (80286+) - STACK FAULT
  549. Desc:    this interrupt is generated in protected mode on a stack overflow or
  550.       underflow, or if an inter-level transition or task switch references
  551.       a stack segment marked "not present"; it is generated in real mode
  552.       on accessing a word operand at SS:FFFFh
  553. Note:    the 80286 will shut down in real mode if SP=1 before a push.  On the
  554.       PC AT and compatibles, external circuitry generates a reset on
  555.       shutdown.
  556. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  557. --------I-0C---------------------------------
  558. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  559. Desc:    the IBM System 36/38 emulator may be invoked through a private API,
  560.       whose entry point address is offset 100h in the segment pointed at
  561.       by this vector
  562.  
  563. Call the API entry point with
  564.     AH = function
  565.         03h update screen
  566.         05h select next session
  567.         AL = session number (00h-03h)
  568.         Return: AL = session type code
  569.                 00h not active
  570.                 01h display session
  571.                 02h printer session
  572.                 FEh invalid session number
  573.             DS = requested session's data segment (0 if not active)
  574. Return: ???
  575.  
  576. Format of emulator's data area (offset from interrupt handler's segment):
  577. Offset    Size    Description
  578. 13Eh    BYTE    bit flags for status line indicators turned on since this byte
  579.         last zerod
  580. 13Fh    BYTE    bit flags for status line indicators turned off since this
  581.         byte last set to FFh
  582. 140h    WORD    offset of EBCDIC to ASCII translation
  583. 146h    WORD    offset of EBCDIC screen buffer
  584. 148h    WORD    offset of EC (engineering change) level signature
  585. 150h    BYTE    "KEYI"
  586. 151h    BYTE    5250 key scan code to be sent to remote
  587. 15Bh    BYTE    "SYSAV"
  588. 15Dh    BYTE    5250 cursor column
  589. 15Eh    BYTE    5250 cursor row
  590. 167h    BYTE    "DVCTAD"
  591. 178h    BYTE    "FLAGS"
  592. 184h    BYTE    "SESSNOAD"
  593. 193h    BYTE    "STNAD"
  594. 198h    BYTE    "NSDS"
  595. --------H-0D---------------------------------
  596. INT 0D - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  597. Notes:    under DESQview, only the INT 15h vector and BASIC segment address (the
  598.       word at 0000h:0510h) may be assumed to be valid for the handler's
  599.       process
  600.     the Tandy 1000, 1000A, and 1000HD use IRQ2 for the hard disk; the
  601.       1000EX, HX, RLX, RLX-HD, RLX-B, RLX-HD-B use IRQ5 instead; the
  602.       1000RL, RL-HD, SL, SL/2, TL, TL/2, and TL/3 are jumper-selectable
  603.       for either IRQ2 or IRQ5 (default IRQ5); the 1000SX and TX are
  604.       DIP-switch selectable for IRQ2 or IRQ5 (default IRQ2); the RSX and
  605.       RSX-HD use IRQ14.  Tandy systems which use IRQ2 for the hard disk
  606.       interrupt use IRQ5 for vertical retrace.
  607.     may be masked by setting bit 5 on I/O port 21h
  608. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  609. SeeAlso: INT 7D"GO32"
  610. --------H-0D---------------------------------
  611. INT 0D - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  612. Desc:    used to ensure that the dynamic RAM retains its contents in earlier
  613.       1000-series models; later models use normal DMA for RAM refresh
  614.       (some early models have no DMA unless it is added via an expansion
  615.       card)
  616. SeeAlso: INT 55
  617. --------h-0D---------------------------------
  618. INT 0D - HP 95LX - INFRARED INTERRUPT
  619. Desc:    this interrupt is used to perform communications over the infrared
  620.       data link
  621. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  622. --------C-0D---------------------------------
  623. INT 0D - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  624. Desc:    the CPU generates this interrupt when it detects a protection violation
  625.       which does not fit under any other category having a separate
  626.       interrupt
  627. Notes:    called in real mode when
  628.         an instruction accesses a memory operand extending beyond offset
  629.           FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  630.           CS, DS, ES, FG, or GS
  631.         a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  632.           in the second byte
  633.         an instruction exceeds the maximum length allowed (10 bytes for
  634.           80286, 15 bytes for 80386/80486)
  635.         an instruction wraps from offset FFFFh to offset 0000h
  636.     called in protected mode on protection violations not covered by INT 06
  637.       through INT 0C, including
  638.         segment limit violations
  639.         write to read-only segments
  640.         accesses using null DS or ES selectors
  641.         accesses to segments with privilege greater than CPL
  642.         wrong descriptor type
  643.     called on 80486 protected-mode floating-point protection fault
  644. SeeAlso: INT 09"80486",INT 0C"STACK"
  645. --------H-0E---------------------------------
  646. INT 0E - IRQ6 - DISKETTE CONTROLLER
  647. Desc:    this interrupt is generated by the floppy disk controller on
  648.       completion of an operation
  649. Notes:    default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  650.     may be masked by setting bit 6 on I/O port 21h
  651. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  652. --------C-0E---------------------------------
  653. INT 0E - CPU-generated (80386+ native mode) - PAGE FAULT
  654. Desc:    this interrupt is generated in protected and virtual-86 modes on
  655.       attempting to access a 4K memory page whose page table entry has
  656.       the "present" bit cleared
  657. Note:    used to implement virtual memory
  658. SeeAlso: INT 0B"hardware"
  659. --------h-0E---------------------------------
  660. INT 0E - HP 95LX - EXTERNAL CARD INTERRUPT
  661. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  662. --------H-0F---------------------------------
  663. INT 0F - IRQ7 - PARALLEL PRINTER
  664. Desc:    this interrupt is generated by the LPT1 printer adapter when the
  665.       printer becomes ready
  666. Notes:    most printer adapters do not reliably generate this interrupt
  667.     the 8259 interrupt controller generates an interrupt corresponding to
  668.       IRQ7 when an error condition occurs
  669. SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  670. --------h-0F---------------------------------
  671. INT 0F - HP 95LX - REAL-TIME CLOCK
  672. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
  673. --------C-10---------------------------------
  674. INT 10 - CPU-generated (80286+) - COPROCESSOR ERROR
  675. Desc:    this interrupt is generated by the CPU when the -ERROR pin is asserted
  676.       by the coprocessor
  677. Note:    AT's and clones usually wire the coprocessor to use IRQ13, but not all
  678.       get it right
  679. SeeAlso: INT 09"hardware",INT 75
  680. --------V-1000-------------------------------
  681. INT 10 - VIDEO - SET VIDEO MODE
  682.     AH = 00h
  683.     AL = mode (see below)
  684. Return: AL = video mode flag (Phoenix BIOS)
  685.         20h mode > 7
  686.         30h modes 0-5 and 7
  687.         3Fh mode 6
  688.     AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  689. Desc:    specify the display mode for the currently active display adapter
  690. Notes:    IBM standard modes do not clear the screen if the high bit of AL is set
  691.       (EGA or higher only)
  692.     the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  693.       SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  694.       Everex EV-673
  695.     the installation check for Ahead adapters is the signature "AHEAD" at
  696.       C000h:0025h
  697.     the installation check for Paradise adapters is the signature "VGA=" at
  698.       C000h:007Dh
  699.     the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  700.       signature "OAK VGA" at C000h:0008h
  701.     the installation check for ATI adapters is the signature "761295520" at
  702.       C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
  703.         31h for 18800
  704.         32h for 18800-1
  705.         33h for 18800-2
  706.         34h for 18800-4
  707.         35h for 18800-5
  708.       the two bytes at C000h:0040h indicate the adapter type
  709.         "22" EGA Wonder
  710.         "31" VGA Wonder
  711.         "32" EGA Wonder800+
  712.       the byte at C000h:0042h contains feature flags
  713.         bit 1: mouse port present
  714.         bit 4: programmable video clock
  715.       the byte at C000h:0044h contains additional feature flags if chipset
  716.         byte > 30h (see below)
  717.     the installation check for Genoa video adapters is the signature
  718.       77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
  719.       and XXh is
  720.         00h for Genoa 6200/6300
  721.         11h for Genoa 6400/6600
  722.         22h for Genoa 6100
  723.         33h for Genoa 5100/5200
  724.         55h for Genoa 5300/5400
  725.       for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  726.       for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  727.         "EXTMODE", indicating support for extended modes
  728. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  729. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
  730. Index:    installation check;Tseng ET4000|installation check;Ahead video cards
  731. Index:    installation check;Oak Technologies|installation check;ATI video cards
  732. Index:    installation check;Paradise video|installation check;Genoa video cards
  733.  
  734. Bitfields for ATI additional feature flags:
  735.  bit 0    70 Hz non-interlaced display
  736.  bit 1    Korean (double-byte) characters
  737.  bit 2    45 MHz memory clock rather than 40 MHz
  738.  bit 3    zero wait states
  739.  bit 4    paged ROMs
  740.  bit 6    no 8514/A monitor support
  741.  bit 7    HiColor DAC
  742.  
  743. Values for video mode:
  744.       text/ text pixel     pixel    colors    disply    scrn  system
  745.       grph resol  box    resoltn        pages    addr
  746.  00h = T   40x25  8x8        16gray       8    B800 CGA,PCjr,Tandy
  747.      = T   40x25  8x14        16gray       8    B800 EGA
  748.      = T   40x25  8x16          16       8    B800 MCGA
  749.      = T   40x25  9x16          16       8    B800 VGA
  750.  01h = T   40x25  8x8          16       8    B800 CGA,PCjr,Tandy
  751.      = T   40x25  8x14          16       8    B800 EGA
  752.      = T   40x25  8x16          16       8    B800 MCGA
  753.      = T   40x25  9x16          16       8    B800 VGA
  754.  02h = T   80x25  8x8        16gray       4    B800 CGA,PCjr,Tandy
  755.      = T   80x25  8x14        16gray       4    B800 EGA
  756.      = T   80x25  8x16          16       4    B800 MCGA
  757.      = T   80x25  9x16          16       4    B800 VGA
  758.  03h = T   80x25  8x8          16       4    B800 CGA,PCjr,Tandy
  759.      = T   80x25  8x14          16       4    B800 EGA
  760.      = T   80x25  8x16          16       4    B800 MCGA
  761.      = T   80x25  9x16          16       4    B800 VGA
  762.  04h = G   40x25  8x8    320x200       4        B800 CGA,PCjr,EGA,MCGA,VGA
  763.  05h = G   40x25  8x8    320x200     4gray        B800 CGA,PCjr,EGA
  764.      = G   40x25  8x8    320x200       4        B800 MCGA,VGA
  765.  06h = G   80x25  8x8    640x200       2        B800 CGA,PCjr,EGA,MCGA,VGA
  766.  07h = T   80x25  9x14         mono      var    B000 MDA,Hercules,EGA
  767.      = T   80x25  9x16         mono        B000 VGA
  768.  08h = T  132x25  8x8          16        B800 ATI EGA/VGA Wonder [2]
  769.      = T  132x25  8x8         mono        B000 ATI EGA/VGA Wonder [2]
  770.      = G   20x25  8x8    160x200      16             PCjr, Tandy 1000
  771.      = G   90x43  8x8    720x352     mono        B000 Hercules + MSHERC.COM
  772.      = G   90x45  8x8         mono        B000 Hercules + HERKULES [11]
  773.  09h = G   40x25  8x8    320x200      16             PCjr, Tandy 1000
  774.  0Ah = G   80x25  8x8    640x200       4             PCjr, Tandy 1000
  775.  0Bh =     reserved (used internally by EGA BIOS)
  776.      = G   80x25  8x8    640x200      16             Tandy 1000 SL/TL [13]
  777.  0Ch =     reserved (used internally by EGA BIOS)
  778.  0Dh = G   40x25  8x8    320x200      16       8    A000 EGA,VGA
  779.  0Eh = G   80x25  8x8    640x200      16       4    A000 EGA,VGA
  780.  0Fh = G   80x25  8x14    640x350     mono       2    A000 EGA,VGA
  781.  10h = G   80x25  8x14    640x350       4       2    A000 64k EGA
  782.      = G        640x350      16        A000 256k EGA,VGA
  783.  11h = G   80x30  8x16    640x480     mono        A000 VGA,MCGA,ATI EGA,ATI VIP
  784.  12h = G   80x30  8x16    640x480     16/256k    A000 VGA,ATI VIP
  785.      = G   80x30  8x16    640x480     16/64        A000 ATI EGA Wonder
  786.      = G        640x480      16             UltraVision+256K EGA
  787.  13h = G   40x25  8x8    320x200 256/256k    A000 VGA,MCGA,ATI VIP
  788.  14h = T  132x25  Nx16          16             XGA, IBM Enhanced VGA [3]
  789.      = T  132x25  8x16 1056x400     16/256k         Cirrus CL-GD5420/5422/5426
  790.      = G   80x25  8x8    640x200                 Lava Chrome II EGA
  791.      = G        640x400      16             Tecmar VGA/AD
  792.  15h = G   80x25  8x14    640x350                 Lava Chrome II EGA
  793.  16h = G   80x25  8x14    640x350                 Lava Chrome II EGA
  794.      = G        800x600      16             Tecmar VGA/AD
  795.  17h = T  132x25                     Tecmar VGA/AD
  796.      = T   80x43  8x8    640x350      16       4    B800 Tseng ET4000 BIOS [10]
  797.      = G   80x34  8x14    640x480                 Lava Chrome II EGA
  798.  18h = T   80x30  9x16    720x480      16       1    A000 Realtek RTVGA [12]
  799.      = T  132x25         mono        B000 Cirrus 5320 chipset
  800.      = T  132x44  8x8         mono        B000 Tseng Labs EVA
  801.      = T  132x44  9x8  1188x352      4gray       2    B000 Tseng ET3000 chipset
  802.      = T  132x44  8x8         16/256       2    B000 Tseng ET4000 chipset
  803.      = G   80x34  8x14    640x480                 Lava Chrome II EGA
  804.      = G           1024x768      16             Tecmar VGA/AD
  805.  19h = T   80x43  9x11    720x473      16       1    A000 Realtek RTVGA [12]
  806.      = T  132x25  8x14         mono        B000 Tseng Labs EVA
  807.      = T  132x25  9x14 1188x350      4gray       4    B000 Tseng ET3000 chipset
  808.      = T  132x25  8x14         16/256       4    B000 Tseng ET4000 chipset
  809.      = T  132x34         mono        B000 Cirrus 5320 chipset
  810.  1Ah = T   80x60  9x8    720x480      16       1    A000 Realtek RTVGA [12]
  811.      = T  132x28  8x13         mono        B000 Tseng Labs EVA
  812.      = T  132x28  9x13 1188x364      4gray       4    B000 Tseng ET3000 chipset
  813.      = T  132x28  8x13         16/256       4    B000 Tseng ET4000 chipset
  814.      = T  132x44         mono        B000 Cirrus 5320 chipset
  815.      = G        640x350     256             Tecmar VGA/AD
  816.  1Bh = T  132x25  9x14 1188x350      16       1    A000 Realtek RTVGA [12]
  817.      = G        640x400     256             Tecmar VGA/AD
  818.  1Ch = T  132x25                     Cirrus 5320 chipset
  819.      = T  132x30  9x16 1188x480      16       1    A000 Realtek RTVGA [12]
  820.      = G        640x480     256             Tecmar VGA/AD
  821.  1Dh = T  132x43                     Cirrus 5320 chipset
  822.      = T  132x43  9x11 1188x473      16       1    A000 Realtek RTVGA [12]
  823.      = G        800x600     256             Tecmar VGA/AD
  824.  1Eh = T  132x44                     Cirrus 5320 chipset
  825.      = T  132x60  9x8  1188x480      16       1    A000 Realtek RTVGA [12]
  826.  1Fh = G  100x75  8x8    800x600      16       1    A000 Realtek RTVGA
  827.  20h = T  132x25          16             Avance Logic AL2101
  828.      = G        240x128            B000 HP 95LX
  829.      = G  120x45  8x16    960x720      16       1    A000 Realtek RTVGA
  830.  21h = T  132x30          16             Avance Logic AL2101
  831.      = T  132x44  9x9  1188x396     16/256k    B800 WD90C
  832.      = T  132x44  9x9          16        B800 Diamond Speedstar 24X
  833.      = T  132x60          16       2    B800 Tseng ET4000 chipset [10]
  834.      = G   80x43  8x8    720x348     mono        B000 DESQview 2.x+Hercules [4]
  835.      = G  128x48  8x16 1024x768      16       1    A000 Realtek RTVGA [12]
  836.  22h = T  132x43                     Allstar Peacock (VGA)
  837.      = T  132x43          16             Avance Logic AL2101
  838.      = T  132x44  8x8                     Tseng Labs EVA
  839.      = T  132x44  9x8  1188x352     16/256k   2    B800 Tseng ET3000 chipset
  840.      = T  132x44  8x8         16/256k   2    B800 Tseng ET4000 chipset
  841.      = T  132x44  8x8                     Ahead Systems EGA2001
  842.      = T  132x44  8x8          16       2    B800 Ahead B
  843.      = T  132x44          16             Orchid Prodesigner VGA
  844.      = G   80x43  8x8    720x348     mono        B800 DESQview 2.x+Hercules [4]
  845.      = G   96x64  8x16    768x1024  16       1    A000 Realtek RTVGA
  846.  23h = T  132x25  6x14                     Tseng Labs EVA
  847.      = T  132x25  9x14 1188x350     16/256k   4    B800 Tseng ET3000 chipset
  848.      = T  132x25  8x14         16/256       4    B800 Tseng ET4000 chipset
  849.      = T  132x25  8x14                     Ahead Systems EGA2001
  850.      = T  132x25  8x14          16       4    B800 Ahead B
  851.      = T  132x25  8x8          16        B800 ATI EGA Wonder,ATI VIP
  852.      = T  132x25                     Cirrus 5320 chipset
  853.      = T  132x28                     Allstar Peacock (VGA)
  854.      = T  132x28          16             Orchid Prodesigner VGA
  855.      = T  132x60          16             Avance Logic AL2101
  856.      = G  128x48  8x16 1024x768       4       1    A000 Realtek RTVGA
  857.  24h = T   80x30          16             Avance Logic AL2101
  858.      = T  132x25                     Allstar Peacock (VGA)
  859.      = T  132x25          16             Orchid Prodesigner VGA
  860.      = T  132x28  6x13                     Tseng Labs EVA
  861.      = T  132x28  9x13 1188x364     16/256k   4    B800 Tseng ET3000 chipset
  862.      = T  132x28  8x13         16/256k   4    B800 Tseng ET4000 chipset
  863.      = T  132x28  8x12          16       1    B800 Ahead B
  864.      = T  132x28                     Cirrus 5320 chipset
  865.      = G   64x32  8x16    512x512     256       1    A000 Realtek RTVGA
  866.  25h = T   80x43          16             Avance Logic AL2101
  867.      = G   80x60  8x8    640x480                 Tseng Labs EVA
  868.      = G   80x60  8x8    640x480     16/256k   1    A000 Tseng ET3000/4000 chipset
  869.      = G        640x480      16             VEGA VGA
  870.      = G   80x60  8x8    640x480      16        A000 Orchid Prodesigner VGA
  871.      = G   80x60  8x8    640x480      16       1    A000 Ahead B (same as 26h)
  872.      = G        640x480      16             NEC GB-1
  873.      = G        640x480      16             Cirrus 5320 chipset
  874.      = G        640x400     256             Realtek RTVGA
  875.  26h = T   80x60  8x8                     Tseng Labs EVA
  876.      = T   80x60  8x8    640x480     16/256k   3    B800 Tseng ET3000/4000 chipset
  877.      = T   80x60                     Allstar Peacock (VGA)
  878.      = T   80x60          16             Orchid ProDesigner VGA
  879.      = T   80x60          16             Avance Logic AL2101
  880.      = G   80x60  8x8    640x480                 Ahead Systems EGA2001
  881.      = G   80x60  8x8    640x480      16       1    A000 Ahead B (same as 25h)
  882.      = G        640x480     256             Realtek RTVGA
  883.  27h = T  132x25  8x8         mono        B000 ATI EGA Wonder,ATI VIP
  884.      = G        720x512      16             VEGA VGA
  885.      = G        720x512      16             Genoa
  886.      = G  100x75  8x8    800x600     256       1    A000 Realtek RTVGA [12]
  887.      = G        960x720      16             Avance Logic AL2101
  888.  28h = T  ???x???                     VEGA VGA
  889.      = G        512x512     256             Avance Logic AL2101
  890.      = G           1024x768     256             Realtek RTVGA (1meg)
  891.  29h = G        640x400     256             Avance Logic AL2101
  892.      = G        800x600      16             VEGA VGA
  893.      = G  100x37  8x16    800x600      16        A000 Orchid
  894.      = G        800x600      16        A000 STB,Genoa,Sigma
  895.      = G        800x600      16             Allstar Peacock (VGA)
  896.      = G  100x37  8x16    800x600     16/256k   1    A000 Tseng ET3000/4000 chipset
  897.      = G        800x600     ???             EIZO MDB10
  898.      = G        800x600      16             Cirrus 5320 chipset
  899.      = G           1024x1024 256             Realtek RTVGA BIOS v3.C10
  900.  2Ah = T  100x40                     Allstar Peacock (VGA)
  901.      = T  100x40  8x16          16             Orchid Prodesigner VGA
  902.      = T  100x40  8x15    800x600     16/256k   4    B800 Tseng ET3000/4000 chipset
  903.      = G        640x480     256             Avance Logic AL2101
  904.      = G           1280x1024  16             Realtek RTVGA
  905.  2Bh = G        800x600      16             Avance Logic AL2101
  906.  2Ch = G        800x600     256             Avance Logic AL2101
  907.  2Dh = G        640x350     256             VEGA VGA
  908.      = G        640x350 256/256k    A000 Orchid, Genoa, STB
  909.      = G   80x25  8x14    640x350 256/256k   1    A000 Tseng ET3000/4000 chipset
  910.      = G        640x350     256             Cirrus 5320 chipset
  911.      = G        768x1024  16             Avance Logic AL2101
  912.  2Eh = G        640x480     256             VEGA VGA
  913.      = G   80x30  8x16    640x480 256/256k    A000 Orchid
  914.      = G        640x480 256/256k    A000 STB,Genoa,Sigma
  915.      = G   80x30  8x16    640x480 256/256k   1    A000 Tseng ET3000/4000 chipset
  916.      = G        768x1024 256             Avance Logic AL2101
  917.  2Fh = T  160x50  8x8  1280x400      16       4    B800 Ahead B (Wizard/3270)
  918.      = G        720x512     256             VEGA VGA
  919.      = G        720x512     256             Genoa
  920.      = G   80x25  8x16    640x400 256/256k   1    A000 Tseng ET4000 chipset
  921.      = G           1024x768       4             Avance Logic AL2101
  922.  30h = G        800x600     256             VEGA VGA
  923.      = G  100x37  8x16    800x600 256/256k    A000 Orchid
  924.      = G        800x600 256/256k    A000 STB,Genoa,Sigma
  925.      = G        720x350       2             3270 PC
  926.      = G        800x600     256             Cardinal
  927.      = G        ???x???            B800 AT&T 6300
  928.      = G  100x37  8x16    800x600 256/256k   1    A000 Tseng ET3000/4000 chipset
  929.      = G           1024x768      16             Avance Logic AL2101
  930.  31h = G           1024x768     256             Avance Logic AL2101
  931.  32h = T   80x34  8x10          16       4    B800 Ahead B (Wizard/3270)
  932.  33h = T  132x44  8x8          16        B800 ATI EGA Wonder,ATI VIP
  933.      = T   80x34  8x8          16       4    B800 Ahead B (Wizard/3270)
  934.  34h = T   80x66  8x8          16       4    B800 Ahead B (Wizard/3270)
  935.  36h = G        960x720      16             VEGA VGA
  936.      = G        960x720      16             STB
  937.      = G        960x720      16             Tseng ET3000 only
  938.      = G           1280x1024  16             Avance Logic AL2101
  939.  37h = T  132x44  8x8         mono        B800 ATI EGA Wonder,ATI VIP
  940.      = G           1024x768      16             VEGA VGA
  941.      = G  128x48  8x16 1024x768      16        A000 Orchid
  942.      = G           1024x768      16        A000 STB,Genoa,Sigma
  943.      = G           1024x768      16             Definicon
  944.      = G  128x48  8x16 1024x768      16       1    A000 Tseng ET3000/4000 chipset
  945.      = G           1280x1024 256             Avance Logic AL2101
  946.  38h = G           1024x768     256             STB VGA/EM-16 Plus (1MB)
  947.      = G  128x48  8x16 1024x768 256/256k   1    A000 Tseng ET4000 chipset
  948.      = G           1024x768     256             Orchid ProDesigner II
  949.  3Dh = G           1280x1024  16             Definicon
  950.      = G  128x64  8x16 1280x1024  16       1    A000 Tseng ET4000 v3.00 [1,7]
  951.  3Eh = G           1280x961      16             Definicon
  952.  40h = T   80x43                     VEGA VGA, Tecmar VGA/AD
  953.      = T   80x43                     Video7 V-RAM VGA
  954.      = T   80x43                     Tatung VGA
  955.      = T  100x30          16             MORSE VGA
  956.      = T  100x30                     Cirrus 510/520 chipset
  957.      = T   80x25    720x350     mono             Genoa SuperEGA BIOS 3.0+
  958.      = G        320x200      64K             Avance Logic AL2101
  959.      = G   80x25  8x16    640x400       2       1    B800 AT&T 6300, AT&T VDC600
  960.      = G   80x25  8x16    640x400       2       1    B800 Olivetti Quaderno
  961.      = G   80x25  8x16    640x400       2       1    B800 Compaq Portable
  962.  41h = T  132x25                     VEGA VGA
  963.      = T  132x25                     Tatung VGA
  964.      = T  132x25                     Video7 V-RAM VGA
  965.      = T  100x50          16             MORSE VGA
  966.      = T  100x50                     Cirrus 510/520 chipset
  967.      = T   80x34  9x14    720x476     16/256k    B800 WD90C
  968.      = T   80x34  9x14          16        B800 Diamond Speedstar 24X
  969.      = G        512x512      64K             Avance Logic AL2101
  970.      = G        640x200      16       1         AT&T 6300
  971.      = G   80x25    720x348     mono        B000 Genoa SuperEGA BIOS 3.0+
  972.  42h = T  132x43                     VEGA VGA
  973.      = T  132x43                     Tatung VGA
  974.      = T  132x43                     Video7 V-RAM VGA
  975.      = T   80x34  9x10           4       4    B800 Ahead B (Wizard/3270)
  976.      = T  100x60          16             MORSE VGA
  977.      = T  100x60                     Cirrus 510/520 chipset
  978.      = G   80x25  8x16    640x400      16             AT&T 6300, AT&T VDC600
  979.      = G        640x400      64K             Avance Logic AL2101
  980.      = G   80x25    720x348     mono        B800 Genoa SuperEGA BIOS 3.0+
  981.  43h = T   80x60                     VEGA VGA
  982.      = T   80x60                     Tatung VGA
  983.      = T   80x60                     Video7 V-RAM VGA
  984.      = T   80x45  9x8           4       4    B800 Ahead B (Wizard/3270)
  985.      = T  100x75          16             MORSE VGA
  986.      = T   80x29    720x348     mono             Genoa SuperEGA BIOS 3.0+
  987.      = G         640x200 of 640x400 viewport     AT&T 6300 (unsupported)
  988.      = G        640x480      64K             Avance Logic AL2101
  989.  44h =     disable VDC and DEB output             AT&T 6300
  990.      = T  100x60                     VEGA VGA
  991.      = T  100x60                     Tatung VGA
  992.      = T  100x60                     Video7 V-RAM VGA
  993.      = T   80x32    720x352     mono             Genoa SuperEGA BIOS 3.0+
  994.      = G        800x600      64K             Avance Logic AL2101
  995.  45h = T  132x28                     Tatung VGA
  996.      = T  132x28                     Video7 V-RAM VGA
  997.      = T   80x44    720x352     mono             Genoa SuperEGA BIOS 3.0+
  998.  46h = T  132x25  8x14         mono             Genoa 6400
  999.      = T  132x25  9x14         mono             Genoa SuperEGA BIOS 3.0+
  1000.      = G  100x40  8x15    800x600       2             AT&T VDC600
  1001.  47h = T  132x29  8x12         mono             Genoa 6400
  1002.      = T  132x29  9x12         mono             Genoa SuperEGA BIOS 3.0+
  1003.      = T  132x28  9x16 1188x448     16/256k    B800 WD90C
  1004.      = T  132x28  9x16          16        B800 Diamond Speedstar 24X
  1005.      = G  100x37  8x16    800x600      16             AT&T VDC600
  1006.  48h = T  132x32  8x12         mono             Genoa 6400
  1007.      = T  132x32  9x11         mono             Genoa SuperEGA BIOS 3.0+
  1008.      = G   80x50  8x8    640x400       2        B800 AT&T 6300, AT&T VDC600
  1009.      = G   80x50  8x8    640x400       2        B800 Olivetti Quaderno
  1010.  49h = T  132x44  8x8         mono             Genoa 6400
  1011.      = T  132x44  9x8         mono             Genoa SuperEGA BIOS 3.0+
  1012.      = G   80x30  8x16    640x480                 Lava Chrome II EGA
  1013.  4Dh = T  120x25                     VEGA VGA
  1014.  4Eh = T  120x43                     VEGA VGA
  1015.      = T   80x60  8x8         16/256k    B800 Oak OTI-067/OTI-077 [8]
  1016.  4Fh = T  132x25                     VEGA VGA
  1017.      = T  132x60                     some Oak Tech VGA [8]
  1018.  50h = T   80x30  8x16         16/256k    B800 Trident TVGA 8800/8900
  1019.      = T   80x34                     Lava Chrome II EGA
  1020.      = T   80x43         mono             VEGA VGA
  1021.      = T  132x25  9x14         mono             Ahead Systems EGA2001
  1022.      = T  132x25  9x14           4       4    B800 Ahead B
  1023.      = T  132x25  8x14          16       8    B800 OAK Technologies VGA-16
  1024.      = T  132x25  8x14         16/256k    B800 Oak OTI-037/067/077 [8]
  1025.      = T  132x25  8x14 1056x350      16       8    B800 UM587 chipset
  1026.      = T  132x30          16             MORSE VGA
  1027.      = T  132x30                     Cirrus 510/520 chipset
  1028.      = G   80x30  8x16    640x480      16             Paradise EGA-480
  1029.      = G   80x30  8x16    640x480      16             NEL Electronics BIOS
  1030.      = G        640x480     mono???         Taxan 565 EGA
  1031.      = G   40x25  8x8    320x200                 Genoa SuperEGA BIOS 3.0+
  1032.  51h = T   80x30  8x16                     Paradise EGA-480
  1033.      = T   80x30  9x16                     NEL Electronics BIOS
  1034.      = T   80x30                     Lava Chrome II EGA
  1035.      = T   80x43  8x11         16/256k    B800 Trident TVGA 8800/8900
  1036.      = T  132x25         mono             VEGA VGA
  1037.      = T  132x28  9x12           4       4    B800 Ahead B
  1038.      = T  132x43  8x8          16       5    B800 OAK Technologies VGA-16
  1039.      = T  132x43  8x8        16/256k        B800 Oak OTI-037/067/077
  1040.      = T  132x43  8x8  1056x344      16       5    B800 UM587 chipset
  1041.      = T  132x50          16             MORSE VGA
  1042.      = T  132x50                     Cirrus 510/520 chipset
  1043.      = G   80x34  8x14    640x480      16             ATI EGA Wonder
  1044.      = G   80x25  8x8    640x200                 Genoa SuperEGA BIOS 3.0+
  1045.  52h = T   80x60                     Lava Chrome II EGA
  1046.      = T   80x60  8x8         16/256k    B800 Trident TVGA 8800/8900
  1047.      = T  132x43         mono             VEGA VGA
  1048.      = T  132x44  9x8         mono             Ahead Systems EGA2001
  1049.      = T  132x44  9x8           4       2    B800 Ahead B
  1050.      = T  132x60          16             MORSE VGA
  1051.      = T  132x60                     Cirrus 510/520 chipset
  1052.      = G   94x29  8x14    752x410      16             ATI EGA Wonder
  1053.      = G  100x75  8x8    800x600      16       1    A000 OAK Technologies VGA-16
  1054.      = G  100x75  8x8    800x600      16        A000 Oak OTI-037 chipset [8]
  1055.      = G  100x37  8x16    800x600      16        A000 Oak OTI-067/077 chips [8]
  1056.      = G  100x75  8x8    800x600      16        A000 UM587 chipset
  1057.      = G  128x30  8x16 1024x480      16             NEL Electronics BIOS
  1058.  53h = T   80x25  8x16                     NEL Electronics BIOS
  1059.      = T   80x60          16             MORSE VGA
  1060.      = T   80x60                     Cirrus 510/520 chipset
  1061.      = T  132x25  8x14         16/256k    B800 Trident TVGA 8800/8900
  1062.      = T  132x43                     Lava Chrome II EGA
  1063.      = G        640x480     256             Oak VGA
  1064.      = G   80x30  8x16    640x480     256        A000 Oak OTI-067/OTI-077 [8]
  1065.      = G  100x40  8x14    800x560      16             ATI EGA Wonder,ATI VIP
  1066.      = G                         AX PC
  1067.  54h = T  132x25                     Lava Chrome II EGA
  1068.      = T  132x30  8x16         16/256k    B800 Trident TVGA 8800/8900
  1069.      = T  132x43  8x8                     Paradise EGA-480
  1070.      = T  132x43  8x8                     NEL Electronics BIOS
  1071.      = T  132x43  7x9         16/256k    B800 Paradise VGA
  1072.      = T  132x43  8x9         16/256k    B800 Paradise VGA on multisync
  1073.      = T  132x43                     Taxan 565 EGA
  1074.      = T  132x43                     AST VGA Plus
  1075.      = T  132x43                     Hewlett-Packard D1180A
  1076.      = T  132x43  7x9          16             AT&T VDC600
  1077.      = T  132x43  9x9  1188x387     16/256k    B800 WD90C
  1078.      = T  132x43  9x9  1188x387     16/256k    B800 Diamond Speedstar 24X
  1079.      = T  132x43  9x9  1188x387     16/256k    B800 Diamond Stealth 24
  1080.      = T  132x43  8x8  1056x350     16/256k         Cirrus CL-GD5420/5422/5426
  1081.      = T  132x50  8x8          16        A000 NCR 77C22 [9]
  1082.      = G  100x42  8x14    800x600      16        A000 ATI EGA Wonder, VGA Wonder
  1083.      = G  100x42  8x14    800x600      16        A000 ATI Ultra 8514A, ATI XL
  1084.      = G        800x600     256        A000 Oak VGA
  1085.      = G  100x37  8x16    800x600     256        A000 Oak OTI-067/077 chips [8]
  1086.  55h = T   80x66  8x8         16/256k    A000 ATI VIP
  1087.      = T  132x25  8x14                     Paradise EGA-480
  1088.      = T  132x25  8x14                     NEL Electronics BIOS
  1089.      = T  132x25  7x16         16/256k    B800 Paradise VGA
  1090.      = T  132x25  8x16         16/256k    B800 Paradise VGA on multisync
  1091.      = T  132x25                     Taxan 565 EGA
  1092.      = T  132x25                     AST VGA Plus
  1093.      = T  132x25                     Hewlett-Packard D1180A
  1094.      = T  132x25  7x16          16             AT&T VDC600
  1095.      = T  132x25  8x16          16        A000 NCR 77C22 [9]
  1096.      = T  132x25  9x16 1188x400     16/256k    B800 WD90C
  1097.      = T  132x25  9x16 1188x400     16/256k    B800 Diamond Speedstar 24X
  1098.      = T  132x25  9x16 1188x400     16/256k    B800 Diamond Stealth 24
  1099.      = T  132x25  8x14 1056x350     16/256k         Cirrus CL-GD5420/5422/5426
  1100.      = T  132x43  8x11         16/256k    B800 Trident TVGA 8800/8900
  1101.      = G   94x29  8x14    752x410                 Lava Chrome II EGA
  1102.      = G  128x48  8x16 1024x768     16/256k    A000 ATI VGA Wonder v4+     [5]
  1103.      = G           1024x768     16/256k         ATI VGA Wonder Plus
  1104.      = G           1024x768     16/256k         ATI Ultra 8514A,ATI XL
  1105.      = G  128x48  8x16 1024x768       4        A000 Oak OTI-067/077 chips [8]
  1106.  56h = T  132x43  8x8           3???       2    B000 NSI Smart EGA+
  1107.      = T  132x43  7x9           4        B000 Paradise VGA
  1108.      = T  132x43  8x9           4        B000 Paradise VGA on multisync
  1109.      = T  132x43         mono             Taxan 565 EGA
  1110.      = T  132x43  7x9           2             AT&T VDC600
  1111.      = T  132x43  9x8                     NEL Electronics BIOS
  1112.      = T  132x50  8x8           4        A000 NCR 77C22 [9]
  1113.      = T  132x60  8x8         16/256k    B800 Trident TVGA 8800/8900
  1114.      = G           1024x768      16        A000 Oak VGA
  1115.      = G  128x48  8x16 1024x768      16        A000 Oak OTI-067/077 chips [8]
  1116.  57h = T  132x25  8x14           3???       4    B000 NSI Smart EGA+
  1117.      = T  132x25  7x16           4        B000 Paradise VGA
  1118.      = T  132x25  8x16           4        B000 Paradise VGA on multisync
  1119.      = T  132x25  9x14                     NEL Electronics BIOS
  1120.      = T  132x25         mono             Taxan 565 EGA
  1121.      = T  132x25  7x16           2             AT&T VDC600
  1122.      = T  132x25  9x14         16/256k    B800 Trident TVGA 8800/8900
  1123.      = T  132x25  8x16           4        A000 NCR 77C22 [9]
  1124.      = G   96x48  8x16    768x1024  16        A000 Oak OTI-067/077 chips [8]
  1125.  58h = T   80x33  8x14          16        B800 ATI EGA Wonder,ATI VIP
  1126.      = T   80x32  9x16          16             Genoa 6400
  1127.      = T   80x43  8x8                     NEL Electronics BIOS
  1128.      = T  132x30  9x16         16/256k    B800 Trident TVGA 8800/8900
  1129.      = G  100x75  8x8    800x600     16/256k    A000 Paradise VGA
  1130.      = G  100x75  8x8    800x600      16             AT&T VDC600
  1131.      = G  100x75  8x8    800x600      16        A000 NCR 77C22 [9]
  1132.      = G  100x75  8x8    800x600      16             Diamond Speedstar 24X
  1133.      = G  100x75  8x8    800x600     16/256k    A000 Paradise VGA, WD90C
  1134.      = G        800x600      16             AST VGA Plus, Compaq VGA
  1135.      = G        800x600      16             Dell VGA
  1136.      = G        800x600      16             Hewlett-Packard D1180A
  1137.      = G        800x600     ???             ELT VGA PLUS 16
  1138.      = G  100x37  8x16    800x600     16/256k    A000 Cirrus CL-GD5420/5422/5426
  1139.      = G  160x64  8x16 1280x1024  16        A000 Oak OTI-077 chipset [8]
  1140.  59h = T   80x43  9x8                     NEL Electronics BIOS
  1141.      = T   80x66  8x8         16/256k    A000 ATI VIP
  1142.      = T  132x43  9x11         16/256k    B800 Trident TVGA 8800/8900
  1143.      = G  100x75  8x8    800x600       2        A000 Paradise VGA
  1144.      = G  100x75  8x8    800x600       2             AT&T VDC600
  1145.      = G        800x600       2             AST VGA Plus, Compaq VGA
  1146.      = G        800x600       2             Dell VGA
  1147.      = G        800x600       2             Hewlett-Packard D1180A
  1148.      = G  100x75  8x8    800x600       2        A000 NCR 77C22 [9]
  1149.      = G  128x48  8x16 1024x768     256        A000 Oak OTI-077 chipset [8]
  1150.  5Ah = T   80x60  8x8                     NEL Electronics BIOS
  1151.      = T  132x60  9x8         16/256k    B800 Trident TVGA 8800/8900
  1152.      = G  128x48  8x16 1024x768       2        A000 NCR 77C22 [9]
  1153.  5Bh = T   80x30  8x16                B800 ATI VGA Wonder (undoc)
  1154.      = G        640x350     256             Genoa 6400
  1155.      = G   80x25  8x16    640x400      32K        A000 Oak OTI-067/077 chips [8]
  1156.      = G        800x600      16             Maxxon, SEFCO TVGA, Imtec
  1157.      = G  100x75  8x8    800x600     16/256k    A000 Trident TVGA 8800, 8900
  1158.      = G        800x600     ???             Vobis MVGA
  1159.      = G  100x37  8x16    800x600                 NEL Electronics BIOS
  1160.      = G  128x48  8x16 1024x768      16        A000 NCR 77C22 [1,9]
  1161.  5Ch = T  100x37  8x16                     NEL Electronics BIOS
  1162.      = G        640x400     256             Logix, ATI Prism Elite
  1163.      = G        640x400     256             Maxxon, SEFCO TVGA, Imtec
  1164.      = G   80x25  8x16    640x400     256/256k    A000 Zymos Poach, Hi Res 512
  1165.      = G   80x25  8x16    640x400     256/256k    A000 Trident TVGA 8800/8900
  1166.      = G   80x30  8x16    640x480     256             Genoa 6400
  1167.      = G   80x30  8x16    640x480      32K        A000 Oak OTI-077 chipset [8]
  1168.      = G  100x75  8x8    800x600     256        A000 NCR 77C22 [9]
  1169.      = G  100x75  8x8    800x600     256/256k    A000 WD90C
  1170.      = G  100x75  8x8    800x600     256/256k    A000 Diamond Speedstar 24X
  1171.      = G  100x37  8x16    800x600     256/256k    A000 Cirrus CL-GD5420/5422/5426
  1172.  5Dh = T  100x75  8x8                     NEL Electronics BIOS
  1173.      = G        640x480     256             Logix, ATI Prism Elite
  1174.      = G        640x480     256             Maxxon, SEFCO TVGA, Imtec
  1175.      = G   80x30  8x16    640x480     256/256k    A000 Zymos Poach, Hi Res 512
  1176.      = G   80x30  8x16    640x480     256/256k    A000 Trident TVGA 8800 (512K)
  1177.      = G  128x48  8x16 1024x768      16        A000 NCR 77C22 [9]
  1178.      = G  128x48  8x16 1024x768      16/256k    A000 WD90C
  1179.      = G  128x48  8x16 1024x768      16             Diamond Speedstar 24X
  1180.      = G  128x48  8x16 1024x768     16/256k    A000 Cirrus CL-GD5420/5422/5426
  1181.  5Eh = G        640x400     256             Paradise VGA,VEGA VGA
  1182.      = G        640x400     256             AST VGA Plus, NCR 77C22
  1183.      = G        640x400     256             Compaq VGA, Dell VGA
  1184.      = G   80x25  8x16    640x400     256             AT&T VDC600
  1185.      = G   80x25  8x16    640x400     256        A000 NCR 77C22 [9]
  1186.      = G   80x25  8x16    640x400     256/256k    A000 WD90C
  1187.      = G   80x25  8x16    640x400     256/256k    A000 Diamond Speedstar 24X
  1188.      = G        800x600      16             Logix, ATI Prism Elite
  1189.      = G  100x37  8x16    800x600      16             NEL Electronics BIOS
  1190.      = G  100x75  8x8    800x600     256             Genoa 6400
  1191.      = G  100x75  8x8    800x600     256/256k    A000 Zymos Poach, Trident 8900
  1192.      = G  100x75  8x8    800x600     256/256k    A000 Hi Res 512
  1193.  5Fh = G        640x480     256             Paradise VGA
  1194.      = G        640x480     256             AST VGA Plus, NCR 77C22
  1195.      = G        640x480     256             Compaq VGA, Dell VGA
  1196.      = G        640x480     256             Hewlett-Packard D1180A
  1197.      = G   80x30  8x16    640x480     256             AT&T VDC600 (512K)
  1198.      = G   80x30  8x16    640x480     256        A000 NCR 77C22 [9]
  1199.      = G   80x30  8x16    640x480     256/256k    A000 WD90C
  1200.      = G   80x30  8x16    640x480     256/256k    A000 Diamond Speedstar 24X
  1201.      = G   80x30  8x16    640x480     256/256k    A000 Cirrus CL-GD5420/5422/5426
  1202.      = G           1024x768      16             Logix, ATI Prism Elite
  1203.      = G           1024x768      16             Maxxon, Imtec
  1204.      = G  128x48  8x16 1024x768      16             Genoa 6400
  1205.      = G  128x48  8x16 1024x768      16/256k    A000 Zymos Poach, Hi Res 512
  1206.      = G  128x48  8x16 1024x768      16/256k    A000 Trident TVGA 88/8900 512K
  1207.  60h = T  132x25  8x14          16/64       8    B800 Quadram Ultra VGA
  1208.      = T  132x25  8x14          16             Genoa 6400
  1209.      = T  132x25  8x14          16             Genoa SuperEGA BIOS 3.0+
  1210.      = T  132x25                     Cirrus 5320 chipset
  1211.      = T  132x25          16             Chips&Technologies chipset
  1212.      = G   80x???    ???x400                 Corona/Cordata BIOS 4.10+
  1213.      = G   80x25  8x16    640x400     256       1    A000 Ahead A, Ahead B
  1214.      = G        752x410                 VEGA VGA
  1215.      = G        752x410      16             Tatung VGA
  1216.      = G        752x410      16             Video7 V-RAM VGA
  1217.      = G  128x48  8x16 1024x768       4/256k    A000 Trident TVGA 8900
  1218.      = G  128x48  8x16 1024x768     256/256k    A000 WD90C
  1219.      = G  128x48  8x16 1024x768     256/256k    A000 Diamond Speedstar 24X
  1220.      = G  128x48  8x16 1024x768     256/256k    A000 Cirrus CL-GD5420/5422/5426
  1221.  61h = T  132x29  8x12          16/64       8    B800 Quadram Ultra VGA
  1222.      = T  132x29  8x8          16             Genoa 6400
  1223.      = T  132x29  8x8          16             Genoa SuperEGA BIOS 3.0+
  1224.      = T  132x50                     Cirrus 5320 chipset
  1225.      = T  132x50          16             Chips&Technologies chipset
  1226.      = G        ???x400                 Corona/Cordata BIOS 4.10+
  1227.      = G   80x25  8x16    640x400     256        A000 ATI VGA Wonder,VGA Wonder+
  1228.      = G   80x25  8x16    640x400     256        A000 ATI Ultra 8514A,ATI XL
  1229.      = G   80x30  8x16    640x480     256       1    A000 Ahead A, Ahead B (512K)
  1230.      = G        720x540                 VEGA VGA
  1231.      = G        720x540      16             Tatung VGA
  1232.      = G        720x540      16             Video7 V-RAM VGA
  1233.      = G   96x64  8x16    768x1024  16/256k    A000 Trident TVGA 88/8900 512K
  1234.      = G  128x48  8x16 1024x768     256        A000 NCR 77C22 [1,9]
  1235.  62h = T  132x32  8x11          16/64       6    B800 Quadram Ultra VGA
  1236.      = T  132x32  8x12          16             Genoa 6400
  1237.      = T  132x32  8x11          16             Genoa SuperEGA BIOS 3.0+
  1238.      = G        640x450      16             Cirrus 510/520 chipset
  1239.      = G   80x30  8x16    640x480     256        A000 ATI VGA Wonder,VGA Wonder+
  1240.      = G   80x30  8x16    640x480     256        A000 ATI Ultra 8514A,ATI XL
  1241.      = G   80x30  8x16    640x480     32K        A000 WD90C
  1242.      = G   80x30  8x16    640x480     32K        A000 Diamond Speedstar 24X
  1243.      = G        800x600                 VEGA VGA
  1244.      = G        800x600      16             Tatung VGA
  1245.      = G        800x600      16             Video7 V-RAM VGA
  1246.      = G  100x75  8x8    800x600     256       1    A000 Ahead A, Ahead B (512K)
  1247.      = G  128x48  8x16 1024x768     256/256k    A000 Trident TVGA 8900, Zymos
  1248.      = G  128x48  8x16 1024x768     256        A000 NCR 77C22 [9]
  1249.  63h = T  132x44  8x8          16/64       5    B800 Quadram Ultra VGA
  1250.      = T  132x44  8x8          16             Genoa 6400
  1251.      = T  132x44  8x8          16             Genoa SuperEGA BIOS 3.0+
  1252.      = G        720x540      16             MORSE VGA
  1253.      = G        720x540      16             Cirrus 510/520 chipset
  1254.      = G  100x42  8x14    800x600     256        A000 ATI VGA Wonder,VGA Wonder+
  1255.      = G  100x42  8x14    800x600     256        A000 ATI Ultra 8514A,ATI XL
  1256.      = G        800x600     32K        A000 WD90C
  1257.      = G        800x600     32K        A000 Diamond Speedstar 24X
  1258.      = G  128x48  7x16 1024x768     256       1    A000 Ahead B (1MB)
  1259.      = G           1024x768       2             Video7 V-RAM VGA
  1260.  64h = T  132x60  8x8          16             Genoa 6400
  1261.      = G    -       -    640x480     64K        A000 Cirrus CL-GD 5422/5426
  1262.      = G        800x600      16             MORSE VGA
  1263.      = G        800x600      16             Cirrus 510/520 chipset
  1264.      = G        800x600     ???             SAMPO-Mira VGA
  1265.      = G           1024x768       4             Video7 V-RAM VGA
  1266.      = G  128x48  8x16 1024x768     256        A000 ATI VGA Wonder Plus,ATI XL
  1267.      = G  160x64  8x16 1280x1024 16/256k    A000 WD90C [1]
  1268.      = G  160x64  8x16 1280x1024 16/256k    A000 Diamond Speedstar 24X [1]
  1269.  65h = G    -       -    800x600     64K        A000 Cirrus CL-GD 5422/5426
  1270.      = G           1024x768      16             Video7 V-RAM VGA
  1271.      = G  128x48  8x16 1024x768      16        A000 ATI VGA Wonder
  1272.  66h = T   80x50  8x8    640x400     16/256k    B800 WD90C
  1273.      = T   80x50  8x8          16        B800 Diamond Speedstar 24X
  1274.      = G        640x400     256             Tatung VGA
  1275.      = G        640x400     256             Video7 V-RAM VGA
  1276.      = G    -       -    640x480     32K        A000 Cirrus CL-GD 5422/5426
  1277.  67h = T   80x43  8x8    640x344     16/256k    B800 WD90C
  1278.      = T   80x43  8x8          16        B800 Diamond Speedstar 24X
  1279.      = G        640x480     256             Video7 V-RAM VGA
  1280.      = G    -       -    800x600     32K        A000 Cirrus CL-GD 5422/5426
  1281.      = G  128x48  8x16 1024x768       4        A000 ATI VGA Wonder
  1282.      = G  160x64  8x16 1280x1024  16        A000 NCR 77C22 [1,9]
  1283.  69h = T  132x50  8x8  1056x400     16/256k    B800 WD90C
  1284.      = T  132x50  8x8          16        B800 Diamond Speedstar 24X
  1285.      = G        720x540     256             Video7 V-RAM VGA
  1286.  6Ah = G        800x600      16        A000 VESA standard interface
  1287.      = G  100x75  8x8    800x600      16             Genoa 6400
  1288.      = G  100x75  8x8    800x600      16             Diamond Speedstar 24X
  1289.      = G        800x600      16        A000 Ahead A
  1290.      = G  100x75  8x8    800x600      16       1    A000 Ahead B (VESA) (see 71h)
  1291.      = G        800x600      16             Zymos Poach, Hi Res 512
  1292.      = G        800x600      16             Epson LT-386SX in CRT Mode
  1293.      = G        800x600      16             Compuadd 316SL in CRT Mode
  1294.      = G  100x37  8x16    800x600     16/256k    A000 Cirrus CL-GD5420/5422/5426
  1295.      = G  100x42  8x14    800x600            A000 ATI VGA Wonder (undoc)
  1296.      = G        800x600      16             Chips&Technologies chipset
  1297.      = G  160x64  8x16 1280x1024 256        A000 NCR 77C22 [1,9]
  1298.  6Bh = T  100x37  8x16          16             Genoa 6400
  1299.      = T  100x37  8x16                     NEL Electronics BIOS
  1300.  6Ch = G   80x30  8x16    640x480      16M        A000 Trident 8900CL/BIOS C04
  1301.      = G  100x75  8x8    800x600     256             Genoa 6400
  1302.      = G  160x60  8x16 1280x960     16/256k    A000 WD90C [1]
  1303.      = G  160x60  8x16 1280x960     16/256k    A000 Diamond Speedstar 24X [1]
  1304.      = G  160x64  8x16 1280x1024 16/256k    A000 Cirrus CL-GD 5422/5426 [1]
  1305.  6Dh = G  160x64  8x16 1280x1024 256/256k    A000 Cirrus CL-GD 5422/5426 [1]
  1306.  6Eh = G   40x25  8x8    320x200      64K        A000 Cirrus CL-GD 5422/5426
  1307.  6Fh = G   40x25  8x8    320x200      16M        A000 Cirrus CL-GD 5422/5426
  1308.  70h =     extended mode set (see AX=0070h)         Everex Micro Enhancer EGA
  1309.      = T   40x25  8x8          16       8    B800 Quadram (CGA double scan)
  1310.      = T   40x25  8x8    (CGA dblscan)             Genoa SuperEGA BIOS 3.0+
  1311.      = G        360x480     256             Cirrus 510/520/5320 chips
  1312.      = G   90x28  8x14    720x392      16       1    A000 Ahead B
  1313.      = G        800x600      16             C&T chipset, Cardinal
  1314.      = G           1024x480     256             Trident 8900C BIOS C3.0
  1315.  71h = T   80x25  8x8          16       8    B800 Quadram (CGA double scan)
  1316.      = T   80x25  8x8    (CGA dblscan)             Genoa SuperEGA BIOS 3.0+
  1317.      = G        528x400     256             Cirrus 510/520 chipset
  1318.      = G   80x30  8x16    640x480      16M        A000 Cirrus CL-GD 5422/5426
  1319.      = G  100x35  8x16    800x600     16of64        A000 NSI Smart EGA+
  1320.      = G  100x75  8x8    800x600      16       1    A000 Ahead B (same as 6Ah)
  1321.      = G        960x720      16             C&T chipset, Cardinal
  1322.      = G           1024x480     256             Trident 8900C BIOS C3.0
  1323.  72h = T   80x60  8x8          16        B800 Quadram Ultra VGA
  1324.      = T   80x60  8x8          16        B800 Genoa 6400
  1325.      = T   80x60  8x8          16        B800 Genoa SuperEGA BIOS 3.0+
  1326.      = G        528x480     256             Cirrus 510/520 chipset
  1327.      = G        640x480 32768        A000 ATI
  1328.      = G        640x480     16M        A000 WD90C
  1329.      = G        640x480     16M        A000 Diamond Speedstar 24X
  1330.      = G           1024x768      16             C&T chipset, Cardinal
  1331.  73h = G   80x60  8x8    640x480      16        A000 Quadram Ultra VGA
  1332.      = G   80x60  8x8    640x480      16             Genoa 6400
  1333.      = G   80x60  8x8    640x480      16             Genoa SuperEGA BIOS 3.0+
  1334.  74h = T   80x66  8x8          16        B800 Quadram Ultra VGA
  1335.      = T   80x66  8x8          16        B800 Genoa 6400
  1336.      = T   80x66  8x8          16        B800 Genoa SuperEGA BIOS 3.0+
  1337.      = G        640x400       2        B800 Toshiba 3100 AT&T mode
  1338.      = G   80x30  8x16    640x480      32K        A000 Trident 8900C/BIOS C03
  1339.      = G  128x48  8x16 1024x768      16       1    A000 Ahead A, Ahead B (512K)
  1340.      = G     -       -   1024x768      64K        A000 Cirrus CL-GD 5422/5426 [1]
  1341.  75h = G   80x30  8x16    640x480      64K        A000 Trident 8900C/BIOS C03
  1342.      = G   80x66    640x528      16???        A000 Quadram Ultra VGA
  1343.      = G   80x66    640x528      16             Genoa SuperEGA BIOS 3.0+
  1344.      = G  128x48  8x16 1024x768       4       1    A000 Ahead B
  1345.  76h = T   94x29  8x14          16        B800 Quadram Ultra VGA
  1346.      = T   94x29  8x14                     Genoa SuperEGA BIOS 3.0+
  1347.      = G  100x75  8x8    800x600      32K        A000 Trident 8900C/BIOS C03
  1348.      = G  128x48  8x16 1024x768       2       1    A000 Ahead B
  1349.  77h = G   94x29    752x410      16???        A000 Quadram Ultra VGA
  1350.      = G   94x29    752x410      16             Genoa SuperEGA BIOS 3.0+
  1351.      = G  100x75  8x8    800x600      64K        A000 Trident 8900C/BIOS C03
  1352.  78h = T  100x37  8x16          16             Genoa 6400
  1353.      = T  100x75  8x8          16        B800 Quadram Ultra VGA
  1354.      = T  100x75  8x8                     Genoa SuperEGA BIOS 3.0+
  1355.      = G        640x400     256             STB VGA/EM-16 Plus
  1356.      = G        640x400     256             Cardinal, C&T chipset
  1357.      = G        640x400     256             Cirrus 5320 chipset
  1358.  79h = G        640x480     256             Cardinal, C&T chipset
  1359.      = G  100x75    800x600      16???        A000 Quadram Ultra VGA
  1360.      = G  100x75  8x8    800x600      16             Genoa SuperEGA BIOS 3.0+
  1361.      = G  100x75  8x8    800x600      16             Genoa 6400
  1362.  7Ah = T  114x60  8x8          16        B800 Quadram Ultra VGA
  1363.      = T  114x60  8x8                     Genoa SuperEGA BIOS 3.0+
  1364.      = G        720x540     256             C&T chipset, Cardinal
  1365.  7Bh = G        800x600     256             C&T chipset, Cardinal
  1366.      = G  114x60    912x480      16???        A000 Quadram Ultra VGA
  1367.      = G        912x480      16             Genoa SuperEGA BIOS 3.0+
  1368.  7Ch = G        512x512      16             Genoa
  1369.      = G        800x600     256             C&T 82C453 chipset
  1370.  7Dh = G   64x32  8x16    512x512     256             Genoa
  1371.  7Eh =     special mode set (see AX=007Eh)         Paradise VGA, AT&T VDC600
  1372.      = G   80x25  8x16    640x400     256             Genoa 6400
  1373.      = G           1024x768     256             C&T 82C453 chipset
  1374.  7Fh =     special function set (see AX=007Fh)         Paradise VGA, AT&T VDC600
  1375.      = G  128x48  8x16 1024x768       4             Genoa 6400
  1376.  82h = T   80x25         B&W             AT&T VDC overlay mode [6]
  1377.  83h = T   80x25                     AT&T VDC overlay mode [6]
  1378.  86h = G        640x200     B&W             AT&T VDC overlay mode [6]
  1379.  88h = G   90x43  8x8    720x352     mono        B000 Hercules + MSHERC.COM
  1380.  C0h = G        640x400     2/prog pallet         AT&T VDC overlay mode [6]
  1381.      = G        640x400     2/prog pallet         Olivetti Quaderno overlay
  1382.  C4h =     disable output                     AT&T VDC overlay mode [6]
  1383.  C8h = G   80x50  8x8    640x400       2        B800 Olivetti Quaderno overlay
  1384.  D0h = G        640x400       2        B800 DEC VAXmate AT&T mode
  1385. Notes:
  1386. [1] interlaced only
  1387. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1388.       SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1389.       otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1390.       color) 132x25 character mode.
  1391.     for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1392.       resident
  1393. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1394. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1395.       22h is page 1) even if there is no Hercules graphics board installed
  1396. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1397. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1398.       40h, or 44h
  1399. [7] BIOS text support is broken in this undocumented mode; scrolling moves only
  1400.       about 1/3 of the screen (and does even that portion incorrectly), while
  1401.       screen clears only clear about 3/4.
  1402. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1403.       may choose to use only partially or not at all; thus, not all Oak boards
  1404.       support all "Oak" modes listed here
  1405. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1406.       precluding the use of a monochrome adapter in the same system
  1407. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1408.       v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1409.       09/14/90 version
  1410. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1411.       installation check for HERKULES.COM is the signature "Herkules" two bytes
  1412.       beyond the INT 10 handler
  1413. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into modes
  1414.     21h or 27h; this version of the BIOS also sets the BIOS data area
  1415.     incorrectly for extended text modes, resulting in scrolling after only
  1416.     24 lines (the VMODE.EXE    utility does set the data area correctly)
  1417. [13] The Tandy 1000SL/TL BIOS does not actually support this mode
  1418. Index:    video modes
  1419. Index:    installation check|HERKULES
  1420. --------V-100070-----------------------------
  1421. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1422.     AX = 0070h
  1423.     BL = mode (see below)
  1424. Desc:    specify a proprietary display mode on the Everex Micro Enhancer or
  1425.       Viewpoint video adapters
  1426. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1427.  
  1428. Values for video mode:
  1429.       text/ text pixel     pixel    colors    disp    scrn  monitor    adapter
  1430.       grph resol  box    resoltn        page    addr
  1431.  00h = G        640x480      16             multsync    EGA,VGA
  1432.  01h = G        752x410      16             multsync    EGA,VGA
  1433.  02h = G        800x600      16             multsync    EGA,VGA
  1434.  03h = T   80x34                     multsync    EGA,VGA
  1435.  04h = T   80x60                     multsync    EGA,VGA
  1436.  05h = T   94x29                     multsync    EGA only
  1437.  06h = T   94x51                     multsync    EGA only
  1438.  07h = T  100x43  8x14          16                VGA only
  1439.  08h = T  100x75  8x8          16                VGA only
  1440.  09h = T   80x44                     EGA    EGA only
  1441.  0Ah = T  132x25                     EGA    EGA,VGA
  1442.  0Bh = T  132x44                     EGA    EGA,VGA
  1443.  0Ch = T  132x25                     CGA    EGA only
  1444.  0Dh = T   80x44                     mono    EGA only
  1445.  0Eh = T  132x25                     mono
  1446.  0Fh = T  132x44                     mono
  1447.  10h =     reserved
  1448.  11h = G           1280x350       4                EGA only
  1449.  12h = G           1280x600       4                EGA only
  1450.  13h = G        640x350     256                EGA,EV673
  1451.  14h = G        640x400     256
  1452.  15h = G        512x480     256
  1453.  16h = T   80x30  8x16         256                VGA only
  1454.  18h = T  100x27  8x16          16                VGA only
  1455.  20h = G           1024x768      16                Everex 629,678
  1456.                                 Everex EV-673
  1457.  21h = T  160x64  8x16 1280x1024  16                1MB VGA only
  1458.  30h = G        640x480     256                Everex 629,678
  1459.                                 Everex EV-673
  1460.  31h = G        800x600     256                Everex 629,678
  1461.                                 Everex EV-673
  1462.  32h = G  128x48  8x16 1024x768     256                1MB VGA only
  1463.  40h = T  132x30  8x16          16                VGA only
  1464.  50h = T  132x32  8x16         mono                VGA only
  1465.  62h = G   40x25  8x8    320x200     32K                Vwpt TC (EV629)
  1466.  70h = G   64x30  8x16    512x480     32K                Viewpoint TC
  1467.  71h = G   80x30  8x16    640x480     32K                Viewpoint TC
  1468.  76h = G   64x30  8x16    512x480     16M                Viewpoint TC
  1469.  77h = G   80x30  8x16    640x480     16M                Viewpoint TC
  1470. Index:    video modes
  1471. --------V-10007E-----------------------------
  1472. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1473.     AX = 007Eh
  1474.     BX = horizontal dimension of the mode desired
  1475.     CX = vertical dimension of the mode desired
  1476.          (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1477.     DX = number of colors of the mode desired (0000h for monochrome modes)
  1478. Return: BH = 7Eh if successful (Paradise VGA)
  1479.     AL = 7Eh if successful (AT&T VDC600)
  1480. Desc:    specify a display mode by resolution rather than mode number
  1481. SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
  1482. Index:    video modes
  1483. --------V-10007FBH00-------------------------
  1484. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
  1485.     AX = 007Fh
  1486.     BH = 00h
  1487. Return: AL = 7Fh if successful (AT&T VDC600)
  1488.     BH = status (Paradise/Dell)
  1489.         00h invalid function
  1490.         7Fh successful
  1491. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1492. --------V-10007FBH01-------------------------
  1493. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
  1494.     AX = 007Fh
  1495.     BH = 01h
  1496. Return: AL = 7Fh if successful (AT&T VDC600)
  1497.     BH = status (Paradise/Dell)
  1498.         00h invalid function
  1499.         7Fh successful
  1500. Note:    color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
  1501.       mode 7 will set non-VGA MDA/Hercules operation
  1502. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
  1503. --------V-10007FBH02-------------------------
  1504. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
  1505.     AX = 007Fh
  1506.     BH = 02h
  1507. Return: AL = 7Fh if successful (AT&T VDC600)
  1508.     BH = status (Paradise/Dell)
  1509.         00h invalid function
  1510.         7Fh successful
  1511.     ---if successful---
  1512.     BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1513.     CH = total video RAM size in 64k byte units
  1514.     CL = video RAM used by the current mode
  1515. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1516. --------V-10007F-----------------------------
  1517. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
  1518.     AX = 007Fh
  1519.     BH = function
  1520.         03h     lock current mode
  1521.         allows current mode (VGA or non-VGA) to survive re-boot
  1522.         04h     enter MDA mode
  1523.         05h     enter CGA mode
  1524.         06h     enter monochrome VGA mode (also switches to video mode 7)
  1525.         07h     enter color VGA mode (also switches to video mode 3)
  1526.         0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1527.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1528.         BL = value to set in the paradise register
  1529.         1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1530.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1531.         Return: BL = value of the paradise register
  1532.             BH = 7Fh if successful
  1533.         29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
  1534. Return: AL = 7Fh if successful (AT&T VDC600)
  1535.     BH = status (Paradise/Dell)
  1536.         00h invalid function
  1537.         7Fh successful
  1538. Desc:    set emulation mode or access proprietary extended data registers
  1539. SeeAlso: AX=007Eh,AH=FF"Oak"
  1540. --------V-10007FBH60-------------------------
  1541. INT 10 - Paradise VGA - ???
  1542.     AX = 007Fh
  1543.     BH = 60h
  1544.     BL = ??? (00h-13h)
  1545.     ???
  1546. Return: BH = status (00h failed or not supported, 7Fh successful)
  1547.     ???
  1548. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1549. --------V-10007FBH61-------------------------
  1550. INT 10 - Paradise VGA - ???
  1551.     AX = 007Fh
  1552.     BH = 61h
  1553.     ES:DI -> buffer for list of ??? (see below)
  1554. Return: BH = status (00h failed or not supported, 7Fh successful)
  1555.     ???
  1556. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1557.  
  1558. Format of list entry:
  1559. Offset    Size    Description
  1560.  00h    BYTE    ??? or 00h if end of list
  1561.  01h    BYTE    ???
  1562.  02h    WORD    ???
  1563.  04h    WORD    ???
  1564.  06h    WORD    ???
  1565. --------V-10007FBXA500-----------------------
  1566. INT 10 - Paradise VGA - ???
  1567.     AX = 007Fh
  1568.     BX = A500h
  1569.     ???
  1570. Return: BH = status (00h failed or not supported, 7Fh successful)
  1571.     ???
  1572. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1573. --------V-10007FBHA5-------------------------
  1574. INT 10 - Paradise VGA - ???
  1575.     AX = 007Fh
  1576.     BH = A5h
  1577.     BL = ???
  1578.         bits 3-0: ??? (0-4)
  1579.         bits 5,4: ???
  1580.     ???
  1581. Return: BH = status (00h failed or not supported, 7Fh successful)
  1582.     ???
  1583. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1584. --------V-10007FBHA6-------------------------
  1585. INT 10 - Paradise VGA - ???
  1586.     AX = 007Fh
  1587.     BH = A6h
  1588.     ???
  1589. Return: BH = status (00h failed or not supported, 7Fh successful)
  1590.     ???
  1591. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1592. --------V-1001-------------------------------
  1593. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1594.     AH = 01h
  1595.     CH = bit 7    should be zero
  1596.          bits 6,5 cursor blink
  1597.              (00=normal, 01=invisible, 10=erratic, 11=slow)
  1598.              (00=normal, other=invisible on EGA/VGA)
  1599.          bits 4-0 top scan line containing cursor
  1600.     CL = bottom scan line containing cursor (bits 0-4)
  1601. Desc:    specify the starting and ending scan lines to be occupied by the
  1602.       hardware cursor in text modes
  1603. Notes:    buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1604.       returns unmapped cursor shape
  1605.     UltraVision scales size to the current font height by assuming 14-line
  1606.       monochrome and 8-line color fonts; this call is not valid if cursor
  1607.       emulation has been disabled
  1608.     applications which wish to change the cursor by programming the
  1609.       hardware directly on EGA or above should call INT 10/AX=1130h or
  1610.       read 0040h:0085h first to determine the current font height
  1611. BUG:    AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1612.       is not equal to the current video mode
  1613. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h
  1614. --------V-1002-------------------------------
  1615. INT 10 - VIDEO - SET CURSOR POSITION
  1616.     AH = 02h
  1617.     BH = page number
  1618.         0-3 in modes 2&3
  1619.         0-7 in modes 0&1
  1620.         0 in graphics modes
  1621.     DH = row (00h is top)
  1622.     DL = column (00h is left)
  1623. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh
  1624. --------V-1003-------------------------------
  1625. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1626.     AH = 03h
  1627.     BH = page number
  1628.         0-3 in modes 2&3
  1629.         0-7 in modes 0&1
  1630.         0 in graphics modes
  1631. Return: AX = 0000h (Phoenix BIOS)
  1632.     CH = start scan line
  1633.     CL = end scan line
  1634.     DH = row (00h is top)
  1635.     DL = column (00h is left)
  1636. Notes:    a separate cursor is maintained for each of up to 8 display pages
  1637.     many ROM BIOSes incorrectly return the default size for a color display
  1638.       (start 06h, end 07h) when a monochrome display is attached
  1639. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h
  1640. --------V-1004-------------------------------
  1641. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  1642.     AH = 04h
  1643. Return: AH = light pen trigger flag
  1644.         00h not down/triggered
  1645.         01h down/triggered
  1646.         DH,DL = row,column of character light pen is on
  1647.         CH = pixel row (graphics modes 04h-06h)
  1648.         CX = pixel row (graphics modes with >200 rows)
  1649.         BX = pixel column
  1650. Desc:    determine the current position and status of the light pen (if
  1651.       present)
  1652. Notes:    on a CGA, returned column numbers are always multiples of 2 (320-
  1653.       column modes) or 4 (640-column modes)
  1654.     returned row numbers are only accurate to two lines
  1655. --------V-1004------------------------------------
  1656. INT 10 - HUNTER 16 - GET CURSOR ADDRESS
  1657.     AH = 04h
  1658.     BH = page
  1659. Return: DH = row (0..24)
  1660.     DL = column (0..79)
  1661.     CH = cursor pixel Y-address (0..199)
  1662.     CL = cursor pixel X-address (0..639)
  1663. Notes:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  1664.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  1665.     pixel coordinates are for the lower left corner of the character cell
  1666.       containing the cursor
  1667. SeeAlso: AH=60h"HUNTER"
  1668. --------V-1005-------------------------------
  1669. INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE
  1670.     AH = 05h
  1671.     AL = new page number (00h to number of pages - 1) (see AH=00h)
  1672. Desc:    specify which of possibly multiple display pages will be visible
  1673. Note:    to determine whether the requested page actually exists, use AH=0Fh
  1674.       to query the current page after making this call
  1675. SeeAlso: AH=0Fh,AH=43h,AH=45h
  1676. --------V-1005-------------------------------
  1677. INT 10 - VIDEO - PCjr, Tandy 1000 - MANIPULATE CRT/CPU PAGE REGISTERS
  1678.     AH = 05h
  1679.     AL = subfunction
  1680.         80h read CRT and CPU page registers
  1681.         Return: BH = CRT page register
  1682.             BL = CPU page register
  1683.         81h set CPU page register
  1684.         BL = CPU page
  1685.         82h set CRT page register
  1686.         BH = CRT page
  1687.         83h set both CPU and CRT page registers
  1688.         BL = CPU page
  1689.         BH = CRT page
  1690. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1691.       memory will be mapped at B800h by the hardware
  1692.     the CRT page determines the start address of the memory used by the
  1693.       video controller
  1694. --------V-1005-------------------------------
  1695. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER
  1696.     AH = 05h
  1697.     AL = function
  1698.         00h set address of graphics bitmap buffer (video modes 60h,61h)
  1699.         BX = segment of buffer
  1700.         0Fh get address of graphics bitmap buffer (video modes 60h,61h)
  1701.         Return: DX = segment of graphics bitmap buffer
  1702. --------V-1006-------------------------------
  1703. INT 10 - VIDEO - SCROLL UP WINDOW
  1704.     AH = 06h
  1705.     AL = number of lines by which to scroll up (00h = clear entire window)
  1706.     BH = attribute used to write blank lines at bottom of window
  1707.     CH,CL = row,column of window's upper left corner
  1708.     DH,DL = row,column of window's lower right corner
  1709. Note:    affects only the currently active page (see AH=05h)
  1710. Warning: some implementations have a bug which destroys BP
  1711. SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  1712. --------V-1007-------------------------------
  1713. INT 10 - VIDEO - SCROLL DOWN WINDOW
  1714.     AH = 07h
  1715.     AL = number of lines by which to scroll down (00h=clear entire window)
  1716.     BH = attribute used to write blank lines at top of window
  1717.     CH,CL = row,column of window's upper left corner
  1718.     DH,DL = row,column of window's lower right corner
  1719. Note:    affects only the currently active page (see AH=05h)
  1720. Warning: some implementations have a bug which destroys BP
  1721. SeeAlso: AH=06h,AH=72h,AH=73h,INT 50/AX=0014h
  1722. --------V-1008-------------------------------
  1723. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1724.     AH = 08h
  1725.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1726. Return: AH = charater's attribute (see below)
  1727.     AL = character
  1728. Notes:    for monochrome displays, a foreground of 1 with background 0 is
  1729.       underlined
  1730.     the blink bit may be reprogrammed to enable intense background colors
  1731.       using AX=1003h or by programming the CRT controller
  1732.     the foreground intensity bit (3) can be programmed to switch between
  1733.       character sets A and B on EGA and VGA cards, thus enabling 512
  1734.       simultaneous characters on screen.  In this case the bit's usual
  1735.       function (intensity) is regularly turned off.
  1736. SeeAlso: AH=09h,AX=1003h,AX=5001h
  1737.  
  1738. Bitfields for character's attribute:
  1739.  bit 7    blink
  1740.  bits 6-4  background color
  1741.         000 black    100 red
  1742.         001 blue    101 magenta
  1743.         010 green    110 brown
  1744.         011 cyan    111 white
  1745.  bits 3-0  foreground color
  1746.         0000 black     1000 dark gray
  1747.         0001 blue     1001 light blue
  1748.         0010 green     1010 light green
  1749.         0011 cyan     1011 light cyan
  1750.         0100 red     1100 light red
  1751.         0101 magenta     1101 light magenta
  1752.         0110 brown     1110 yellow
  1753.         0111 light gray     1111 white
  1754. --------V-1009-------------------------------
  1755. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1756.     AH = 09h
  1757.     AL = character to display
  1758.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1759.     BL = attribute (text mode) or color (graphics mode)
  1760.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1761.     CX = number of times to write character
  1762. Notes:    all characters are displayed, including CR, LF, and BS
  1763.     replication count in CX may produce an unpredictable result in graphics
  1764.       modes if it is greater than the number of positions remaining in the
  1765.       current row
  1766. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F,INT 43,INT 44
  1767. --------V-100A-------------------------------
  1768. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  1769.     AH = 0Ah
  1770.     AL = character to display
  1771.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1772.     BL = attribute (PCjr, Tandy 1000 only) or color (graphics mode)
  1773.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1774.     CX = number of times to write character
  1775. Notes:    all characters are displayed, including CR, LF, and BS
  1776.     replication count in CX may produce an unpredictable result in graphics
  1777.       modes if it is greater than the number of positions remaining in the
  1778.       current row
  1779. SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
  1780. --------V-100B--BH00-------------------------
  1781. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  1782.     AH = 0Bh
  1783.     BH = 00h
  1784.     BL = background/border color (border only in text modes)
  1785. SeeAlso: AH=0Bh/BH=01h
  1786. --------V-100B--BH01-------------------------
  1787. INT 10 - VIDEO - SET PALETTE
  1788.     AH = 0BH
  1789.     BH = 01h
  1790.     BL = palette ID
  1791.         00h background, green, red, and brown/yellow
  1792.         01h background, cyan, magenta, and white
  1793. SeeAlso: AH=0Bh/BH=00h
  1794. --------V-100C-------------------------------
  1795. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  1796.     AH = 0Ch
  1797.     BH = page number
  1798.     AL = pixel color (if bit 7 set, value is xor'ed onto screen)
  1799.     CX = column
  1800.     DX = row
  1801. Desc:    set a single pixel on the display in graphics modes
  1802. Notes:    valid only in graphics modes
  1803.     BH is ignored if the current video mode supports only one page
  1804. SeeAlso: AH=0Dh,AH=46h
  1805. --------V-100D-------------------------------
  1806. INT 10 - VIDEO - READ GRAPHICS PIXEL
  1807.     AH = 0Dh
  1808.     BH = page number
  1809.     CX = column
  1810.     DX = row
  1811. Return: AL = pixel color
  1812. Desc:    determine the current color of the specified pixel in grahics modes
  1813. Notes:    valid only in graphics modes
  1814.     BH is ignored if the current video mode supports only one page
  1815. SeeAlso: AH=0Ch,AH=47h
  1816. --------V-100E-------------------------------
  1817. INT 10 - VIDEO - TELETYPE OUTPUT
  1818.     AH = 0Eh
  1819.     AL = character to write
  1820.     BH = page number
  1821.     BL = foreground color (graphics modes only)
  1822. Desc:    display a character on the screen, advancing the cursor and scrolling
  1823.       the screen as necessary
  1824. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  1825.       and do the expected things
  1826.     IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  1827.       the current active page
  1828. SeeAlso: AH=02h,AH=0Ah
  1829. --------V-100F-------------------------------
  1830. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  1831.     AH = 0Fh
  1832. Return: AH = number of character columns
  1833.     AL = display mode (see AH=00h)
  1834.     BH = active page (see AH=05h)
  1835. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1836.       also have bit 7 set
  1837.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1838.       (monochrome) in all extended-row text modes
  1839. SeeAlso: AH=00h,AH=05h,AX=10F2h/BL=00h,AX=1130h,AX=CD04h
  1840. --------V-100F56BX4756-----------------------
  1841. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  1842.     AX = 0F56h
  1843.     BX = 4756h
  1844.     CX = 4944h
  1845.     DL = function
  1846.         01h installation check
  1847.         Return: AX = 5649h
  1848.             BX = 4443h
  1849.             CX = 5647h
  1850.             DH = 01h
  1851.         02h get first video mode's parameters
  1852.         Return: AX = BIOS mode number
  1853.             BX = width in pixels
  1854.             CX = height in pixels
  1855.             DX = number of colors
  1856.         03h get next video mode's parameters
  1857.         Return: as for DL=02h
  1858.         04h display line???
  1859.         ES:DI -> record (see below)
  1860.         ???
  1861.         Return: ???
  1862. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  1863. Note:    the use of TSR display drivers was discontinued after v2.20
  1864. Index:    installation check;VUIMAGE display driver
  1865.  
  1866. Format of record for DL=04h:
  1867. Offset    Size    Description
  1868.  00h    WORD    row number
  1869.  02h    WORD    starting column???
  1870.  04h    WORD    ending column???
  1871.     ???
  1872. --------V-100F--SIF123-----------------------
  1873. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  1874.     AH = 0Fh
  1875.     SI = F123h
  1876.     DI = 321Fh
  1877. Return: AH = number of character columns
  1878.     AL = display mode (see AH=00h)
  1879.     BH = active page (see AH=05h)
  1880.     SI = DI = F345h if installed
  1881. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1882.       also have bit 7 set
  1883.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1884.       (monochrome) in all extended-row text modes
  1885. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  1886. --------V-1010-------------------------------
  1887. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  1888.     AH = 10h
  1889.     CH,CL = row,column of upper left corner of window
  1890.     DH,DL = row,column of lower right corner of window
  1891. Return: AL = status
  1892.         00h successful
  1893.         01h failed
  1894.     AH destroyed
  1895. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  1896. Note:    when a window has been set, all output via AH=0Eh is restricted to
  1897.       the specified window
  1898. SeeAlso: AH=11h"Window",AH=12h"Window"
  1899. --------V-1010-------------------------------
  1900. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  1901.     AH = 10h
  1902.     AL = speed
  1903.         00h fast
  1904.         01h slow (scrolling only moves characters during vertical retrace)
  1905. Return: AH = previous speed
  1906. --------V-101000-----------------------------
  1907. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,Tandy,EGA,MCGA,VGA)
  1908.     AX = 1000h
  1909.     BL = palette register number (00h-0Fh)
  1910.        = attribute register number (undocumented)
  1911.          10h attribute mode control register (should let BIOS control this)
  1912.          11h overscan color register (see also AX=1001h)
  1913.          12h color plane enable register (bits 3-0 enable corresponding
  1914.         text attribute bit)
  1915.          13h horizontal PEL panning register
  1916.          14h color select register
  1917.     BH = color or attribute register value
  1918. Notes:    on MCGA, only BX = 0712h is supported
  1919.     under UltraVision, the palette locking status (see AX=CD01h)
  1920.       determines the outcome
  1921. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  1922. --------V-101001-----------------------------
  1923. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,Tandy,EGA,VGA)
  1924.     AX = 1001h
  1925.     BH = border color (00h-3Fh)
  1926. BUG:    the original IBM VGA BIOS incorrectly updates the parameter save area
  1927.       and places the border color at offset 11h of the palette table
  1928.       rather than offset 10h
  1929. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  1930.       determines the outcome
  1931. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  1932. --------V-101002-----------------------------
  1933. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,Tandy,EGA,VGA)
  1934.     AX = 1002h
  1935.     ES:DX -> palette register list
  1936. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  1937.       determines the outcome
  1938. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  1939.  
  1940. Format of palette register list:
  1941. Offset    Size    Description
  1942.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  1943.  10h    BYTE    border color
  1944. --------V-101003-----------------------------
  1945. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  1946.     AX = 1003h
  1947.     BL = new state
  1948.         00h background intensity enabled
  1949.         01h blink enabled
  1950.     BH = 00h to avoid problems on some adapters
  1951. Notes:    although there is no function to get the current status on adapters
  1952.       prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  1953.       VGA, use AH=1Bh and check offset 2Dh of the returned data
  1954.     when configured for a monochrome display, the Boca Research Multi-EGA
  1955.       with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  1956.     this call is reported to be "Get Cursor Position" on the Tandy
  1957.       1000SL/TL
  1958. SeeAlso: AH=08h,AH=1Bh
  1959. --------V-101007-----------------------------
  1960. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  1961.     AX = 1007h
  1962.     BL = palette or attribute (undoc) register number (see AX=1000h)
  1963. Return: BH = palette or attribute register value
  1964. Note:    UltraVision v2+ supports this function even on color EGA systems in
  1965.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  1966.       registers will cause incorrect results because the EGA registers are
  1967.       write-only.  To guard against older versions or unsupported video
  1968.       modes, programs which expect to use this function on EGA systems
  1969.       should set BH to FFh on entry.
  1970. SeeAlso: AX=1000h,AX=1009h
  1971. --------V-101008-----------------------------
  1972. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  1973.     AX = 1008h
  1974. Return: BH = border color (00h-3Fh)
  1975. Note:    (see AX=1007h)
  1976. SeeAlso: AX=1001h
  1977. --------V-101009-----------------------------
  1978. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  1979.     AX = 1009h
  1980.     ES:DX -> 17-byte buffer (see AX=1002h)
  1981. Note:    UltraVision v2+ supports this function even on color EGA systems in
  1982.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  1983.       registers will cause incorrect results because the EGA registers are
  1984.       write-only.  To guard against older versions or unsupported video
  1985.       modes, programs which expect to use this function on EGA systems
  1986.       should set the ES:DX buffer to FFh before calling.
  1987. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  1988. --------V-101010-----------------------------
  1989. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  1990.     AX = 1010h
  1991.     BX = register number
  1992.     CH = new value for green (0-63)
  1993.     CL = new value for blue (0-63)
  1994.     DH = new value for red (0-63)
  1995. SeeAlso: AX=1012h,AX=1015h
  1996. --------V-101012-----------------------------
  1997. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  1998.     AX = 1012h
  1999.     BX = starting color register
  2000.     CX = number of registers to set
  2001.     ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  2002.          byte each of red, green and blue (0-63)
  2003. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  2004. --------V-101013-----------------------------
  2005. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  2006.     AX = 1013h
  2007.     BL = subfunction
  2008.         00h select paging mode
  2009.         BH = 00h select 4 blocks of 64
  2010.         BH = 01h select 16 blocks of 16
  2011.         01h select page
  2012.         BH = page number (00h to 03h) or (00h to 0Fh)
  2013. Note:    this function is not valid in mode 13h
  2014. SeeAlso: AX=101Ah
  2015. --------V-101015-----------------------------
  2016. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  2017.     AX = 1015h
  2018.     BL = palette register number
  2019. Return: DH = red value
  2020.     CH = green value
  2021.     CL = blue value
  2022. SeeAlso: AX=1010h,AX=1017h
  2023. --------V-101017-----------------------------
  2024. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  2025.     AX = 1017h
  2026.     BX = starting palette register
  2027.     CX = number of palette registers to read
  2028.     ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  2029. Return: buffer filled with CX red, green and blue triples
  2030. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  2031. --------V-101018-----------------------------
  2032. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  2033.     AX = 1018h
  2034.     BL = new PEL value
  2035. SeeAlso: AX=1019h
  2036. --------V-101019-----------------------------
  2037. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  2038.     AX = 1019h
  2039. Return: BL = value read
  2040. SeeAlso: AX=1018h
  2041. --------V-10101A-----------------------------
  2042. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  2043.     AX = 101Ah
  2044. Return: BL = paging mode
  2045.         00h four pages of 64
  2046.         01h sixteen pages of 16
  2047.     BH = current page
  2048. SeeAlso: AX=1013h
  2049. --------V-10101B-----------------------------
  2050. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  2051.     AX = 101Bh
  2052.     BX = starting palette register
  2053.     CX = number of registers to convert
  2054. Desc:    convert the RGB values of one or more palette registers such that the
  2055.       resulting values are grays with the same intensities as the original
  2056.       colors
  2057. SeeAlso: AH=12h/BL=33h
  2058. --------V-1010E0-----------------------------
  2059. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  2060.     AX = 10E0h
  2061.     BL = video mode (see also AH=00h)
  2062.         2Eh = 640x480
  2063. Return: ???
  2064. SeeAlso: AH=00h,AX=10F0h
  2065. --------V-1010F0-----------------------------
  2066. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  2067.     AX = 10F0h
  2068.     BL = video mode (see also AH=00h)
  2069.         13h = 320x200x32K
  2070.         2Dh = 640x350x32K
  2071.         2Eh = 640x480x32K
  2072.         2Fh = 640x400x32K
  2073.         30h = 800x600x32K
  2074.         3Eh = 640x480x16M (Genoa 7900)
  2075.         FFh Tseng 24-bit color mode
  2076.         BH = mode
  2077.             2Dh = 640x480
  2078.             2Eh = 640x480x16M
  2079.             2Fh = 640x400
  2080.             30h = 800x600
  2081.             38h = 1024x768??? (Tseng ET4000/W32i)
  2082. Return: AL = 10h if supported
  2083.     AH = status
  2084.         00h if successful
  2085.         other on error
  2086. Desc:    switch the display into a graphics mode with 15 or more bits per pixel
  2087. Note:    the Tseng HiColor BIOS extensions are supported by:
  2088.       Diamond Computer Systems    SpeedStar HiColor VGA
  2089.       Everex Systems        HC VGA
  2090.       Focus Information Systems    2theMax 4000
  2091.       Cardinal Technologies        VGA732
  2092.       Orchid ProDesigner IIs    Genoa 7900
  2093. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  2094. Index:    video modes
  2095. --------V-1010F1-----------------------------
  2096. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  2097.     AX = 10F1h
  2098. Return: AL = 10h if supported
  2099.     BL = type of digital/analog converter
  2100.         00h normal VGA DAC
  2101.         01h Sierra SC1148x HiColor DAC
  2102.         ---Diamond SpeedStar 24---
  2103.         02h new Sierra SS24 DAC (24-bit)
  2104.         ---generic Tseng BIOS v8+ ---
  2105.         02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC
  2106.         03h ATT20c490/1/2 (15/16/24-bit)
  2107.         04h AcuMos ADAC1 (15/16/24-bit)
  2108.         05h unknown 15/16/24-bit DAC
  2109.         06h Cirrus Internal 15/16/24-bit (CL-GD54xx series adapters)
  2110.         07h Diamond SS2410 (15/24-bit)
  2111.         08h unknown 15/16/24-bit DAC
  2112.         09h unknown 15/16/24-bit DAC
  2113.        else other HiColor DAC
  2114. Desc:    determine which type of digital-to-analog converter is installed on the
  2115.       display board
  2116. SeeAlso: AX=10F0h,AX=10F2h
  2117. --------V-1010F2-----------------------------
  2118. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF HiColor MODE/SET HiColor MODE
  2119.     AX = 10F2h
  2120.     BL = function
  2121.         00h get current HiColor mode
  2122.         01h set 15-bit HiColor mode
  2123.         02h set 16-bit HiColor mode
  2124. Return: AX = 0010h if supported
  2125.     BL = video mode type
  2126.         00h not in HiColor mode
  2127.         01h 15-bit RGB mode
  2128.         02h 16-bit RGB mode
  2129.         03h 24-bit RGB mode
  2130. Desc:    determine whether the display is in a graphics mode with 15 or more
  2131.       bits per pixel color resolution
  2132. Note:    set (BL=01h/02h) only works if already in a HiColor mode
  2133. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  2134. --------V-1011-------------------------------
  2135. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  2136.     AH = 11h
  2137. Return: CH,CL = row,column of upper left corner
  2138.     DH,DL = row,column of lower right corner
  2139. Desc:    determine the portion of the display to which output is restricted
  2140. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2141. SeeAlso: AH=10h"Window",AH=12h"Window"
  2142. --------V-1011-------------------------------
  2143. INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
  2144.     AH = 11h
  2145.     The following functions will cause a mode set, completely resetting
  2146.     the video environment, but without clearing the video buffer
  2147.     AL = 00h, 10h: load user-specified patterns
  2148.         ES:BP -> user table
  2149.         CX      = count of patterns to store
  2150.         DX      = character offset into map 2 block
  2151.         BL      = block to load in map 2
  2152.         BH      = number of bytes per character pattern
  2153.     AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
  2154.         BL      = block to load
  2155.     AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
  2156.         BL      = block to load
  2157.     AL = 03h: set block specifier
  2158.         BL      = block specifier
  2159.            (EGA/MCGA) bits 0,1 = block selected by chars with attribute
  2160.                      bit 3 = 0
  2161.                   bits 2,3 = block selected by chars with attribute
  2162.                      bit 3 = 1
  2163.            (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0
  2164.              bits 2,3,5 = block selected by attribute bit 3 = 1
  2165.     AL = 04h, 14h: load ROM 8x16 character set (VGA)
  2166.         BL    = block to load
  2167. Notes:    The routines called with AL=1xh are designed to be called only
  2168.       immediately after a mode set and are similar to the routines called
  2169.       with AL=0xh, except that:
  2170.           Page 0 must be active.
  2171.           Bytes/character is recalculated.
  2172.           Max character rows is recalculated.
  2173.           CRT buffer length is recalculated.
  2174.           CRTC registers are reprogrammed as follows:
  2175.              R09 = bytes/char-1 ; max scan line (mode 7 only)
  2176.              R0A = bytes/char-2 ; cursor start
  2177.              R0B = 0        ; cursor end
  2178.              R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2179.              R14 = bytes/char    ; underline loc
  2180.                (*** BUG: should be 1 less ***)
  2181.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2182.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2183. SeeAlso: AH=1Bh,AX=CD10h
  2184. --------V-1011-------------------------------
  2185. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2186.     AH = 11h
  2187.     AL = 07h load user-specified paterns and recalculate mode parms
  2188.          parameters are the same as for AL = 10h
  2189.     AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2190.          parameters are the same as for AL = 11h
  2191.     AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2192.          parameters are the same as for AL = 12h
  2193.     AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2194.          parameters are the same as for AL = 14h
  2195. Note:    these functions should only be called under the same conditions as
  2196.       AL=1xh (see entry above)
  2197. SeeAlso: AH=11h
  2198. --------V-10110F-----------------------------
  2199. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2200.     AX = 110Fh
  2201.     ES:BP -> user table for INT 1F
  2202. Note:    this function is meant to be called immediately after a mode set;
  2203.       results are unpredictable at other times
  2204. SeeAlso: AX=1110h,AX=1111h,AX=1112h,AX=1120h
  2205. --------V-101110-----------------------------
  2206. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2207.     AX = 1110h
  2208.     ES:BP -> user table
  2209.     CX = bytes per character
  2210.     BL = row specifier
  2211.         00h user set
  2212.         DL = number of rows
  2213.         01h 14 rows
  2214.         02h 25 rows
  2215.         03h 43 rows
  2216. Note:    this function is meant to be called immediately after a mode set;
  2217.       results are unpredictable at other times
  2218. SeeAlso: AX=110Fh,AX=1112h,AX=1121h
  2219. --------V-101111-----------------------------
  2220. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2221.     AX = 1111h
  2222.     BL = row specifier (see AX=1121h)
  2223. Note:    this function is meant to be called immediately after a mode set;
  2224.       results are unpredictable at other times
  2225. SeeAlso: AX=110Fh,AX=1110h,AX=1122h
  2226. --------V-101112-----------------------------
  2227. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2228.     AX = 1112h
  2229.     BL = row specifier (see AX=1121h)
  2230. Note:    this function is meant to be called immediately after a mode set;
  2231.       results are unpredictable at other times
  2232. SeeAlso: AX=110Fh,AX=1110h,AX=1111h,AX=1123h
  2233. --------V-101120-----------------------------
  2234. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2235.     AX = 1120h
  2236.     ES:BP -> user table for INT 1F
  2237. Note:    this function is meant to be called immediately after a mode set;
  2238.       results are unpredictable at other times
  2239. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1125h,INT 1F,INT 43
  2240. --------V-101121-----------------------------
  2241. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2242.     AX = 1121h
  2243.     ES:BP -> user table
  2244.     CX = bytes per character
  2245.     BL = row specifier
  2246.         00h user set
  2247.         DL = number of rows
  2248.         01h 14 rows
  2249.         02h 25 rows
  2250.         03h 43 rows
  2251. Note:    this function is meant to be called immediately after a mode set;
  2252.       results are unpredictable at other times
  2253. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2254. --------V-101122-----------------------------
  2255. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2256.     AX = 1122h
  2257.     BL = row specifier (see AX=1121h)
  2258. Notes:    this function is meant to be called immediately after a mode set;
  2259.       results are unpredictable at other times
  2260.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2261. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2262. --------V-101123-----------------------------
  2263. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2264.     AX = 1123h
  2265.     BL = row specifier (see AX=1121h)
  2266. Notes:    this function is meant to be called immediately after a mode set;
  2267.       results are unpredictable at other times
  2268.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2269. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h,INT 1F,INT 43
  2270. --------V-101124-----------------------------
  2271. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2272.     AX = 1124h
  2273.     BL = row specifier (see AX=1121h)
  2274. Notes:    this function is meant to be called immediately after a mode set;
  2275.       results are unpredictable at other times
  2276.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2277. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h,INT 1F,INT 43
  2278. --------V-101129-----------------------------
  2279. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2280.     AX = 1129h
  2281.     BL = row specifier (see AX=1121h)
  2282. Notes:    this function is meant to be called immediately after a mode set;
  2283.       results are unpredictable at other times
  2284.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2285. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F, INT 43
  2286. --------V-101130-----------------------------
  2287. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2288.     AX = 1130h
  2289.     BH = pointer specifier
  2290.         00h INT 1Fh pointer
  2291.         01h INT 43h pointer
  2292.         02h ROM 8x14 character font pointer
  2293.         03h ROM 8x8 double dot font pointer
  2294.         04h ROM 8x8 double dot font (high 128 characters)
  2295.         05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2296.         06h ROM 8x16 font (MCGA, VGA)
  2297.         07h ROM alternate 9x16 font (VGA only)
  2298.         11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2299.         12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2300. Return: ES:BP = specified pointer
  2301.     CX    = bytes/character of on-screen font (not the requested font!)
  2302.     DL    = highest character row on screen
  2303. Note:    for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2304.       8xN font at ES:BP+256N
  2305. BUG:    the IBM EGA and some other EGA cards return in DL the number of rows on
  2306.       screen rather than the highest row number (which is one less).
  2307. SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
  2308.  
  2309. Format of alternate font table [array]:
  2310. Offset    Size    Description
  2311.  00h    BYTE    character to be replaced (00h = end of table)
  2312.  01h  N BYTEs    graphics data for character, one byte per scan line
  2313. --------V-101130BX4D4F-----------------------
  2314. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2315.     AX = 1130h
  2316.     BX = 4D4Fh
  2317. Return: CX = 4F4Dh if installed
  2318.         ES:BP -> M10_SCR INT 10 handler
  2319. Program: M10_SCR is a shareware extended text mode and font driver by
  2320.       I.V. Morozov
  2321. SeeAlso: INT 16/AX=4D4Fh
  2322. --------V-1012-------------------------------
  2323. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2324.     AH = 12h
  2325. Return: BH = attribute to use on blanked lines when scrolling
  2326. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2327. SeeAlso: AH=11h"Window",AH=12h"Window"
  2328. --------V-1012--BL10-------------------------
  2329. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2330.     AH = 12h
  2331.     BL = 10h
  2332. Return: BH = 00h color mode in effect (I/O port 3Dxh)
  2333.          01h mono mode in effect (I/O port 3Bxh)
  2334.     BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2335.     CH = feature bits
  2336.     CL = switch settings
  2337.         bit 0: switch 1 OFF
  2338.         bit 1: switch 2 OFF
  2339.         bit 2: switch 3 OFF
  2340.         bit 3: switch 4 OFF
  2341.         bits 4-7: unused
  2342. Note:    one possible check for the presence of an EGA or later display card
  2343.       is to call this function with BH=FFh; if not present, BH will be
  2344.       unchanged on return
  2345. --------V-1012--BL11-------------------------
  2346. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2347.     AH = 12h
  2348.     BL = 11h
  2349. Return: AL = 12h if function supported
  2350.         ES:BP -> BIOS info structure
  2351. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2352.  
  2353. Format of Info structure:
  2354. Offset    Size     Description
  2355.  00h    BYTE     ??? (=0)
  2356.  01h    BYTE     OEM Code (00h for original Trident)
  2357.  02h    WORD     ID??? (1073h for 8800BR, 1074 for 8800CS)
  2358.  04h  8 BYTEs     BIOS date ('mm/dd/yy')
  2359.  0Ch    WORD     ???
  2360.  0Eh  8 BYTEs     BIOS Version (' C3-128 ', ' C3-129 ')
  2361. --------V-1012--BL12-------------------------
  2362. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  2363.     AH = 12h
  2364.     BL = 12h
  2365. Return: AL = 12h if function supported
  2366.         AH = number of 256K banks of RAM installed
  2367. SeeAlso: AH=12h/BL=11h"TRIDENT"
  2368. --------V-1012--BL20-------------------------
  2369. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  2370.     AH = 12h
  2371.     BL = 20h  select alternate print screen routine
  2372. Desc:    installs a PrtSc routine from the video card's BIOS to replace the
  2373.       default PrtSc handler from the ROM BIOS, which usually does not
  2374.       understand screen heights other than 25 lines
  2375. Note:    some adapters disable print-screen instead of enhancing it
  2376. SeeAlso: INT 05
  2377. --------V-1012--BL2E-------------------------
  2378. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2379.     AH = 12h
  2380.     BL = 2Eh
  2381. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2382.       crash the system on this function
  2383. --------V-1012--BL30-------------------------
  2384. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  2385.     AH = 12h
  2386.     BL = 30h
  2387.     AL = vertical resolution
  2388.          00h 200 scan lines
  2389.          01h 350 scan lines
  2390.          02h 400 scan lines
  2391. Return: AL = 12h if function supported
  2392. Desc:    specify the number of scan lines used to display text modes
  2393. Note:    the specified resolution will take effect on the next mode set
  2394. SeeAlso: AH=00h
  2395. --------V-1012--BL31-------------------------
  2396. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  2397.     AH = 12h
  2398.     BL = 31h
  2399.     AL = new state
  2400.         00h enable default palette loading
  2401.         01h disable default palette loading
  2402. Return: AL = 12h if function supported
  2403. Desc:    specify whether a default palette should be loaded when the display
  2404.       mode is set
  2405. SeeAlso: AH=00h
  2406. --------V-1012--BL32-------------------------
  2407. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  2408.     AH = 12h
  2409.     BL = 32h
  2410.     AL = new state
  2411.         00h enable video addressing
  2412.         01h disable video addressing
  2413. Return: AL = 12h if function supported
  2414. Desc:    specify whether the CPU should have access to video memory and the
  2415.       display adapters I/O registers
  2416. --------V-1012--BL33-------------------------
  2417. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  2418.     AH = 12h
  2419.     BL = 33h
  2420.     AL = new state
  2421.         00h enable gray scale summing
  2422.         01h disable gray scale summing
  2423. Return: AL = 12h if function supported
  2424. Desc:    specify whether or not colors should be converted to gray scale when
  2425.       palette or color registers are loaded
  2426. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  2427. --------V-1012--BL34-------------------------
  2428. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  2429.     AH = 12h
  2430.     BL = 34h
  2431.     AL = new state
  2432.         00h enable alphanumeric cursor emulation
  2433.         01h disable alphanumeric cursor emulation
  2434. Return: AL = 12h if function supported
  2435. Desc:    specify whether the BIOS should automatically remap cursor start/end
  2436.       according to the current character height in text modes
  2437. SeeAlso: AH=01h,AH=03h
  2438. --------V-1012--BL35-------------------------
  2439. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  2440.     AH = 12h
  2441.     BL = 35h
  2442.     AL = subfunction
  2443.         00h initial adapter video off
  2444.         01h initial planar video on
  2445.         02h switch active video off
  2446.         03h switch inactive video on
  2447.         80h *UNDOCUMENTED* set system board video active flag
  2448.     ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
  2449. Return: AL = 12h if function supported
  2450. Desc:    switch between two video adapters which may otherwise have address
  2451.       conflicts
  2452. --------V-1012--BL36-------------------------
  2453. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  2454.     AH = 12h
  2455.     BL = 36h
  2456.     AL = new state
  2457.         00h enable refresh
  2458.         01h disable refresh
  2459. Return: AL = 12h if function supported
  2460. Desc:    specify whether the contents of video memory should be displayed on
  2461.       the screen; disabling refresh effectively blanks the screen
  2462. SeeAlso: AX=BF05h
  2463. --------V-1012--BL53-------------------------
  2464. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2465.     AH = 12h
  2466.     BL = 53h
  2467. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2468.       crash the system on this function
  2469. --------V-1012--BL57-------------------------
  2470. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2471.     AH = 12h
  2472.     BL = 57h
  2473. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2474.       crash the system on this function
  2475. --------V-1012--BH55-------------------------
  2476. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  2477.     AH = 12h
  2478.     BH = 55h
  2479.     BL = subfunction
  2480.         00h disable enhanced features
  2481.         01h enable enhanced features
  2482.         02h get status
  2483.         Return: AL = status flags (see below)
  2484.         03h disable register trapping (CGA emulation)
  2485.         04h enable register trapping
  2486.         05h program video mode
  2487.         ES:BP -> video mode table (see below)
  2488.         06h get mode table
  2489.         AL = video mode
  2490.         Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
  2491.             BP = FFFFh on error
  2492. SeeAlso: AH=FFh"Oak"
  2493.  
  2494. Bitfields for status flags:
  2495.  bit 3    set if enhanced features enabled
  2496.  bits 7-5 monitor type
  2497.     000 PS/2 mono
  2498.     001 PS/2 color
  2499.     010 multi-sync
  2500.     011 Taxan 650 25kHz
  2501.     100 RGB
  2502.     101 mono
  2503.     110 EGA
  2504.     111 Compaq internal
  2505.  
  2506. Format of ATI VGA Wonder video mode table:
  2507. Offset    Size    Description
  2508.  00h    BYTE    number of columns
  2509.  01h    BYTE    maximum row (number of rows - 1)
  2510.  02h    BYTE    scan lines per row
  2511.  03h    WORD    video buffer size in bytes
  2512.  05h  4 BYTEs    values for Sequencer registers 1-4
  2513.  09h    BYTE    value for Miscellaneous Output register
  2514.  0Ah 25 BYTEs    values for CRTC registers 00h-18h
  2515.         00h horizontal total size (chars)
  2516.         01h horizontal displayed (chars)
  2517.         02h horizontal sync position (chars)
  2518.         03h horizontal sync width (chars)
  2519.         04h vertical total size (char rows)
  2520.         05h vertical total adjust (scan lines)
  2521.         06h vertical displayed (char rows)
  2522.         07h vertical sync position (char rows)
  2523.         08h interlace mode
  2524.         09h max scan line in row
  2525.         0Ah cursor start scan line
  2526.         0Bh cursor end scan line
  2527.         0Ch screen memory start (high)
  2528.         0Dh screen memory start (low)
  2529.         0Eh cursor address (high)
  2530.         0Fh cursor address (low)
  2531.         10h light pen (high)
  2532.         11h light pen (low)
  2533.  23h 20 BYTEs    default palette (values for Attribute Controller regs 00h-13h)
  2534.  37h  9 BYTEs    values for Graphics Controller registers 00h-08h
  2535. --------V-1012--BL74-------------------------
  2536. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2537.     AH = 12h
  2538.     BL = 74h
  2539. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2540.       crash the system on this function
  2541. --------V-1012--BL80-------------------------
  2542. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2543.     AH = 12h
  2544.     BL = 80h
  2545. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2546.       crash the system on this function
  2547. --------V-1012--BL80-------------------------
  2548. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  2549.     AH = 12h
  2550.     BL = 80h
  2551. Return: AX = controller type in bits 13-0 (see below)
  2552.         bit 14: ???
  2553.         bit 15: ???
  2554.     BL = silicon revision number (bit 7 set if not available)
  2555. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2556.  
  2557. Values for controller type:
  2558.  0000h    no extended alternate select support
  2559.  0002h    510/520
  2560.  0003h    610/620
  2561.  0004h    5320
  2562.  0005h    6410
  2563.  0006h    5410
  2564.  0007h    6420
  2565.  0008h    6412
  2566.  0010h    5401
  2567.  0011h    5402
  2568.  0012h    5420
  2569.  0013h    5422
  2570.  0014h    5424
  2571.  0015h    5426
  2572.  0016h    5420r1
  2573.  0017h    5402r1
  2574.  0018h    5428
  2575.  0020h    6205/15/25
  2576.  0030h    5432
  2577.  0031h    5434
  2578. --------V-1012--BL81-------------------------
  2579. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  2580.     AH = 12h
  2581.     BL = 81h
  2582. Return: AH = BIOS major version
  2583.     AL = BIOS minor version
  2584. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  2585. --------V-1012--BL82-------------------------
  2586. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  2587.     AH = 12h
  2588.     BL = 82h
  2589. Return: AL = chip revision
  2590.     AH = ??? (AFh for v1.01)
  2591. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h
  2592. ----------1012--BL84-------------------------
  2593. INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
  2594.     AH = 12h
  2595.     BL = 84h
  2596. Return: AX = user options word (see below)
  2597. SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2598. SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
  2599.  
  2600. Bitfields for user options word:
  2601.  bits 1,0    centering
  2602.         00 vertical centered, 01 from bottom, 10 from top, 11 reserved
  2603.  bits 3,2    720-dot fix-up options
  2604.         00 OR every 8th and 9th pixel
  2605.         01 display MGA mode from left
  2606.         10 display MGA mode from right
  2607.         11 skip every 9th pixel
  2608.  bit 4        ???
  2609.  bits 7-5    video mode
  2610.         001 CGA
  2611.         010 MGA
  2612.         011 EGA
  2613.         100 VGA
  2614.  bit 8        external monitor enabled instead of LCD panel
  2615.  bit 9        vertical expand mode enabled
  2616.  bit 10        8-bit mode instead of 16-bit mode
  2617.  bit 11        normal video rather than reverse video (for LCD)
  2618.  bit 12        attribute automap rather than attribute emulation
  2619.  bit 13        bold mode disabled (default)
  2620.  bit 14        fast bandwidth
  2621.  bit 15        ???
  2622. --------V-1012--BL85-------------------------
  2623. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  2624.     AH = 12h
  2625.     BL = 85h
  2626. Return: AL = number of 64K banks of video memory
  2627. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  2628. --------V-1012--BL89-------------------------
  2629. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
  2630.     AH = 12h
  2631.     BL = 89h
  2632.     AL = new state (00h enabled, 01h disabled)
  2633. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
  2634. --------V-1012--BL8A-------------------------
  2635. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
  2636.     AH = 12h
  2637.     BL = 8Ah
  2638.     AL = new gray-scale color (00h = black to 0Fh = white)
  2639. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
  2640. --------V-1012--BL8B-------------------------
  2641. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
  2642.     AH = 12h
  2643.     BL = 8Bh
  2644.     AL = new state (00h enabled, 01h disabled)
  2645. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2646. --------V-1012--BL8C-------------------------
  2647. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
  2648.     AH = 12h
  2649.     BL = 8Ch
  2650.     AL = new state
  2651.         00h enable automap
  2652.         01h disable automap and emulate attributes
  2653. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
  2654. --------V-1012--BL8F-------------------------
  2655. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
  2656.     AH = 12h
  2657.     BL = 8Fh
  2658.     AL = new state (00h enabled, 01h disabled)
  2659. Note:    when expand mode is enabled, the vertical dimension is enlarged to
  2660.       full screen
  2661. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
  2662. --------V-1012--BL90-------------------------
  2663. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
  2664.     AH = 12h
  2665.     BL = 90h
  2666.     AL = new position
  2667.         00h centered
  2668.         01h from top
  2669.         02h from bottom
  2670.         03h from top
  2671. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
  2672. --------V-1012--BL91-------------------------
  2673. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
  2674.     AH = 12h
  2675.     BL = 91h
  2676.     AL = new mode
  2677.         00h display MGA mode from left of screen (default)
  2678.         01h display MGA from right
  2679.         02h skip every ninth pixel
  2680.         03h OR every 8th and 9th pixel
  2681. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
  2682. --------V-1012--BL92-------------------------
  2683. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
  2684.     AH = 12h
  2685.     BL = 92h
  2686.     AL = new display (00h LCD, 01h external monitor)
  2687. Note:    the deselected display is disabled
  2688. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
  2689. --------V-1012--BL93-------------------------
  2690. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  2691.     AH = 12h
  2692.     BL = 93h
  2693.     AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  2694. SeeAlso: AH=12h/BL=9Ah
  2695. --------V-1012--BL94-------------------------
  2696. INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
  2697.     AH = 12h
  2698.     BL = 94h
  2699.     AL = new state (00h wake up monitor, 01h shut down display)
  2700. Note:    AL=01h is reported not to work properly on the LCD panel
  2701. SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
  2702. --------V-1012--BL9A-------------------------
  2703. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  2704.     AH = 12h
  2705.     BL = 9Ah
  2706. Return: AX = options word 1 (see below)
  2707.     CX = options word 2 (see below)
  2708. SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
  2709. SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h
  2710.  
  2711. Bitfields for options word 1:
  2712.  bits 0,1 reserved
  2713.  bits 2-4 monitor type
  2714.  bits 5-6 maximum vertical resolution
  2715.  bits 7-9 reserved
  2716.  bit 10    force 8-bit operation
  2717.  bits 11-13 reserved
  2718.  bit 14    vertical refresh frequency at 640x480
  2719.  bit 15    reserved
  2720.  
  2721. Bitfields for options word 2:
  2722.  bits 0-3 reserved
  2723.  bits 4-5 vertical refresh frequency at 1280x1024
  2724.  bits 6-10 reserved
  2725.  bits 11-12 vertical refresh frequency at 800x600
  2726.  bits 13-15 vertical refresh frequency at 1024x768
  2727. --------V-1012--BLA0-------------------------
  2728. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  2729.     AH = 12h
  2730.     BL = A0h
  2731.     AL = video mode number (00h-7Fh)
  2732. Return: AH bit 0: video mode supported
  2733.     BX = offset of BIOS subroutine to fixup standard video parameters
  2734.         (call subroutine with DS:SI and ES:DI as returned by this call)
  2735.     DS:SI -> standard video parameters or FFFFh:FFFFh
  2736.     ES:DI -> supplemental video parameters or FFFFh:FFFFh
  2737. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2738. --------V-1012--BLA1-------------------------
  2739. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  2740.     AH = 12h
  2741.     BL = A1h
  2742. Return: BH = monitor ID (see below)
  2743.     BL = monitor type (00h color, 01h grayscale, 02h no display)
  2744. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  2745.  
  2746. Values for monitor ID:
  2747.  00h-08h reserved
  2748.  09h    IBM 8604/8507 or equivalent
  2749.  0Ah    IBM 8514 or equivalent
  2750.  0Bh    IBM 8515 or equivalent
  2751.  0Dh    IBM 8503 or equivalent
  2752.  0Eh    IBM 8512/8513 or equivalent
  2753.  0Fh    no monitor
  2754. --------V-1012--BLA2-------------------------
  2755. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  2756.     AH = 12h
  2757.     BL = A2h
  2758.     AL = retrace rate
  2759.         00h standard VGA (31.5 kHz)
  2760.         01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  2761.         02h SuperVGA (31.5-35.1 kHz)
  2762.         03h extended SuperVGA (31.5-35.5 kHz)
  2763.         04h multi-frequency (31.5-37.8 kHz)
  2764.         05h extended multi-frequency (31.5-48.0 kHz)
  2765.         06h super multi-frequency (31.5-56.0 kHz)
  2766.         07h extended super multi-frequency (31.5-64.0 kHz)
  2767. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  2768. --------V-1012--BLA3-------------------------
  2769. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  2770.     AH = 12h
  2771.     BL = A3h
  2772.     AL = refresh rate for 640x480 (00h normal, 01h high)
  2773. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  2774. --------V-1012--BLA4-------------------------
  2775. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  2776.     AH = 12h
  2777.     BL = A4h
  2778.     AL bits 3-0 = maximum vertical resolution
  2779.         (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  2780.     AL bits 7-4 = vertical refresh at 640x480
  2781.         (0 = 60Hz, 1 = 72Hz, other reserved)
  2782.     BH bits 3-0 = vertical refresh at 800x600
  2783.         (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  2784.     BH bits 7-4 = vertical refresh at 1024x768
  2785.         (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  2786.     CH bits 4-7 = vertical refresh at 1280x1024
  2787.         (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  2788. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  2789. --------V-1012--BLBE-------------------------
  2790. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2791.     AH = 12h
  2792.     BL = BEh
  2793. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2794.       crash the system on this function
  2795. --------V-1012--BLC6-------------------------
  2796. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2797.     AH = 12h
  2798.     BL = C6h
  2799. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2800.       crash the system on this function
  2801. --------V-1012--BLF0-------------------------
  2802. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2803.     AH = 12h
  2804.     BL = F0h
  2805. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2806.       crash the system on this function
  2807. --------V-1013-------------------------------
  2808. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  2809.     AH = 13h
  2810.     AL = write mode
  2811.        bit 0: update cursor after writing
  2812.        bit 1: string contains alternating characters and attributes
  2813.     BH = page number
  2814.     BL = attribute if string contains only characters
  2815.     CX = number of characters in string
  2816.     DH,DL = row,column at which to start writing
  2817.     ES:BP -> string to write
  2818. Notes:    recognizes CR, LF, BS, and bell
  2819.     also available PC or XT with EGA or higher
  2820.     HP 95LX only supports write mode 00h
  2821. BUG:    on the IBM VGA Adapter, any scrolling which may occur is performed on
  2822.       the active page rather than the requested page
  2823. SeeAlso: AH=09h,AH=0Ah
  2824. --------V-101400-----------------------------
  2825. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  2826.     AX = 1400h
  2827.     ES:DI -> character font
  2828.     BH = number of bytes per character
  2829.         08h or 10h (Compaq)
  2830.     BL = 00h load main font (block 0)
  2831.          01h load alternate font (block 1)
  2832.     CX = number of characters to store
  2833.     DX = character offset into RAM font area
  2834. SeeAlso: AH=11h,AX=1401h
  2835. --------V-101401-----------------------------
  2836. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  2837.     AX = 1401h
  2838.     BL = font to load
  2839.         00h main font (block 0)
  2840.         01h alternate font (block 1)
  2841. SeeAlso: AH=11h,AX=1400h
  2842. --------V-101402-----------------------------
  2843. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  2844.     AX = 1402h
  2845.     BL = function
  2846.         00h ignore high intensity attribute
  2847.         01h map high intensity to underscore
  2848.         02h map high intensity to reverse video
  2849.         03h map high intensity to selected alternate font
  2850.         B0h half intensity (Compaq)
  2851.         B1h toggle active intensity bit interpretation (CP386)
  2852. --------V-1015-------------------------------
  2853. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  2854.     AH = 15h
  2855. Return: AX = alternate display adapter type (see below)
  2856.     ES:DI -> parameter table (see below)
  2857. SeeAlso: AH=1Bh
  2858.  
  2859. Values for alternate display adapter type:
  2860.  0000h    none
  2861.  5140h    LCD
  2862.  5153h    CGA
  2863.  5151h    mono
  2864.  
  2865. Format of display parameter table:
  2866. Offset    Size    Description
  2867.  00h    WORD    monitor model number
  2868.  02h    WORD    vertical pixels per meter
  2869.  04h    WORD    horizontal pixels per meter
  2870.  06h    WORD    total vertical pixels
  2871.  08h    WORD    total horizontal pixels
  2872.  0Ah    WORD    horizontal pixel separation in micrometers
  2873.  0Ch    WORD    vertical pixel separation in micrometers
  2874. --------V-1015-------------------------------
  2875. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  2876.     AH = 15h
  2877.     AL = superimpose mode
  2878.         00h show graphics screen
  2879.         01h show text screen
  2880.         02h show text screen superimposed on graphics screen
  2881. --------V-101A00-----------------------------
  2882. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  2883.     AX = 1A00h
  2884. Return: AL = 1Ah if function was supported
  2885.         BL = active display code (see below)
  2886.         BH = alternate display code
  2887. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh
  2888.  
  2889. Values for display combination code:
  2890.  00h    no display
  2891.  01h    monochrome adapter w/ monochrome display
  2892.  02h    CGA w/ color display
  2893.  03h    reserved
  2894.  04h    EGA w/ color display
  2895.  05h    EGA w/ monochrome display
  2896.  06h    PGA w/ color display
  2897.  07h    VGA w/ monochrome analog display
  2898.  08h    VGA w/ color analog display
  2899.  09h    reserved
  2900.  0Ah    MCGA w/ digital color display
  2901.  0Bh    MCGA w/ monochrome analog display
  2902.  0Ch    MCGA w/ color analog display
  2903.  FFh    unknown display type
  2904. --------V-101A01-----------------------------
  2905. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  2906.     AX = 1A01h
  2907.     BL = active display code (see AX=1A00h)
  2908.     BH = alternate display code
  2909. Return: AL = 1Ah if function was supported
  2910. SeeAlso: AH=12h/BL=35h,AX=1A00h
  2911. --------V-101B-------------------------------
  2912. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  2913.     AH = 1Bh
  2914.     BX = implementation type
  2915.         0000h return funtionality/state information
  2916.     ES:DI -> 64-byte buffer for state information (see below)
  2917. Return: AL = 1Bh if function supported
  2918.         ES:DI buffer filled with state information
  2919. BUG:    Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  2920.       do not correctly set the fields at offsets 27h and 29h of the
  2921.       state information
  2922. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  2923.  
  2924. Format of state information:
  2925. Offset    Size    Description
  2926.  00h    DWORD    address of static funtionality table (see below)
  2927.  04h    BYTE    video mode in effect
  2928.  05h    WORD    number of columns
  2929.  07h    WORD    length of regen buffer in bytes
  2930.  09h    WORD    starting address of regen buffer
  2931.  0Bh    WORD    cursor position for page 0
  2932.  0Dh    WORD    cursor position for page 1
  2933.  0Fh    WORD    cursor position for page 2
  2934.  11h    WORD    cursor position for page 3
  2935.  13h    WORD    cursor position for page 4
  2936.  15h    WORD    cursor position for page 5
  2937.  17h    WORD    cursor position for page 6
  2938.  19h    WORD    cursor position for page 7
  2939.  1Bh    WORD    cursor type
  2940.  1Dh    BYTE    active display page
  2941.  1Eh    WORD    CRTC port address
  2942.  20h    BYTE    current setting of register (3?8)
  2943.  21h    BYTE    current setting of register (3?9)
  2944.  22h    BYTE    number of rows
  2945.  23h    WORD    bytes/character
  2946.  25h    BYTE    display combination code of active display
  2947.  26h    BYTE    DCC of alternate display
  2948.  27h    WORD    number of colors supported in current mode
  2949.  29h    BYTE    number of pages supported in current mode
  2950.  2Ah    BYTE    number of scan lines active
  2951.         (0,1,2,3) = (200,350,400,480)
  2952.         Tseng ET3000: (4,5,6 = 512,600,768)
  2953.  2Bh    BYTE    primary character block
  2954.  2Ch    BYTE    secondary character block
  2955.  2Dh    BYTE    miscellaneous flags (see below)
  2956.  2Eh  3 BYTEs    reserved (00h)
  2957.  31h    BYTE    video memory available
  2958.         00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  2959.  32h    BYTE    save pointer state flags (see below)
  2960.  33h 13 BYTEs    reserved (00h)
  2961.  
  2962. Bitfields for miscellaneous flags:
  2963.  bit 0    all modes on all displays on
  2964.  bit 1    gray summing on
  2965.  bit 2    monochrome display attached
  2966.  bit 3    default palette loading disabled
  2967.  bit 4    cursor emulation enabled
  2968.  bit 5    0 = intensity; 1 = blinking
  2969.  bit 6    PS/2 P70 plasma display (without 9-dot wide font) active
  2970.  bit 7    reserved
  2971.  
  2972. Bitfields for save pointer state flags:
  2973.  bit 0    512 character set active
  2974.  bit 1    dynamic save area present
  2975.  bit 2    alpha font override active
  2976.  bit 3    graphics font override active
  2977.  bit 4    palette override active
  2978.  bit 5    DCC override active
  2979.  bits 6-7 reserved
  2980.  
  2981. Format of Static Functionality Table:
  2982. Offset    Size    Description
  2983.  00h    BYTE    modes supported #1
  2984.         bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 supported
  2985.  01h    BYTE    modes supported #2
  2986.         bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  2987.  02h    BYTE    modes supported #3
  2988.         bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  2989.         bit 4 to bit 7 reserved
  2990.  03h    BYTE    (IBM) reserved
  2991.         (Tseng ET3000/4000) modes supported #4
  2992.                 bit 0 to bit 7 = modes 18h-1Fh supported
  2993.  04h    BYTE    (IBM) reserved
  2994.         (Tseng ET3000/4000) modes supported #5
  2995.                 bit 0 to bit 7 = modes 20h-27h supported
  2996.  05h    BYTE    (IBM) reserved
  2997.         (Tseng ET3000/4000) modes supported #6
  2998.                 bit 0 to bit 7 = modes 28h-2Fh supported
  2999.  06h    BYTE    (IBM) reserved
  3000.         (Tseng ET3000/4000) modes supported #7
  3001.                 bit 0 to bit 7 = modes 30h-37h supported
  3002.  07h    BYTE    scan lines supported
  3003.         bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  3004.  08h    BYTE    total number of character blocks available in text modes
  3005.  09h    BYTE    maximum number of active character blocks in text modes
  3006.  0Ah    WORD    miscellaneous function support flags (see below)
  3007.  0Ch    WORD    reserved
  3008.  0Eh    BYTE    save pointer function flags (see below)
  3009.  0Fh    BYTE    reserved
  3010.  
  3011. Bitfields for miscellaneous function support flags:
  3012.  bit 0    all modes on all displays function supported
  3013.  bit 1    gray summing function supported
  3014.  bit 2    character font loading function supported
  3015.  bit 3    default palette loading enable/disable supported
  3016.  bit 4    cursor emulation function supported
  3017.  bit 5    EGA palette present
  3018.  bit 6    color palette present
  3019.  bit 7    color paging function supported
  3020.  bit 8    light pen supported
  3021.  bit 9    save/restore state function 1Ch supported
  3022.  bit 10 intensity blinking function supported
  3023.  bit 11 Display Combination Code supported
  3024.  bits 12-15 reserved
  3025.  
  3026. Bitfields for save pointer function flags:
  3027.  bit 0    512 character set supported
  3028.  bit 1    dynamic save area supported
  3029.  bit 2    alpha font override supported
  3030.  bit 3    graphics font override supported
  3031.  bit 4    palette override supported
  3032.  bit 5    DCC extension supported
  3033.  bits 6-7 reserved
  3034. --------V-101C-------------------------------
  3035. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  3036.     AH = 1Ch
  3037.     AL = function
  3038.         00h return state buffer size
  3039.         Return: BX = number of 64-byte blocks needed
  3040.         01h save video state
  3041.         ES:BX -> buffer
  3042.         02h restore video state
  3043.         ES:BX -> buffer containing previously saved state
  3044.     CX = requested states
  3045.          bit 0 video hardware
  3046.          bit 1 BIOS data areas
  3047.          bit 2 color registers and DAC state
  3048.          bits 3-15 reserved
  3049. Return: AL = 1Ch if function supported
  3050. Notes:    many BIOSes corrupt the video registers when saving the state, so a
  3051.       program should restore the state immediately after saving it (the
  3052.       saved data is uncorrupted)
  3053.     the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  3054.  
  3055. Format of video hardware state:
  3056. Offset    Size    Description
  3057.  00h    BYTE    sequencer index register
  3058.  01h    BYTE    CRTC index register
  3059.  02h    BYTE    graphics controller index register
  3060.  03h    BYTE    attribute controller index register
  3061.  04h    BYTE    feature controller register
  3062.  05h  4 BYTEs    sequencer registers
  3063.  09h    BYTE    sequencer register 0
  3064.  0Ah 25 BYTEs    CRTC registers 0-8
  3065.  23h 16 BYTEs    palette registers 00h-0Fh
  3066.  33h  4 BYTEs    attribute registers 10h-13h
  3067.  37h  9 BYTEs    graphics controller registers 0-8
  3068.  40h    BYTE    CRTC base address (low)
  3069.  41h    BYTE    CRTC base address (high)
  3070.  42h    BYTE    plane 0 latch
  3071.  43h    BYTE    plane 1 latch
  3072.  44h    BYTE    plane 2 latch
  3073.  45h    BYTE    plane 3 latch
  3074.  
  3075. Format of DAC state:
  3076. Offset    Size    Description
  3077.  00h    BYTE    read/write mode DAC
  3078.  01h    BYTE    pixel address
  3079.  02h    BYTE    pixel mask
  3080.  03h 768 BYTEs    color data (256 triples)
  3081. 303h    BYTE    color select register
  3082. --------V-101D-------------------------------
  3083. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  3084.     AH = 1Dh
  3085.     AL = video mode
  3086.     ES = caller's segment
  3087. Return: nothing
  3088. Note:    the caller's segment contains at offset 5Ch (FCB field in PSP)
  3089.       or 100h a table with sync parameters (BIOS looks at both offsets)
  3090.  
  3091. Format of sync table:
  3092. Offset    Size    Description
  3093.  00h  9 BYTEs    ID contains string 'ey5CENTER'
  3094.  09h  5 BYTEs    sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  3095.  0Bh  5 BYTEs    sync parameters for 800x600 modes 29h,30h,2Ah
  3096.  13h  5 BYTEs    sync parameters for 1024x768 modes 37h,38h
  3097. --------V-101D-------------------------------
  3098. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3099.     AH = 1Dh
  3100. Note:    these versions of the BIOS jump to a random location on this function
  3101.       due to a fencepost error
  3102. --------V-101F00-----------------------------
  3103. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  3104.     AX = 1F00h
  3105. Return: AL = 1Fh if supported
  3106.         BX = number of bytes of DMQS data
  3107. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3108.       and later models.
  3109. SeeAlso: AX=1F01h
  3110. --------V-101F01-----------------------------
  3111. INT 10 - VIDEO - XGA - READ DMQS DATA
  3112.     AX = 1F01h
  3113.     ES:DI -> user buffer for return data (call AX=1F00h for size)
  3114. Return: AL = 1Fh if function supported
  3115.     user buffer filled with DMQS data, see below.
  3116. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3117.       and later models.
  3118. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  3119.  
  3120. Format of DMQS buffer:
  3121. Offset    Size    Description
  3122.  00h    WORD    offset (in bytes) to DMQS data for next XGA instance
  3123.  02h    BYTE    slot number
  3124.  03h    BYTE    XGA implementation function level identifier
  3125.  04h    BYTE    XGA implementation resolution level identifier
  3126.  05h    WORD    vendor identifier - identifies card vendor
  3127.  07h    WORD    vendor defined field
  3128.  09h    WORD    XGA adapter I/O register base address
  3129.  0Bh    WORD    XGA coprocessor register base address
  3130.         (paragraph--multiply by 10h to get physical address)
  3131.  0Dh    WORD    1 Megabyte system video memory aperture
  3132.         0000h if not allocated
  3133.         (Multiply by 100000h to get physical address)
  3134.  0Fh    WORD    4 Megabyte system video memory aperture
  3135.         0000h if not allocated
  3136.         (multiply by 100000h to get physical address)
  3137.  11h    WORD    video memory base address
  3138.         (multiply by 100000h to get physical address)
  3139.  13h    WORD    composite ID of the attached display
  3140.  15h    BYTE    amount of video memory available, in multiples of 256K bytes
  3141.  16h    DWORD    alternate XGA coprocessor register base address.  0 = none.
  3142.  1Ah    var    DMQS Data for further XGA Instances (as above)
  3143. Note:    "Instances" refers to the capability of having up to 8 XGA
  3144.       adapters in one computer.
  3145. --------V-103000CX0000-----------------------
  3146. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  3147.     AX = 3000h
  3148.     CX = 0000h
  3149.     DX = 0000h
  3150. Return: CX:DX -> 3270PC configuration table (see below)
  3151.     CX:DX = 0000h:0000h if 3270PC Control Program not active
  3152. SeeAlso: AX=1F01h
  3153.  
  3154. Format of 3270 PC configuration table:
  3155. Offset    Size    Description
  3156.  00h    BYTE    aspect ratio X
  3157.  01h    BYTE    aspect ratio Y
  3158.  02h    BYTE    monitor type (see below)
  3159.  03h    BYTE    reserved
  3160.  04h    BYTE    adapter ID
  3161.         00h = 5151/5272 adapter
  3162.         04h = 5151/5272 with XGA adapter
  3163.         30h = 3295 or 3270PC G/GX adapter
  3164.  05h    BYTE    reserved
  3165.  06h    BYTE    function flags 1 (see below)
  3166.  07h    BYTE    function flags 2
  3167.         bit 6: GPI graphics supported
  3168.  08h    WORD    segment address of Control Program Level table (see below)
  3169.  0Ah 10 BYTEs    reserved
  3170.  
  3171. Values for monitor type:
  3172.  00h    5151 (mono) or 5272 (color)
  3173.  01h    3295
  3174.  02h    5151 or 5272 with XGA (???) graphics adapter
  3175.  03h    5279 with 3270PC G adapter
  3176.  04h    5379 model C01 with 3270PC GX adapter
  3177.  05h    5379 model M01 with 3270PC GX adapter
  3178.  07h    non-3270PC with 3270 Workstation Program
  3179.  FFh    3270PC Control Program not loaded
  3180.  
  3181. Bitfields for function flags 1:
  3182.  bit 7    mono text, 1 page
  3183.  bit 6    color text, 1 page
  3184.  bit 5    color text, 4 pages
  3185.  bit 4    CGA color graphics
  3186.  bit 3    720x350 two-color graphics
  3187.  bit 2    360x350 four-color graphics
  3188.  bit 1    720x350 eight-color graphics
  3189.  
  3190. Format of Control Program Level table:
  3191. Offset    Size    Description
  3192.  00h    WORD    program version
  3193.         02xxh = 3270PC Control Program v2.xx
  3194.         03xxh = 3270PC Control Program v3.xx
  3195.         04xxh = 3270 Workstation Program v1.xx
  3196.  02h    BYTE    Control Program ID (00h)
  3197.  03h 27 BYTEs    Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  3198. --------a-103800-----------------------------
  3199. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  3200.     AX = 3800h
  3201. Return: ES:DI -> configuration info (see below)
  3202. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3203. Notes:    this call is also used as the installation check by verifying that the
  3204.       returned ES:DI points at valid configuration info
  3205.     Tinytalk v1.09f ignores AL and always returns the configuration info;
  3206.       v1.10 adds several subfunctions selected with AL
  3207. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  3208. SeeAlso: INT 2F/FB00h"AutoBraille"
  3209. Index:    installation check;Tinytalk Personal
  3210.  
  3211. Format of configuration info:
  3212. Offset    Size    Description
  3213.  00h  8 BYTEs    signature "TTCONFIG"
  3214.  08h    WORD    size of configuration data, not counting signature, this WORD,
  3215.         or the following byte
  3216.  0Ah    BYTE    ???
  3217.  0Bh    ???    configuration data
  3218. --------a-103801-----------------------------
  3219. INT 10 - Tinytalk Personal v1.10 - ???
  3220.     AX = 3801h
  3221.     DL = ???
  3222. Return: ???
  3223. SeeAlso: AX=3800h,AX=3802h
  3224. --------a-103802-----------------------------
  3225. INT 10 - Tinytalk Personal v1.10 - ???
  3226.     AX = 3802h
  3227.     DL = ???
  3228. Return: ???
  3229. SeeAlso: AX=3800h,AX=3801h
  3230. --------a-103803-----------------------------
  3231. INT 10 - Tinytalk Personal v1.10 - GET ???
  3232.     AX = 3803h
  3233. Return: AL = ???
  3234. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  3235. --------a-103804-----------------------------
  3236. INT 10 - Tinytalk Personal v1.10 - GET ???
  3237.     AX = 3804h
  3238. Return: AX = ???
  3239. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  3240. --------a-103805-----------------------------
  3241. INT 10 - Tinytalk Personal v1.10 - GET ???
  3242.     AX = 3805h
  3243. Return: AL = ???
  3244. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  3245. --------a-103806-----------------------------
  3246. INT 10 - Tinytalk Personal v1.10 - ???
  3247.     AX = 3806h
  3248.     ES:DX -> ASCIZ ???
  3249. Return: ???
  3250. SeeAlso: AX=3800h
  3251. --------a-1039-------------------------------
  3252. INT 10 - Tinytalk Personal v1.10 - ???
  3253.     AH = 39h
  3254. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3255. Note:    this function was a NOP in TTDEMO.EXE, but may be implemented in other
  3256.       variants of Tinytalk
  3257. --------V-1040-------------------------------
  3258. INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
  3259.     AH = 40h
  3260. Desc:    switch the Hercules Graphics Card into graphics mode (720x348)
  3261. SeeAlso: AH=00h,AH=41h
  3262. Index:    video modes
  3263. --------V-1041-------------------------------
  3264. INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
  3265.     AH = 41h
  3266. Desc:    switch the Hercules Graphics Card into text mode
  3267. SeeAlso: AH=00h,AH=40h
  3268. Index:    video modes
  3269. --------V-1042-------------------------------
  3270. INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
  3271.     AH = 42h
  3272. SeeAlso: AH=45h
  3273. --------V-1043-------------------------------
  3274. INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
  3275.     AH = 43h
  3276.     AL = page number (0,1)
  3277. Desc:    specify which of the two pages of video memory is to be used for
  3278.       output
  3279. SeeAlso: AH=05h,AH=44h,AH=45h
  3280. --------V-1044-------------------------------
  3281. INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
  3282.     AH = 44h
  3283.     AL = drawing function
  3284.         00h clear pixels
  3285.         01h set pixels
  3286.         02h invert pixels
  3287. Desc:    specify how graphics output will change the display
  3288. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  3289. --------V-1045-------------------------------
  3290. INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
  3291.     AH = 45h
  3292.     AL = page number (0,1)
  3293. Desc:    specify which of the two pages of video memory is visible on screen
  3294. SeeAlso: AH=05h,AH=42h,AH=43h
  3295. --------V-1046-------------------------------
  3296. INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
  3297.     AH = 46h
  3298.     DI = x (0-720)
  3299.     BP = y (0-347)
  3300. Note:    function 44h determines operation and function 43h which page to use
  3301. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  3302. --------V-1047-------------------------------
  3303. INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
  3304.     AH = 47h
  3305.     DI = x (0-720)
  3306.     BP = y (0-347)
  3307. Return: AL = 00h pixel clear
  3308.     AL = 01h pixel set
  3309. Note:    function 43h specifies which page is used
  3310. SeeAlso: AH=0Dh,AH=46h
  3311. --------V-1048-------------------------------
  3312. INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
  3313.     AH = 48h
  3314.     DI = x (0-720)
  3315.     BP = y (0-347)
  3316. Desc:    specify the location from which to start the next graphics output
  3317. SeeAlso: AH=49h
  3318. --------V-1049-------------------------------
  3319. INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
  3320.     AH = 49h
  3321.     DI = x (0-720)
  3322.     BP = y (0-347)
  3323. Note:    function 48h or 49h specify first point, 44h operation and 43h page to
  3324.       use
  3325. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  3326. --------V-104A-------------------------------
  3327. INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
  3328.     AH = 4Ah
  3329.     DI = x coordinate of lower left corner
  3330.     BP = y coordinate of lower left corner
  3331.     BX = height in pixels
  3332.     CX = width in pixels
  3333. Desc:    draw a solid rectangle of the specified size at the given location
  3334. SeeAlso: AH=4Eh
  3335. --------V-104B-------------------------------
  3336. INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
  3337.     AH = 4Bh
  3338.     AL = character to display
  3339.     DI = x (0-720)
  3340.     BP = y (0-347)
  3341. Note:    unlike the other BIOS character functions character position is
  3342.       specified in pixels rather than rows and columns
  3343. SeeAlso: AH=09h,AH=0Ah
  3344. ----------104B-------------------------------
  3345. INT 10 - FRIEZE - API
  3346.     AH = 4Bh
  3347.     CL = function
  3348.         00h (v6.x-) print window
  3349.         AL = mode
  3350.             00h character
  3351.             01h normal
  3352.             02h sideways
  3353.         01h load window
  3354.         ES:BX -> ASCIZ filename from which to read
  3355.         02h save window
  3356.         ES:BX -> ASCIZ filename to which to write
  3357.         03h set print width
  3358.         AL = width in 1/4 inches
  3359.         04h set print height
  3360.         AL = height in 1/4 inches
  3361.         05h reserved
  3362.         06h set left margin
  3363.         AL = printout margin in 1/4 inches
  3364.         07h set window size
  3365.         ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  3366.         08h reserved
  3367.         09h set patterns
  3368.         ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  3369.         0Ah get patterns
  3370.         ES:BX -> 16-BYTE buffer for color correspondences
  3371.         0Bh set mode
  3372.         AL = mode
  3373.         0Ch (v7.41) ???
  3374.         AL = ???
  3375.             00h ??? (calls original INT 05)
  3376.             else ???
  3377.         0Dh (v7.41) ???
  3378.         AL = ???
  3379.             00h ??? (calls original INT 05)
  3380.             else ???
  3381.         0Eh (v7.41) ???
  3382.         ???
  3383.         0Fh get window
  3384.         ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  3385.         10h set print options
  3386.         ES:BX -> printer options in same format as FRIEZE cmdline
  3387.         11h initialize
  3388.         ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  3389.         12h (v7.41) ???
  3390.         ???
  3391.         13h (v7.41) ???
  3392.         ???
  3393.         14h get version
  3394.         Return: AH = major version (00h if FRIEZE version before 7)
  3395.             AL = minor version
  3396.         15h set parameters
  3397.         ES:BX -> parameter table (see below)
  3398.         16h get parameters
  3399.         ES:BX -> buffer for parameter table (see below)
  3400.         17h get printer resolution
  3401.         ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  3402.         18h (v8.0 only) reserved
  3403.         50h (v7.41) get ???
  3404.         Return: AX = ???
  3405.         51h (v7.41) get ???
  3406.         Return: ES = ??? (seen 2348h)
  3407.             AX = ??? (seen 8432h)
  3408. Return: AX = status (see below)
  3409. SeeAlso: AH=0Fh/SI=F123h
  3410.  
  3411. Values for status:
  3412.  00h    successful
  3413.  01h    user aborted printout with ESC
  3414.  02h    reserved
  3415.  03h    file read error
  3416.  04h    file write error or printer error
  3417.  05h    file not found
  3418.  06h    invalid header (not an image or wrong screen mode) or can't create file
  3419.  07h    file close error
  3420.  08h    disk error
  3421.  09h    (v7.0+) printer error
  3422.  0Ah    invalid function
  3423.  0Bh    (v7.0+) can't create file
  3424.  0Ch    (v7.0+) wrong video mode
  3425.  
  3426. Format of parameter table:
  3427. Offset    Size    Description
  3428.  00h    WORD    top margin (1/100 inch)
  3429.  02h    WORD    left margin (1/100 inch)
  3430.  04h    WORD    horizontal size (1/100 inch)
  3431.  06h    WORD    vertical size (1/100 inch)
  3432.  08h    WORD    quality/draft mode
  3433.         00h draft mode
  3434.         01h quality mode
  3435.         02h use horizontal/vertical resolution for output resolution
  3436.  0Ah    WORD    printer horizontal resolution (dots per inch)
  3437.  0Ch    WORD    printer vertical resolution (dots per inch)
  3438.  0Eh    WORD    reserved (FFFFh)
  3439. Note:    any field which should remain unchanged may be filled with FFFFh
  3440. --------V-104C-------------------------------
  3441. INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
  3442.     AH = 4Ch
  3443.     AL = quadrant (1 = upper right, 2 = upper left, etc)
  3444.     DI = x coordinate of center
  3445.     BP = y coordinate of center
  3446.     BX = radius
  3447. SeeAlso: AH=49h,AH=4Dh
  3448. --------V-104D-------------------------------
  3449. INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
  3450.     AH = 4Dh
  3451.     DI = x of center
  3452.     BP = y of center
  3453.     BX = radius
  3454. SeeAlso: AH=49h,AH=4Ch
  3455. --------V-104E-------------------------------
  3456. INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
  3457.     AH = 4Eh
  3458.     DI = x coordinate of an interior point
  3459.     BP = y coordinate of an interior point
  3460. Desc:    fill a convex polygonal area bounded by a contiguous line of the
  3461.       opposite color with the border color
  3462. Note:    the first fill makes the figure solid, the second erases it
  3463. SeeAlso: AH=4Ah
  3464. --------V-104E00-----------------------------
  3465. INT 10 - VESA XGA BIOS Extensions - GET XGA ENVIRONMENT INFORMATION
  3466.     AX = 4E00h
  3467.     ES:DI -> 256-byte buffer for XGA information (see below)
  3468. Return: AL = 4Eh if function supported
  3469.         AH = status
  3470.         00h successful
  3471.         else error code
  3472. Desc:    determine whether VESA XGA extensions are present and the capabilities
  3473.       supported by the display adapter
  3474. SeeAlso: AX=4E01h,AX=4E02h,AX=4F00h
  3475. Index:    installation check;VESA XGA
  3476.  
  3477. Format of XGA information buffer:
  3478. Offset    Size    Description
  3479.  00h  4 BYTEs    signature ("VESA")
  3480.  04h    WORD    VESA version number
  3481.  06h    DWORD    pointer to ASCIZ OEM string
  3482.  0Ah    DWORD    environment flags
  3483.         bits 0-1 system bus (00 = MCA, 01 = ISA, 10 = EISA)
  3484.         bit 2     bus mastering available
  3485.         bits 3-31 reserved
  3486.  0Eh    WORD    number of XGA adapters installed (other VESA XGA functions
  3487.           require a handle indicating which adapter to use)
  3488.  10h 240 BYTEs    reserved
  3489. --------V-104E01----------------------------
  3490. INT 10 - VESA XGA BIOS Extensions - RETURN XGA SUBSYSTEM INFORMATION
  3491.     AX = 4E01h
  3492.     DX = XGA handle (0 to number of XGAs-1)
  3493.     ES:DI -> 256-byte buffer for subsystem information (see below)
  3494. Return: AL = 4Eh if function supported
  3495.     AH = status
  3496.         00h     function successful
  3497.         else error code
  3498. SeeAlso: AX=4E00h,AX=4E02h
  3499.  
  3500. Format of subsystem information:
  3501. Offset    Size    Description
  3502.  00h    DWORD    pointer to null-terminated board OEM string
  3503.  04h    DWORD    capabilities
  3504.         bits 0-1  board bus architecture: 0=MCA, 1=ISA, 3=EISA
  3505.         bits 2-3  reserved
  3506.         bits 4-6  DMA Channel assigned for acquiring bus mastership
  3507.               (only for ISA bus systems)
  3508.         bit  7      DMA Channel Status (ISA only). enabled if set
  3509.         bits 8-31 reserved
  3510.  08h    DWORD    pointer to 8KB XGA ROM (or NULL)
  3511.  0Ch    DWORD    pointer to the XGA memory mapped registers
  3512.  10h    WORD    base address of XGA I/O registers (21x0h)
  3513.  12h    DWORD    pointer to start of physical video memory
  3514.         (A000h:0000h or B000h:0000h)
  3515.  16h    DWORD    physical address of 4MB aperture (or NULL if none)
  3516.  1Ah    DWORD    physical address of 1MB aperture (or NULL if none)
  3517.  1Eh    DWORD    physical address of 64KB aperture (or NULL if not enabled)
  3518.  22h    DWORD    physical address of OEM aperture (or NULL if none)
  3519.  26h    WORD    size of OEM aperture in 64KByte units
  3520.  28h    DWORD    pointer to list of video modes
  3521.         The list is a series of WORDs terminated by FFFFh
  3522.  2Ch    WORD    number of 64KB blocks on the board
  3523.  2Eh    DWORD    XGA manufactor ID
  3524.         byte 0 POS data index 1
  3525.         byte 1 is index 2
  3526.         byte 2 is 21xAh index 75h
  3527.  32h 206 BYTEs reserved
  3528. --------V-104E02-----------------------------------
  3529. INT 10 - VESA XGA BIOS Extensions - RETURN XGA MODE INFORMATION
  3530.     AX = 4E02h
  3531.     CX = Video mode
  3532.     DX = XGA handle
  3533.     ES:DI -> 256 byte buffer
  3534. Return: AL = 4Eh if function supported
  3535.     AH = status
  3536.         00h     function successful
  3537.         else error code
  3538. SeeAlso: AX=4E00h,AX=4E01h
  3539.  
  3540. Format of mode information:
  3541. Offset    Size    Description
  3542.  00h    WORD    attributes of the mode
  3543.         bit 0    set if mode is supported
  3544.         bit 1    reserved
  3545.         bit 2    output is supported by the BIOS
  3546.         bit 3    reserved
  3547.         bit 4    if set this is a graphics mode (VGA registers
  3548.             inactive, XGA active), if clear this is a text mode
  3549.             (VGA registers active, XGA inactive)
  3550.  02h    WORD    bytes per logical scanline
  3551.  04h    WORD    horizontal resolution in pixels
  3552.  06h    WORD    vertical resolution in scanlines
  3553.  08h    BYTE    character Width in pixels
  3554.  09h    BYTE    character Height in pixels
  3555.  0Ah    BYTE    number of planes
  3556.  0Bh    BYTE    bits per pixels
  3557.  0Ch    BYTE    memory model
  3558.         00h Text Mode
  3559.         01h CGA graphics
  3560.         02h Hercules graphics
  3561.         03h 4-planar graphics
  3562.         04h Packed Pixel
  3563.         05h Non-chain 4, 256 color
  3564.         06h Direct Color
  3565.         07h YUV-24
  3566.  0Dh    BYTE    number of Image Pages
  3567.  0Eh    BYTE    number of Red bits
  3568.  0Fh    BYTE    bit position of Red bit field
  3569.  10h    BYTE    number of Green bits
  3570.  11h    BYTE    bit position of Green bit field
  3571.  12h    BYTE    number of Blue bits
  3572.  13h    BYTE    bit position of Blue bit field
  3573.  14h    BYTE    number of Reserved bits
  3574.  15h    BYTE    bit position of Reserved bit field
  3575.  16h 235 BYTEs    reserved
  3576. --------V-104E03-----------------------------------
  3577. INT 10 - VESA XGA BIOS Extensions - SET XGA VIDEO MODE
  3578.     AX = 4E03h
  3579.     BX = video mode
  3580.     CX = other command flags
  3581.          bit 0  If clear the feature connector is set to the default state
  3582.     DX = XGA handle
  3583.     ES:DI -> 256 byte buffer
  3584. Return: AL = 4Eh if function supported
  3585.     AH = status
  3586.         00h     function successful
  3587.         else error code
  3588. SeeAlso: AH=00h,AX=4E04h,AX=4F02h
  3589. --------V-104E04-----------------------------------
  3590. INT 10 - VESA XGA BIOS Extensions - RETURN CURRENT VIDEO MODE
  3591.     AX = 4E04h
  3592.     DX = XGA handle
  3593. Return: AL = 4Eh if function supported
  3594.     AH = status
  3595.         00h     function successful
  3596.         BX??? = current mode
  3597.         else error code
  3598. SeeAlso: AH=0Fh,AX=4E03h,AX=4F03h
  3599. --------V-104E05-----------------------------------
  3600. INT 10 - VESA XGA BIOS Extensions - SET FEATURE CONNECTOR STATE
  3601.     AX = 4E05h
  3602.     BX = Feature Connector State (see below)
  3603.     DX = XGA handle
  3604. Return: AL = 4Eh if function supported
  3605.     AH = status
  3606.         00h     function successful
  3607.         else error code
  3608. SeeAlso: AX=4E00h,AX=4E06h
  3609.  
  3610. Bitfields for Feature Connector State:
  3611.  bit 0    Feature Connector is enabled
  3612.  bit 1    Feature Connector is in Output Mode rather than Input Mode
  3613.  bits 2-15 reserved (0)
  3614. --------V-104E06-----------------------------------
  3615. INT 10 - VESA XGA BIOS Extensions - RETURN FEATURE CONNECTOR STATE
  3616.     AX = 4E06h
  3617.     DX = XGA handle
  3618. Return: AL = 4Eh if function supported
  3619.     AH = status
  3620.         00h     function successful
  3621.         else error code
  3622.     BX = Feature Connector State (see AX=4E05h)
  3623. SeeAlso: AX=4E00h,AX=4E05h
  3624. --------V-104F00-----------------------------
  3625. INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
  3626.     AX = 4F00h
  3627.     ES:DI -> 256-byte buffer for SuperVGA information (see below)
  3628. Return: AL = 4Fh if function supported
  3629.     AH = status
  3630.         00h successful
  3631.         ES:DI buffer filled
  3632.         01h failed
  3633. Desc:    determine whether VESA BIOS extensions are present and the capabilities
  3634.       supported by the display adapter
  3635. SeeAlso: AX=4E00h,AX=4F01h,AX=7F00h
  3636. Index:    installation check;VESA SuperVGA
  3637.  
  3638. Format of SuperVGA information:
  3639. Offset    Size    Description
  3640.  00h  4 BYTEs    signature ("VESA")
  3641.  04h    WORD    VESA version number
  3642.  06h    DWORD    pointer to OEM name
  3643.         "761295520" for ATI
  3644.  0Ah  4 BYTEs    capabilities
  3645.  0Eh    DWORD    pointer to list of supported VESA and OEM video modes
  3646.         (list of words terminated with FFFFh)
  3647.  12h    WORD    total amount of video memory in 64K blocks
  3648.  14h 236 BYTEs    reserved
  3649. Notes:    the list of supported video modes is stored in the reserved portion of
  3650.       the SuperVGA information record by some implementations, and it may
  3651.       thus be necessary to either copy the mode list or use a different
  3652.       buffer for all subsequent VESA calls
  3653.     the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  3654.       buffer should be 262 bytes to ensure that it is not overrun
  3655. --------V-104F01-----------------------------
  3656. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  3657.     AX = 4F01h
  3658.     CX = SuperVGA video mode
  3659.     ES:DI -> 256-byte buffer for mode information (see below)
  3660. Return: AL = 4Fh function supported
  3661.     AH = status
  3662.         00h successful
  3663.         ES:DI buffer filled
  3664.         01h failed
  3665. Desc:    determine the attributes of the specified video mode
  3666. SeeAlso: AX=4F00h,AX=4F02h
  3667.  
  3668. Format of mode information:
  3669. Offset    Size    Description
  3670.  00h    WORD    mode attributes
  3671.         bit 0: mode supported
  3672.         bit 1: optional information available
  3673.         bit 2: BIOS output supported
  3674.         bit 3: set if color, clear if monochrome
  3675.         bit 4: set if graphics mode, clear if text mode
  3676.  02h    BYTE    window A attributes
  3677.         bit 0: exists
  3678.         bit 1: readable
  3679.         bit 2: writable
  3680.         bits 3-7 reserved
  3681.  03h    BYTE    window B attributes (as for window A)
  3682.  04h    WORD    window granularity in KB
  3683.  06h    WORD    window size in KB
  3684.  08h    WORD    start segment of window A
  3685.  0Ah    WORD    start segment of window B
  3686.  0Ch    DWORD    -> FAR window positioning function (equivalent to AX=4F05h)
  3687.  10h    WORD    bytes per scan line
  3688. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  3689.  12h    WORD    width in pixels (graphics) or characters (text)
  3690.  14h    WORD    height in pixels (graphics) or characters (text)
  3691.  16h    BYTE    width of character cell in pixels
  3692.  17h    BYTE    height of character cell in pixels
  3693.  18h    BYTE    number of memory planes
  3694.  19h    BYTE    number of bits per pixel
  3695.  1Ah    BYTE    number of banks
  3696.  1Bh    BYTE    memory model type (see below)
  3697.  1Ch    BYTE    size of bank in KB
  3698.  1Dh    BYTE    number of image pages
  3699.  1Eh    BYTE    reserved (0)
  3700. ---VBE v1.2+---
  3701.  1Fh    BYTE    red mask size
  3702.  20h    BYTE    red field position
  3703.  21h    BYTE    green mask size
  3704.  22h    BYTE    green field size
  3705.  23h    BYTE    blue mask size
  3706.  24h    BYTE    blue field size
  3707.  25h    BYTE    reserved mask size
  3708.  26h    BYTE    reserved mask position
  3709.  27h    BYTE    direct color mode info
  3710.  28h 216 BYTEs    reserved (0)
  3711.  
  3712. Values for memory model type:
  3713.  00h    text
  3714.  01h    CGA graphics
  3715.  02h    HGC graphics
  3716.  03h    16-color (EGA) graphics
  3717.  04h    packed pixel graphics
  3718.  05h    "sequ 256" (non-chain 4) graphics
  3719.  06h    direct color (HiColor, 24-bit color)
  3720.  07h    YUV (luminance-chrominance, also called YIQ)
  3721.  08h-0Fh reserved for VESA
  3722.  10h-FFh OEM memory models
  3723. --------V-104F02-----------------------------
  3724. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  3725.     AX = 4F02h
  3726.     BX = mode
  3727.         bit 15 set means don't clear video memory
  3728. Return: AL = 4Fh function supported
  3729.     AH = status
  3730.         00h successful
  3731.         01h failed
  3732. SeeAlso: AX=4E03h,AX=4F01h,AX=4F03h
  3733.  
  3734. Values for VESA video mode:
  3735.  00h-FFh OEM video modes (see AH=00h)
  3736.  100h    640x400x256
  3737.  101h    640x480x256
  3738.  102h    800x600x16
  3739.  103h    800x600x256
  3740.  104h    1024x768x16
  3741.  105h    1024x768x256
  3742.  106h    1280x1024x16
  3743.  107h    1280x1024x256
  3744.  108h    80x60 text
  3745.  109h    132x25 text
  3746.  10Ah    132x43 text
  3747.  10Bh    132x50 text
  3748.  10Ch    132x60 text
  3749. ---VBE v1.2---
  3750.  10Dh    320x200x32K
  3751.  10Eh    320x200x64K
  3752.  10Fh    320x200x16M
  3753.  110h    640x480x32K
  3754.  111h    640x480x64K
  3755.  112h    640x480x16M
  3756.  113h    800x600x32K
  3757.  114h    800x600x64K
  3758.  115h    800x600x16M
  3759.  116h    1024x768x32K
  3760.  117h    1024x768x64K
  3761.  118h    1024x768x16M
  3762.  119h    1280x1024x32K
  3763.  11Ah    1280x1024x64K
  3764.  11Bh    1280x1024x16M
  3765. Index:    video modes
  3766.  
  3767. Values for S3 OEM video mode:
  3768.  201h    640x480x256
  3769.  202h    800x600x16
  3770.  203h    800x600x256
  3771.  204h    1024x768x16
  3772.  205h    1024x768x256
  3773.  206h    1280x960x16
  3774.  208h    1280x1024x16
  3775.  211h    640x480x64K (Diamond Stealth 24)
  3776.  212h    640x480x16M (Diamond Stealth 24)
  3777.  301h    640x480x32K
  3778. Index:    video modes
  3779. --------V-104F03-----------------------------
  3780. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  3781.     AX = 4F03h
  3782. Return: AL = 4Fh function supported
  3783.     AH = status
  3784.         00h successful
  3785.         BX = video mode (see AX=4F02h)
  3786.         01h failed
  3787. SeeAlso: AH=0Fh,AX=4E04h,AX=4F02h
  3788. --------V-104F04-----------------------------
  3789. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  3790.     AX = 4F04h
  3791.     DL = subfunction
  3792.         00h get state buffer size
  3793.         Return: BX = number of 64-byte blocks needed
  3794.         01h save video states
  3795.         ES:BX -> buffer
  3796.         02h restore video states
  3797.         ES:BX -> buffer
  3798.     CX = flags for states to save/restore
  3799.         bit 0: video hardware state
  3800.         bit 1: video BIOS data state
  3801.         bit 2: video DAC state
  3802.         bit 3: SuperVGA state
  3803. Return: AL = 4Fh function supported
  3804.     AH = status
  3805.         00h successful
  3806.         01h failed
  3807. --------V-104F05-----------------------------
  3808. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  3809.     AX = 4F05h
  3810.     BH = subfunction
  3811.         00h select video memory window
  3812.         DX = window address in video memory (in granularity units)
  3813.         01h get video memory window
  3814.         Return: DX = window address in video memory (in gran. units)
  3815.     BL = window number
  3816.         00h window A
  3817.         01h window B
  3818. Return: AL = 4Fh function supported
  3819.     AH = status
  3820.         00h successful
  3821.         01h failed
  3822. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  3823. --------V-104F06-----------------------------
  3824. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH
  3825.     AX = 4F06h
  3826.     BL = function
  3827.         00h set scan line length
  3828.         CX = desired width in pixels
  3829.         01h get scan line length
  3830. Return: AL = 4Fh if function supported
  3831.     AH = status
  3832.         00h successful
  3833.         01h failed
  3834.     BX = bytes per scan line
  3835.     CX = number of pixels per scan line
  3836.     DX = maximum number of scan lines
  3837. Notes:    if the desired width is not achievable, the next larger width will be
  3838.       set
  3839.     the scan line may be wider than the visible area of the screen
  3840.     this function is valid in text modes, provided that values are
  3841.       multiplied by the character cell width/height
  3842. SeeAlso: AX=4F01h,AX=4F05h,AX=4F07h
  3843. --------V-104F07BH00-------------------------
  3844. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  3845.     AX = 4F07h
  3846.     BH = 00h (reserved)
  3847.     BL = function
  3848.         00h set display start
  3849.         CX = leftmost displayed pixel in scan line
  3850.         DX = first displayed scan line
  3851.         01h get display start
  3852.         Return: BH = 00h
  3853.             CX = leftmost displayed pixel in scan line
  3854.             DX = first displayed scan line
  3855. Return: AL = 4Fh if function supported
  3856.     AH = status
  3857.         00h successful
  3858.         01h failed
  3859. Note:    this function is valid in text modes, provided that values are
  3860.       multiplied by the character cell width/height
  3861. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  3862. --------V-104F08-----------------------------
  3863. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  3864.     AX = 4F08h
  3865.     BL = function
  3866.         00h set DAC palette width
  3867.         BH = desired number of bits per primary color
  3868.         01h get DAC palette width
  3869. Return: AL = 4Fh if function supported
  3870.     AH = status
  3871.     BH = current number of bits per primary (06h = standard VGA)
  3872. ----------104F13-----------------------------
  3873. INT 10 - VESA Audio Interface - API
  3874.     AX = 4F13h
  3875.     ??? details not yet available
  3876. --------V-104FFF-----------------------------
  3877. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  3878.     AX = 4FFFh
  3879.     DL = new state (00h off, 01h on)
  3880. Return: AX = 0000h if successful
  3881. --------V-104FFF-----------------------------
  3882. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  3883.     AX = 4FFFh
  3884.     BX = dual display mode
  3885.         00h reset
  3886.         01h set dual display, 32KB VGA test
  3887.         02h set dual display, 64KB VGA test
  3888. Return: AX = 4F00h if successful
  3889.         BX = number of scanlines off screen for test mode
  3890. --------U-1050-------------------------------
  3891. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  3892.     AH = 50h
  3893. Return: BX = 1954h if installed
  3894.         AL = 00h if inactive, nonzero if active
  3895. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  3896. SeeAlso: AH=51h
  3897. --------J-105000-----------------------------
  3898. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  3899.     AX = 5000h
  3900.     BX = country code
  3901.         0001h USA (English), 0051h Japan
  3902. Return: AL = status
  3903.         00h successful
  3904.         01h bad country code
  3905.         02h other error
  3906. SeeAlso: AX=5001h,INT 16/AX=5000h
  3907. --------J-105001-----------------------------
  3908. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  3909.     AX = 5001h
  3910. Return: AL = status
  3911.         00h successful
  3912.         BX = country code
  3913.         02h error
  3914. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  3915. --------V-105049-----------------------------
  3916. INT 10 - VIDEO - SCREENR v1.55+ - API
  3917.     AX = 5049h ('PI')
  3918.     BX = function
  3919.         0000h installation check
  3920.         0001h lock mode
  3921.         0002h unlock mode
  3922.         0003h lock palette
  3923.         0004h unlock palette
  3924. Return: AX = 0000h if installed
  3925.         BX = TSR version (BH=major,BL=minor)
  3926.         CL = mode locking status
  3927.         00h mode not locked
  3928.         01h mode locked: INT 10/AH=00h disabled
  3929.         CH = palette locking status
  3930.         00h palette not locked
  3931.         01h palette locked, the following functions are disabled:
  3932.             AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  3933. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  3934.       utility.
  3935. Index:    installation check;SCREENR
  3936. --------U-1051-------------------------------
  3937. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  3938.     AH = 51h
  3939.     AL = state
  3940.         00h disable
  3941.         nonzero enable
  3942. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  3943. SeeAlso: AH=50h"SCROLOCK"
  3944. --------J-105100-----------------------------
  3945. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  3946.     AX = 5100h
  3947.     BH = character width in bits (10h)
  3948.     BL = character height (10h)
  3949.     DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  3950.     ES:BP -> character bitmap
  3951. Return: AL = status (00h successful, 01h failed)
  3952. SeeAlso: AX=5101h,INT 1F
  3953. --------J-105101-----------------------------
  3954. INT 10 - VIDEO - AX PC - READ CHARACTER
  3955.     AX = 5101h
  3956.     BH = character width in bits
  3957.     BL = character height
  3958.     DX = character code (DH = 00h if 8-bit character)
  3959.     ES:BP -> buffer for character bitmap
  3960. Return: AL = status (00h successful, 01h failed)
  3961. SeeAlso: AH=09h,AX=5100h
  3962. --------J-105200-----------------------------
  3963. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  3964.     AX = 5200h
  3965.     BX = segment of buffer
  3966. SeeAlso: AX=5201h
  3967. --------J-105201-----------------------------
  3968. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  3969.     AX = 5201h
  3970. Return: BX = segment of buffer or 0000h if failed
  3971. SeeAlso: AX=8300h,AH=FEh
  3972. ----------1053-------------------------------
  3973. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  3974.     AH = 53h
  3975.     DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  3976.         .PR2)
  3977. Return: ???
  3978. SeeAlso: AH=55h
  3979. ----------1055-------------------------------
  3980. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  3981.     AH = 55h
  3982. Return: FXSHOW.EXE removed from memory
  3983. SeeAlso: AH=53h
  3984. --------V-105555-----------------------------
  3985. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  3986.     AX = 5555h
  3987. Return: AX = AAAAh    if installed
  3988.     BX:CX -> ??? routine in SMS.COM resident portion
  3989.           -> data area in VCONFIG
  3990. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  3991.       ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  3992. SeeAlso: INT 10/AH=00h,INT 2F/AX=6400h
  3993. Index:    screen saver;ATI Wonder SMS.COM
  3994.  
  3995. Format of data area:
  3996. Offset    Size    Description
  3997.  00h    DWORD    original INT 09 vector
  3998.  04h    DWORD    original INT 10 vector
  3999.  08h    DWORD    original INT 1C vector
  4000.  0Ch    WORD    screen saver state, 0=off, 1=on
  4001.  0Eh    WORD    blanking interval in clock ticks
  4002. --------V-105F00-----------------------------
  4003. INT 10 - Chips & Technologies Extended BIOS - RETURN 82C45X CHIP INFORMATION
  4004.     AX = 5F00h
  4005. Return: AL = 5Fh function supported
  4006.         BL = chip type (see below)
  4007.         BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
  4008.         CX = miscellaneous information (see below)
  4009. SeeAlso: AX=5F01h
  4010.  
  4011. Bitfields for chip type:
  4012.  bits 7-4 chip type
  4013.     0000: 82c451
  4014.     0001: 82c452
  4015.     0010: 82c455
  4016.     0011: 82c453
  4017.     0101: 82c456
  4018.     0110: 82c457
  4019.     0111: F65520
  4020.     1000: F65530
  4021.  bits 3-0 revision number
  4022.  
  4023. Bitfields for miscellaneous information:
  4024.  bit 0    DAC size (0=6-bit, 1=8-bit)
  4025.  bit 1    system type (0=PC/AT, 1=PS/2)
  4026.  bit 2    extended text modes supported by BIOS
  4027.  bit 3    reserved
  4028.  bit 4    extended graphics modes supported by BIOS
  4029.  bit 5    reserved
  4030.  bit 6    BIOS supports graphics cursor
  4031.  bit 7    BIOS supports anti-aliased font
  4032.  bit 8    BIOS supports pre-programmed emulation
  4033.  bit 9    BIOS supports auto emulation
  4034.  bit 10    BIOS supports variable mode set at cold boot
  4035.  bit 11    BIOS supports variable mode set on warm boot
  4036.  bit 12    BIOS supports emulation mode set at cold boot
  4037.  bit 13    BIOS supports emulation mode set on warm boot
  4038.  bits 14-15 reserved
  4039. --------V-105F00-----------------------------
  4040. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  4041.     AX = 5F00h
  4042. Return: AH = 00h, if successful
  4043.     AL = chip version (the same value that VTEST.EXE reads)
  4044.         00h RTG3103???
  4045.         01h RTG31030/RTG3105
  4046.         02h RTG3106???
  4047.         3Fh non-Realtek chip
  4048. BUG:    in v3.C10, AX=5F00h on return due to improper stack restoration code
  4049. SeeAlso: AX=5F01h"RTVGA"
  4050. --------V-105F01-----------------------------
  4051. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  4052.     AX = 5F01h
  4053.     BL = emulation type (see below)
  4054. Return: AL = 5Fh if function supported
  4055.         AH = status
  4056.         00h unsuccessful
  4057.         01h successful
  4058. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  4059.  
  4060. Values for emulation type:
  4061.  00h,01h reserved
  4062.  02h    CGA
  4063.  03h    MDA
  4064.  04h    Hercules
  4065.  05h    EGA
  4066.  06h    VGA
  4067. --------V-105F01-----------------------------
  4068. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  4069.     AX = 5F01h
  4070.     ES:DI -> zero-filled buffer for BIOS ID string
  4071. Return: AH = 00h if successful
  4072.     ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  4073. BUG:    in v3.C10, AX=5F01h on return due to improper stack restoration code
  4074. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  4075. --------V-105F02-----------------------------
  4076. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  4077.     AX = 5F02h
  4078.     BL = new state of autmatic emulation (00h enabled, 01h disabled)
  4079. Return: AL = 5Fh if function supported
  4080.         AH = status
  4081.         00h unsuccessful
  4082.         01h successful
  4083. SeeAlso: AX=5F01h,AX=5F03h
  4084. --------V-105F02-----------------------------
  4085. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  4086.     AX = 5F02h
  4087. Return: AH = 00h, if successful
  4088.     AL = on-board memory size
  4089.          (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  4090. BUG:    in v3.C10, AX=5F02h on return due to improper stack restoration code
  4091. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  4092. --------V-105F03-----------------------------
  4093. INT 10 - VIDEO - Realtek RTVGA - SET ???
  4094.     AX = 5F03h
  4095.     BL = 0-3 (???)
  4096. Return: AH = 00h if successful
  4097. BUG:    in v3.C10, AX=5F03h on return due to improper stack restoration code
  4098. SeeAlso: AX=5F02h"RTVGA"
  4099. --------V-105F03-----------------------------
  4100. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON VIDEO CONDITIONS
  4101.     AX = 5F03h
  4102.     BL = configuration
  4103.         00h power-up display mode
  4104.         CL = display mode
  4105.         CH = mode
  4106.             bits 1-0 scanlines
  4107.             00: 200
  4108.             01: 350
  4109.             10: 400
  4110.             bit 7 persistence (0 reset on next boot, 1 until changed)
  4111.         01h power-up emulation mode
  4112.         CL = emulation mode (see AX=5F01h"Chips")
  4113.         CH = permanence (00h reset after next boot, 01h until changed)
  4114. Return: AL = 5Fh if function supported
  4115.         AH = status
  4116.         00h unsuccessful
  4117.         01h successful
  4118. SeeAlso: AX=5F02h,AX=5F03h/BL=01h,AX=5F90h
  4119. --------V-105F03BL01-------------------------
  4120. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  4121.     AX = 5F03h
  4122.     BL = 01h
  4123.     CL = emulation mode
  4124.     CH = mode
  4125.         bit 7 persistence (0 reset on next boot, 1 until changed)
  4126. Return: AL = 5Fh if function supported
  4127.         AH = status
  4128.         00h unsuccessful
  4129.         01h successful
  4130. SeeAlso: AX=5F02h,AX=5F03h/BL=00h,AX=5F90h
  4131. --------V-105F-------------------------------
  4132. INT 10 - Chips & Technologies Extended BIOS - SAVE/RESTORE SUPERVGA STATE
  4133.     AH = 5Fh
  4134.     AL = subfunction
  4135.         90h determine size of save buffer
  4136.         91h save state
  4137.         92h restore state
  4138.     CX = state mask (see below)
  4139.     ES:BX -> save buffer (subfunctions 91h,92h only)
  4140. Return: AL = 5Fh if function supported
  4141.         ---subfunction 90h---
  4142.         BX = number of 64-byte blocks required
  4143.         ---subfunction 92h---
  4144.         buffer at ES:BX filled
  4145. SeeAlso: AH=1Ch,AX=5F03h
  4146.  
  4147. Bitfields for state mask:
  4148.  bit 0    video hardware
  4149.  bit 1    BIOS data state
  4150.  bit 2    DAC state
  4151.  bit 15 type (0 all state info, 1 SuperVGA state only)
  4152. --------V-1060------------------------------------
  4153. INT 10 - HUNTER 16 - SET GRAPHICS FONT
  4154.     AH = 60h
  4155.     AL = new font
  4156.         bit 7    output characters in reverse video
  4157.         bits 0-6 font number (see AH=77h)
  4158. Return: BH = cell width            
  4159.     BL = cell height
  4160. Desc:    select the font to use for output in mode 6; this can be used to mix
  4161.       fonts on the screen
  4162. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  4163.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  4164. SeeAlso: AH=04h"HUNTER",AH=73h"HUNTER",AH=77h"HUNTER"
  4165. --------V-1061------------------------------------
  4166. INT 10 - HUNTER 16 - MOVE CURSOR TO GRAPHICS CO-ORDINATES
  4167.     AH = 61h
  4168.     CX = column
  4169.     DX = row
  4170. Note:    this function is only valid in graphics modes
  4171. SeeAlso: AH=62h
  4172. --------V-1062------------------------------------
  4173. INT 10 - HUNTER 16 - GET CURSOR POSITION IN GRAPHICS CO-ORDINATES
  4174.     AH = 62h
  4175. Return: CX = column
  4176.     DX = row
  4177. Note:    this function is only valid in graphics modes
  4178. SeeAlso: AH=61h
  4179. --------V-1063------------------------------------
  4180. INT 10 - HUNTER 16 - SET CONTRAST
  4181.     AH = 63h
  4182.     AL = contrast (0..127)
  4183. Desc:    set the LCD screen contrast to improve visibility
  4184. SeeAlso: AH=64h,AH=75h
  4185. --------V-1064------------------------------------
  4186. INT 10 - HUNTER 16 - SET BACKLIGHT LEVEL
  4187.     AH = 64h
  4188.     AL = level (0..15)
  4189. Desc:    set the LCD backlight level to improve visibility in bad lighting
  4190. SeeAlso: AH=63h,AH=65h,AH=74h,AH=78h"HUNTER",INT 15/AH=74h
  4191. --------V-106500----------------------------------
  4192. INT 10 - HUNTER 16 - GET BACKLIGHT TIMEOUT
  4193.     AX = 6500h
  4194. Return: BX = timeout in seconds (0-300)
  4195. Desc:    returns the time after which the backlight will turn off
  4196. SeeAlso: AH=63h,AH=64h,AX=6501h,INT 15/AH=74h
  4197. --------V-106501----------------------------------
  4198. INT 10 - HUNTER 16 - SET BACKLIGHT TIMEOUT
  4199.     AX = 6501h
  4200.     BX = timeout in seconds (0-300)
  4201. Desc:    set the idle time after which the backlight will turn off
  4202. SeeAlso: AH=64h,AX=6500h
  4203. --------V-1066------------------------------------
  4204. INT 10 - HUNTER 16 - SPLIT DISPLAY
  4205.     AH = 66h
  4206.     AL = control bits
  4207.         bits 0-1  01: no split, 10: allow split
  4208.         bit 2  allow scrolling the upper part
  4209.         bit 3  allow scrolling the lower part 
  4210.     BH = top row of lower section of LCD (0..7)
  4211.     BL = top row of lower section of the virtual screen (0..24)
  4212. Desc:    split the LCD screen horizontally into two parts; each part may be 
  4213.       individually scrollable or fixed.
  4214. Note:    the Hunter 16 has a 240x64 LCD display which serves as a window into
  4215.       a 640x200 virtual screen
  4216. --------V-106A00BX0000-----------------------
  4217. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  4218.     AX = 6A00h
  4219.     BX = 0000h
  4220.     CX = 0000h
  4221.     DX = buffer length (may be 0)
  4222.     ES:DI -> buffer
  4223. Return: BX = number of bytes stored in buffer
  4224.     CX = bytes required for all descriptions (0 if no DGIS)
  4225. Note:    buffer contains descriptions and addresses of DGIS-compatible
  4226.       display(s) and printer(s)
  4227. SeeAlso: AX=6A02h
  4228. --------V-106A01CX0000-----------------------
  4229. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  4230.     AX = 6A01h
  4231.     CX = 0000h
  4232.     ES:DI = address of device to send INT 10 output to
  4233. Return: CX = 0000h  output could not be redirected
  4234.          else INT 10h output now routed to requested display
  4235. SeeAlso: AX=6A02h
  4236. --------V-106A02-----------------------------
  4237. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  4238.     AX = 6A02h
  4239.     ES:DI = 0000h:0000h
  4240. Return: ES:DI = 0000h:0000h  if current display is non-DGIS
  4241.         else address of the current DGIS INT 10 display
  4242. SeeAlso: AX=6A00h,AX=6A01h
  4243. --------V-106E00-----------------------------
  4244. INT 10 - Paradise VGA internal - GET ???
  4245.     AX = 6E00h
  4246. Return: BX = 5744h ('WD') if supported
  4247.         DH:AH:AL = last three ASCII digits of ROM serial number
  4248.         CL = ???
  4249.         CH = ???
  4250. SeeAlso: AX=6E04h,AX=6E05h
  4251. --------V-106E04-----------------------------
  4252. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  4253.     AX = 6E04h
  4254. Return: BX = screen width (columns)
  4255.     CX = screen height (lines)
  4256.     AH = ??? (05h or FFh)
  4257.     AL = ??? (04h or video mode)
  4258. SeeAlso: AX=6E00h,AX=6E05h
  4259. --------V-106E05-----------------------------
  4260. INT 10 - Paradise VGA internal - SET MODE
  4261.     AX = 6E05h
  4262.     BL = mode
  4263. Note:    like AH=00h, AL=BL.
  4264. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  4265. --------V-106F00BX0000-----------------------
  4266. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - INSTALLATION CHECK
  4267.     AX = 6F00h
  4268.     BX = 0000h
  4269. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  4270.     BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  4271. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  4272. --------V-106F01-----------------------------
  4273. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - GET MONITOR INFO
  4274.     AX = 6F01h
  4275. Return: AL = monitor type code (HP,VEGA VGA only) (see below)
  4276.     AH = status register information
  4277.          bit  0 = display enable
  4278.             0 = display enabled
  4279.             1 = vertical or horizontal retrace in progress
  4280.          bit  1 = light pen flip flop set
  4281.          bit  2 = light pen switch activated
  4282.          bit  3 = vertical sync
  4283.          bit  4 = monitor resolution
  4284.             0 = high resolution (>200 lines)
  4285.             1 = low resolution (<=200 lines)
  4286.          bit  5 = display type
  4287.             0 = color
  4288.             1 = monochrome
  4289.          bits6,7= diagnostic bits
  4290.     CL = current value of Extended Control register (HP Ext BIOS, and only
  4291.         if AL=41h)
  4292. Note:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  4293.  
  4294. Values for monitor type code (HP Extended BIOS):
  4295.  00h    non-HP card with ROM and possibly its own INT 10h driver
  4296.  41h    MultiMode video display adapter
  4297.  42h-44h reserved
  4298.  45h    industry standard monochrome display adapter
  4299.  46h    industry standard color display adapter
  4300.  51h    reserved
  4301. --------V-106F02-----------------------------
  4302. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - SET MONITOR INFO
  4303.     AX = 6F02h
  4304.     BL = new value for extended control register (see below)
  4305. Return: nothing
  4306. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  4307.       is installed
  4308.     the Extended Control register is at I/O address 3DDh
  4309. SeeAlso: AX=6F01h,AX=6F03h
  4310.  
  4311. Bitfields for extended control register:
  4312.  bit 0    screen resolution (0 = 200 lines, 1 = 400 lines)
  4313.  bit 1    underline enable (if set, 'blue' bit of fg color = underl)
  4314.  bit 2    font (0 = Standard-8, 1 = HP-Roman-8)
  4315.  bit 3    memory disabled for CPU access
  4316.  bit 4    allow access to full 32K memory instead of wrapping at 16K
  4317.  bit 5    select second 16K page instead of first
  4318.  bits 6,7 unused
  4319. --------V-106F03-----------------------------
  4320. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - MODIFY MONITOR INFO
  4321.     AX = 6F03h
  4322.     BH = exclude mask (set bits are not modified)
  4323.     BL = new values for bits indicated by BH (see AX=6F02h)
  4324. Return: nothing
  4325. Note:    this function is only valid when an HP MultiMode Video Display Adapter
  4326.       is installed
  4327. SeeAlso: AX=6F01h,AX=6F02h
  4328. --------V-106F04-----------------------------
  4329. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  4330.     AX = 6F04h
  4331. Return: AL = current video mode (see AX=6F05h)
  4332.     BX = horizontal columns (text) or pixels (graphics)
  4333.     CX = vertical columns (text) or pixels (graphics)
  4334. SeeAlso: AX=6F05h
  4335. --------V-106F05-----------------------------
  4336. INT 10 - VIDEO - Video7 VGA, VEGA EXTENDED EGA/VGA - SET VIDEO MODE
  4337.     AX = 6F05h
  4338.     BL = mode (see below)
  4339. Notes:    also supported by the HP Vectra Extended BIOS
  4340.     on the HP Vectra, this function rather than AH=00h must be used to
  4341.       return to an IBM-standard mode after setting an HP-specified mode
  4342.       from 08h to 0Fh.
  4343. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4344.  
  4345. Values for video mode:
  4346.       text/ text pixel     pixel    colors    disp    scrn  system
  4347.       grph resol  box    resoltn        page    addr
  4348.  00h-13h = standard IBM modes (see AH=00h)
  4349.  08h = T   80x27           mono             HP MultiMode Video
  4350.  09h = T   80x27                     HP MultiMode Video
  4351.  0Ah = T   40x27           mono             HP MultiMode Video
  4352.  0Bh = T   40x27                     HP MultiMode Video
  4353.  0Ch = Reserved                         HP MultiMode Video
  4354.  0Dh = G        640x400                 HP MultiMode Video
  4355.  0Eh = G        320x400                 HP MultiMode Video
  4356.  0Fh = G        320x400                 HP MultiMode Video
  4357.  40h = T   80x43  8x8                     Video7/VEGA VGA
  4358.  41h = T  132x25  8x14                     Video7/VEGA VGA
  4359.  42h = T  132x43  8x8                     Video7/VEGA VGA
  4360.  43h = T   80x60  8x8                     Video7/VEGA VGA
  4361.  44h = T  100x60  8x8                     Video7/VEGA VGA
  4362.  45h = T  132x28  8x8                     Video7/VEGA VGA
  4363.  60h = G        752x410      16             Video7 VGA, VEGA VGA
  4364.  61h = G        720x540      16             Video7 VGA, VEGA VGA
  4365.      = G        720x540      16             Northgate, Headland 1024i
  4366.  62h = G        800x600      16             Video7 VGA, VEGA Ext EGA
  4367.      = G        800x600      16             Headland 1024i
  4368.  63h = G           1024x768       2             Video7 VGA
  4369.  64h = G           1024x768       4             Video7 VGA
  4370.  65h = G           1024x768      16             Video7 VGA, VEGA Ext EGA
  4371.      = G           1024x768      16             Headland 1024i
  4372.  66h = G        640x400     256             Video7 VGA, VEGA Ext VGA
  4373.      = G        640x400     256             Northgate, Headland 1024i
  4374.  67h = G        640x480     256             Video7 VGA, VEGA Ext VGA
  4375.      = G        640x480     256             Headland 1024i
  4376.  68h = G        720x540     256             Video7 VGA, VEGA Ext VGA
  4377.      = G        720x540     256             Headland 1024i
  4378.  69h = G        800x600     256             Video7 VGA, VEGA Ext VGA
  4379.      = G        800x600     256             Headland 1024i
  4380.  70h = G        752x410      16gray         Video7 VGA, VEGA VGA
  4381.  71h = G        720x540      16gray         Video7 VGA, VEGA VGA
  4382.  72h = G        800x600      16gray         Video7 VGA
  4383.  73h = G           1024x768       2gray         Video7 VGA
  4384.  74h = G           1024x768       4gray         Video7 VGA
  4385.  75h = G           1024x768      16gray         Video7 VGA
  4386.  76h = G        640x400     256gray         Video7 VGA
  4387.  77h = G        640x480     256gray         Video7 VGA
  4388.  78h = G        720x540     256gray         Video7 VGA
  4389.  79h = G        800x600     256gray         (future)
  4390. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4391. Index:    video modes
  4392. --------V-106F06-----------------------------
  4393. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  4394.     AX = 6F06h
  4395.     BL = Autoswitch mode select
  4396.          00h select EGA/VGA-only modes
  4397.          01h select Autoswitched VGA/EGA/CGA/MGA modes
  4398.          02h select 'bootup' CGA/MGA modes
  4399.     BH = enable/disable (00h enable, 01h = disable selection)
  4400. --------V-106F07-----------------------------
  4401. INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  4402.     AX = 6F07h
  4403. Return: AL = 6Fh
  4404.     AH = bits 0-6 = number of 256K blocks of video memory
  4405.          bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
  4406.     BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  4407.     BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  4408.     CX = 0000h
  4409. SeeAlso: AH=12h/BL=10h
  4410. --------V-1070-------------------------------
  4411. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  4412.     AH = 70h
  4413. Return: AX:BX -> WORD containing green plane's offset
  4414.     AX:CX -> WORD containing green plane's segment
  4415.     AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  4416.             4000) planes
  4417. SeeAlso: AH=71h
  4418. --------V-1070------------------------------------
  4419. INT 10 - HUNTER 16 - DRAW ELLIPSE/CIRCLE
  4420.     AH = 70h
  4421.     DS:BX -> control block (see below)
  4422. Desc:    Draws a circle or ellipse. Only valid in graphics modes.
  4423. Note:    the Husky Hunter 16 is an 8088-based ruggedized laptop.     Other family
  4424.       members are the Husky Hunter, Husky Hunter 16/80, and Husky Hawk.
  4425. SeeAlso: AH=71h"HUNTER"
  4426.  
  4427. Format of control block:
  4428. Offset    Size    Description
  4429.  00h    WORD    center X co-ordinate
  4430.  02h    BYTE    center Y co-ordinate
  4431.  03h    WORD    radius in pixels
  4432.  05h    BYTE    color (00h white, 01h black, FFh invert)
  4433.  06h    BYTE    aspect ratio x:x (1-127)
  4434.  07h    BYTE    aspect ratio y:y (1-127)
  4435. --------V-107000BX0000-----------------------
  4436. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  4437.     AX = 7000h
  4438.     BX = 0000h
  4439. Return: AL = 70h if Trident-based Everex card
  4440.     CL = monitor type (see below)
  4441.     CH = feature bits (see below)
  4442.     DX = video board info
  4443.         bits 4-15: board ID model
  4444.         bits 0-3:  board ID revision
  4445.     DI = BCD BIOS version number
  4446. Note:    board models for Trident-based Everex cards:
  4447.         236h Ultragraphics II
  4448.         620h Vision VGA
  4449.         673h EVGA
  4450.         678h Viewpoint
  4451. SeeAlso: AX=5F01h,AH=FF"Oak"
  4452.  
  4453. Values for monitor type:
  4454.  00h    mono
  4455.  01h    CGA
  4456.  02h    EGA
  4457.  03h    digital multifrequency
  4458.  04h    IBM PS/2
  4459.  05h    IBM 8514
  4460.  06h    SuperVGA
  4461.  07h    analog multifrequency
  4462.  08h    super multifrequency
  4463.  
  4464. Bitfields for feature bits:
  4465.  bits 7,6  memory size
  4466.     00 = 256K
  4467.     01 = 512K
  4468.     10 = 1024K
  4469.     11 = 2048K
  4470.  bit 5    special oscillator present
  4471.  bit 4    VGA protect enabled
  4472.  bit 0    6845 emulation
  4473. --------V-107000BX0004-----------------------
  4474. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  4475.     AX = 7000h
  4476.     BX = 0004h
  4477. Return: ES:DI -> FAR paging function (call with DL = page to set)
  4478. Note:    the word preceding ES:DI is the length of the function in bytes, and
  4479.       the last byte of the function is a FAR return instruction.
  4480. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  4481. --------V-107000BX0005-----------------------
  4482. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  4483.     AX = 7000h
  4484.     BX = 0005h
  4485.     CL = maximum number of modes to get info for
  4486.     CH = mode type to get info for (see below)
  4487.     DL = monitor type to get info for
  4488.     ES:DI -> buffer for mode info (see below)
  4489. Return: CL = total number of modes fitting criteria
  4490.     CH = size of each info record
  4491. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  4492.  
  4493. Values for mode type:
  4494.  00h    all modes
  4495.  01h    monochrome text modes
  4496.  02h    color text modes
  4497.  03h    four-color CGA graphics modes
  4498.  04h    two-color CGA graphics modes
  4499.  05h    16-color graphics modes
  4500.  06h    256-color graphics modes
  4501.  
  4502. Format of mode information record:
  4503. Offset    Size    Description
  4504.  00h    BYTE    mode number (bit 7 set if extended mode)
  4505.  01h    BYTE    mode type (see above)
  4506.  02h    BYTE    info bits
  4507.         bits 7,6 reserved
  4508.              5     monochrome mode
  4509.              4     interlaced display
  4510.              3     requires special oscillator
  4511.              2,1 memory required
  4512.              00 = 256K
  4513.              01 = 512K
  4514.              10 = 1024K
  4515.              11 = 2048K
  4516.              0     reserved
  4517.  03h    BYTE    font height
  4518.  04h    BYTE    text columns on screen
  4519.  05h    BYTE    text rows on screen
  4520.  06h    WORD    number of scan lines
  4521.  08h    BYTE    color information
  4522.         bits 7-4 reserved
  4523.              3-0 bits per pixel
  4524. --------V-1071-------------------------------
  4525. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  4526.     AH = 71h
  4527. Return: AX:BX -> WORD containing segment address of INCRAM
  4528.     AX:CX -> WORD containing offset of INCRAM
  4529. SeeAlso: AH=70h"TANDY"
  4530. --------V-1071------------------------------------
  4531. INT 10 - HUNTER 16 - DRAW LINE/BOX
  4532.     AH = 71h
  4533.     DS:BX -> control block (see below)
  4534. Desc:    Draws a line or box. Only valid in graphics modes.
  4535. SeeAlso: AH=70h"HUNTER"
  4536.  
  4537. Format of control block:
  4538. Offset    Size    Description
  4539.  00h    WORD    left edge X co-ordinate
  4540.  02h    BYTE    lower edge Y co-ordinate
  4541.  03h    WORD    right edge X co-ordinate
  4542.  05h    BYTE    upper edge Y co-ordinate
  4543.  06h    BYTE    color (00h white, 01h black, FFh invert)
  4544.  07h    BYTE    type (00h line, 01h box)
  4545.  08h    BYTE    if non-zero (and type is BOX) fill with color
  4546. --------V-1072-------------------------------
  4547. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  4548.     AH = 72h
  4549.     AL = number of columns to shift scroll area, 00h to clear entire area
  4550.     BH = new attributes for blanked columns at left
  4551.     CH,CL = row, column of upper left corner of scroll area
  4552.     DH,DL = row, column of lower right corner of scroll area
  4553. SeeAlso: AH=06h,AH=07h,AH=73h"TANDY",INT 15/AH=12h/BH=05h
  4554. --------V-1072------------------------------------
  4555. INT 10 - HUNTER 16 - SELECT TEXT-MODE INVERSE VIDEO MECHANISM
  4556.     AH = 72h
  4557.     AL = mechanism to use
  4558.         00h do not use inverse video
  4559.         01h emulate MDA. Display attribute 07h is normal video and 70h is
  4560.         inverse video.
  4561.         02h use inverse video if background is non-black.
  4562.         03h use inverse video for high intensity text.
  4563.         04h use inverse video for text with background intensity greater
  4564.         than foreground intensity.
  4565.         05h use inverse video for text with background color other than
  4566.         black or high intensity foreground.
  4567. SeeAlso: AH=70h"HUNTER",AH=71h"HUNTER"
  4568. --------V-1073-------------------------------
  4569. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  4570.     AH = 73h
  4571.     AL = number of columns to shift scroll area, 00h to clear entire area
  4572.     BH = new attributes for blanked columns at right
  4573.     CH,CL = row, column of upper left corner of scroll area
  4574.     DH,DL = row, column of lower right corner of scroll area
  4575. SeeAlso: AH=06h,AH=07h,AH=72h"TANDY",INT 15/AH=12h/BH=05h
  4576. --------V-1073------------------------------------
  4577. INT 10 - HUNTER 16 - SELECT TEXT FONT
  4578.     AH = 73h
  4579.     AL = new font
  4580.           00h  7x7 in a 8x8 cell
  4581.           01h  5x7 in a 6x8 cell
  4582.           06h  3x5 in a 4x6 cell
  4583. Retuen: BH = cell width
  4584.     BL = cell height
  4585. SeeAlso: AH=60h"HUNTER",AH=77h"HUNTER"
  4586. --------V-1074------------------------------------
  4587. INT 10 - HUNTER 16 - SET LCD WINDOWS POSITION
  4588.     AH = 74h
  4589.     DH = row (0..24)
  4590.     DL = column (0..79)
  4591. Desc:    set the position in the virtual screen being displayed in the LCD
  4592.       screen. If Split Screen (INT 10/AH=66h) is used, this call sets the
  4593.       position for the window which has the cursor.
  4594. SeeAlso: AH=66h"HUNTER",AH=75h,AH=76h
  4595. --------V-1075------------------------------------
  4596. INT 10 - HUNTER 16 - SET ZOOM
  4597.     AH = 75h
  4598.     AL = new Zoom state (00h off, nonzero on)
  4599. SeeAlso: AH=74h,AH=76h
  4600. --------V-1076------------------------------------
  4601. INT 10 - HUNTER 16 - LOOKING KEYS
  4602.     AH = 76h
  4603.     AL = Action
  4604.          00h home the window
  4605.          01h move up one line
  4606.          02h move down one line
  4607.          03h move left one character
  4608.          04h move right one character
  4609.          05h flip window to other side of virtual screen
  4610. Desc:    moves the displayed screen around the virtual screen
  4611. SeeAlso: AH=74h,AH=75h
  4612. --------V-1077------------------------------------
  4613. INT 10 - HUNTER 16 - GET GRAPHICS FONT
  4614.     AH = 77h
  4615. Return: AL = font number (see below)
  4616. SeeAlso: AH=60h"HUNTER",AH=73h"HUNTER"
  4617.  
  4618. Values for graphics font number:
  4619.  00h     7x7  in a  8x8     cell 
  4620.  01h     5x7  in a  6x8     cell
  4621.  02h     7x9  in a  8x10 cell
  4622.  03h    14x9  in a 16x10 cell
  4623.  04h     7x18 in a  8x20 cell
  4624.  05h    14x18 in a 16x20 cell
  4625.  06h     3x5  in a  4x6     cell
  4626. Note:    size is X * Y
  4627. --------V-1078------------------------------------
  4628. INT 10 - HUNTER 16 - TURN BACKLIGHT ON/OFF
  4629.     AH = 78h 
  4630.     AL = new state of backlight (00h on, 01h off)
  4631. SeeAlso: AH=64h,INT 15/AH=74h
  4632. --------V-107F00-----------------------------
  4633. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  4634.     AX = 7F00h
  4635. Return: AL <> 7Fh if not supported
  4636.     AL = 7Fh if supported
  4637.         AH = status
  4638.         00h successful
  4639.             ES:DI -> info structure (see below)
  4640.         01h failed
  4641. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  4642.       an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  4643.       Seiko Epson Corporation intended to provided a standardized interface
  4644.       to SuperVGA functionality not addressed by the VESA standard
  4645. SeeAlso: AX=4F00h
  4646.  
  4647. Format of info structure:
  4648. Offset    Size    Description
  4649.  00h    DWORD    pointer to VESA function dispatch table
  4650.  04h    DWORD    pointer to SOLLEX function dispatch table
  4651.  08h    DWORD    pointer to VESA SuperVGA info (see AX=4F00h)
  4652.  0Ch    DWORD    pointer to mode info structure table, consisting of
  4653.         alternating ResInfo (see below) and VESA mode information
  4654.         (see AX=4F01h) blocks, terminated with an FFFFh word
  4655.  10h    DWORD    pointer to font info structure table (see below)
  4656.  14h    WORD    high resolution crystal frequency in Hz (0000h = not present)
  4657.  16h    DWORD    pointer to ASCIZ ID string
  4658.  1Ah    DWORD    pointer to timeout reset table
  4659.         array of bytes, each a multiple of the minimum time increment
  4660.  1Eh    WORD    minimum time increment in timer ticks
  4661.  20h    BYTE    inverse options supported
  4662.         bit 0: inverse supported
  4663.         bits 1-7: reserved
  4664.  21h    BYTE    normal color value
  4665.  22h    BYTE    inverse color value
  4666.  23h    WORD    port to be accessed for normal/inverse settings
  4667.  25h    WORD    type of interface chip (currently undefined)
  4668.  27h    WORD    program operational mode
  4669.         bits 1-0: 00 no preference
  4670.               01 terse (minimum detail in program messages)
  4671.               10 verbose
  4672.               11 use menus if supported, verbose mode otherwise
  4673.         bits 7-2: reserved
  4674.  29h    WORD    SOLLEX specification version
  4675.  2Bh    WORD    version of VESA/SOLLEX implementation
  4676.  2Dh    DWORD    offset to relocatable portion of SOLLEX extensions (for CONFIG)
  4677.  2Eh    DWORD    offset to unused section of the extensions ROM
  4678.  31h 16 BYTEs    reserved
  4679. Note:    all DWORD pointers initially require segment fixups; if the segment
  4680.       is 0000h, it should be changed to the returned ES, otherwise it
  4681.       may be assumed to be correct
  4682.  
  4683. Format of ResInfo:
  4684. Offset    Size    Description
  4685.  00h    WORD    16-bit mode number
  4686.  02h    WORD    adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  4687.  04h    WORD    display info (see AX=7F01h/BL=01h)
  4688.  06h    DWORD    pointer to video parameter table
  4689.  0Ah    BYTE    replacement entry in master Video Parameter
  4690.  0Bh    BYTE    mode requested for mode set by BIOS
  4691.  0Ch    DWORD    pointer to LoadReg table
  4692.  10h    BYTE    index into table of clock values (see below)
  4693.  
  4694. Format of font info table [array] entry:
  4695. Offset    Size    Description
  4696.  00h    BYTE    required font height
  4697.  01h    BYTE    parameter to load text mode font
  4698.  02h    BYTE    parameter to load graphics mode font
  4699.  
  4700. Values for clock value index:
  4701.  00h    25 MHz
  4702.  01h    28 MHz
  4703.  02h    PCLK
  4704.  03h    31.5 MHz (VESA 640x480)
  4705.  04h    reserved
  4706.  05h    16 MHz (EGA)
  4707.  06h    PCLK
  4708.  07h    24 MHz (EGA)
  4709.  08h    25 MHz
  4710.  09h    28 MHz
  4711.  0Ah    36 MHz
  4712.  0Bh    45 MHz (for 1024x768)
  4713.  0Ch    80 MHz
  4714.  0Dh    40 MHz
  4715.  0Eh    65 MHz
  4716.  0Fh     1 MHz (for powerdown)
  4717. --------V-107F00BX4000-----------------------
  4718. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  4719.     AX = 7F00h
  4720.     BX = 4000h
  4721. Return: AX = 007Fh if supported
  4722.         DX:BX -> DAC set mode routine
  4723. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h
  4724. --------V-107F00BX4001-----------------------
  4725. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  4726.     AX = 7F00h
  4727.     BX = 4001h
  4728. Return: AX = 007Fh if supported
  4729.         CX = current linear address base (high word)
  4730. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  4731. --------V-107F00BX4002-----------------------
  4732. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  4733.     AX = 7F00h
  4734.     BX = 4002h
  4735.     CX = new linear address base (high word)
  4736. Return: AX = 007Fh if supported
  4737. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  4738. --------V-107F01BL00-------------------------
  4739. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  4740.     AX = 7F01h
  4741.     BL = 00h
  4742.     CX = adapter request
  4743.         bits 1-0: adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  4744.         bit 2:    reserved
  4745.         bits 4-3: change displays (00 none, 01 analog 10 digital 11 panel)
  4746.         bits 6-5: desired monitor sense (01 color, 10 mono, 11=8514)
  4747.         bit 7:    lock override
  4748.         bit 8:    alternate adapter mode
  4749.         bits 15-9: reserved
  4750. Return: AL = 7Fh if supported
  4751.         AH = status
  4752.         00h successful
  4753.         01h failed
  4754.     AL <> 7Fh if not supported
  4755. Note:    initializes video hardware to a particular standard
  4756. SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
  4757. --------V-107F01BL01-------------------------
  4758. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  4759.     AX = 7F01h
  4760.     BL = 01h
  4761. Return: AL <> 7Fh if not supported
  4762.     AL = 7Fh if supported
  4763.         AH = status
  4764.         00h successful
  4765.         01h failed
  4766.         BX = adapter type (see AX=7F01h/BL=00h)
  4767.         DX = display type (see below)
  4768. SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
  4769.  
  4770. Bitfields for display type:
  4771.  bits 1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)
  4772.  bit 2    multi-frequency analog monitor active
  4773.  bit 3    LCD panel active
  4774.  bit 4    plasma/electroluminescent panel active
  4775.  bit 5    PS/2-type monitor active
  4776.  bit 6    multi-frequency digital monitor active
  4777.  bit 7    Enhanced Color Display monitor active
  4778.  bit 8    alternate display active
  4779.  bits 15-9 reserved
  4780. --------V-107F01BL02-------------------------
  4781. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  4782.     AX = 7F01h
  4783.     BL = 02h
  4784.     CX = adapter request (see AX=7F01h/BL=00h)
  4785. Return: AL <> 7Fh if not supported
  4786.     AL = 7Fh if supported
  4787.         AH = status
  4788.         00h requested setting can successfully be made
  4789.         01h requested setting not available in this configuration
  4790. SeeAlso: AX=7F00h,AX=7F01h/BL=00h
  4791. --------V-107F02BL00-------------------------
  4792. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  4793.     AX = 7F02h
  4794.     BL = 00h
  4795.     CX = display output setting (see below)
  4796. Return: AL <> 7Fh if not supported
  4797.     AL = 7Fh if supported
  4798.         AH = status
  4799.         00h successful
  4800.         01h failed
  4801. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  4802.  
  4803. Bitfields for display output setting:
  4804.  bit 0    CRTC control in bits 2,1 valid
  4805.  bit 1    enable digital output
  4806.  bit 2    enable analog output
  4807.  bit 3    panel control in bits 5,4 valid
  4808.  bit 4    enable LCD output
  4809.  bit 5    enable plasma/EL output
  4810.  bit 6    inverse control in bit 7 valid
  4811.  bit 7    0=normal, 1=inverse
  4812.  bits 15-8 reserved
  4813. --------V-107F02BL01-------------------------
  4814. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  4815.     AX = 7F02h
  4816.     BL = 01h
  4817. Return: AL <> 7Fh if not supported
  4818.     AL = 7Fh if supported
  4819.         AH = status
  4820.         00h successful
  4821.             BX = display output setting (see AX=7F02h/BL=00h)
  4822.             CX = displays attached (see below)
  4823.         01h failed
  4824. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  4825.  
  4826. Bitfields for displays attached:
  4827.  bit 0    PS/2 display on analog output
  4828.  bit 1    multi-frequency monitor on analog output
  4829.  bit 2    LCD panel attached
  4830.  bit 3    plasma/electroluminescent panel attached
  4831.  bit 4    multi-frequency monitor on digital output
  4832.  bit 5    Enhanced Color Display attached to digital outpt
  4833.  bit 6    alternate display
  4834.  bits 15-7 reserved
  4835. --------V-107F03BL00-------------------------
  4836. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  4837.     AX = 7F03h
  4838.     BL = 00h
  4839.     CX = support type
  4840.         0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  4841.         0005h-0012h reserved for SOLLEX, 0013h Hercules,
  4842.         0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  4843. Return: AL <> 7Fh if not supported
  4844.     AL = 7Fh if supported
  4845.         AH = status
  4846.         00h successful
  4847.             CX = size of video support code
  4848.             DX = segment of physical video support (0000h if no ROM)
  4849.             ES = segment of active video support
  4850.             ES:DI -> information block (DI = 0000h if none available)
  4851.         01h failed
  4852. SeeAlso: AX=7F03h/BL=01h
  4853. --------V-107F03BL01-------------------------
  4854. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  4855.     AX = 7F03h
  4856.     BL = 01h
  4857.     CX = support request
  4858.     ES = segment of support code
  4859. Return: AL <> 7Fh if not supported
  4860.     AL = 7Fh if supported
  4861.         AH = status
  4862.         00h successful
  4863.         01h failed
  4864. Note:    initializes the indicated video support by calling ES:0003h; this
  4865.       function may be used to switch the active video support back to
  4866.       ROM after AX=7F03h/BL=02h
  4867. SeeAlso: AX=7F03h/BL=00h
  4868. --------V-107F03BL02-------------------------
  4869. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  4870.     AX = 7F03h
  4871.     BL = 02h
  4872.     CX = support request
  4873.     ES = destination segment
  4874. Return: AL <> 7Fh if not supported
  4875.     AL = 7Fh if supported
  4876.         AH = status
  4877.         00h successful
  4878.         01h failed
  4879. SeeAlso: AX=7F00h,AX=7F03h/BL=01h
  4880. --------V-107F04BL00-------------------------
  4881. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  4882.     AX = 7F04h
  4883.     BL = 00h
  4884.     CX = new power state
  4885. Return: AL <> 7Fh if not supported
  4886.     AL = 7Fh if supported
  4887.         AH = status
  4888.         00h successful
  4889.         01h failed
  4890. Note:    higher values progressively reduce the operations available on the
  4891.       video adapter while yielding increasing power savings
  4892. SeeAlso: AX=7F00h,AX=7F04h/BL=01h
  4893. --------V-107F04BL01-------------------------
  4894. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  4895.     AX = 7F04h
  4896.     BL = 01h
  4897. Return: AL <> 7Fh if not supported
  4898.     AL = 7Fh if supported
  4899.         AH = status
  4900.         00h successful
  4901.             CX = current power state
  4902.             DX = maximum state
  4903.         01h failed
  4904. SeeAlso: AX=7F00h,AX=7F04h/BL=00h
  4905. --------V-107F04BL02-------------------------
  4906. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  4907.     AX = 7F04h
  4908.     BL = 02h
  4909.     CX = timeout reset
  4910. Return: AL <> 7Fh if not supported
  4911.     AL = 7Fh if supported
  4912.         AH = status
  4913.         00h successful
  4914.         01h failed
  4915. SeeAlso: AX=7F00h,AX=7F04h/BL=03h
  4916. --------V-107F04BL03-------------------------
  4917. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  4918.     AX = 7F04h
  4919.     BL = 03h
  4920. Return: AL <> 7Fh if not supported
  4921.     AL = 7Fh if supported
  4922.         AH = status
  4923.         00h successful
  4924.             BX = time increment
  4925.             CX = current timeout reset
  4926.             DX = maximum timeout reset
  4927.             ES:DI -> timeout reset table (array of bytes)
  4928.         01h failed
  4929. Note:    the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  4930. SeeAlso: AX=7F00h,AX=7F04h/BL=02h
  4931. --------V-107F05-----------------------------
  4932. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  4933.     AX = 7F05h
  4934.     ES:DI -> register value table (see below)
  4935. Return: AL <> 7Fh if not supported
  4936.     AL = 7Fh if supported
  4937.         AH = status
  4938.         00h successful
  4939.         01h failed
  4940. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  4941.  
  4942. Format of register value table:
  4943. Offset    Size    Description
  4944.  00h    WORD    base I/O register (FFFFh = end of list)
  4945.  02h 2N BYTEs    pairs of values to be written to the base I/O register as an
  4946.         index value and the following register as a data byte
  4947.  2N+2    WORD    FFFFh (end of data list)
  4948.     ... (repeats until FFFFh base address)
  4949. --------V-107F06-----------------------------
  4950. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  4951.     AX = 7F06h
  4952.     BL = subfunction
  4953.         00h set multiple font state
  4954.         CX = new state (00h off, 01h on)
  4955.         01h get multiple font state
  4956.         Return: BL = current state (00h off, 01h on)
  4957. Return: AL <> 7Fh if not supported
  4958.     AL = 7Fh if supported
  4959.         AH = status
  4960.         00h successful
  4961.         01h failed
  4962. SeeAlso: AH=11h
  4963. --------V-107F07-----------------------------
  4964. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  4965.     AX = 7F07h
  4966.     BL = how much to fill
  4967.        00h regen size
  4968.        01h all video memory
  4969.     CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  4970. Return: AL <> 7Fh if not supported
  4971.     AL = 7Fh if supported
  4972.         AH = status
  4973.         00h successful
  4974.         01h failed
  4975. SeeAlso: AH=06h
  4976. --------A-1080-------------------------------
  4977. INT 10 - CU Writer v1.4 - GET OPTION
  4978.     AH = 80h
  4979.     AL = desired option
  4980. Return: ???
  4981. Program: CU Writer is a public-domain Thai-English word processor from
  4982.       Chulalongkorn University, Bangkok
  4983. SeeAlso: AH=81h"CU Writer"
  4984. --------Q-1080--DX4456-----------------------
  4985. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  4986.     AH = 80h
  4987.     DX = 4456h ('DV')
  4988.     ES:DI -> FAR subroutine to be called on ???
  4989. Return: DS = segment of DESQview data structure for video buffer
  4990. Note:    this function is probably meant for internal use only, due to the magic
  4991.       value required in DX
  4992.     the subroutine seems to be called when the DESQview menu is accessed;
  4993.       on entry, AL = 03h or 04h
  4994. --------A-1081-------------------------------
  4995. INT 10 - CU Writer v1.4 - SET OPTION
  4996.     AH = 81h
  4997.     ???
  4998. Return: ???
  4999. SeeAlso: AH=80h"CU Writer"
  5000. --------Q-1081--DX4456-----------------------
  5001. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  5002.     AH = 81h
  5003.     DX = 4456h ('DV')
  5004. Return: ES = segment of DESQview data structure for video buffer
  5005.         BYTE ES:[0] = current window number in DV 2.0x
  5006. Note:    this function is probably meant for internal use only, due to the magic
  5007.       value required in DX
  5008. SeeAlso: AH=82h"DESQview"
  5009. --------Q-1082--DX4456-----------------------
  5010. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  5011.     AH = 82h
  5012.     DX = 4456h ('DV')
  5013. Return: DS = segment in DESQview for data structure
  5014.          in DV 2.00,
  5015.           BYTE DS:[0] = window number
  5016.           WORD DS:[1] = segment of other data structure
  5017.           WORD DS:[3] = segment of window's object handle
  5018.     ES = segment of DESQview data structure for video buffer
  5019.     AL = current window number
  5020.     AH = ???
  5021.     BL = direct screen writes
  5022.         00h program does not do direct writes
  5023.         01h program does direct writes, so shadow buffer not usable
  5024.     BH = ???
  5025.     CL = current video mode
  5026.     CH = ???
  5027. Note:    this function is probably meant for internal use only, due to the magic
  5028.       value required in DX
  5029. SeeAlso: AH=81h"DESQview"
  5030. --------J-108200-----------------------------
  5031. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  5032.     AX = 8200h
  5033.     BL = new scroll mode or FFh to get current mode
  5034.         00h dynamic, 01h software
  5035. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  5036. SeeAlso: AH=06h,AH=07h
  5037. --------J-108300-----------------------------
  5038. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  5039.     AX = 8300h
  5040. Return: AX = offset of video RAM
  5041.     ES:BX -> virtual text RAM buffer
  5042. SeeAlso: AX=5201h
  5043. --------N-108B-------------------------------
  5044. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  5045.     AH = 8Bh
  5046. SeeAlso: AH=92h,AH=93h
  5047. --------N-1090-------------------------------
  5048. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  5049.     AH = 90h
  5050. Return: AL = current video mode (see AH=00h)
  5051. SeeAlso: AH=91h
  5052. --------N-1091-------------------------------
  5053. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  5054.     AH = 91h
  5055. Return: AL = video adapter type (see below)
  5056. Note:    types less than 80h do not imply that the current user is on the host
  5057. SeeAlso: AH=90h
  5058.  
  5059. Values for video adapter type:
  5060.  00h    monochrome
  5061.  01h    Hercules monochrome graphics
  5062.  02h    CGA
  5063.  03h    EGA
  5064.  04h    VGA
  5065.  80h    monochrome text terminal
  5066.  81h    Hercules graphics terminal
  5067.  82h    color graphics terminal
  5068. --------N-1092-------------------------------
  5069. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  5070.     AH = 92h
  5071. Note:    the terminal will be updated even when screen updates are inhibited if
  5072.       TTY output is used
  5073. SeeAlso: AH=8Bh
  5074. --------N-1093-------------------------------
  5075. INT 10 - Alloy MW386 - REDRAW SCREEN
  5076.     AH = 93h
  5077. SeeAlso: AH=8Bh,AH=FFh
  5078. --------A-10A0-------------------------------
  5079. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  5080.     AH = A0h
  5081.     ???
  5082. Return: ???
  5083. Program: CU Writer is a public-domain Thai-English word processor from
  5084.       Chulalongkorn University, Bangkok
  5085. SeeAlso: AH=80h"CU Writer",AH=B0h
  5086. --------A-10B0-------------------------------
  5087. INT 10 - CU Writer v1.4 - PUT PIXEL
  5088.     AH = B0h
  5089.     ???
  5090. Return: ???
  5091. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  5092. --------A-10B1-------------------------------
  5093. INT 10 - CU Writer v1.4 - MOVE TO
  5094.     AH = B1h
  5095.     ???
  5096. Return: ???
  5097. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  5098. --------A-10B2-------------------------------
  5099. INT 10 - CU Writer v1.4 - DRAW LINE TO
  5100.     AH = B2h
  5101.     ???
  5102. Return: ???
  5103. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  5104. --------A-10B3-------------------------------
  5105. INT 10 - CU Writer v1.4 - FLOOD FILL
  5106.     AH = B3h
  5107.     ???
  5108. Return: ???
  5109. SeeAlso: AH=B2h,AH=B5h
  5110. --------A-10B4-------------------------------
  5111. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  5112.     AH = B4h
  5113.     ???
  5114. Return: ???
  5115. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  5116. --------A-10B5-------------------------------
  5117. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  5118.     AH = B5h
  5119.     ???
  5120. Return: ???
  5121. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  5122. --------b-10BF00-----------------------------
  5123. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  5124.     AX = BF00h
  5125. Desc:    specify that the external monitor become the active monitor
  5126. Note:    all registers preserved and the internal monitor is blanked
  5127. SeeAlso: AX=BF01h
  5128. --------b-10BF01-----------------------------
  5129. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  5130.     AX = BF01h
  5131. Desc:    specify that the internal monitor become the active monitor
  5132. Note:    all registers preserved and the external monitor is blanked
  5133. SeeAlso: AX=BF00h
  5134. --------b-10BF02-----------------------------
  5135. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
  5136.     AX = BF02h
  5137.     BH = master mode
  5138.         04h CGA
  5139.         05h EGA
  5140.         07h MDA
  5141. SeeAlso: AX=BF03h
  5142. --------b-10BF03BX0000-----------------------
  5143. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  5144.     AX = BF03h
  5145.     BX = 0000h
  5146. Return: BH = active monitor
  5147.         00h = external
  5148.         01h = internal
  5149.     BL = master mode
  5150.         00h = switchable VDU not present
  5151.         04h = CGA
  5152.         05h = EGA
  5153.         07h = MDA
  5154.         08h = switchable LCD controller present
  5155.         09h = plasma VGA
  5156.     CH = 00h (reserved)
  5157.        = 31h if QVision VGA
  5158.     CL = switchable VDU mode supported
  5159.         bit    0    = CGA supported
  5160.         bits 1,2 = reserved (1)
  5161.         bit    3    = MDA supported
  5162.         bit 4    = BitBLT engine available
  5163.         bit 5    = 132-column support availble
  5164.         bit 6    = 640x480x256 mode available
  5165.         bit 7    = 8-bit DAC mode available
  5166.     DH = internal monitor type (see below)
  5167.     DL = external monitor type (see below)
  5168. SeeAlso: AH=1Ah,AX=BF00h,AX=BF01h,AX=BF02h
  5169.  
  5170. Values for monitor type:
  5171.  00h    none
  5172.  01h    dual-mode monitor
  5173.  02h    5153 RGB monitor (RGBI 16-color)
  5174.  03h    Compaq Color monitor
  5175.  04h    640x400 flat panel (Plasma CGA)
  5176.  05h    VGC monochrome
  5177.  06h    VGC color
  5178.  07h    8-level mono LCD VGA
  5179.  08h    16-level mono plasma VGA
  5180.  09h    4-level mono LCD CGA
  5181.  0Ah    16-level mono LCD VGA
  5182.  0Bh    active-matrix color VGA
  5183.  0Ch    active-matrix mono VGA
  5184. --------b-10BF04-----------------------------
  5185. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  5186.     AX = BF04h
  5187.     BH = new state of delay
  5188.         00h enabled
  5189.         01h disabled
  5190. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  5191.       version of the list will provide more definite information
  5192. SeeAlso: AX=BF05h
  5193. --------b-10BF05-----------------------------
  5194. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  5195.     AX = BF05h
  5196.     BH = new state of video
  5197.         00h off
  5198.         01h on
  5199. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  5200.       version of the list will provide more definite information
  5201. SeeAlso: AH=12h/BL=36h,AX=BF04h
  5202. --------b-10BF06-----------------------------
  5203. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  5204.     AX = BF06h
  5205.     CL = address to be read from gray scale table
  5206. Return: AL = bit 3-0 - Value read from gray scale table
  5207.     CL = address to be read from gray scale table
  5208. SeeAlso: AH=12h/BL=33h,AX=BF07h
  5209. --------b-10BF07-----------------------------
  5210. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  5211.     AX = BF07h
  5212.     CH = value to write to gray scale table
  5213.     CL = address to be written to gray scale table
  5214. SeeAlso: AX=BF06h,AX=BF08h
  5215. --------b-10BF08-----------------------------
  5216. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  5217.     AX = BF08h
  5218.     CH = bits 7-4 green weight
  5219.          bits 3-0 blue weight
  5220.     CL = bits 7-4 unused
  5221.          bits 3-0 red weight
  5222. SeeAlso: AH=12h/BH=33h,AX=BF07h
  5223. --------b-10BF09-----------------------------
  5224. INT 10 - VIDEO - Compaq LTE Lite - ENABLE ???
  5225.     AX = BF09h
  5226. Return: CF clear
  5227. Note:    sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  5228.       to 6Fh and index 83h to 04h
  5229. SeeAlso: AX=BF0Ah,AX=BF0Bh
  5230. --------b-10BF0A-----------------------------
  5231. INT 10 - VIDEO - Compaq LTE Lite - DISABLE ???
  5232.     AX = BF0Ah
  5233. Return: CF clear
  5234. Note:    clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  5235.       to 80h and index 83h to FBh
  5236. SeeAlso: AX=BF09h,AX=BF0Bh
  5237. --------b-10BF0B-----------------------------
  5238. INT 10 - VIDEO - Compaq LTE Lite - CHECK WHETHER ??? ENABLED
  5239.     AX = BF0Bh
  5240. Return: CF clear
  5241.     AX = state (0000h disabled, 0001h enabled)
  5242. SeeAlso: AX=BF09h,AX=BF0Ah
  5243. --------b-10BF0C-----------------------------
  5244. INT 10 - VIDEO - Compaq SystemPro XL - CLEAR ???
  5245.     AX = BF0Ch
  5246. Return: CF clear
  5247. SeeAlso: AX=BF0Dh,AX=BF0Eh
  5248. --------b-10BF0D-----------------------------
  5249. INT 10 - VIDEO - Compaq SystemPro XL - SET ???
  5250.     AX = BF0Dh
  5251. Return: CF clear
  5252. SeeAlso: AX=BF0Ch,AX=BF0Eh
  5253. --------b-10BF0E-----------------------------
  5254. INT 10 - VIDEO - Compaq SystemPro XL - CHECK WHETHER ??? SET
  5255.     AX = BF0Eh
  5256. Return: CF clear
  5257.     AL = ??? (00h clear [AX=BF0Ch called] or 01h set [AX=BF0Dh called])
  5258. SeeAlso: AX=BF0Ch,AX=BF0Dh
  5259. --------b-10BF0F-----------------------------
  5260. INT 10 - VIDEO - Compaq SystemPro XL, LTE Lite - ???
  5261.     AX = BF0Fh
  5262.     BX = ??? or FFFFh to get current value
  5263. Return: CF clear
  5264.     AX = ???
  5265. Note:    this function calls AX=BF10h if BX=FFFFh and an EISA System ROM is
  5266.       present
  5267. SeeAlso: AX=BF10h
  5268. --------b-10BF10-----------------------------
  5269. INT 10 - VIDEO - Compaq SystemPro XL, LTE Lite - GET ???
  5270.     AX = BF10h
  5271. Return: CF clear
  5272.     AX = ???
  5273. SeeAlso: AX=BF0Fh
  5274. --------b-10BF11-----------------------------
  5275. INT 10 - VIDEO - Compaq LTE Lite, ProSignia - GET ???
  5276.     AX = BF11h
  5277. Return: AL = BFh if supported
  5278.         CF clear
  5279.         ES:BX -> ASCII signature "COMPAQ"
  5280.         ES:DI -> ???
  5281. --------b-10BF12-----------------------------
  5282. INT 10 - VIDEO - Compaq LTE Lite, ProSignia - ???
  5283.     AX = BF12h
  5284.     BL = ???
  5285. Return: CF clear
  5286. Note:    this function is a NOP if the VGA subsystem is inactive or the current
  5287.       Display Combination Code is 10h or higher
  5288. --------V-10BFA0BXADAD-----------------------
  5289. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  5290.     AX = BFA0h
  5291.     BX = ADADh
  5292. Return: AX = BDBDh if newer ADAPT.COM installed
  5293.         BX = BCD version (BH = major, BL = minor)
  5294.         CL = ???
  5295.         CH = ???
  5296.         DL = ???
  5297.     AX = ADADh if older version of ADAPT.COM installed
  5298. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  5299.       optionally-resident utility for setting display colors and cursor
  5300.       size; when resident, it also includes a screen blanker
  5301. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  5302. Index:    screen saver;ADAPT
  5303. --------V-10BFA1-----------------------------
  5304. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  5305.     AX = BFA1h
  5306. Return: AX = BDBEh if supported
  5307.         CH = current value of ???
  5308.         DL = current value of ???
  5309. SeeAlso: AX=BFA0h,AX=BFA2h
  5310. --------V-10BFA2-----------------------------
  5311. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  5312.     AX = BFA2h
  5313.     CH = new value for ???
  5314.     DL = new value for ???
  5315. Return: AX = BDBEh if supported
  5316. SeeAlso: AX=BFA0h,AX=BFA1h
  5317. --------A-10C0-------------------------------
  5318. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  5319.     AH = C0h
  5320.     ???
  5321. Return: ???
  5322. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  5323. --------A-10C1-------------------------------
  5324. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  5325.     AH = C1h
  5326.     ???
  5327. Return: ???
  5328. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  5329. --------A-10C2-------------------------------
  5330. INT 10 - CU Writer v1.4 - REVERSE TEXT
  5331.     AH = C2h
  5332.     ???
  5333. Return: ???
  5334. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  5335. --------A-10C3-------------------------------
  5336. INT 10 - CU Writer v1.4 - TEXT BAR
  5337.     AH = C3h
  5338.     ???
  5339. Return: ???
  5340. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  5341. --------A-10C4-------------------------------
  5342. INT 10 - CU Writer v1.4 - TEXT MENU
  5343.     AH = C4h
  5344.     ???
  5345. Return: ???
  5346. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  5347. ----------10CB00-----------------------------
  5348. INT 10 - UNCHAIN - SAVE CURRENT VGA REGISTERS
  5349.     AX = CB00h
  5350. Note:    combined with AX=CB06h, this function permits the use of video mode
  5351.       13h together with the VGA's unchained mode
  5352. SeeAlso: AX=CB06h,AX=CBFFh
  5353. ----------10CB01-----------------------------
  5354. INT 10 - UNCHAIN - UPDATE PAGE 1 OFFSET
  5355.     AX = CB01h
  5356.     BX = offset of page 1
  5357. Desc:    inform UNCHAIN of the location of video page 1 in video memory; the
  5358.       default is 0000h
  5359. SeeAlso: AX=CB02h,AX=CB03h,AX=CB04h,AX=CBFFh
  5360. ----------10CB02-----------------------------
  5361. INT 10 - UNCHAIN - UPDATE PAGE 2 OFFSET
  5362.     AX = CB02h
  5363.     BX = offset of page 2
  5364. Desc:    inform UNCHAIN of the location of video page 2 in video memory; the
  5365.       default is 3E80h (16000, for 320x200)
  5366. SeeAlso: AX=CB00h,AX=CB01h,AX=CB03h,AX=CB04h
  5367. ----------10CB03-----------------------------
  5368. INT 10 - UNCHAIN - UPDATE PAGE 3 OFFSET
  5369.     AX = CB03h
  5370.     BX = offset of page 3
  5371. Desc:    inform UNCHAIN of the location of video page 3 in video memory; the
  5372.       default is 7D00h (32000, for 320x200)
  5373. SeeAlso: AX=CB01h,AX=CB02h,AX=CB04h
  5374. ----------10CB04-----------------------------
  5375. INT 10 - UNCHAIN - UPDATE PAGE 4 OFFSET
  5376.     AX = CB04h
  5377.     BX = offset of page 4
  5378. Desc:    inform UNCHAIN of the location of video page 4 in video memory; the
  5379.       default is BB80h (48000, for 320x200)
  5380. SeeAlso: AX=CB01h,AX=CB02h,AX=CB03h,AX=CB05h
  5381. ----------10CB05-----------------------------
  5382. INT 10 - UNCHAIN - SAVE PALETTE
  5383.     AX = CB05h
  5384. SeeAlso: AX=CB00h,AX=CB06h
  5385. ----------10CB06-----------------------------
  5386. INT 10 - UNCHAIN - RESTORE VGA REGISTERS
  5387.     AX = CB06h
  5388. SeeAlso: AX=CB00h,AX=CB05h,AX=CBFFh
  5389. ----------10CBFF-----------------------------
  5390. INT 10 - UNCHAIN - INSTALLATION CHECK
  5391.     AX = CBFFh
  5392. Return: AX = CCBBh if installed
  5393. Program: UNCHAIN is a TSR by Colin Buckley which permits use of Borland
  5394.       development tools with Mode X video in the absence of a second
  5395.       monitor
  5396. SeeAlso: AX=CB00h,AX=CB01h,AX=CB06h
  5397. --------V-10CC00SI0000-----------------------
  5398. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  5399.     AX = CC00h
  5400.     SI = 0000h (if checking version)
  5401. Return: CX = ABCDh
  5402.     AL = Ultravision extensions
  5403.         00h enabled
  5404.         FFh disabled
  5405.     AH = card designator
  5406.     BX:00F0h -> palette values (for compatibility with NEWFONT)
  5407.     DX = support for high resolution modes
  5408.         00h not active
  5409.         01h active
  5410.     SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  5411.        = unchanged for versions <1.2
  5412. SeeAlso: AX=CC01h,AX=CC02h
  5413. --------V-10CC01-----------------------------
  5414. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  5415.     AX = CC01h
  5416. Notes:    subsequent BIOS calls will be passed through to previous handler
  5417.     should be followed immediately by mode set to restore normal EGA/VGA
  5418.       state
  5419. SeeAlso: AX=CC02h
  5420. --------V-10CC02-----------------------------
  5421. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  5422.     AX = CC02h
  5423. Note:    should be followed immediately by mode set to restore previous
  5424.       UltraVision state
  5425. SeeAlso: AX=CC01h
  5426. --------V-10CD00-----------------------------
  5427. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  5428.     AX = CD00h
  5429.     CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  5430.     DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  5431. Notes:    if palette locking is in effect for the current mode, the new colors
  5432.       will be displayed immediately; otherwise, the system reverts to the
  5433.       default palette
  5434.     palette table 0 is reserved for the default palette and cannot be set
  5435.     UltraVision always sets the border color to black
  5436. SeeAlso: AX=CD01h,AX=CD02h
  5437. --------V-10CD01-----------------------------
  5438. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  5439.     AX = CD01h
  5440.     CL = palette locking value
  5441.         00h none
  5442.         01h text modes only (02h,03h)
  5443.         FFh all modes (all standard color text and graphics modes)
  5444. Notes:    intended for video modes with 16 or fewer colors
  5445. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  5446. --------V-10CD02-----------------------------
  5447. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  5448.     AX = CD02h
  5449. Return: CL = palette table number
  5450.     DS:DX -> 17-byte palette register list
  5451.     DS:SI -> current font names table (see below)
  5452. Note:    only the font names are valid on monochrome EGA systems
  5453. SeeAlso: AX=1009h,AX=CD00h
  5454.  
  5455. Format of palette register list:
  5456. Offset    Size    Description
  5457.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  5458.  10h    BYTE    border color
  5459.  
  5460. Format of current font names table (v2+):
  5461. Offset    Size    standard EGA    HiRes EGA    VGA
  5462.  00h  8 BYTEs    N/A        F19 font    F20 font
  5463.  08h  8 BYTEs    F14 font    F14 font    F14 font
  5464.  10h  8 BYTEs    N/A        F11 font    F10 font
  5465.  18h  8 BYTEs    F8 font        F8 font        F8 font
  5466.  
  5467. Format of current font names table (v1.x):
  5468. Offset    Size    HiRes EGA
  5469.  00h  8 BYTEs    F19/F14 font
  5470.  08h  8 BYTEs    F11/F8 font
  5471. --------V-10CD03-----------------------------
  5472. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  5473.     AX = CD03h
  5474. Return: CL = palette locking value
  5475.         00h none
  5476.         01h text modes only
  5477.         FFh all modes
  5478. SeeAlso: AX=CD01h
  5479. --------V-10CD04-----------------------------
  5480. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  5481.     AX = CD04h
  5482. Return: AL = mode number (see below)
  5483. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  5484.  
  5485. Values for video mode number:
  5486.  11h    80x25
  5487.  12h    80x43, 80x50
  5488.  13h    80x34, 80x36
  5489.  14h    80x60, 80x63
  5490.  19h    94x25
  5491.  1Ah    94x43, 94x50
  5492.  1Bh    94x36
  5493.  1Ch    94x63
  5494.  21h    108x25
  5495.  22h    108x43, 108x50
  5496.  23h    107x34, 108x36
  5497.  24h    108x60, 108x63
  5498.  31h    120x25
  5499.  32h    120x43, 120x50
  5500.  33h    132x25
  5501.  34h    132x44, 132x50
  5502.  39h    120x36
  5503.  3Ah    120x63
  5504.  3Bh    132x36
  5505.  3Ch    132x60
  5506. Index:    video modes
  5507. --------V-10CD05-----------------------------
  5508. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  5509.     AX = CD05h
  5510.     CL = type
  5511.         00h line cursor
  5512.         FFh box cursor
  5513. Note:    sets default cursor type for text-based programs
  5514. SeeAlso: AH=01h,AX=CD06h
  5515. --------V-10CD06-----------------------------
  5516. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  5517.     AX = CD06h
  5518. Return: CL = type
  5519.         00h line cursor
  5520.         FFh box cursor
  5521. SeeAlso: AH=03h,AX=CD05h
  5522. --------V-10CD07-----------------------------
  5523. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  5524.     AX = CD07h
  5525.     CL = hardware underline status
  5526.         00h off (color systems only)
  5527.         01h underline below characters
  5528.         02h strike through characters
  5529.     BL = foreground color for normal text (FFh = current)
  5530.     BH = foreground color for bright text (FFh = current)
  5531. Return: CL = hardware underline status
  5532.     BL = current foreground color for normal text
  5533.     BH = current foreground color for bright text
  5534. Notes:    when underline or strikeout is enabled in color text modes, the
  5535.       specified colors will be assigned temporarily to colors 01h and 09h,
  5536.       allowing affected text to match non-underlined text.    The color
  5537.       remapping uses values from the current onscreen palette regardless
  5538.       of the palette locking status (see AX=CD01h)
  5539.     specify the standard colors (BL=01h,BH=09h) to enable underline or
  5540.       strikeout without color remapping
  5541. SeeAlso: AX=CD08h
  5542. --------V-10CD08-----------------------------
  5543. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  5544.     AX = CD08h
  5545. Return: CL = hardware underline status (see AX=CD07h)
  5546.     BL = foreground color for normal text
  5547.     BH = foreground color for bright text
  5548. Note:    only CL is valid on monochrome EGA systems
  5549. SeeAlso: AX=CD07h
  5550. --------V-10CD10-----------------------------
  5551. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  5552.     AX = CD10h
  5553.     BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  5554.     CX = ABCDh load 9xN alternate font (v2+)
  5555.        else number of characters to load
  5556.         DX = character offset into font table
  5557.         DS:SI -> 8-byte ASCII font name
  5558.     ES:BP -> font definitions
  5559. Return: AX = FFFFh if invalid font parameters
  5560. Notes:    loads the designated characters into UltraVision's resident font area
  5561.     should be followed by a video mode set to reload character generator
  5562. SeeAlso: AX=1100h
  5563. --------V-10CD-------------------------------
  5564. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  5565.     AH = CDh
  5566.     AL = text mode number (see AX=CD04h)
  5567. Return: AX = CDCDh if invalid mode
  5568. SeeAlso: AX=CD04h
  5569. --------A-10D0-------------------------------
  5570. INT 10 - CU Writer v1.4 - LOAD PICTURE
  5571.     AH = D0h
  5572.     ???
  5573. Return: ???
  5574. SeeAlso: AH=B0h"CU Writer",AH=C4h
  5575. --------V-10D5-------------------------------
  5576. INT 10 - Netroom SCRNCLK - ???
  5577.     AH = D5h
  5578.     ???
  5579. Return: ???
  5580. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  5581. --------V-10DFA5-----------------------------
  5582. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  5583.     AX = DFA5h
  5584. Return: AX = BDBFh if supported
  5585.         ES:DI -> ??? data area
  5586.         BX = ES
  5587. SeeAlso: AX=BFA0h
  5588. --------V-10EF-------------------------------
  5589. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  5590.     AH = EFh
  5591. Return: DL = video adapter type
  5592.         00h original Hercules
  5593.         01h Hercules Plus
  5594.         02h Hercules InColor???
  5595.     DH = memory mode byte
  5596.         01h "half" mode
  5597.         03h "full" mode
  5598. Program: MSHERC.COM is a support program for the Microsoft Quick languages which
  5599.       makes their graphics libraries compatible with a Hercules card by
  5600.       adding video modes 08h and 88h, and supporting text in the new
  5601.       graphics modes.
  5602. Notes:    while in mode 08h or 88h, INT 10 supports the Hercules card much like
  5603.       a CGA.
  5604.     MSHERC performs an installation check by setting DL=FFh and testing
  5605.       whether it has been changed on return
  5606. Index:    installation check;MSHERC
  5607. --------V-10F0-------------------------------
  5608. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  5609.     AH = F0h
  5610.     BL = register number
  5611.     BH = 00h
  5612.     DX = group index
  5613.         Pointer/data chips
  5614.            00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  5615.            08h Sequencer (5 registers) 3C4h
  5616.            10h Graphics Controller (9 registers) 3CEh
  5617.            18h Attribute Controller (20 registers) 3C0h
  5618.         Single registers
  5619.            20h Miscellaneous Output register 3C2h
  5620.            28h Feature Control register (3BAh mono modes, 3DAh color modes)
  5621.            30h Graphics 1 Position register 3CCh
  5622.            38h Graphics 2 Position register 3CAh
  5623. Return: BL = data
  5624. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5625.       compatibility box, and others
  5626. SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
  5627. --------V-10F1-------------------------------
  5628. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  5629.     AH = F1h
  5630.     DX = group index (see AH=F0h)
  5631.         if single register:
  5632.         BL = value to write
  5633.         otherwise
  5634.         BL = register number
  5635.         BH = value to write
  5636. Return: BL = data
  5637. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5638.       compatibility box, and others
  5639. SeeAlso: AX=7F05h,AH=F0h,AH=F3h
  5640. --------V-10F2-------------------------------
  5641. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  5642.     AH = F2h
  5643.     CH = starting register number
  5644.     CL = Number of registers (>1)
  5645.     DX = group index
  5646.          00h CRTC (3B4h mono modes, 3D4h color modes)
  5647.          08h Sequencer 3C4h
  5648.          10h Graphics Controller 3CEh
  5649.          18h Attribute Controller 3C0h
  5650.     ES:BX -> buffer, CL bytes
  5651. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5652.       compatibility box, and others
  5653. SeeAlso: AH=F0h,AH=F3h
  5654. --------V-10F3-------------------------------
  5655. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  5656.     AH = F3h
  5657.     CH = starting register
  5658.     CL = number of registers (>1)
  5659.     DX = group index (see AH=F2h)
  5660.     ES:BX -> buffer, CL bytes
  5661. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5662.       compatibility box, and others
  5663. SeeAlso: AX=7F05h,AH=F1h,AH=F2h
  5664. --------V-10F4-------------------------------
  5665. INT 10 - EGA Register Interface Library - READ REGISTER SET
  5666.     AH = F4h
  5667.     CX = number of registers to read (>1)
  5668.     ES:BX -> table of records (see below)
  5669. Return: register values in table filled in
  5670. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5671.       compatibility box, and others
  5672. SeeAlso: AH=F0h,AH=F2h,AH=F5h
  5673.  
  5674. Format of entries in table of register records:
  5675. Offset    Size    Description
  5676.  00h    WORD    group index
  5677.         Pointer/data chips
  5678.            00h CRTC (3B4h mono modes, 3D4h color modes)
  5679.            08h Sequencer 3C4h
  5680.            10h Graphics Controller 3CEh
  5681.            18h Attribute Controller 3C0h
  5682.         Single registers
  5683.            20h Miscellaneous Output register 3C2h
  5684.            28h Feature Control register (3BAh mono modes, 3DAh color)
  5685.            30h Graphics 1 Position register 3CCh
  5686.            38h Graphics 2 Position register 3CAh
  5687.  02h    BYTE    register number (0 for single registers)
  5688.  03h    BYTE    register value
  5689. --------V-10F5-------------------------------
  5690. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  5691.     AH = F5h
  5692.     CX = number of registers to write (>1)
  5693.     ES:BX -> table of records (see AH=F4h)
  5694. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5695.       compatibility box, and others
  5696. SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
  5697. --------V-10F6-------------------------------
  5698. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  5699.     AH = F6h
  5700. Note:    provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  5701.       others
  5702. SeeAlso: AH=F7h
  5703. --------V-10F7-------------------------------
  5704. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  5705.     AH = F7h
  5706.     DX = port number
  5707.        Pointer/data chips
  5708.           00h CRTC (3B4h mono modes, 3D4h color modes)
  5709.           08h Sequencer 3C4h
  5710.           10h Graphics Controller 3CEh
  5711.           18h Attribute Controller 3C0h
  5712.        Single registers
  5713.           20h Miscellaneous Output register 3C2h
  5714.           28h Feature Control register (3BAh mono modes, 3DAh color modes)
  5715.           30h Graphics 1 Position register 3CCh
  5716.           38h Graphics 2 Position register 3CAh
  5717.     ES:BX -> table of one-byte entries, one byte to be written to each
  5718.          register
  5719. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5720.       compatibility box, and others
  5721. SeeAlso: AH=F6h
  5722. --------V-10FA--BX0000-----------------------
  5723. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  5724.     AH = FAh
  5725.     BX = 0000h
  5726. Return: BX = 0000h if RIL driver not present
  5727.     ES:BX -> EGA Register Interface version number, if present:
  5728.         byte 0 = major release number
  5729.         byte 1 = minor release number
  5730. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5731.       compatibility box, and others
  5732. SeeAlso: AH=F6h,INT 2F/AX=BC00h
  5733. --------K-10FA-------------------------------
  5734. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  5735.     AH = FAh
  5736. Return: AX = 00FAh if installed
  5737.         ES = segment of resident code
  5738. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  5739.       Steiner
  5740. Index:    screen saver;FASTBUFF
  5741. --------V-10FE-------------------------------
  5742. INT 10 - TopView - GET SHADOW BUFFER
  5743.     AH = FEh
  5744.     ES:DI -> assumed video buffer
  5745.         B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  5746.           or A000h:0000h EGA/VGA graphics (RSIS environments only)
  5747. Return: ES:DI -> actual video buffer for calling process
  5748. Desc:    Determine the address of the virtual screen to which the program
  5749.       should write instead of the actual video memory; this permits
  5750.       programs to be multitasked without interfering with each other's
  5751.       output, and allows memory managers to move the video memory to
  5752.       permit larger programs to be loaded.
  5753. Notes:    if no multitasker or RSIS-compliant environment is installed, ES:DI is
  5754.       returned unchanged; RSIS is the Relocated Screen Interface
  5755.       Specification
  5756.     for display pages other than 0, use AH=05h and AH=0Fh to determine
  5757.       whether a particular page exists
  5758.     TopView requires a call to AH=FFh to notify it that the screen has
  5759.       changed; DESQview will check for changes itself until the first call
  5760.       to AH=FFh
  5761. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  5762. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  5763. --------V-10FF-------------------------------
  5764. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  5765.     AH = FFh
  5766.     CX = number of consecutive changed characters
  5767.     ES:DI -> first changed character in shadow buffer
  5768. Notes:    avoid CX=0000h
  5769.     DESQview will discontinue the automatic screen updating initiated by
  5770.       AH=FEh after this call
  5771.     not supported (ignored) by DESQview/X 1.0x
  5772. SeeAlso: AH=93h,AH=FEh
  5773. --------E-10FF-------------------------------
  5774. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  5775.     AH = FFh
  5776.     AL = video mode (see below)
  5777. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  5778.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  5779. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  5780.  
  5781. Values for video mode number:
  5782.  00h    80x25 text
  5783.  01h    default text
  5784.  02h    CXxDX text
  5785.  03h    biggest text
  5786.  04h    320x200 graphics
  5787.  05h    default graphics
  5788.  06h    CXxDX graphics
  5789.  07h    biggest non-interlaced graphics
  5790.  08h    biggest graphics
  5791. Index:    video modes
  5792. --------V-10FF-------------------------------
  5793. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  5794.     AH = FFh
  5795.     AL = emulation
  5796.         43h ('C') CGA emulation
  5797.         45h ('E') EGA emulation
  5798.         4Dh ('M') Hercules emulation
  5799.         56h ('V') VGA emulation
  5800.     ES:DI -> signature string "Calamity"
  5801. Return: VGA switched to suggested mode
  5802. SeeAlso: AH=00h,AX=007Fh,AX=5F01h
  5803. --------R-10FF00-----------------------------
  5804. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  5805.     AX = FF00h
  5806. Return: BL = 00h not connected
  5807.        = 01h connected
  5808. SeeAlso: AX=FF01h,AX=FF02h
  5809. --------R-10FF01-----------------------------
  5810. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  5811.     AX = FF01h
  5812. SeeAlso: AX=FF00h,AX=FF02h
  5813. --------R-10FF02-----------------------------
  5814. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  5815.     AX = FF02h
  5816. Return: ES:DI -> ASCIZ phone number
  5817. SeeAlso: AX=FF00h,AX=FF01h
  5818. --------C-11---------------------------------
  5819. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  5820. Desc:    automatically generated by the CPU when the AC flag is set, the current
  5821.       privilege level is 3, and a misaligned memory access (WORD not on an
  5822.       even address or DWORD not on a multiple of 4) is made
  5823. Note:    not all V86 monitors allow the AC flag to be set, such as Turbo
  5824.       Debugger 386
  5825. --------B-11---------------------------------
  5826. INT 11 - BIOS - GET EQUIPMENT LIST
  5827. Return: (E)AX = BIOS equipment list word (see below)
  5828. Note:    since older BIOSes do not know of the existence of EAX, the high word
  5829.       of EAX should be cleared before this call if any of the high bits
  5830.       will be tested
  5831.  
  5832. Bitfields for BIOS equipment list:
  5833.  bit 0    floppy disk(s) installed (see bits 6-7)
  5834.  bit 1    80x87 coprocessor installed
  5835.  bits 2,3 number of 16K banks of RAM on motherboard (PC only)
  5836.     number of 64K banks of RAM on motherboard (XT only)
  5837.  bit 2    pointing device installed (PS)
  5838.  bit 3    unused (PS)
  5839.  bits 4-5 initial video mode
  5840.     00 EGA, VGA, or PGA
  5841.     01 40x25 color
  5842.     10 80x25 color
  5843.     11 80x25 monochrome
  5844.  bits 6-7 number of floppies installed less 1 (if bit 0 set)
  5845.  bit 8    DMA support installed (PCjr, Tandy 1400LT)
  5846.     DMA support *not* installed (Tandy 1000's)
  5847.  bits 9-11 number of serial ports installed
  5848.  bit 12    game port installed
  5849.  bit 13    serial printer attached (PCjr)
  5850.     internal modem installed (PC/Convertible)
  5851.  bits 14-15 number of parallel ports installed
  5852. ---Compaq, Dell, and many other 386/486 machines--
  5853.  bit 23: page tables set so that Weitek coprocessor addressable in real mode
  5854.  bit 24: Weitek math coprocessor present
  5855. ---Compaq Systempro---
  5856.  bit 25: internal DMA parallel port available
  5857.  bit 26: IRQ for internal DMA parallel port (if bit 25 set)
  5858.         0 = IRQ5
  5859.         1 = IRQ7
  5860.  bits 27,28: parallel port DMA channel
  5861.         00 DMA channel 0
  5862.         01 DMA channel 0 ???
  5863.         10 reserved
  5864.         11 DMA channel 3
  5865. SeeAlso: INT 12
  5866. --------d-11----SI6A6A-----------------------
  5867. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  5868.     SI = 6A6Ah
  5869.     AH = command (see below)
  5870.     AL = SCSI Addressing
  5871.         bits 2-0 SCSI Target LUN (logical unit number)
  5872.         bits 5-3 SCSI Target ID
  5873.         bits 7-6 Host Adapter
  5874. Return: CF clear if successful
  5875.         DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  5876.         AH = ??? for command 01h
  5877.     CF set on error
  5878.         AL = error code
  5879. SeeAlso: INT 21/AX=4402h"ASPI"
  5880.  
  5881. Values for SDLP command:
  5882.  00h    SDLP initialization
  5883.  01h    SDLP System Identify
  5884.  02h    simple read sectors
  5885.  03h    simple write sectors
  5886.  04h    simple verify sectors/seek to sector
  5887.  05h    get device size/type
  5888.  06h    ready unit
  5889.  07h    format unit
  5890.  08h    diagnostics
  5891.  09h    rewind
  5892.  0Ah    erase
  5893.  0Bh    write filemarks
  5894.  0Ch    space
  5895.  0Dh    prevent/allow media removal
  5896.  0Eh    load/unload media
  5897.  0Fh    reserved - returns good status
  5898.  10h    set block size
  5899.  11h    write setmark
  5900.  12h    set error level
  5901.  13h    get address of Request Sense Buffer
  5902.  14h    get SDLP error via Request Sense
  5903.  F0h    Vendor Unique Function (WD7000-FASST2 only)
  5904.  FDh    reset current SCSI HAC
  5905.  FEh    get/set current SCSI HAC
  5906.  FFh    execute SCSI command
  5907. --------V-110225BX6900-----------------------
  5908. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  5909.     AX = 0225h
  5910.     BX = 6900h
  5911. Return: BL = 23h
  5912.     ES:DI -> ASCIZ "BLNKIT"
  5913. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  5914.       Inc.
  5915. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h
  5916. Index:    screen saver;Blank-It
  5917. --------V-110225BX6901-----------------------
  5918. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  5919.     AX = 0225h
  5920.     BX = 6901h
  5921.     CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  5922.          largest value is 59 minutes (FBACh or 64428)
  5923. Return: CF clear if successful
  5924.         DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  5925.         AH = ???
  5926.     CF set on error
  5927.         AL = error code
  5928. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6904h
  5929. Index:    screen saver;Blank-It
  5930. --------V-110225BX6902-----------------------
  5931. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  5932.     AX = 0225h
  5933.     BX = 6902h
  5934. Return: CF clear if successful
  5935.     CF set on error
  5936.         AL = error code
  5937. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6903h
  5938. Index:    screen saver;Blank-It
  5939. --------V-110225BX6903-----------------------
  5940. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  5941.     AX = 0225h
  5942.     BX = 6903h
  5943. Return: CF clear if successful
  5944.     CF set on error
  5945.         AL = error code
  5946. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6902h
  5947. Index:    screen saver;Blank-It
  5948. --------V-110225BX6904-----------------------
  5949. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  5950.     AX = 0225h
  5951.     BX = 6904h
  5952. Return: CF clear if successful
  5953.         BX = timeout (see BX=6901h)
  5954.     CF set on error
  5955.         AL = error code
  5956. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6901h
  5957. Index:    screen saver;Blank-It
  5958. --------V-110225BX6905-----------------------
  5959. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  5960.     AX = 0225h
  5961.     BX = 6905h
  5962. Return: CF clear if successful
  5963.     CF set on error
  5964.         AL = error code
  5965. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6906h
  5966. Index:    screen saver;Blank-It
  5967. --------V-110225BX6906-----------------------
  5968. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  5969.     AX = 0225h
  5970.     BX = 6906h
  5971. Return: CF clear if successful
  5972.     CF set on error
  5973.         AL = error code
  5974. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  5975.       Inc.
  5976. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6905h
  5977. Index:    screen saver;Blank-It
  5978. --------V-110225BX6907-----------------------
  5979. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  5980.     AX = 0225h
  5981.     BX = 6907h
  5982. Return: CF clear if successful
  5983.     CF set on error
  5984.         AL = error code
  5985. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6908h
  5986. Index:    screen saver;Blank-It
  5987. --------V-110225BX6908-----------------------
  5988. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  5989.     AX = 0225h
  5990.     BX = 6908h
  5991. Return: CF clear if successful
  5992.     CF set on error
  5993.         AL = error code
  5994. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6907h
  5995. Index:    screen saver;Blank-It
  5996. --------V-110225BX6909-----------------------
  5997. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  5998.     AX = 0225h
  5999.     BX = 6909h
  6000.     CL = key scan code (see below)
  6001. Return: CF clear if successful
  6002.     CF set on error
  6003.         AL = error code
  6004. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  6005.       Inc.
  6006. SeeAlso: AX=0225h/BX=6900h
  6007. Index:    screen saver;Blank-It|hotkeys;Blank-It
  6008.  
  6009. Values for key scan code:
  6010.  00h    No hot key
  6011.  1Dh    Left CTRL
  6012.  2Ah    Left Shift
  6013.  36h    Right Shift
  6014.  57h    F11
  6015.  58h    F12
  6016. ----------1105D7-----------------------------
  6017. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  6018.     AX = 05D7h
  6019.     BX = product ID (0088h)
  6020. Note:    called by the BC++ IDE when an application calls
  6021.       INT 12/AX=05D7h/BX=05D7h
  6022. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  6023. Index:    installation check;Borland C++ IDE
  6024. --------F-1177-------------------------------
  6025. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  6026.     AH = 77h
  6027.     AL = subfunction
  6028.         01h request SFENGINE start
  6029.         Return: AX = 0001h
  6030.         02h check if SFENGINE started
  6031.         Return: AX = 0000h or 0001h
  6032.         03h request SFENGINE stop
  6033.         Return: AX = 0001h
  6034.         04h check if SFENGINE stopped
  6035.         Return: AX = 0000h or 0001h
  6036.         05h installation check
  6037.         Return: AX = 0001h
  6038.         06h uninstall???
  6039.         BX:DX -> return address for successful uninstall???
  6040.         Return: (at caller's address)
  6041.             AX = 0000h
  6042.         else
  6043.         Return: AX = FFFFh
  6044. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  6045.         followed by internal data area???
  6046. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  6047. Index:    installation check;RainbowFAX|installation check;SFENGINE
  6048. Index:    uninstall;RainbowFAX|uninstall;SFENGINE
  6049. --------F-1178-------------------------------
  6050. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6051.     AH = 78h
  6052.     AL = subfunction
  6053.         7801h set ???
  6054.         BX = new state for ???
  6055.             0000h ???
  6056.             else ???
  6057.         Return: AX = 0001h
  6058.         7802h set ???
  6059.         BX = ???
  6060.         CX = ???
  6061.         Return: AX = 0001h
  6062.         7803h set ???
  6063.         BX = new state for ???
  6064.             0000h ???
  6065.             else ???
  6066.         Return: AX = 0001h
  6067.         78XXh invalid subfunction
  6068.         Return: AX = FFFFh
  6069. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  6070. --------F-1179-------------------------------
  6071. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6072.     AH = 79h
  6073.     AL = subfunction
  6074.         01h set ??? flag
  6075.         Return: AX = previous state (0000h already set, 0001h clear)
  6076.         02h clear ??? flag (see subfunc 01h)
  6077.         Return: AX = 0001h
  6078.         03h set ??? flag (different from subfn 02h or 04h)
  6079.         Return: AX = 0001h
  6080.         04h clear ??? flag (different from subfn 02h or 03h)
  6081.         Return: AX = 0001h
  6082.         else
  6083.         Return: AX = FFFFh
  6084. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  6085. --------F-117A-------------------------------
  6086. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6087.     AH = 7Ah
  6088.     AL = subfunction
  6089.         01h set ??? flag
  6090.         Return: AX = previous state (0000h already set, 0001h clear)
  6091.         02h clear ??? flag
  6092.         Return: AX = 0001h
  6093.         03h set ??? flag (different from subfn 02h)
  6094.         Return: AX = 0001h
  6095.         else
  6096.         Return: AX = FFFFh
  6097. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  6098. --------F-117C-------------------------------
  6099. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  6100.     AH = 7Ch
  6101.     AL = subfunction
  6102.         01h set ??? flag (see also subfn 02h)
  6103.         Return: AX = 0001h
  6104.         02h clear ??? flag (see also subfn 01h)
  6105.         Return: AX = 0001h
  6106.         else
  6107.         Return: AX = FFFFh
  6108. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah
  6109. --------S-11BC--DX1954-----------------------
  6110. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  6111.     AH = BCh
  6112.     DX = 1954h
  6113. Return: AX = 1954h
  6114.     ES:DX -> entry point of driver (instead of INT 14)
  6115. SeeAlso: INT 14/AH=04h"FOSSIL"
  6116. --------d-11FF--SI6A6A-----------------------
  6117. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  6118.     AH = FFh
  6119.     SI = 6A6Ah
  6120.     AL = SCSI Addressing
  6121.         bits 2-0 SCSI Target LUN (logical unit number)
  6122.         bits 5-3 SCSI Target ID
  6123.         bit 7    write flag, set for write operations, clear otherwise
  6124.     CX = bytes of data to be transmitted (max FFF0h)
  6125.     DH = 00h
  6126.     DL = length of SCSI Command Descriptor Block
  6127.     DS:DI -> SCSI Command Descriptor Block
  6128.     ES:BX -> data buffer
  6129. Return: CF set on error
  6130.         AL = error code
  6131.     CF clear if successful
  6132. Note:    because of busmaster operations with WD7000FASST avoid accessing
  6133.       video memory directly; check 386 memory manager for VDS support.
  6134.       The WD7000XTAT works with programmed IO and does not have this
  6135.       limitation.
  6136. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  6137. --------T-11FFFECXFFFE-----------------------
  6138. INT 11 - BACK&FORTH (before v1.62) API
  6139.     AX = FFFEh
  6140.     CX = FFFEh
  6141.     BX = function
  6142.         00h installation check
  6143.         Return: AX = 0001h BNFHIGH and BNFLOW both loaded
  6144.                = 0003h only BNFHIGH loaded
  6145.                else neither loaded
  6146.         01h ???
  6147.         Return: DX:AX -> ???
  6148.         02h ???
  6149.         03h ???
  6150.         04h ???
  6151.         05h ??? switches current PSP segment and stack if BNFLOW has not
  6152.             yet announced itself installed
  6153.         06h ???
  6154.         Return: AX = ???
  6155. SeeAlso: INT 12/AX=FFFEh
  6156. Index:    installation check;BACK&FORTH
  6157. --------B-12---------------------------------
  6158. INT 12 - BIOS - GET MEMORY SIZE
  6159. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6160. Note:    this call returns the contents of the word at 0040h:0013h; in PC and
  6161.       XT, this value is set from the switches on the motherboard
  6162. SeeAlso: INT 11,INT 2F/AX=4A06h
  6163. --------K-12----CX1806-----------------------
  6164. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  6165.     CX = 1806h
  6166. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6167.     CX = 1960h if installed
  6168. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  6169.       accented characters and box drawing on standard QWERTY keyboards; it
  6170.       also provides break-to-DOS and screen blanking capabilities
  6171. Index:    screen saver;KEYBUI
  6172. --------d-12----CX1807-----------------------
  6173. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  6174.     CX = 1807h
  6175. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  6176.     CX = 1961h if installed
  6177. Program: PARKER is an optionally-resident hard disk parking program by Johan
  6178.       Zwiekhorst
  6179. ----------1205D7BX05D7-----------------------
  6180. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  6181.     AX = 05D7h (1495d)
  6182.     BX = 05D7h
  6183. Note:    the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  6184. SeeAlso: INT 11/AX=05D7h/BX=0088h
  6185. --------T-12FFFECXFFFE-----------------------
  6186. INT 12 - Back&Forth v1.62+ - API
  6187.     AX = FFFEh
  6188.     CX = FFFEh
  6189.     BX = function
  6190.         00h installation check
  6191.         Return: AX = 0001h installed
  6192.                  else  not loaded
  6193.         02h build program ID list
  6194.         ES:DI -> buffer of at least 100 bytes, to be filled with words
  6195.         Return: AX = number of programs defined
  6196.             ES:DI buffer filled with AX words
  6197.         03h switch to specified task (task need not be open yet)
  6198.         DX = two-letter program ID
  6199.         Return: AX = 0000h if task undefined
  6200.         04h ???
  6201.         05h ???
  6202.         06h get version (undoc)
  6203.         Return: AX = version * 100 (v1.71 = 00ABh)
  6204.         07h ???
  6205.         08h get open tasks (undoc)
  6206.         ES:DI -> task info buffer (see below)
  6207.         Return: AX = number of open tasks (max 20)
  6208.         09h ???
  6209. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  6210. SeeAlso: INT 11/AX=FFFEh
  6211. Index:    installation check;BACK&FORTH
  6212.  
  6213. Format of task info buffer:
  6214. Offset    Size    Description
  6215.  00h 21 BYTEs    ASCIZ task name
  6216.  15h    BYTE    hotkey shift state (as for INT 16/AH=02h)
  6217.  16h    WORD    hotkey scan code
  6218.  18h    WORD    program ID
  6219. Index:    hotkeys;Back&Forth
  6220. --------B-1300-------------------------------
  6221. INT 13 - DISK - RESET DISK SYSTEM
  6222.     AH = 00h
  6223.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  6224. Return: AH = status (see AH=01h)
  6225.     CF clear if successful (returned AH=00h)
  6226.     CF set on error
  6227. Note:    forces controller to recalibrate drive heads (seek to track 0)
  6228. SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4E"TI Professional"
  6229. --------B-1301-------------------------------
  6230. INT 13 - DISK - GET STATUS OF LAST OPERATION
  6231.     AH = 01h
  6232.     DL = drive (bit 7 set for hard disk)
  6233. Return: CF clear if successful (returned status 00h)
  6234.     CF set on error
  6235.     AH = status of previous operation (see below)
  6236. Note:    some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  6237.       status in both AH and AL
  6238.  
  6239. Values for status:
  6240.  00h    successful completion
  6241.  01h    invalid function in AH or invalid parameter
  6242.  02h    address mark not found
  6243.  03h    disk write-protected
  6244.  04h    sector not found/read error
  6245.  05h    reset failed (hard disk)
  6246.  06h    disk changed (floppy)
  6247.  07h    drive parameter activity failed (hard disk)
  6248.  08h    DMA overrun
  6249.  09h    attempted DMA across 64K boundary
  6250.  0Ah    bad sector detected (hard disk)
  6251.  0Bh    bad track detected (hard disk)
  6252.  0Ch    unsupported track or invalid media
  6253.  0Dh    invalid number of sectors on format (hard disk)
  6254.  0Eh    control data address mark detected (hard disk)
  6255.  0Fh    DMA arbitration level out of range (hard disk)
  6256.  10h    uncorrectable CRC or ECC error on read
  6257.  11h    data ECC corrected (hard disk)
  6258.  20h    controller failure
  6259.  31h    no such drive (Compaq)
  6260.  32h    incorrect drive type stored in CMOS (Compaq)
  6261.  40h    seek failed
  6262.  80h    timeout (not ready)
  6263.  AAh    drive not ready (hard disk)
  6264.  BBh    undefined error (hard disk)
  6265.  CCh    write fault (hard disk)
  6266.  E0h    status register error (hard disk)
  6267.  FFh    sense operation failed (hard disk)
  6268. --------B-1302-------------------------------
  6269. INT 13 - DISK - READ SECTOR(S) INTO MEMORY
  6270.     AH = 02h
  6271.     AL = number of sectors to read (must be nonzero)
  6272.     CH = low eight bits of cylinder number
  6273.     CL = sector number 1-63 (bits 0-5)
  6274.          high two bits of cylinder (bits 6-7, hard disk only)
  6275.     DH = head number
  6276.     DL = drive number (bit 7 set for hard disk)
  6277.     ES:BX -> data buffer
  6278. Return: CF set on error
  6279.         if AH = 11h (corrected ECC error), AL = burst length
  6280.     CF clear if successful
  6281.     AH = status (see AH=01h)
  6282.     AL = number of sectors transferred
  6283. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6284.       enough; the read should be retried at least three times, resetting
  6285.       the disk with AH=00h between attempts
  6286.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6287.       DH (head number) since the WD-1003 controller which is the standard
  6288.       AT controller (and the controller that IDE emulates) only supports
  6289.       16 heads
  6290.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6291.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6292.       into bits 6 and 7 of DH
  6293. SeeAlso: AH=03h,AH=0Ah
  6294. --------B-1303-------------------------------
  6295. INT 13 - DISK - WRITE DISK SECTOR(S)
  6296.     AH = 03h
  6297.     AL = number of sectors to write (must be nonzero)
  6298.     CH = low eight bits of cylinder number
  6299.     CL = sector number 1-63 (bits 0-5)
  6300.          high two bits of cylinder (bits 6-7, hard disk only)
  6301.     DH = head number
  6302.     DL = drive number (bit 7 set for hard disk)
  6303.     ES:BX -> data buffer
  6304. Return: CF set on error
  6305.     CF clear if successful
  6306.     AH = status (see AH=01h)
  6307.     AL = number of sectors transferred
  6308. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6309.       enough; the write should be retried at least three times, resetting
  6310.       the disk with AH=00h between attempts
  6311.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6312.       DH (head number) since the WD-1003 controller which is the standard
  6313.       AT controller (and the controller that IDE emulates) only supports
  6314.       16 heads
  6315.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6316.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6317.       into bits 6 and 7 of DH
  6318. SeeAlso: AH=02h,AH=0Bh
  6319. --------B-1304-------------------------------
  6320. INT 13 - DISK - VERIFY DISK SECTOR(S)
  6321.     AH = 04h
  6322.     AL = number of sectors to verify (must be nonzero)
  6323.     CH = low eight bits of cylinder number
  6324.     CL = sector number 1-63 (bits 0-5)
  6325.          high two bits of cylinder (bits 6-7, hard disk only)
  6326.     DH = head number
  6327.     DL = drive number (bit 7 set for hard disk)
  6328.     ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
  6329. Return: CF set on error
  6330.     CF clear if successful
  6331.     AH = status (see AH=01h)
  6332.     AL = number of sectors verified
  6333. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  6334.       enough; the write should be retried at least three times, resetting
  6335.       the disk with AH=00h between attempts
  6336.     this function does not compare the disk with memory, it merely
  6337.       checks whether the sector's stored CRC matches the data's actual CRC
  6338.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6339.       DH (head number) since the WD-1003 controller which is the standard
  6340.       AT controller (and the controller that IDE emulates) only supports
  6341.       16 heads
  6342.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6343.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6344.       into bits 6 and 7 of DH
  6345. SeeAlso: AH=02h
  6346. --------B-1305-------------------------------
  6347. INT 13 - FLOPPY - FORMAT TRACK
  6348.     AH = 05h
  6349.     AL = number of sectors to format
  6350.     CH = track number
  6351.     DH = head number
  6352.     DL = drive number
  6353.     ES:BX -> address field buffer (see below)
  6354. Return: CF set on error
  6355.     CF clear if successful
  6356.     AH = status (see AH=01h)
  6357. Notes:    on AT or higher, call AH=17h first
  6358.     the number of sectors per track is read from the diskette parameter
  6359.       table pointed at by INT 1E
  6360. SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
  6361.  
  6362. Format of address field buffer entry (one per sector in track):
  6363. Offset    Size    Description
  6364.  00h    BYTE    track number
  6365.  01h    BYTE    head number (0-based)
  6366.  02h    BYTE    sector number
  6367.  03h    BYTE    sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
  6368. --------B-1305-------------------------------
  6369. INT 13 - FIXED DISK - FORMAT TRACK
  6370.     AH = 05h
  6371.     AL = interleave value (XT-type controllers only)
  6372.     ES:BX -> 512-byte format buffer
  6373.         the first 2*(sectors/track) bytes contain F,N for each sector
  6374.            F = 00h for good sector, 80h for bad sector
  6375.            N = sector number
  6376.     CH = cylinder number (bits 8,9 in high bits of CL)
  6377.     CL = high bits of cylinder number (bits 7,6)
  6378.     DH = head
  6379.     DL = drive
  6380. Return: AH = status code (see AH=01h)
  6381. Notes:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6382.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6383.       into bits 6 and 7 of DH
  6384.     for XT-type controllers on an AT or higher, AH=0Fh should be called
  6385.       first
  6386.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  6387.       DH (head number) since the WD-1003 controller which is the standard
  6388.       AT controller (and the controller that IDE emulates) only supports
  6389.       16 heads
  6390. SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
  6391. --------d-1305-------------------------------
  6392. INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
  6393.     AH = 05h
  6394.     DL = hard drive ID
  6395.     ES:BX -> mode select data (see below)
  6396. Return: CF set on error
  6397.     AH = status code (see AH=01h)
  6398. Notes:    this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  6399.       format a SCSI disk with the desired parameters
  6400.     the mode select data below is from the SCSI-1 specification
  6401.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6402.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6403. SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
  6404.  
  6405. Format of mode select data:
  6406. Offset    Size    Description
  6407.  00h    BYTE    number of bytes of remaining data (12 + vendor unique length)
  6408.  01h    BYTE    reserved (0)
  6409.  02h    BYTE    medium type (0 for hard disk)
  6410.  03h    BYTE    reserved (0)
  6411.  04h    BYTE    block descriptor length (8)
  6412.  05h    BYTE    density code (0 for hard disk)
  6413.  06h  3 BYTEs    (big-endian) number of blocks (000000h for entire disk)
  6414.  09h    BYTE    reserved (0)
  6415.  0Ah  3 BYTEs    (big-endian) block length (512 standard, or 256)
  6416.  0Dh    ???    vendor-specific parameter bytes (optional)
  6417. --------B-1306-------------------------------
  6418. INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
  6419.     AH = 06h
  6420.     AL = interleave value
  6421.     CH = cylinder number (bits 8,9 in high bits of CL)
  6422.     CL = sector number
  6423.     DH = head
  6424.     DL = drive
  6425. Return: AH = status code (see AH=01h)
  6426. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6427.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6428.       into bits 6 and 7 of DH
  6429. SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
  6430. --------d-1306-------------------------------
  6431. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
  6432.     AH = 06h
  6433.     AL = interleave
  6434.          (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
  6435.     DL = hard drive ID
  6436.     DH = bits 7-5 drive LUN
  6437.          bit 4    defect list is available
  6438.          bit 3    defect list is complete (erase drive's defect list)
  6439.          bits 2-0 defect table format
  6440.               (000=use defect table A, 100=use defect table B,
  6441.               101=use defect table C)
  6442.     ES:BX ->  defect table A, B or C (see below)
  6443. Return: CF set on error
  6444.     AH = status code (see AH=01h)
  6445. Notes:    block addresses must be in ascending order (for table B, cylinder is
  6446.       most significant, byte from index least significant; for table C,
  6447.       cylinder is most significant, sector number least significant)
  6448.     table B defect bytes from index of FFFFFFFFh indicates that the entire
  6449.       track shall be reassigned
  6450.     table C defect sector number of FFFFFFFFh indicates that the entire
  6451.       track shall be reassigned
  6452.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6453.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6454. SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
  6455.  
  6456. Format of defect table A:
  6457. Offset    Size    Description
  6458.  00h    WORD    number of bytes remaining in table
  6459.  02h    BYTE    reserved (0)
  6460.  03h    BYTE    reserved (0)
  6461.  04h    WORD    (big-endian) defect list length (4*number of defects)
  6462.  06h  4 DWORDs    (big-endian) defect block addresses
  6463.  
  6464. Format of defect table B:
  6465. Offset    Size    Description
  6466.  00h    WORD    number of bytes remaining in table
  6467.  02h    BYTE    reserved (0)
  6468.  03h    BYTE    reserved (0)
  6469.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6470.  06h 8N BYTEs    defect list [array] (see below)
  6471.  
  6472. Format of defect table C:
  6473. Offset    Size    Description
  6474.  00h    WORD    number of bytes remaining in table
  6475.  02h    BYTE    reserved (0)
  6476.  03h    BYTE    reserved (0)
  6477.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6478.  06h 8N BYTEs    defect list [array] (see below)
  6479.  
  6480. Format of defect list entry:
  6481. Offset    Size    Description
  6482.  00h  3 BYTEs    (big-endian) cylinder number of defect
  6483.  03h    BYTE    head number of defect
  6484.  04h    DWORD    (big-endian) defect bytes from index
  6485. --------d-1306-------------------------------
  6486. INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
  6487.     AH = 06h
  6488. Return: AH = status code (see AH=01h)
  6489.     CF clear if successful
  6490.         AL = first drive supported
  6491.         (80h nonconcurrent operation, 81h concurrent operation)
  6492.     CF set on error
  6493. Desc:    determine the number of the first supported SCSI drive
  6494. Note:    the return value is 80h when two SCSI drives are supported, 81h if
  6495.       only one SCSI drive is installed
  6496. SeeAlso: AH=08h
  6497. --------B-1307-------------------------------
  6498. INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
  6499.     AH = 07h
  6500.     AL = interleave value (XT only)
  6501.     ES:BX = 512-byte format buffer (see AH=05h)
  6502.     CH = cylinder number (bits 8,9 in high bits of CL)
  6503.     CL = sector number
  6504.     DH = head
  6505.     DL = drive
  6506. Return: AH = status code (see AH=01h)
  6507. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6508.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6509.       into bits 6 and 7 of DH
  6510. SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
  6511. --------d-1307-------------------------------
  6512. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
  6513.     AH = 07h
  6514.     AL = interleave (0 = default, 1 = consecutive sectors,
  6515.            2 - 255 = vendor unique)
  6516.     DL = hard drive ID
  6517. Return: CF set on error
  6518.     AH = status code (see AH=01h)
  6519. SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
  6520. --------B-1308-------------------------------
  6521. INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
  6522.     AH = 08h
  6523.     DL = drive (bit 7 set for hard disk)
  6524. Return: CF set on error
  6525.         AH = status (07h) (see AH=01h)
  6526.     CF clear if successful
  6527.         AH = 00h
  6528.         BL = drive type (AT/PS2 floppies only) (see below)
  6529.         CH = low eight bits of maximum cylinder number
  6530.         CL = maximum sector number (bits 5-0)
  6531.          high two bits of maximum cylinder number (bits 7-6)
  6532.         DH = maximum head number
  6533.         DL = number of drives
  6534.         ES:DI -> drive parameter table (floppies only)
  6535. Notes:    may return successful even though specified drive is greater than the
  6536.       number of attached drives of that type (floppy/hard); check DL to
  6537.       ensure validity
  6538.     for systems predating the IBM AT, this call is only valid for hard
  6539.       disks, as it is implemented by the hard disk BIOS rather than the
  6540.       ROM BIOS
  6541.     Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  6542.       but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.
  6543. SeeAlso: AH=06h"Adaptec",AH=15h,INT 1E,INT 41
  6544.  
  6545. Values for drive type:
  6546.  01h    360K
  6547.  02h    1.2M
  6548.  03h    720K
  6549.  04h    1.44M
  6550.  05h    ??? (reportedly an obscure drive type shipped on some IBM machines)
  6551.     2.88M on some machines (at least AMI 486 BIOS)
  6552.  06h    2.88M
  6553. --------B-1309-------------------------------
  6554. INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
  6555.     AH = 09h
  6556.     DL = drive (80h for first, 81h for second)
  6557. Return: CF clear if successful
  6558.     CF set on error
  6559.     AH = status (see AH=01h)
  6560. Notes:    on the PC and XT, this function uses the parameter table pointed at by
  6561.       INT 41
  6562.     on the AT and later, this function uses the parameter table pointed at
  6563.       by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  6564.       DL=81h
  6565. SeeAlso: INT 41,INT 46
  6566. --------B-130A-------------------------------
  6567. INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
  6568.     AH = 0Ah
  6569.     AL = number of sectors
  6570.     CH = low eight bits of cylinder number
  6571.     CL = sector number (bits 5-0)
  6572.          high two bits of cylinder number (bits 7-6)
  6573.     DH = head number
  6574.     DL = drive number (80h = first, 81h = second)
  6575.     ES:BX -> data buffer
  6576. Return: CF clear if successful
  6577.     CF set on error
  6578.     AH = status (see AH=01h)
  6579.     AL = number of sectors transferred
  6580. Notes:    this function reads in four to seven bytes of error-correcting code
  6581.       along with each sector's worth of information
  6582.     data errors are not automatically corrected, and the read is aborted
  6583.       after the first sector with an ECC error
  6584.     used for diagnostics only on PS/2 systems
  6585. SeeAlso: AH=02h,AH=0Bh
  6586. --------B-130B-------------------------------
  6587. INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
  6588.     AH = 0Bh
  6589.     AL = number of sectors
  6590.     CH = low eight bits of cylinder number
  6591.     CL = sector number (bits 5-0)
  6592.          high two bits of cylinder number (bits 7-6)
  6593.     DH = head number
  6594.     DL = drive number (80h = first, 81h = second)
  6595.     ES:BX -> data buffer
  6596. Return: CF clear if successful
  6597.     CF set on error
  6598.     AH = status (see AH=01h)
  6599.     AL = number of sectors transferred
  6600. Notes:    each sector's worth of data must be followed by four to seven bytes of
  6601.       error-correction information
  6602.     used for diagnostics only on PS/2 systems
  6603. SeeAlso: AH=03h,AH=0Ah
  6604. --------B-130C-------------------------------
  6605. INT 13 - HARD DISK - SEEK TO CYLINDER
  6606.     AH = 0Ch
  6607.     CH = low eight bits of cylinder number
  6608.     CL = sector number (bits 5-0)
  6609.          high two bits of cylinder number (bits 7-6)
  6610.     DH = head number
  6611.     DL = drive number (80h = first, 81h = second hard disk)
  6612. Return: CF set on error
  6613.     CF clear if successful
  6614.     AH = status (see AH=01h)
  6615. SeeAlso: AH=00h,AH=02h,AH=0Ah
  6616. --------d-130D-------------------------------
  6617. INT 13 - HARD DISK - RESET HARD DISKS
  6618.     AH = 0Dh
  6619.     DL = drive number (80h = first, 81h = second hard disk)
  6620. Return: CF set on error
  6621.     CF clear if successful
  6622.     AH = status (see AH=01h)
  6623. Notes:    reinitializes the hard disk controller, resets the specified drive's
  6624.       parameters, and recalibrates the drive's heads (seek to track 0)
  6625.     not for PS/2 ESDI drives
  6626. SeeAlso: AH=00h,INT 21/AH=0Dh
  6627. --------B-130E-------------------------------
  6628. INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
  6629.     AH = 0Eh
  6630.     DL = drive number (80h = first, 81h = second hard disk)
  6631.     ES:BX -> buffer
  6632. Return: CF set on error
  6633.     CF clear if successful
  6634.     AH = status code (see AH=01h)
  6635. Notes:    transfers controller's sector buffer.  No data is read from the drive
  6636.     used for diagnostics only on PS/2 systems
  6637. SeeAlso: AH=0Ah
  6638. --------B-130F-------------------------------
  6639. INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
  6640.     AH = 0Fh
  6641.     DL = drive number (80h = first, 81h = second hard disk)
  6642.     ES:BX -> buffer
  6643. Return: CF set on error
  6644.     CF clear if successful
  6645.     AH = status code (see AH=01h)
  6646. Notes:    does not write data to the drive
  6647.     should be called before formatting to initialize an XT-type
  6648.       controller's sector buffer
  6649.     used for diagnostics only on PS/2 systems
  6650. SeeAlso: AH=0Bh
  6651. --------B-1310-------------------------------
  6652. INT 13 - HARD DISK - CHECK IF DRIVE READY
  6653.     AH = 10h
  6654.     DL = drive number (80h = first, 81h = second hard disk)
  6655. Return: CF set on error
  6656.     CF clear if successful
  6657.     AH = status (see AH=01h)
  6658. --------B-1311-------------------------------
  6659. INT 13 - HARD DISK - RECALIBRATE DRIVE
  6660.     AH = 11h
  6661.     DL = drive number (80h = first, 81h = second hard disk)
  6662. Return: CF set on error
  6663.     CF clear if successful
  6664.     AH = status (see AH=01h)
  6665. Note:    causes hard disk controller to seek the specified drive to cylinder 0
  6666. SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
  6667. --------B-1312-------------------------------
  6668. INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
  6669.     AH = 12h
  6670.     DL = drive number (80h = first, 81h = second hard disk)
  6671. Return: CF set on error
  6672.     CF clear if successful
  6673.     AH = status code (see AH=01h)
  6674. SeeAlso: AH=13h,AH=14h
  6675. --------d-1312-------------------------------
  6676. INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
  6677.     AH = 12h
  6678.     DL = hard drive ID
  6679. Return: CF set on error
  6680.     AH = status code (see AH=01h)
  6681. Notes:    available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
  6682.     if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  6683.       and either "Disk prepared for shipping" or "Disk Stop command failed"
  6684.       is displayed
  6685.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6686.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6687. --------B-1313-------------------------------
  6688. INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
  6689.     AH = 13h
  6690.     DL = drive number (80h = first, 81h = second hard disk)
  6691. Return: CF set on error
  6692.     CF clear if successful
  6693.     AH = status code (see AH=01h)
  6694. SeeAlso: AH=12h,AH=14h
  6695. --------B-1314-------------------------------
  6696. INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
  6697.     AH = 14h
  6698. Return: CF set on error
  6699.     CF clear if successful
  6700.     AH = status code (see AH=01h)
  6701. SeeAlso: AH=12h,AH=13h
  6702. --------B-1315-------------------------------
  6703. INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
  6704.     AH = 15h
  6705.     DL = drive number (bit 7 set for hard disk)
  6706. Return: CF clear if successful
  6707.         AH = type code
  6708.         00h no such drive
  6709.         01h floppy without change-line support
  6710.         02h floppy with change-line support
  6711.         03h hard disk
  6712.             CX:DX = number of 512-byte sectors
  6713.     CF set on error
  6714.         AH = status (see AH=01h)
  6715. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
  6716. --------B-1316-------------------------------
  6717. INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
  6718.     AH = 16h
  6719.     DL = drive number
  6720. Return: CF clear if change line inactive
  6721.         AH = 00h (disk not changed)
  6722.     CF set if change line active
  6723.         AH = status
  6724.         06h change line active or not supported
  6725.         80h drive not ready or not present
  6726. Note:    call AH=15h first to determine whether the drive supports a change
  6727.       line
  6728. SeeAlso: AH=15h
  6729. --------B-1317-------------------------------
  6730. INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
  6731.     AH = 17h
  6732.     AL = format type
  6733.         01h = 320/360K disk in 360K drive
  6734.         02h = 320/360K disk in 1.2M drive
  6735.         03h = 1.2M disk in 1.2M drive
  6736.         04h = 720K disk in 720K drive
  6737.     DL = drive number
  6738. Return: CF set on error
  6739.     CF clear if successful
  6740.     AH = status (see AH=01h)
  6741. Note:    this function does not handle 1.44M drives; use AH=18h instead
  6742. SeeAlso: AH=15h,AH=18h
  6743. --------d-131700-----------------------------
  6744. INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
  6745.     AX = 1700h
  6746.     CL = length of buffer
  6747.     DL = hard drive ID
  6748.     ES:BX -> buffer for info
  6749. Return: CF clear if successful
  6750.         CH = number of bytes returned in buffer???
  6751.     CF set on error
  6752.         AH = status code (see AH=01h)
  6753. Notes:    this function is not available with 8-bit controller ROM versions < 7.0
  6754.     information block bytes 5-n are vendor-specific in older SCSI devices
  6755.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6756.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6757. SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
  6758.  
  6759. Format of SCSI inquiry information block:
  6760. Offset    Size    Description
  6761.  00h    BYTE    device type
  6762.         bits 0-4: peripheral device type (see below)
  6763.         bits 5-7: peripheral qualifier (see below)
  6764.  01h    BYTE    device type modifier
  6765.         bits 0-6: device type modifier
  6766.         bit 7: removable medium
  6767.  02h    BYTE    SCSI version
  6768.         bits 0-2: ANSI-approved version
  6769.               000 device might or might not comply to ANSI standard
  6770.               001 device complies to ANSI SCSI-1
  6771.               010 device complies to ANSI SCSI-2
  6772.               other reserved
  6773.         bits 3-5: ECMA version
  6774.         bits 6,7: ISO version
  6775.  03h    BYTE    data format/capabilities
  6776.         bits 0-2: response data format
  6777.               000 information block is as specified in SCSI-1
  6778.               001 information block is as specified in CCS
  6779.               010 information block is as specified in SCSI-2
  6780.               other reserved
  6781.         bits 4,5: reserved
  6782.         bit 6: terminate I/O process supported
  6783.         bit 7: asynchronous event notification supported
  6784.  04h    BYTE    additional data length (total remaining bytes)
  6785.  05h  2 BYTEs    reserved
  6786.  07h    BYTE    device capabilities (see below)
  6787.  08h  8 BYTEs    vendor identification (space-padded ASCII)
  6788.  10h  8 BYTEs    product identification (space-padded ASCII)
  6789.  20h  4 BYTEs    product revision level (space-padded ASCII)
  6790.  24h 20 BYTEs    vendor specific
  6791.  38h 40 BYTEs    reserved
  6792.  60h    var    vendor specific parameters
  6793.  
  6794. Values for peripheral device type:
  6795.  00h    direct-access device (e.g., magnetic disk)
  6796.  01h    sequential-access device (e.g., magnetic tape)
  6797.  02h    printer device
  6798.  03h    processor device
  6799.  04h    write-once device (e.g., some optical disks)
  6800.  05h    CD-ROM device
  6801.  06h    scanner device
  6802.  07h    optical memory device (e.g., some optical disks)
  6803.  08h    medium changer device (e.g., jukeboxes)
  6804.  09h    communications device
  6805.  0Ah    (defined by ASC IT8)
  6806.  0Bh    (defined by ASC IT8)
  6807.  0Ch-1Eh reserved
  6808.  1Fh    unknown or no device type
  6809.  
  6810. Values for peripheral qualifier:
  6811.  000b    device is currently connected to this logical unit and available
  6812.  001b    target is capable of supporting the specified peripheral, but the
  6813.       physical device is not currently connected to this logical unit
  6814.  010b    reserved
  6815.  011b    target can't support a physical device on this logical unit
  6816.  1xxb    vendor specific
  6817.  
  6818. Bitfields for device capabilities:
  6819.  bit 0    device responds to RESET with a hard RESET
  6820.  bit 1    tagged command queuing supported
  6821.  bit 2    reserved
  6822.  bit 3    linked commands supported
  6823.  bit 4    synchronous data transfer supported
  6824.  bit 5    16-bit transfers supported
  6825.  bit 6    32-bit transfers supported
  6826.  bit 7    relative addressing supported
  6827. --------B-1318-------------------------------
  6828. INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
  6829.     AH = 18h
  6830.     DL = drive number
  6831.     CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
  6832.     CL = sectors per track (bits 0-5)
  6833.          top 2 bits of highest cylinder number (bits 6,7)
  6834. Return: AH = status
  6835.         00h requested combination supported
  6836.         01h function not available
  6837.         0Ch not supported or drive type unknown
  6838.         80h there is no disk in the drive
  6839.     ES:DI -> 11-byte parameter table
  6840. SeeAlso: AH=05h,AH=07h,AH=17h
  6841. --------d-1318-------------------------------
  6842. INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
  6843.     AH = 18h
  6844.     DL = hard drive ID
  6845. Return: CF set on error
  6846.         AH = status code (see AH=01h)
  6847.     CF clear if successful
  6848.         AX = 4321h (magic number)
  6849.         CX = controller family code (see below)
  6850.         ---if family code=0200h
  6851.         DH = number of exclusively ROM-controlled SCSI devices
  6852.         DL = canonical SCSI device number for specified drive
  6853.         ---if family code <> 0200h
  6854.         BH = number of exclusively ROM-controlled SCSI devices
  6855.         BL = canonical SCSI device number for specified drive
  6856. Notes:    also sets an internal flag (non-resettable) which prevents some
  6857.       controller messages from being displayed, allows writes to
  6858.       removable devices (use caution!), and enables the INT 13 interface
  6859.       for more than one drive (i.e. DL >= 81h) in at least some ROM
  6860.       versions
  6861.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6862.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6863. SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
  6864.  
  6865. Values for controller family code:
  6866.  0200h    TMC-1680/? (ROM 3.0)
  6867.  0203h    TMC-1650/1660/1670/1680 (ROM 2.0)
  6868.  040Ah    TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
  6869.  050Dh    TMC-840/841/880/881 (ROM 5.2D)
  6870.  0700h    TMC-830/850/860/875/885 (ROM 7.0)
  6871. --------B-1319-------------------------------
  6872. INT 13 - FIXED DISK - PARK HEADS (XT286,PS)
  6873.     AH = 19h
  6874.     DL = drive
  6875. Return: CF set on error
  6876.     AH = status (see AH=01h)
  6877. SeeAlso: AH=11h
  6878. --------d-1319-------------------------------
  6879. INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
  6880.     AH = 19h
  6881.     DL = hard drive ID
  6882. Return: CF set on error
  6883.         AH = status code (see AH=01h)
  6884.     CF clear if successful
  6885.         AH = disk type (03h = fixed disk)
  6886.         CX:DX = number of 512-byte sectors
  6887. Notes:    sends SCSI Read Capacity command to get number of logical blocks and
  6888.       adjusts the result for 512-byte sectors
  6889.     displays either "Error in Read Capacity Command" or "nnn Bytes per
  6890.       sector" (nnn=256 or 512, the only sizes supported in the translation
  6891.       code)
  6892.     should probably be called when a removable device has its media changed
  6893.     returns the same values as AH=15h
  6894.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6895.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6896. SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
  6897. --------d-131A-------------------------------
  6898. INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
  6899.     AH = 1Ah
  6900.     AL = defect table count
  6901.     CL = format modifiers (see below)
  6902.     DL = drive
  6903.     ES:BX -> defect table
  6904. Return: CF set on error
  6905.     AH = status (see AH=01h)
  6906. Note:    if periodic interrupt selected, INT 15/AH=0Fh is called after each
  6907.       cylinder is formatted
  6908. SeeAlso: AH=07h,INT 15/AH=0Fh
  6909.  
  6910. Bitfields for format modifiers:
  6911.  bit 4    generate periodic interrupt
  6912.  bit 3    perform surface analysis
  6913.  bit 2    update secondary defect map
  6914.  bit 1    ignore secondary defect map
  6915.  bit 0    ignore primary defect map
  6916. --------d-131A-------------------------------
  6917. INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
  6918.     AH = 1Ah
  6919.     CH = track (bits 8,9 in high bits of CL)
  6920.     CL = sector (01h to number of sectors/track for drive)
  6921.     DH = head
  6922.     DL = hard drive ID
  6923. Return: CF set on error
  6924.     AH = status code (see AH=01h)
  6925.     CX:DX = logical block number of last quickly-accessible block after
  6926.         given block
  6927. Notes:    sends SCSI Read Capacity command with the PMI bit set to obtain the
  6928.       logical block address of the last block after which a substantial
  6929.       delay in data transfer will be encountered (usually the last block
  6930.       on the current cylinder).  No translation to 512 byte sectors is
  6931.       performed on the result if data is stored on the disk in other than
  6932.       512 byte sectors.
  6933.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6934.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6935. SeeAlso: AH=15h,AH=19h"SCSI"
  6936. --------d-131B-------------------------------
  6937. INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
  6938.     AH = 1Bh
  6939.     AL = number of record
  6940.     DL = drive
  6941.     ES:BX -> buffer for manufacturing header (defect list)
  6942. Return: CF set on error
  6943.         AH = status
  6944. Note:    manufacturing header format (Defect Map Record format) can be found
  6945.       in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
  6946. --------d-131B-------------------------------
  6947. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
  6948.     AH = 1Bh
  6949.     DL = hard drive ID
  6950. Return: CF set on error
  6951.         AH = status code (see AH=01h)
  6952.     CF clear if successful
  6953.         ES:BX -> SCSI disk information block
  6954. Notes:    also sets a non-resettable flag which prevents some controller messages
  6955.       from being displayed
  6956.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6957.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6958. SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
  6959.  
  6960. Format of SCSI disk information block:
  6961. Offset    Size    Description
  6962.  00h    BYTE    drive physical information (see below)
  6963.  01h    WORD    translated number of cylinders
  6964.  03h    BYTE    translated number of heads
  6965.  04h    BYTE    translated number of sectors per track (17, 34, or 63)
  6966.  05h    BYTE    drive address
  6967.         bits 0-2: logical unit number
  6968.         bits 3-5: device number
  6969.  06h    BYTE    01h at initialization
  6970.  07h    BYTE    sense code byte 00h, or extended sense code byte 0Ch
  6971.  08h    BYTE    00h
  6972.  09h    BYTE    00h or extended sense code byte 02h (sense key)
  6973.  0Ah    BYTE    00h
  6974.  0Bh 10 BYTEs    copy of Command Descriptor Block (CDB)
  6975.  15h    DWORD    translated number of sectors on device
  6976.  
  6977. Bitfields for device physical information:
  6978.  bit 0    ???
  6979.  bit 1    device uses parity
  6980.  bit 2    256 bytes per sector instead of 512
  6981.  bit 3    don't have capacity yet???
  6982.  bit 4    disk is removable
  6983.  bit 5    logical unit number is not present
  6984. --------d-131C-------------------------------
  6985. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
  6986.     AH = 1Ch
  6987.     DL = hard drive ID (any valid SCSI hard disk)
  6988. Return: CF set on error
  6989.         AH = status code (see AH=01h)
  6990.     CF clear if successful
  6991.         ES:BX -> first byte of free RAM on controller
  6992. Notes:    the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
  6993.       to 1BFFh on-board the controller for storing drive information and
  6994.       controller status; ES:BX points to the first byte available for other
  6995.       uses
  6996.     ES contains the segment at which the controller resides; the
  6997.       controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
  6998. SeeAlso: AH=1Bh"SCSI"
  6999. --------d-131C0A-----------------------------
  7000. INT 13 - ESDI FIXED DISK - GET DEVICE CONFIGURATION
  7001.     AX = 1C0Ah
  7002.     DL = drive
  7003.     ES:BX -> buffer for device configuration (drive physical parameter)
  7004. Return: CF set on error
  7005.         AH = status
  7006. Note:    device configuration format can be found in IBM ESDI Fixed Disk Drive
  7007.       Adapter/A Technical Reference
  7008. --------d-131C0B-----------------------------
  7009. INT 13 - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
  7010.     AX = 1C0Bh
  7011.     ES:BX -> buffer for adapter configuration
  7012. Return: CF set on error
  7013.         AH = status
  7014. SeeAlso: AX=1C0Ch
  7015. --------d-131C0C-----------------------------
  7016. INT 13 - ESDI FIXED DISK - GET POS INFORMATION
  7017.     AX = 1C0Ch
  7018.     ES:BX -> POS information
  7019. Return: CF set on error
  7020.         AH = status
  7021. SeeAlso: AX=1C0Bh
  7022. --------d-131C0E-----------------------------
  7023. INT 13 - ESDI FIXED DISK - TRANSLATE RBA TO ABA
  7024.     AX = 1C0Eh
  7025.     CH = low 8 bits of cylinder number
  7026.     CL = sector number, high two bits of cylinder number in bits 6 and 7
  7027.     DH = head number
  7028.     DL = drive number
  7029.     ES:BX -> ABA number
  7030. Return: CF set on error
  7031.         AH = status
  7032. Note:    ABA (absolute block address) format can be found in IBM ESDI Adapter
  7033.       Technical Reference by using its Device Configuration Status Block
  7034. --------c-131D-------------------------------
  7035. INT 13 - IBMCACHE.SYS - CACHE STATUS
  7036.     AH = 1Dh
  7037.     AL = subfunction
  7038.         01h get status record
  7039.         DL = drive???
  7040.         Return: ES:BX -> status record (see below)
  7041.             CF set on error
  7042.                 AH = error code
  7043.         02h set cache status
  7044.         ES:BX -> status record (see below)
  7045.         DL = drive???
  7046.         Return: CF set on error
  7047.  
  7048. Format of status record:
  7049. Offset    Size    Description
  7050.  00h    DWORD    total number of read requests
  7051.  04h    DWORD    total number of hits
  7052.  08h    DWORD    number of physical disk reads
  7053.  0Ch    DWORD    total number of sectors requested by physical disk reads
  7054.  10h  6 bytes    ???
  7055.  16h    DWORD    pointer to start of error list
  7056.  1Ah    DWORD    pointer to end of error list
  7057.  1Eh    WORD    ???
  7058.  20h    BYTE    using extended memory if nonzero
  7059.  21h    BYTE    ???
  7060.  22h  4 BYTEs    ASCII version number
  7061.  26h    WORD    cache size in KB
  7062.  28h    WORD    sectors per page
  7063.  
  7064. Format of error list:
  7065. Offset    Size    Description
  7066.  00h    DWORD    relative block address of bad page
  7067.  04h    BYTE    drive
  7068.  05h    BYTE    sector bit-map
  7069.  06h    WORD    next error
  7070. --------d-1320-------------------------------
  7071. INT 13 - DISK - ??? (Western Digital "Super BIOS")
  7072.     AH = 20h
  7073.     ???
  7074. Return: ???
  7075. Note:    returns some kind of status related to whether the drive contains its
  7076.       default media type
  7077. --------b-1320-------------------------------
  7078. INT 13 U - Compaq DESKPRO/i - GET CURRENT MEDIA FORMAT
  7079.     AH = 20h
  7080.     DL = drive number (00h,01h)
  7081. Return: CF clear if successful
  7082.         AL = media type (see below)
  7083.     CF set on error
  7084.         AH = error code
  7085.         31h no such drive
  7086.         32h incorrect drive type stored in CMOS
  7087. Note:    this function is supported by the 3/8/93 ROM BIOS, but only partially
  7088.       (AL is always 00h when successful) by the 8/3/93 version
  7089.  
  7090. Values for media type:
  7091.  03h    720K
  7092.  04h    1.44M
  7093.  06h    2.88M
  7094.  0Ch    360K
  7095.  0Dh    1.2M
  7096.  0Eh    ???
  7097.  0Fh    ??? (1024-byte sectors)
  7098. --------c-1320-------------------------------
  7099. INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
  7100.     AH = 20h
  7101.     AL = drive (00h = A:, etc. or 7Fh for all removable drives???
  7102.                    or FFh for all drives)
  7103. Return: AX = status (0000h successful)
  7104. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7105.       Associates, Inc.
  7106. Desc:    flush any dirty buffers for the specified drive(s) and then discard
  7107.       those sector buffers
  7108. SeeAlso: AH=21h,AH=22h,AH=28h
  7109. --------c-1321-------------------------------
  7110. INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
  7111.     AH = 21h
  7112. Return: AX = status (0000h successful)
  7113. Desc:    immediately write all dirty sectors back to disk
  7114. SeeAlso: AH=25h,AH=2Eh,AH=2Fh
  7115. --------c-1322-------------------------------
  7116. INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
  7117.     AH = 22h
  7118.     AL = new state (00h disabled, 01h enabled)
  7119. Return: AX = status (0000h successful)
  7120. Note:    enables/disables caching of all drives
  7121. SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
  7122. --------c-1323-------------------------------
  7123. INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
  7124.     AH = 23h
  7125. Return: AX = status (0000h successful)
  7126.     ES = segment of ??? data
  7127. --------c-1324-------------------------------
  7128. INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
  7129.     AH = 24h
  7130.     BX = new number of sector buffers in cache
  7131. Return: AX = status
  7132.         0000h successful
  7133.         0001h failed--size adjusted
  7134.         8000h cache cannot be resized while enabled
  7135. SeeAlso: AH=36h
  7136. --------c-1325-------------------------------
  7137. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
  7138.     AH = 25h
  7139.     BX = interval
  7140. Return: AX = status (0000h successful)
  7141. Desc:    specify how often the cache should write dirty buffers to disk when
  7142.       buffered writes are enabled
  7143. SeeAlso: AH=21h,AH=2Ch,AH=2Eh
  7144. --------c-1326-------------------------------
  7145. INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
  7146.     AH = 26h
  7147. Return: AX = status
  7148.         0000h successful
  7149.         0001h-00FFh interrupt vector which was hooked by another TSR
  7150. SeeAlso: AH=27h
  7151. --------c-1327--BX0000-----------------------
  7152. INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
  7153.     AH = 27h
  7154.     BX = 0000h
  7155. Return: AX = 0000h if installed
  7156.     BX nonzero if installed
  7157.         BH = major version
  7158.         BL = binary minor version
  7159. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7160.       Associates, Inc.
  7161. SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
  7162. --------c-1328-------------------------------
  7163. INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
  7164.     AH = 28h
  7165.     AL = new state (00h disabled, 01h enabled)
  7166. Return: AX = status (0000h successful)
  7167. SeeAlso: AH=20h"QUICKCACHE"
  7168. --------c-1329-------------------------------
  7169. INT 13 U - QUICKCACHE II v4.20 - NOP
  7170.     AH = 29h
  7171. Return: AX = 0000h
  7172. --------c-132A-------------------------------
  7173. INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
  7174.     AH = 2Ah
  7175.     AL = buffer size (1-30)
  7176. Return: AX = status (0000h successful)
  7177. Desc:    specify the number of cache sector buffers to dedicate to buffered read
  7178.       and write operations
  7179. SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
  7180. --------c-132B-------------------------------
  7181. INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
  7182.     AH = 2Bh
  7183.     AL = new state (00h disabled, 01h enabled)
  7184. Return: AX = status (0000h successful)
  7185. --------c-132C-------------------------------
  7186. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
  7187.     AH = 2Ch
  7188.     AL = new state (00h disabled, 01h enabled)
  7189. Return: AX = status (0000h successful)
  7190. Desc:    specify whether the cache should delay disk writes
  7191. Note:    this function enables or disables delayed writes for all drives; use
  7192.       AH=38h to change a single drive
  7193. SeeAlso: AH=25h,AH=2Dh,AH=2Eh,AH=38h
  7194. --------c-132D-------------------------------
  7195. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
  7196.     AH = 2Dh
  7197.     AL = new state (00h disabled, 01h enabled)
  7198. Return: AX = status (0000h successful)
  7199. Desc:    specify whether the cache should attempt to read ahead of actual
  7200.       requests
  7201. Note:    this function enables or disables read-ahead for all drives; use AH=37h
  7202.       to change a single drive
  7203. SeeAlso: AH=2Ch,AH=37h
  7204. --------c-132E-------------------------------
  7205. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
  7206.     AH = 2Eh
  7207.     BX = flush count
  7208. Return: AX = status (0000h successful)
  7209. Desc:    specify how many dirty sectors the cache should write after each flush
  7210.       interval (see AH=25h) when buffered writes are enabled
  7211. SeeAlso: AH=21h,AH=25h,AH=2Ch
  7212. --------c-132F-------------------------------
  7213. INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
  7214.     AH = 2Fh
  7215. Return: AX = status (0000h successful)
  7216. Desc:    immediately flush up to "flushcount" dirty sectors to disk as if the
  7217.       flush interval had expired
  7218. SeeAlso: AH=21h
  7219. --------c-1330-------------------------------
  7220. INT 13 u - QUICKCACHE II v4.20 - GET INFO
  7221.     AH = 30h
  7222.     AL = what to get
  7223.         00h system info (see below)
  7224.         01h drive info (see below)
  7225.         02h access frequency (array of 30 words)
  7226.         03h drive index
  7227.         (array of 32 bytes indicating BIOS drive for DOS drive)
  7228.     DS:DX -> buffer for info
  7229. Return: AX = status (0000h successful, 8000h invalid info specifier)
  7230. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7231.       Associates, Inc.
  7232.  
  7233. Format of system info:
  7234. Offset    Size    Description
  7235.  00h    BYTE    flag: cache enabled
  7236.  01h    BYTE    flag: buffered writes enabled
  7237.  02h    BYTE    flag: buffered reads enabled
  7238.  03h    BYTE    flag: sounds enabled
  7239.  04h    BYTE    flag: autodismount enabled
  7240.  05h    BYTE    ???
  7241.  06h    BYTE    flag: ???
  7242.  07h    BYTE    flag: ???
  7243.  08h    BYTE    flag: "em_assigned"
  7244.  09h    BYTE    flag: emulated EMS
  7245.  0Ah    BYTE    single sector bonus
  7246.  0Bh    BYTE    "sticky_max"
  7247.  0Ch    BYTE    write sector bonus
  7248.  0Dh    BYTE    bonus threshold
  7249.  0Eh    WORD    flush interval
  7250.  10h    WORD    flush count
  7251.  12h    WORD    reserve pool size
  7252.  14h    WORD    remaining space in reserve pool
  7253.  16h    WORD    required free memory
  7254.  18h    WORD    total cache sectors
  7255.  1Ah    WORD    dirty cache sectors
  7256.  1Ch    BYTE    trace buffer size
  7257.  1Dh    BYTE    reserved (padding)
  7258.  
  7259. Format of drive info [16-element array, one element]:
  7260. Offset    Size    Description
  7261.  00h    BYTE    DOS drive number
  7262.  01h    BYTE    BIOS drive number
  7263.  02h    BYTE    maximum sector number
  7264.  03h    BYTE    maximum head number
  7265.  04h    BYTE    read buffer size
  7266.  05h    BYTE    write buffer size
  7267.  06h    BYTE    last status
  7268.  07h    BYTE    flag: enabled
  7269.  08h    BYTE    flag: buffered write enabled
  7270.  09h    BYTE    flag: buffered read enabled
  7271.  0Ah    BYTE    flag: in use (drive info is valid)
  7272.  0Bh    BYTE    flag: cylinder flush
  7273.  0Ch    BYTE    reserved (padding)
  7274.  0Dh    BYTE    sectors per track
  7275.  0Eh    WORD    sector size
  7276.  10h    WORD    sectors assigned
  7277.  12h    WORD    dirty sectors
  7278.  14h    WORD    reserved sectors
  7279.  16h    WORD    number of read errors
  7280.  18h    WORD    number of write errors
  7281.  1Ah    DWORD    "rio_count"
  7282.  1Eh    DWORD    number of cache misses
  7283.  22h    DWORD    "wio_count"
  7284.  26h    DWORD    "dio_count"
  7285. --------c-1331-------------------------------
  7286. INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
  7287.     AH = 31h
  7288.     BX = number of paragraphs of conventional memory to reserve for apps
  7289. Return: AX = status (0000h successful)
  7290. --------c-1332-------------------------------
  7291. INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
  7292.     AH = 32h
  7293.     AL = drive number (00h=A:)
  7294. Return: AX = status (0000h successful)
  7295. SeeAlso: AH=22h,AH=33h
  7296. --------c-1333-------------------------------
  7297. INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
  7298.     AH = 33h
  7299.     AL = drive number (00h=A:)
  7300. Return: AX = status (0000h successful)
  7301. SeeAlso: AH=22h,AH=32h
  7302. --------c-1334-------------------------------
  7303. INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
  7304.     AH = 34h
  7305.     AL = function
  7306.         00h end sector locking/unlocking
  7307.         01h lock all accessed sectors into cache
  7308.         02h unlock all accessed sectors and discard from cache
  7309. Return: AX = status (0000h successful)
  7310. SeeAlso: AH=20h,AH=35h
  7311. --------c-1335-------------------------------
  7312. INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
  7313.     AH = 35h
  7314.     BX = number of sectors in lock pool
  7315. Return: AX = status (0000h successful)
  7316. Desc:    specify the number of cache sector buffers which may be dedicated to
  7317.       data locked into the cache
  7318. SeeAlso: AH=34h
  7319. --------c-1336-------------------------------
  7320. INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
  7321.     AH = 36h
  7322.     AL = new size of trace buffer
  7323. Return: AX = status (0000h successful)
  7324. Note:    called with AL=05h during an INT 13/AH=24h call
  7325. SeeAlso: AH=24h
  7326. --------c-1337-------------------------------
  7327. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
  7328.     AH = 37h
  7329.     AL = new state (00h disabled, else enabled)
  7330.     DL = drive number (00h = A:)
  7331. Return: AX = status (0000h successful)
  7332. SeeAlso: AH=2Dh,AH=38h
  7333. --------c-1338-------------------------------
  7334. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
  7335.     AH = 38h
  7336.     AL = new state (00h disabled, else enabled)
  7337.     DL = drive number (00h = A:)
  7338. Return: AX = status (0000h successful)
  7339. SeeAlso: AH=2Ch,AH=37h
  7340. --------c-1339-------------------------------
  7341. INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
  7342.     AH = 39h
  7343.     AL = new size of read buffer
  7344.     DL = drive number (00h = A:)
  7345. Return: AX = status (0000h successful)
  7346. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7347.       Associates, Inc.
  7348. SeeAlso: AH=2Ah,AH=3Ah
  7349. --------c-133A-------------------------------
  7350. INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
  7351.     AH = 3Ah
  7352.     AL = new size of write buffer
  7353.     DL = drive number (00h = A:)
  7354. Return: AX = status (0000h successful)
  7355. SeeAlso: AH=2Ah,AH=39h
  7356. --------c-133B-------------------------------
  7357. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  7358.     AH = 3Bh
  7359.     AL = new state of ??? (01h enabled, else disabled)
  7360. Return: AX = status (0000h successful)
  7361. Note:    is affected by the flag reported at offset 05h of the system info
  7362.       returned by AH=30h, and sets the flag at offset 06h
  7363. SeeAlso: AH=3Ch
  7364. --------c-133C-------------------------------
  7365. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  7366.     AH = 3Ch
  7367.     AL = new state of ??? (01h enabled, else disabled)
  7368. Return: AX = status (0000h successful)
  7369. Note:    is affected by the flag reported at offset 05h of the system info
  7370.       returned by AH=30h, and sets the flag at offset 07h
  7371. SeeAlso: AH=3Bh
  7372. --------c-133D-------------------------------
  7373. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
  7374.     AH = 3Dh
  7375.     AL = new state (01h enabled, else disabled)
  7376.     DL = drive number (00h = A:)
  7377. Return: AX = status (0000h successful)
  7378. --------c-133E-------------------------------
  7379. INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
  7380.     AH = 3Eh
  7381.     AL = new value for bonus
  7382. Return: AX = status (0000h successful)
  7383. Desc:    specify the bonus score to give to single-sector transfers in order to
  7384.       keep those sectors in the cache longer
  7385. --------c-133F-------------------------------
  7386. INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
  7387.     AH = 3Fh
  7388.     AL = new value for bonus threshold
  7389. Return: AX = status (0000h successful)
  7390. --------c-1340-------------------------------
  7391. INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
  7392.     AH = 40h
  7393.     AL = new value for "sticky_max"
  7394. Return: AX = status (0000h successful)
  7395. --------c-1341-------------------------------
  7396. INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
  7397.     AH = 41h
  7398.     AL = direction
  7399.         01h save to file
  7400.         else restore from file
  7401.     ES:DI -> 1024-byte buffer for ???
  7402. Return: AX = status (0000h successful, 8000h failed)
  7403. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  7404.       Associates, Inc.
  7405. --------N-134257DX1234-----------------------
  7406. INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
  7407.     AX = 4257h ("BW")
  7408.     DX = 1234h
  7409. Return: BX = 414Ch if installed
  7410. Program: BWLPD is the printer daemon from the BW-NFS package
  7411. SeeAlso: INT 62"BW-TCP"
  7412. --------v-135342CX0001-----------------------
  7413. INT 13 - ScanBoot - INSTALLATION CHECK
  7414.     AX = 5342h ("SB")
  7415.     CX = 0001h
  7416.     DX = 0000h
  7417. Return: CF clear if ScanBoot installed
  7418.        AX = 0000h
  7419.        CX = serial number ("SW" if shareware release)
  7420.        DX = version
  7421.        BX,SI,ES destroyed
  7422. Program: ScanBoot is a virus-detection TSR by PanSoft
  7423. --------d-135504-----------------------------
  7424. INT 13 - Seagate - GET CONTROLLER TYPE???
  7425.     AX = 5504h
  7426.     DX = drive (bit 7 set for hard disk)
  7427. Return: CF clear if successful
  7428.         AX = 4321h,4322h if Seagate controller
  7429.     CF set on error
  7430. SeeAlso: AX=5505h,AX=5514h
  7431. --------d-135505-----------------------------
  7432. INT 13 - Seagate - PARK HEADS???
  7433.     AX = 5505h
  7434.     DX = drive (bit 7 set for hard disk)
  7435. Return: CF clear if successful
  7436.     CF set on error
  7437. SeeAlso: AX=5504h,AX=5515h
  7438. --------d-135514-----------------------------
  7439. INT 13 - Seagate - ???
  7440.     AX = 5514h
  7441.     DX = drive (bit 7 set for hard disk)
  7442. Return: CF clear if successful
  7443.     CF set on error
  7444.     AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)
  7445. SeeAlso: AX=5504h,AX=5515h
  7446. --------d-135515-----------------------------
  7447. INT 13 - Seagate - PARK HEADS???
  7448.     AX = 5515h
  7449.     DX = drive (bit 7 set for hard disk)
  7450. Return: CF clear if successful
  7451.     CF set on error
  7452. Note:    appears to be identical to AX=5505h
  7453. SeeAlso: AX=5504h,AX=5505h
  7454. --------d-1370-------------------------------
  7455. INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
  7456.     AH = 70h
  7457.     ???
  7458. Return: ???
  7459. Note:    Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
  7460.       formatting program) make this call, presumably to EDVR.SYS (the
  7461.       partitioning driver)
  7462. SeeAlso: AH=ADh
  7463. ----------1375-------------------------------
  7464. INT 13 - ???
  7465.     AH = 75h
  7466.     ???
  7467. Return: AH = ???
  7468.     ???
  7469. Note:    intercepted by PC-Cache (v5.1 only)
  7470. ----------1376-------------------------------
  7471. INT 13 - ???
  7472.     AH = 76h
  7473.     ???
  7474. Return: AH = ???
  7475.     ???
  7476. Note:    intercepted by PC-Cache (v5.1 only)
  7477. --------c-137B00-----------------------------
  7478. INT 13 - NOW! v3.05 - GET INFORMATION
  7479.     AX = 7B00h
  7480.     CX:DX -> 1F8h-byte buffer for information record (see below)
  7481. Return: AX = 0000h
  7482.     BX = segment of main resident code
  7483.     ES = ???
  7484. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  7485. SeeAlso: AX=7B02h,AH=EFh
  7486.  
  7487. Format of information record:
  7488. Offset    Size    Description
  7489.  00h 80 BYTEs    name of directory from which NOW! was started
  7490.  50h 424 BYTEs    ???
  7491.  81h  ? BYTEs    array of bytes for ???
  7492.  F7h 250 BYTEs    array of 25 entries, one per drive???
  7493.     Offset    Size    Description
  7494.      00h  2 BYTEs    ???
  7495.      02h    WORD    ???
  7496.      04h    WORD    ???
  7497.      06h  4 BYTEs    ???
  7498. 1F1h  7 BYTEs    ???
  7499. --------c-137B01-----------------------------
  7500. INT 13 - NOW! v3.05 - ???
  7501.     AX = 7B01h
  7502. Return: DX = segment of ???
  7503. SeeAlso: AX=7B00h
  7504. --------c-137B02-----------------------------
  7505. INT 13 - NOW! v3.05 - SET INFORMATION
  7506.     AX = 7B02h
  7507.     BX = segment of ??? (10h above a PSP)
  7508.     CX:DX -> 1F8h-byte information record (see AX=7B00h)
  7509. Return: ???
  7510. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  7511. Note:    NOW! grabs the INT 24h value from the PSP reached via the segment in
  7512.       BX
  7513. SeeAlso: AX=7B00h
  7514. --------c-137B03-----------------------------
  7515. INT 13 - NOW! v3.05 - ???
  7516.     AX = 7B03h
  7517.     ???
  7518. Return: ???
  7519. SeeAlso: AX=7B00h,AX=7B04h
  7520. --------c-137B04-----------------------------
  7521. INT 13 - NOW! v3.05 - ???
  7522.     AX = 7B04h
  7523.     ???
  7524. Return: ???
  7525. SeeAlso: AX=7B03h
  7526. --------c-137B05-----------------------------
  7527. INT 13 - NOW! v3.05 - GET DISK ACCESSES???
  7528.     AX = 7B05h
  7529. Return: BX:AX = number of physical accesses???
  7530.     DX:CX = total disk accesses???
  7531. SeeAlso: AX=7B00h,AX=7B06h
  7532. --------c-137B06-----------------------------
  7533. INT 13 - NOW! v3.05 - GET ???
  7534.     AX = 7B06h
  7535.     BX = ???
  7536. Return: AX = 0000h
  7537.     BX = ???
  7538. SeeAlso: AX=7B05h,AX=7B07h
  7539. --------c-137B07-----------------------------
  7540. INT 13 - NOW! v3.05 - GET ???
  7541.     AX = 7B07h
  7542. Return: AX = ???
  7543.     BX = ???
  7544.     CX = ???
  7545.     DX = ???
  7546. SeeAlso: AX=7B06h
  7547. --------c-137B08-----------------------------
  7548. INT 13 - NOW! v3.05 - ???
  7549.     AX = 7B08h
  7550.     CX = ??? (default 00h)
  7551. Return: ???
  7552. SeeAlso: AX=7B00h
  7553. --------c-1380--CX6572-----------------------
  7554. INT 13 - FAST! v4.02+ - API
  7555.     AH = 80h
  7556.     CX = 6572h
  7557.     DX = 1970h
  7558.     ES:BX -> request packet (see below)
  7559.     AL = function
  7560.         01h get cache information (see separate entry)
  7561.         04h disable cache
  7562.         05h enable cache and reset statistics
  7563.         06h installation check (see separate entry)
  7564.         07h unhook interrupts (see separate entry)
  7565.         09h flush cache
  7566.         0Ah (v4.02+) enable staged writes
  7567.         0Bh (v4.02+) disable staged writes
  7568.         0Ch (v4.02+) enable beep on flush
  7569.         0Dh (v4.02+) disable beep on flush
  7570.         0Eh ???
  7571.         0Fh ???
  7572.         10h (v4.12+) enable hotkeys
  7573.         11h (v4.12+) disable hotkeys
  7574.         12h (v4.13+) set idle delay
  7575.         13h (v4.13+) set flush dirty percentage
  7576.         14h (v5.00+) enable mouse checks
  7577.         15h (v5.00+) disable mouse checks
  7578.         16h (v5.00d+) reduce cache size to minimum
  7579.         17h (v5.00d+) increase cache size to maximum
  7580. Return: AH = status (except function 06h)
  7581.         00h if successful
  7582.         01h invalid function
  7583.         05h not supported by the installed variant
  7584.     CF clear if successful
  7585.     CF set on error
  7586.     AL may be destroyed
  7587. Program: FAST! is a disk cache by Future Computing Systems and marketed by BLOC
  7588.       Publishing Corp.
  7589. SeeAlso: AX=8001h,AX=8006h,AX=8007h
  7590. Index:    hotkeys;FAST!
  7591.  
  7592. Format of request packet:
  7593. Offset    Size    Description
  7594.  00h    DWORD    pointer to 19-byte signature string (see below)
  7595.  04h    DWORD    pointer to buffer for data (if needed by function)
  7596.  
  7597. Values for v4.04-v5.03 signature string:
  7598.  13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15h
  7599. --------c-138001CX6572-----------------------
  7600. INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
  7601.     AX = 8001h
  7602.     CX = 6572h
  7603.     DX = 1970h
  7604.     ES:BX -> request packet (see below)
  7605. Return: AH = 00h if successful
  7606. SeeAlso: AH=80h,AX=8006h
  7607.  
  7608. Format of request packet:
  7609. Offset    Size    Description
  7610.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  7611.  04h    DWORD    -> buffer for cache information (see below)
  7612.  
  7613. Format of cache information (v5.00-5.03):
  7614. Offset    Size    Description
  7615.  00h    WORD    binary version number of FAST! (v5.00 = 01F4h)
  7616.  02h    BYTE    revision letter (61h = X.XXa, 62h = X.XXb, etc.)
  7617.  03h    BYTE    FAST! variant
  7618.         (01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS)
  7619.  04h    DWORD    total number of read requests
  7620.  08h    DWORD    number of physical disk reads
  7621.  0Ch    DWORD    grabbed hash buckets
  7622.  10h    DWORD    "st_386mem"
  7623.  14h    DWORD    total number of writes (only counted when staging enabled)
  7624.  18h    DWORD    number of physical disk writes (only when staging enabled)
  7625.  1Ch    DWORD    number of write errors while flushing cache
  7626.  20h    WORD    flags
  7627.         bit 0: beep on flush
  7628.         bit 3: hotkeys enabled
  7629.         bit 4: mouse idle check enabled
  7630.         bit 8: caching enabled
  7631.         bit 13: ???
  7632.  22h    WORD    flags
  7633.         bit 0: ???
  7634.         bit 1: staged writes enabled
  7635.  24h    WORD    ???
  7636.  26h    WORD    maximum cache size in KB
  7637.  28h    WORD    minimum cache size in KB
  7638.  2Ah    WORD    segment of first cache buffer (FASTC)
  7639.         segment of EMS page frame (FASTE)
  7640.         XMS handle (FASTX XMS)
  7641.  2Ch    WORD    number of hash buckets containing no entries
  7642.  2Eh    WORD    number of hash buckets containing one entry
  7643.  30h    WORD    number of hash buckets containing two entries
  7644.  32h    WORD    number of hash buckets containing three entries
  7645.  34h    WORD    number of hash buckets containing four entries
  7646.  36h    WORD    number of hash buckets containing five entries
  7647.  38h    WORD    maximum contiguous sectors
  7648.  3Ah    WORD    hash factor
  7649.  3Ch    WORD    number of paragraphs of memory used below 1M
  7650.  3Eh    WORD    entries per hash bucket
  7651.  40h    WORD    idle delay in seconds
  7652.  42h  2 BYTEs    ???
  7653.  44h    WORD    staged write threshold percentage
  7654.  46h  2 BYTEs    ???
  7655.  48h    WORD    number of dirty sectors
  7656.  4Ah    WORD    number of staged write buffers
  7657.  4Ch    WORD    current cache size in KB
  7658.  4Eh    WORD    beep frequency in Hz
  7659.  50h    WORD    ???
  7660.  52h    WORD    ???
  7661. --------c-138006CX6572-----------------------
  7662. INT 13 - FAST! v4.02+ - INSTALLATION CHECK
  7663.     AX = 8006h
  7664.     CX = 6572h
  7665.     DX = 1970h
  7666.     ES:BX -> request packet (see below)
  7667. Return: AX = 1965h if installed
  7668. SeeAlso: AH=80h,AX=8001h,AX=8007h
  7669.  
  7670. Format of request packet:
  7671. Offset    Size    Description
  7672.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  7673. --------c-138007CX6572-----------------------
  7674. INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
  7675.     AX = 8007h
  7676.     CX = 6572h
  7677.     DX = 1970h
  7678.     ES:BX -> request packet (see below)
  7679. Return: AX = 1965h if installed
  7680. SeeAlso: AH=80h,AX=8006h
  7681. Index:    uninstall;FAST!
  7682.  
  7683. Format of request packet:
  7684. Offset    Size    Description
  7685.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  7686. --------c-1381--SI4358-----------------------
  7687. INT 13 - Super PC-Kwik v3.20+ - ???
  7688.     AH = 81h
  7689.     SI = 4358h
  7690.     ???
  7691. Return: ???
  7692. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7693.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  7694.       to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27)
  7695.     returns immediately in PC-Cache v5.x
  7696. Index:    PC-Cache|Qualitas Qcache
  7697. --------c-1382--SI4358-----------------------
  7698. INT 13 - Super PC-Kwik v3.20+ - ???
  7699.     AH = 82h
  7700.     SI = 4358h
  7701.     ???
  7702. Return: AL = ???
  7703. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7704.       Super PC-Kwik, and thus support this call
  7705. SeeAlso: AH=84h
  7706. Index:    PC-Cache|Qualitas Qcache
  7707. --------c-1383--SI4358-----------------------
  7708. INT 13 - Super PC-Kwik v3.20+ - ???
  7709.     AH = 83h
  7710.     SI = 4358h
  7711.     AL = ???
  7712.     ES:BX -> ???
  7713.     ???
  7714. Return: ???
  7715. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7716.       Super PC-Kwik, and thus support this call
  7717. SeeAlso: AH=85h
  7718. Index:    PC-Cache|Qualitas Qcache
  7719. --------c-1384--SI4358-----------------------
  7720. INT 13 - Super PC-Kwik v3.20+ - ???
  7721.     AH = 84h
  7722.     SI = 4358h
  7723.     AL = ???
  7724.     ???
  7725. Return: AL = ???
  7726. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7727.       Super PC-Kwik, and thus support this call
  7728. SeeAlso: AH=82h
  7729. Index:    PC-Cache|Qualitas Qcache
  7730. --------c-1385--SI4358-----------------------
  7731. INT 13 - Super PC-Kwik v3.20+ - ???
  7732.     AH = 85h
  7733.     SI = 4358h
  7734.     AL = ???
  7735.     DL = ???
  7736.     ???
  7737. Return: ???
  7738. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7739.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  7740.       to PC-Kwik v3.20)
  7741. SeeAlso: AH=83h
  7742. Index:    PC-Cache|Qualitas Qcache
  7743. --------c-1386--SI4358-----------------------
  7744. INT 13 - Super PC-Kwik v4.00+ - ???
  7745.     AH = 86h
  7746.     SI = 4358h
  7747.     ???
  7748. Return: ???
  7749. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7750.       thus supports this call
  7751. Index:    Qualitas Qcache
  7752. --------c-1387--SI4358-----------------------
  7753. INT 13 - Super PC-Kwik v4.00+ - ???
  7754.     AH = 87h
  7755.     SI = 4358h
  7756.     ???
  7757. Return: AH = status??? (00h)
  7758.     CX = ???
  7759.     DX = ??? (0000h)
  7760. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7761.       thus supports this call
  7762. Index:    Qualitas Qcache
  7763. --------c-1388--SI4358-----------------------
  7764. INT 13 - Super PC-Kwik v4.00+ - ???
  7765.     AH = 88h
  7766.     SI = 4358h
  7767.     ???
  7768. Return: AH = status??? (00h)
  7769.     CX = ???
  7770.     DX = ??? (0000h)
  7771. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7772.       thus supports this call
  7773. Index:    Qualitas Qcache
  7774. --------c-1389--SI4358-----------------------
  7775. INT 13 - Super PC-Kwik v5.10+ - ???
  7776.     AH = 89h
  7777.     SI = 4358h
  7778.     ???
  7779. Return: ???
  7780. --------c-138A--SI4358-----------------------
  7781. INT 13 - Super PC-Kwik v5.10+ - ???
  7782.     AH = 8Ah
  7783.     SI = 4358h
  7784.     ???
  7785. Return: ???
  7786. --------c-138EED-----------------------------
  7787. INT 13 - HyperDisk v4.01+ - ???
  7788.     AX = 8EEDh
  7789.     ???
  7790. Return: ???
  7791. Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
  7792. SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AH=DFh
  7793. --------c-138EEE-----------------------------
  7794. INT 13 - HyperDisk v4.01+ - ???
  7795.     AX = 8EEEh
  7796. Return: CF set
  7797.     AX = CS of HyperDisk resident code
  7798.     ???
  7799. Note:    identical to AX=8EEFh in HYPERDKX v4.21-4.30
  7800. SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh
  7801. --------c-138EEF-----------------------------
  7802. INT 13 - HyperDisk v4.01+ - ???
  7803.     AX = 8EEFh
  7804. Return: CF set
  7805.     AX = CS of HyperDisk resident code
  7806.     ???
  7807. Note:    identical to AX=8EEEh in HYPERDKX v4.21-4.30
  7808. SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh
  7809. --------c-1392--SI4358-----------------------
  7810. INT 13 - Super PC-Kwik v5.10+ - ???
  7811.     AH = 92h
  7812.     SI = 4358h
  7813.     ???
  7814. Return: AH = status??? (00h)
  7815.     DL = ???
  7816. SeeAlso: AH=93h
  7817. --------c-1393--SI4358-----------------------
  7818. INT 13 - Super PC-Kwik v5.10+ - ???
  7819.     AH = 93h
  7820.     SI = 4358h
  7821.     ???
  7822. Return: AH = status??? (00h)
  7823.     AL = ???
  7824. SeeAlso: AH=92h
  7825. --------c-1394--SI4358-----------------------
  7826. INT 13 - Super PC-Kwik v5.10+ - ???
  7827.     AH = 94h
  7828.     SI = 4358h
  7829.     ???
  7830. Return: ???
  7831. --------c-1395--SI4358-----------------------
  7832. INT 13 - Super PC-Kwik v5.10+ - ???
  7833.     AH = 95h
  7834.     SI = 4358h
  7835.     ???
  7836. Return: AH = status??? (00h)
  7837.     DX = ???
  7838. --------c-1396--SI4358-----------------------
  7839. INT 13 - Super PC-Kwik v5.10+ - ???
  7840.     AH = 96h
  7841.     SI = 4358h
  7842.     AL = ??? (01h)
  7843.     BX = ??? (0790h)
  7844.     DL = ???
  7845. Return: AH = status??? (00h)
  7846.     DX = ???
  7847. --------c-1397--SI4358-----------------------
  7848. INT 13 - Super PC-Kwik v5.10+ - ???
  7849.     AH = 97h
  7850.     SI = 4358h
  7851.     ???
  7852. Return: ???
  7853. --------c-1398--SI4358-----------------------
  7854. INT 13 - Super PC-Kwik v5.10+ - ???
  7855.     AH = 98h
  7856.     SI = 4358h
  7857.     ???
  7858. Return: ???
  7859. --------c-1399--SI4358-----------------------
  7860. INT 13 - Super PC-Kwik v5.10+ - ???
  7861.     AH = 99h
  7862.     SI = 4358h
  7863.     ???
  7864. Return: ???
  7865. --------c-139A--SI4358-----------------------
  7866. INT 13 - Super PC-Kwik v5.10+ - ???
  7867.     AH = 9Ah
  7868.     SI = 4358h
  7869.     ???
  7870. Return: ???
  7871. --------c-139B--SI4358-----------------------
  7872. INT 13 - Super PC-Kwik v5.10+ - ???
  7873.     AH = 9Bh
  7874.     SI = 4358h
  7875.     ???
  7876. Return: ???
  7877. --------c-139C--SI4358-----------------------
  7878. INT 13 - Super PC-Kwik v5.10+ - ???
  7879.     AH = 9Ch
  7880.     SI = 4358h
  7881.     ???
  7882. Return: ???
  7883. Note:    functions 9Ch and 9Dh are the only ones which are fully reentrant; all
  7884.       other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear
  7885.       if a previous call is still in progress
  7886. --------c-139D--SI4358-----------------------
  7887. INT 13 - Super PC-Kwik v5.10+ - ???
  7888.     AH = 9Dh
  7889.     SI = 4358h
  7890.     ???
  7891. Return: ???
  7892. --------c-13A0--SI4358-----------------------
  7893. INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
  7894.     AH = A0h
  7895.     SI = 4358h
  7896. Return: AX = segment of resident code
  7897. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7898.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.5
  7899.       corresponds to PC-Kwik v3.27)
  7900. SeeAlso: INT 16/AX=FFA5h/CX=1111h
  7901. Index:    PC-Cache|Qualitas Qcache
  7902. --------c-13A1--SI4358-----------------------
  7903. INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
  7904.     AH = A1h
  7905.     SI = 4358h
  7906. Return: CF clear
  7907.     AH = 00h (v5.10)
  7908. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7909.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  7910.       corresponds to PC-Kwik v3.20)
  7911. SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
  7912. Index:    PC-Cache|Qualitas Qcache
  7913. --------c-13A2--SI4358-----------------------
  7914. INT 13 - Super PC-Kwik v3.20+ - ???
  7915.     AH = A2h
  7916.     SI = 4358h
  7917.     ???
  7918. Return: ???
  7919. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7920.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  7921.       corresponds to PC-Kwik v3.20)
  7922. Index:    PC-Cache|Qualitas Qcache
  7923. --------c-13A3--SI4358-----------------------
  7924. INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
  7925.     AH = A3h
  7926.     SI = 4358h
  7927. Return: CF clear
  7928. SeeAlso: AH=A4h
  7929. --------c-13A4--SI4358-----------------------
  7930. INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
  7931.     AH = A4h
  7932.     SI = 4358h
  7933. Return: CF clear
  7934. SeeAlso: AH=A3h
  7935. --------c-13A5--SI4358-----------------------
  7936. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
  7937.     AH = A5h
  7938.     SI = 4358h
  7939. Return: AX = ???
  7940.     SI = ???
  7941. Notes:    called and used internally by Super PC-Kwik when a program terminates
  7942.       via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch
  7943.     this call is not supported by Qualitas Qcache 4.00
  7944. Index:    PC-Cache
  7945. SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  7946. --------c-13A6--SI4358-----------------------
  7947. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
  7948.     AH = A6h
  7949.     SI = 4358h
  7950.     DS:DX -> ASCIZ program name
  7951.     ES:BX -> EXEC data block (see INT 21/AH=4Bh)
  7952. Return: ???
  7953. Note:    called and used internally by Super PC-Kwik when a program is loaded
  7954.       with INT 21/AX=4B00h
  7955. SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4Bh
  7956. --------c-13A7--SI4358-----------------------
  7957. INT 13 CU - Super PC-Kwik 5.1 - ???
  7958.     AH = A7h
  7959.     SI = 4358h
  7960. Return: ???
  7961. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  7962. SeeAlso: AH=A5h,AH=A6h,AH=A8h
  7963. --------c-13A8--SI4358-----------------------
  7964. INT 13 CU - Super PC-Kwik 5.1 - ???
  7965.     AH = A8h
  7966.     SI = 4358h
  7967. Return: ???
  7968. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  7969. SeeAlso: AH=A5h,AH=A6h,AH=A7h
  7970. --------c-13A9--SI4358-----------------------
  7971. INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
  7972.     AH = A9h
  7973.     SI = 4358h
  7974. Return: ???
  7975. Note:    called and used internally by Super PC-Kwik when an application issues
  7976.       INT 21/AH=4Dh
  7977. SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4Dh
  7978. --------c-13AA--SI4358-----------------------
  7979. INT 13 - Super PC-Kwik v4+ - ???
  7980.     AH = AAh
  7981.     SI = 4358h
  7982.     ???
  7983. Return: ???
  7984. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7985.       this call
  7986. --------c-13AB--SI4358-----------------------
  7987. INT 13 - Super PC-Kwik v4+ - ???
  7988.     AH = ABh
  7989.     SI = 4358h
  7990.     ???
  7991. Return: ???
  7992. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7993.       this call
  7994. --------c-13AC--SI4358-----------------------
  7995. INT 13 - Super PC-Kwik v4+ - ???
  7996.     AH = ACh
  7997.     SI = 4358h
  7998.     ???
  7999. Return: ???
  8000. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8001.       this call
  8002. --------d-13AD-------------------------------
  8003. INT 13 - Priam HARD DISK CONTROLLER???
  8004.     AH = ADh
  8005.     ???
  8006. Return: ???
  8007. Note:    this call is made from Priam's EFMT.EXE (low-level formatter), probably
  8008.       to check the ROM type on the controller for their hard disk kits
  8009. SeeAlso: AH=70h
  8010. --------c-13AD--SI4358-----------------------
  8011. INT 13 - Super PC-Kwik v4+ - ???
  8012.     AH = ADh
  8013.     SI = 4358h
  8014.     ???
  8015. Return: ???
  8016. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  8017.       this call
  8018. --------c-13AE--SI4358-----------------------
  8019. INT 13 - Super PC-Kwik v5.10+ - ???
  8020.     AH = AEh
  8021.     SI = 4358h
  8022.     ???
  8023. Return: ???
  8024. --------c-13B0--SI4358-----------------------
  8025. INT 13 - Super PC-Kwik v3.20+ - ???
  8026.     AH = B0h
  8027.     SI = 4358h
  8028.     ???
  8029. Return: ???
  8030. Note:    PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus
  8031.       supports this call; Qualitas Qcache does not support it
  8032. Index:    PC-Cache
  8033. --------d-13EE-------------------------------
  8034. INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
  8035.     AH = EEh
  8036.     DL = drive number (80h, 81h)
  8037. Return: CF clear
  8038.        AH = 00h
  8039. Program: SWBIOS is a TSR by Ontrack Computer Systems
  8040. Desc:    the following INT 13 call will add 1024 to the specified cylinder
  8041.       number to get the actual cylinder number desired
  8042. Notes:    the flag is cleared by all INT 13 calls except AH=EEh and AH=EFh
  8043.     Disk Manager also supports these calls
  8044.     this function is also supported by HyperDisk v4.01+ and PC-Cache v5.5+,
  8045.       in order to allow caching of drives using SWBIOS to access more than
  8046.       1024 cylinders
  8047.     for software which supports that call, this function is equivalent to
  8048.       calling AH=EFh with CX=0400h
  8049. SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AH=DFh
  8050. Index:    PC-Cache;huge disks|Disk Manager
  8051. --------c-13EF-------------------------------
  8052. INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
  8053.     AH = EFh
  8054.     CX = cylinder offset for next INT 13 call
  8055.     DL = drive number (80h, 81h)
  8056. Return: CF clear
  8057.         AH = 00h
  8058. Program: Drive Rocket is a drive accelerator by Ontrack Computer Systems for
  8059.       IDE drives supporting the read multiple and write multiple commands
  8060. Desc:    the following INT 13 call will add the number given by this call to
  8061.       the specified cylinder to get the actual cylinder number, then reset
  8062.       the offset to zero
  8063. Note:    this function is also supported by the NOW! disk cache, and presumably
  8064.       newer versions of SWBIOS and Disk Manager
  8065.     for software which supports this call, AH=EEh is equivalent to calling
  8066.       this function with CX=0400h
  8067.     the cylinder offset is reset to 0 by all INT 13 called except AH=EEh
  8068.       and AH=EFh
  8069. SeeAlso: AX=7B00h
  8070. --------d-13F9-------------------------------
  8071. INT 13 - SWBIOS - INSTALLATION CHECK
  8072.     AH = F9h
  8073.     DL = drive number (80h,81h)
  8074. Return: CF clear
  8075.         DX = configuration word
  8076.         bit 15 set if other SWBIOS extensions available
  8077.     CF set on error
  8078. Program: SWBIOS is a TSR by Ontrack Computer Systems
  8079. Note:    Disk Manager also supports these calls
  8080. SeeAlso: AH=EEh
  8081. Index:    Disk Manager
  8082. --------v-13FA--DX5945-----------------------
  8083. INT 13 - PC Tools v8+ VSAFE, VWATCH - API
  8084.     AH = FAh
  8085.     DX = 5945h
  8086.     AL = function (00h-07h)
  8087. Return: varies by function
  8088.     if not installed:
  8089.         CF set
  8090.         AH = 01h
  8091. Note:    this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
  8092.       so it is listed in its entirety under INT 16/AX=FA00h and following
  8093. SeeAlso: INT 16/AX=FA00h
  8094. --------d-13FE-------------------------------
  8095. INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
  8096.     AH = FEh
  8097.     DL = drive number (80h, 81h)
  8098. Return: CF clear
  8099.     DX = number of cylinders beyond 1024 on drive
  8100. Program: SWBIOS is a TSR by Ontrack Computer Systems
  8101. Notes:    standard INT 13/AH=08h will return a cylinder count truncated to 1024
  8102.     BIOS without this extension would return count modulo 1024
  8103.     Disk Manager also supports these calls
  8104. SeeAlso: AH=EEh
  8105. --------U-13FFFFBHAA-------------------------
  8106. INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
  8107.     AX = FFFFh
  8108.     BH = AAh
  8109.     BL = subfunction
  8110.         00h installation check
  8111.         Return: AX = 1234h if installed
  8112.         01h turn on Turbo mode
  8113.         02h turn off Turbo mode
  8114.         03h set Turbo mode according to hardware switch
  8115.         04h set disk access to Turbo mode
  8116.         05h set disk access to Normal mode
  8117. SeeAlso: INT 15/AH=DFh
  8118. Index:    installation check;UNIQUE UX Turbo Utility
  8119. --------S-14---------------------------------
  8120. INT 14 - SERIAL - Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)
  8121. Note:    the installation check for this driver is to determine whether the
  8122.       "~DOSXAM~" character device exists
  8123. Index:    installation check;Digiboard DigiCHANNEL
  8124. --------S-1400-------------------------------
  8125. INT 14 - SERIAL - INITIALIZE PORT
  8126.     AH = 00h
  8127.     AL = port parameters
  8128.         bits 7-5 data rate (110,150,300,600,1200,2400,4800,9600 bps)
  8129.         bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
  8130.         bit 2    stop bits (set = 2, clear = 1)
  8131.         bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
  8132.     DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
  8133. Return: AH = line status (see AH=03h)
  8134.         FFh if error on Digiboard XAPCM232.SYS
  8135.     AL = modem status (see AH=03h)
  8136. Notes:    default handler is at F000h:E739h in IBM PC and 100% compatible BIOSes
  8137.     since the PCjr supports a maximum of 4800 bps, attempting to set 9600
  8138.       bps will result in 4800 bps
  8139.     various network and serial-port drivers support the standard BIOS
  8140.       functions with interrupt-driven I/O instead of the BIOS's polled I/O
  8141.     the 04/08/93 Compaq system ROM uses only the low two bits of DX
  8142. SeeAlso: AH=04h"SERIAL",AH=04h"MultiDOS",AH=05h"SERIAL",AH=57h
  8143. SeeAlso: AX=8000h"ARTICOM",AH=81h"COMM-DRV",AH=82h"COURIERS",AH=8Ch
  8144. --------S-1400-------------------------------
  8145. INT 14 - FOSSIL (Fido/Opus/Seadog Standard Interface Level) - INITIALIZE
  8146.     AH = 00h
  8147.     AL = initializing parameters
  8148.         7 - 6 - 5       4 - 3     2      1 - 0
  8149.         -BAUD RATE-       PARITY   STOP   WORD
  8150.                     BITS  LENGTH
  8151.         000 19200 bd   00 none  0: 1  00: 5
  8152.         001 38400 bd   01 odd   1: 2  01: 6
  8153.         010      300 bd   11 even      10: 7
  8154.         011      600 bd          11: 8
  8155.         100     1200 bd
  8156.         101     2400 bd
  8157.         110     4800 bd
  8158.         111     9600 bd (4800 on PCjr)
  8159.     DX = port number (0-3 or FFh if only performing non-I/O setup)
  8160. Return: AH = RS-232 status code bits
  8161.         bit 0: RDA - input data is available in buffer
  8162.         bit 1: OVRN - data has been lost
  8163.         bit 5: THRE - room is available in output buffer
  8164.         bit 6: TSRE - output buffer empty
  8165.     AL = modem status bits
  8166.         bit 3: always 1
  8167.         bit 7: DCD - carrier detect
  8168. SeeAlso: AH=05h"FOSSIL",AH=81h"COMM-DRV",AH=82h"COURIERS"
  8169. --------S-1400-------------------------------
  8170. INT 14 - MBBIOS - INITIALIZE PORT
  8171.     AH = 00h
  8172.     AL = port parameters
  8173.         bits 7-5 data rate
  8174.             (normally 110,150,300,600,1200,2400,4800,9600 bps;
  8175.             9600,14400,19200,28800,38400,57600,115200,330400 bps
  8176.             if the high-speed option is set)
  8177.         bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
  8178.         bit 2    stop bits (set = 2, clear = 1)
  8179.         bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
  8180.     DX = port number
  8181. Return: AH = line status (see AH=03h)
  8182.     AL = modem status (see AH=03h)
  8183. Note:    MBBIOS was written by H. Roy Engehausen
  8184. SeeAlso: AH=04h"MBBIOS",AH=05h"MBBIOS",AH=09h"MBBIOS"
  8185. --------N-1400--DXFFFF-----------------------
  8186. INT 14 - Connection Manager - MODIFY DEFAULT CONNECTION PARAMETERS
  8187.     AH = 00h
  8188.     DX = FFFFh
  8189.     ES:DI -> vector string specifying new parameters
  8190. Return: AH = return code (00h,03h) (see below)
  8191. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8192.       serial ports over an IPX or NetBIOS-based network
  8193. Note:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  8194.       function, but redirects the port over the network; if DX is any other
  8195.       value, the call is chained
  8196. SeeAlso: AH=04h/DX=FFFFh,AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFh
  8197.  
  8198. Values for return code:
  8199.  00h    successful
  8200.  01h    no such connection
  8201.  02h    invalid connection ID
  8202.  03h    invalid subvector found
  8203.  04h    communication error (check BH)
  8204.  06h    insufficient resources, retry later
  8205.  FFh    no data available
  8206. --------S-1401-------------------------------
  8207. INT 14 - SERIAL - WRITE CHARACTER TO PORT
  8208.     AH = 01h
  8209.     AL = character to write
  8210.     DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
  8211. Return: AH bit 7 clear if successful
  8212.     AH bit 7 set on error
  8213.     AH bits 6-0 = port status (see AH=03h)
  8214. Notes:    various network and serial-port drivers support the standard BIOS
  8215.       functions with interrupt-driven I/O instead of the BIOS's polled I/O
  8216.     the 04/08/93 Compaq system ROM uses only the low two bits of DX
  8217. SeeAlso: AH=02h,AH=0Bh"FOSSIL",AX=8000h"ARTICOM",AH=89h
  8218. --------N-1401--DXFFFF-----------------------
  8219. INT 14 - Connection Manager - SEND CHARACTER
  8220.     AH = 01h
  8221.     DX = FFFFh
  8222.     BH = character to send
  8223. Return: AH = return code (00h-02h,06h) (see AH=00h/DX=FFFFh)
  8224. Notes:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  8225.       function, but redirects the port over the network; if DX is any other
  8226.       value, the call is chained
  8227.     this function is provided primarily for compatibility; AH=06h/DX=FFFFh
  8228.       is the preferred function because it provides better performance
  8229. SeeAlso: AH=02h/DX=FFFFh,AX=06h/DX=FFFFh,AH=09h/DX=FFFFh
  8230. --------S-1402-------------------------------
  8231. INT 14 - SERIAL - READ CHARACTER FROM PORT
  8232.     AH = 02h
  8233.     AL = 00h (ArtiCom)
  8234.     DX = port number (00h-03h (04h-43h for Digiboard XAPCM232.SYS))
  8235. Return: AH = line status (see AH=03h)
  8236.     AL = received character if AH bit 7 clear
  8237. Notes:    will timeout if DSR is not asserted, even if function 03h returns
  8238.       data ready
  8239.     various network and serial-port drivers support the standard BIOS
  8240.       functions with interrupt-driven I/O instead of the BIOS's polled I/O
  8241.     the 04/08/93 Compaq system ROM uses only the low two bits of DX
  8242. SeeAlso: AH=01h,AH=02h"FOSSIL",AH=84h,AH=FCh
  8243. --------S-1402-------------------------------
  8244. INT 14 - FOSSIL - RECEIVE CHARACTER WITH WAIT
  8245.     AH = 02h
  8246.     DX = port number (0-3)
  8247. Return: AL = character received
  8248.     AH = 00h
  8249. SeeAlso: AH=01h,AH=02h"SERIAL"
  8250. --------N-1402--DXFFFF-----------------------
  8251. INT 14 - Connection Manager - RECEIVE CHARACTER
  8252.     AH = 02h
  8253.     DX = FFFFh
  8254.     BH = character to send
  8255. Return: AH = return code (00h-02h,04h,FFh) (see AH=00h/DX=FFFFh)
  8256.     BH = line status (see AH=03h)
  8257.     AL = received character (if any)
  8258. Notes:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  8259.       function, but redirects the port over the network; if DX is any other
  8260.       value, the call is chained
  8261.     this function is provided primarily for compatibility; AH=07h/DX=FFFFh
  8262.       is the preferred function because it provides better performance
  8263. SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFh,AH=06h/DX=FFFFh
  8264. --------S-1403-------------------------------
  8265. INT 14 - SERIAL - GET PORT STATUS
  8266.     AH = 03h
  8267.     AL = 00h (ArtiCom)
  8268.     DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
  8269. Return: AH = line status (see below)
  8270.     AL = modem status (see below)
  8271.     AX = 9E00h if disconnected (ArtiCom)
  8272. Note:    the 04/08/93 Compaq system ROM uses only the low two bits of DX
  8273. SeeAlso: AH=00h,AH=07h"MultiDOS",AX=8000h"ARTICOM",AH=81h"COURIERS",AX=FD02h
  8274.  
  8275. Bitfields for line status:
  8276.  bit 7    timeout
  8277.  bit 6    transmit shift register empty
  8278.  bit 5    transmit holding register empty
  8279.  bit 4    break detected
  8280.  bit 3    framing error
  8281.  bit 2    parity error
  8282.  bit 1    overrun error
  8283.  bit 0    receive data ready
  8284.  
  8285. Bitfields for modem status:
  8286.  bit 7    carrier detect
  8287.  bit 6    ring indicator
  8288.  bit 5    data set ready
  8289.  bit 4    clear to send
  8290.  bit 3    delta carrier detect
  8291.  bit 2    trailing edge of ring indicator
  8292.  bit 1    delta data set ready
  8293.  bit 0    delta clear to send
  8294. --------N-1403--DXFFFF-----------------------
  8295. INT 14 - Connection Manager - RETURN COMMUNICATION PORT STATUS
  8296.     AH = 03h
  8297.     DX = FFFFh
  8298.     AL = connection ID
  8299. Return: AH = return code (00h-02h) (see AH=00h/DX=FFFFh)
  8300.     BH = line status (see below)
  8301.     BL = modem status (see AH=03h above) (only bits 4,5,7; all others zero)
  8302. Notes:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  8303.       function, but redirects the port over the network; if DX is any other
  8304.       value, the call is chained
  8305. SeeAlso: AH=00h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Ah/DX=FFFFh
  8306.  
  8307. Bitfields for line status:
  8308.  bit 7    CTS changed
  8309.  bit 6    current CTS state
  8310.  bit 5    timeout
  8311.  bit 4    break
  8312.  bit 3    framing error
  8313.  bit 2    parity error
  8314.  bit 1    overrun
  8315.  bit 0    current carrier state (0 active, 1 no carrier)
  8316. --------S-1404-------------------------------
  8317. INT 14 - SERIAL - EXTENDED INITIALIZE (CONVERTIBLE,PS)
  8318.     AH = 04h
  8319.     AL = break status
  8320.         00h if break
  8321.         01h if no break
  8322.     BH = parity (see below)
  8323.     BL = number of stop bits
  8324.         00h one stop bit
  8325.         01h two stop bits (1.5 if 5 bit word length)
  8326.     CH = word length (see below)
  8327.     CL = bps rate (see below)
  8328.     DX = port number
  8329. Return: AX = port status code (see AH=00h)
  8330. SeeAlso: AH=00h,AH=1Eh,AX=8000h"ARTICOM"
  8331.  
  8332. Values for parity:
  8333.  00h    no parity
  8334.  01h    odd parity
  8335.  02h    even parity
  8336.  03h    stick parity odd
  8337.  04h    stick parity even
  8338.  
  8339. Values for word length:
  8340.  00h    5 bits
  8341.  01h    6 bits
  8342.  02h    7 bits
  8343.  03h    8 bits
  8344.  
  8345. Values for bps rate:
  8346.  00h    110
  8347.  01h    150
  8348.  02h    300
  8349.  03h    600
  8350.  04h    1200
  8351.  05h    2400
  8352.  06h    4800
  8353.  07h    9600
  8354.  08h    19200
  8355. --------S-1404-------------------------------
  8356. INT 14 - FOSSIL - INITIALIZE DRIVER
  8357.     AH = 04h
  8358.     DX = port number
  8359.     optionally BX=4F50h
  8360.            ES:CX -> byte to be set upon ^C
  8361. Return: AX = 1954h (if successful)
  8362.     BL = maximum function number supported (excluding 7Eh and above)
  8363.     BH = revision of FOSSIL specification supported
  8364.     DTR is raised
  8365. Note:    the word at offset 6 in the interrupt handler contains 1954h, and the
  8366.       following byte contains the maximum function number supported; this
  8367.       can serve as an installation check
  8368. SeeAlso: AH=05h"FOSSIL",AH=1Ch,INT 11/AH=BCh
  8369. Index:    installation check;FOSSIL
  8370. --------S-1404-------------------------------
  8371. INT 14 - MultiDOS Plus IODRV - INITIALIZE PORT
  8372.     AH = 04h
  8373. Return: port initialized; if Hayes-compatible modem, a connection has been
  8374.       established
  8375. Note:    the port number is stored at offset BEh in the Task Control Block
  8376.       (see INT 15/AH=13h"MultiDOS")
  8377. SeeAlso: AH=00h,AH=05h"MultiDOS",AH=20h"MultiDOS",INT 15/AH=13h"MultiDOS"
  8378. --------S-1404-------------------------------
  8379. INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE BAUD RATE
  8380.     AH = 04h
  8381.     AL = initializing parameters
  8382.         bits 7-5 unused
  8383.         bits 4,3: parity (00 none, 01 odd, 11 even)
  8384.         bit 2: stop bits (0 = one, 1 = two)
  8385.         bits 1,0: data bits (00 = five, 01 = six, 10 = seven, 11 = eight)
  8386.     BX = baud rate
  8387.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8388. Return: AH = status
  8389.         00h successful
  8390.         FFh error
  8391. SeeAlso: AH=05h"Digiboard"
  8392. --------S-1404-------------------------------
  8393. INT 14 - MBBIOS - INSTALLATION CHECK
  8394.     AH = 04h
  8395.     DX = port number
  8396. Return: AX = AA55h if installed on specified port
  8397. SeeAlso: AH=00h"MBBIOS",AH=09h"MBBIOS"
  8398. --------N-1404--DXFFFF-----------------------
  8399. INT 14 - Connection Manager - OPEN COMMUNICATION
  8400.     AH = 04h
  8401.     DX = FFFFh
  8402.     ES:DI -> Connection Request protocol vector (see below)
  8403. Return: AH = return code
  8404.         00h successful
  8405.         AL = connection ID
  8406.         BH = connection type
  8407.             00h direct connection or no dialing
  8408.             01h Connection Server dialed phone
  8409.         01h no response from Connection Server
  8410.         03h invalid request
  8411. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8412.       serial ports over an IPX or NetBIOS-based network
  8413. Desc:    initiate a connection to the Connection Server listed in the current
  8414.       Client parameter set
  8415. Notes:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  8416.       function, but redirects the port over the network; if DX is any other
  8417.       value, the call is chained
  8418.     all subvectors of the Connection Request vector are optional; if
  8419.       missing, default values are provided by the default connection
  8420.       parameter set
  8421. SeeAlso: AH=00h/DX=FFFFh,AH=05h/DX=FFFFh,AH=06h/DX=FFFFh,AH=07h/DX=FFFFh
  8422. SeeAlso: AH=0Ah/DX=FFFFh,AH=0Ch/DX=FFFFh
  8423.  
  8424. Format of protocol command vector:
  8425. Offset    Size    Description
  8426.  00h    WORD    (big-endian) total length of command (including this word)
  8427.  02h    WORD    (big-endian) command code
  8428.         EF01h Connection Request
  8429.         EF06h Modify Connection Parameters
  8430.  04h  N BYTEs    list of subvectors (see below)
  8431.         allowable subvector types are 01h-04h,17h,18h for command code
  8432.           EF01h; 03h,04h for command code EF06h
  8433.  
  8434. Values for subvector type code:
  8435.  01h    Connection ID
  8436.  02h    Destination ID
  8437.  03h    Asynchronous line parameters
  8438.  04h    Data transfer parameters
  8439.  09h    Line speed
  8440.  0Ah    Serial coding
  8441.  0Bh    Packet size
  8442.  0Ch    Timers
  8443.  0Dh    Special characters
  8444.  0Eh    Target ID
  8445.  0Fh    Telephone number
  8446.  10h    ASCII destination ID
  8447.  11h    Parity
  8448.  12h    Bits per character
  8449.  13h    Number of stop bits
  8450.  14h    Packet timer
  8451.  15h    Intercharacter timer
  8452.  17h    Flags
  8453.  18h    Parameter ranges
  8454.  19h    Flow control
  8455.  
  8456. Format of subvector:
  8457. Offset    Size    Description
  8458.  00h    BYTE    length of subvector
  8459.  01h    BYTE    type code (see above)
  8460.  02h N-2 BYTEs    data, which may include subvectors
  8461.  
  8462. Format of Connection ID subvector:
  8463. Offset    Size    Description
  8464.  00h    BYTE    03h (length)
  8465.  01h    BYTE    01h (subvector "Connection ID")
  8466.  02h    BYTE    connection ID
  8467.  
  8468. Format of Destination ID subvector:
  8469. Offset    Size    Description
  8470.  00h    BYTE    length
  8471.  01h    BYTE    02h (subvector "Destination ID")
  8472.  02h  N BYTEs    subvector(s) of type 0Eh, 0Fh, or 10h
  8473.  
  8474. Format of Asynchronous line parameters subvector:
  8475. Offset    Size    Description
  8476.  00h    BYTE    length
  8477.  01h    BYTE    03h (subvector "Asynchronous line parameters")
  8478.  02h  N BYTEs    subvector(s) of type 09h, 0Ah, or 19h
  8479.  
  8480. Format of Data transfer parameters subvector:
  8481. Offset    Size    Description
  8482.  00h    BYTE    length
  8483.  01h    BYTE    04h (subvector "Data transfer parameters")
  8484.  02h  N BYTEs    subvector(s) of type 0Bh, 0Ch, or 0Dh
  8485.  
  8486. Format of Line speed subvector:
  8487. Offset    Size    Description
  8488.  00h    BYTE    04h (length)
  8489.  01h    BYTE    09h (subvector "Line speed")
  8490.  02h    WORD    bit map, highest set bit selects speed
  8491.         bit 0: 2400
  8492.         bits 1-7: 1800, 1200, 600, 300, 115200, 150, 110 bps
  8493.         bits 8-15: 57600, 38400, 19200, 14400, 9600, 7200, 4800, 3600
  8494.  
  8495. Format of Serial coding subvector:
  8496. Offset    Size    Description
  8497.  00h    BYTE    length
  8498.  01h    BYTE    0Ah (subvector "Serial coding")
  8499.  02h  N BYTEs    subvector(s) of type 11h, 12h, or 13h
  8500.  
  8501. Format of Packet size subvector:
  8502. Offset    Size    Description
  8503.  00h    BYTE    04h (length)
  8504.  01h    BYTE    0Bh (subvector "Packet size")
  8505.  02h    WORD    (big-endian) packet size, 1 to 1024
  8506.  
  8507. Format of Timers subvector:
  8508. Offset    Size    Description
  8509.  00h    BYTE    length
  8510.  01h    BYTE    0Ch (subvector "Timers")
  8511.  02h  8 BYTEs    subvector of type 14h or 15h
  8512.  
  8513. Format of Special characters subvector:
  8514. Offset    Size    Description
  8515.  00h    BYTE    length
  8516.  01h    BYTE    0Dh (subvector "Special characters")
  8517.  02h  N BYTEs    list of ASCII characters to be used as EOM or EOB
  8518.  
  8519. Format of Target ID:
  8520. Offset    Size    Description
  8521.  00h    BYTE    length
  8522.  01h    BYTE    0Eh (subvector "Target ID")
  8523.  02h  N BYTEs    target ID, 1-16 bytes
  8524.  
  8525. Format of Telephone number subvector:
  8526. Offset    Size    Description
  8527.  00h    BYTE    length
  8528.  01h    BYTE    0Fh (subvector "Telephone number")
  8529.  02h  N BYTEs    telephone number
  8530.  
  8531. Format of ASCII destination ID subvector:
  8532. Offset    Size    Description
  8533.  00h    BYTE    length
  8534.  01h    BYTE    10h (subvector "ASCII destination ID")
  8535.  02h  N BYTEs    destination ID
  8536.  
  8537. Format of Parity subvector:
  8538. Offset    Size    Description
  8539.  00h    BYTE    03h (length)
  8540.  01h    BYTE    11h (subvector "Parity")
  8541.  02h    BYTE    parity type
  8542.         bit 7: odd
  8543.         bit 6: even
  8544.         bit 5: mark
  8545.         bit 4: space
  8546.         bit 3: none
  8547.  
  8548. Format of Bits per character subvector:
  8549. Offset    Size    Description
  8550.  00h    BYTE    03h (length)
  8551.  01h    BYTE    12h (subvector "Bits per character")
  8552.  02h    BYTE    bits per character
  8553.         bit 7: seven
  8554.         bit 6: eight
  8555.  
  8556. Format of Number of stop bits subvector:
  8557. Offset    Size    Description
  8558.  00h    BYTE    03h (length)
  8559.  01h    BYTE    13h (subvector "Number of stop bits")
  8560.  02h    BYTE    stop bits
  8561.         bit 7: one
  8562.         bit 6: 1.5
  8563.         bit 5: two
  8564.  
  8565. Format of Packet timer and Intercharacter timer subvectors:
  8566. Offset    Size    Description
  8567.  00h    BYTE    04h (length)
  8568.  01h    BYTE    subvector type
  8569.         14h Packet timer
  8570.         15h Intercharacter timer
  8571.  02h    WORD    (big-endian) unit of value representing 20ms
  8572.  
  8573. Format of Flags subvector:
  8574. Offset    Size    Description
  8575.  00h    BYTE    03h (length)
  8576.  01h    BYTE    17h (subvector "Flags")
  8577.  02h    BYTE    flags
  8578.         bit 7: queueing requested
  8579.  
  8580. Format of Parameter ranges subvector:
  8581. Offset    Size    Description
  8582.  00h    BYTE    length
  8583.  01h    BYTE    18h (subvector "Parameter ranges")
  8584.  02h  N BYTEs    subvector(s) of type 09h, 11h, 12h, or 13h
  8585.  
  8586. Format of Flow control subvector:
  8587. Offset    Size    Description
  8588.  00h    BYTE    length (02h-04h)
  8589.  01h    BYTE    19h (subvector "Flow control")
  8590.  02h    BYTE    XOFF character
  8591.  03h    BYTE    XON character
  8592. Note:    if length is 02h, flow control is disabled; if length is 03h, any
  8593.       character will be accepted as XON after an XOFF
  8594. --------S-140400-----------------------------
  8595. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INSTALLATION CHECK
  8596.     AX = 0400h
  8597. Return: AX = 0FF0h
  8598. SeeAlso: AX=0401h,AX=0408h
  8599. --------S-140401-----------------------------
  8600. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INITIALIZE MODE
  8601.     AX = 0401h
  8602.     CX = mode
  8603. SeeAlso: AX=0400h,AX=0402h
  8604. --------S-140402-----------------------------
  8605. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - EXTENDED INITIALIZE
  8606.     AX = 0402h
  8607.     CL = parameters
  8608. SeeAlso: AX=0400h,AX=0401h
  8609. --------S-140403-----------------------------
  8610. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - SET TIMEOUT
  8611.     AX = 0403h
  8612.     CX = timeout
  8613. SeeAlso: AX=0400h
  8614. --------S-140404-----------------------------
  8615. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE RECEIVE BUFFER
  8616.     AX = 0404h
  8617. SeeAlso: AX=0400h,AX=0405h,AX=0406h
  8618. --------S-140405-----------------------------
  8619. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET RECEIVE BUFFER COUNT
  8620.     AX = 0405h
  8621. Return: AX = number of characters in buffer
  8622. SeeAlso: AX=0400h,AX=0404h,AX=0407h
  8623. --------S-140406-----------------------------
  8624. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE TRANSMIT BUFFER
  8625.     AX = 0406h
  8626. SeeAlso: AX=0400h,AX=0404h,AX=0407h
  8627. --------S-140407-----------------------------
  8628. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET TRANSMIT BUFFER COUNT
  8629.     AX = 0407h
  8630. Return: AX = number of characters in the buffer
  8631. SeeAlso: AX=0400h,AX=0405h,AX=0406h
  8632. --------S-140408-----------------------------
  8633. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - UNINSTALL
  8634.     AX = 0408h
  8635. SeeAlso: AX=0400h
  8636. --------S-1405-------------------------------
  8637. INT 14 - SERIAL - EXTENDED COMMUNICATION PORT CONTROL (CONVERTIBLE,PS)
  8638.     AH = 05h
  8639.     AL = function
  8640.         00h read modem control register
  8641.           Return: BL = modem control register (see below)
  8642.               AH = status
  8643.         01h write modem control register
  8644.           BL = modem control register (see below)
  8645.           Return: AX = status
  8646.     DX = port number
  8647. Note:    also supported by ArtiCom
  8648. SeeAlso: AH=00h,AH=1Fh,AX=8000h"ARTICOM",AH=FBh
  8649.  
  8650. Bitfields for modem control register:
  8651.  bit 0    data terminal ready
  8652.  bit 1    request to send
  8653.  bit 2    OUT1
  8654.  bit 3    OUT2
  8655.  bit 4    LOOP
  8656.  bits 5-7 reserved
  8657. --------S-1405-------------------------------
  8658. INT 14 - FOSSIL - DEINITIALIZE DRIVER
  8659.     AH = 05h
  8660.     DX = port number
  8661. Return: none
  8662.     DTR is not affected
  8663. SeeAlso: AH=00h,AH=04h"FOSSIL",AH=1Dh,AH=8Dh
  8664. --------S-1405-------------------------------
  8665. INT 14 - MultiDOS Plus IODRV - READ CHARACTER FROM PORT
  8666.     AH = 05h
  8667.     AL = timeout in seconds (00h = never)
  8668. Return: AL = status
  8669.         00h successful
  8670.         AH = character read
  8671.         01h read error
  8672.         02h timed out
  8673.         other modem status (CTS, DSR) changed
  8674. Note:    the port number is stored at offset BEh in the Task Control Block
  8675. SeeAlso: AH=02h,AH=04h"MultiDOS",AH=06h"MultiDOS",AH=22h"MultiDOS"
  8676. SeeAlso: INT 15/AH=13h"MultiDOS"
  8677. --------S-1405-------------------------------
  8678. INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE PROTOCOL
  8679.     AH = 05h
  8680.     AL = protocol
  8681.         bits 7-4 unused
  8682.         bit 3: RTS/CTS
  8683.         bit 2: DSR
  8684.         bits 1,0: XON/XOFF
  8685.     BH = new XOFF character (00h = current)
  8686.     BL = new XON character (00h = current)
  8687.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8688. Return: AH = status
  8689.         00h successful
  8690.         FFh error
  8691. SeeAlso: AH=04h"Digiboard"
  8692. --------S-1405-------------------------------
  8693. INT 14 - MBBIOS - DROP DTR AND RTS
  8694.     AH = 05h
  8695.     DX = port number
  8696. Return: none
  8697. SeeAlso: AH=00h"MBBIOS",AH=06h"MBBIOS",AH=06h"FOSSIL"
  8698. --------S-1405-------------------------------
  8699. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHANGE PORT PROTOCOL
  8700.     AH = 05h
  8701.     AL = bit 7: set to enable/disable CD monitoring, clear to set protocol
  8702.          ---bit 7 set---
  8703.          bit 4: CD monitoring enabled
  8704.          bit 5: automatic restart enabled
  8705.          ---bit 7 clear---
  8706.          bit 0: receive XON/XOFF
  8707.          bit 1: transmit XON/XOFF
  8708.          bit 2: DTR/DSR
  8709.          bit 3: RTS/CTS
  8710.     BH = new XOFF character
  8711.     BL = new XON character
  8712.     DX = port number
  8713. Return: AH = FFh if invalid protocol
  8714. SeeAlso: AH=00h,AH=04h"SERIAL",AH=06h"PC-MOS"
  8715. --------N-1405--DXFFFF-----------------------
  8716. INT 14 - Connection Manager - CLOSE COMMUNICATION
  8717.     AH = 05h
  8718.     DX = FFFFh
  8719.     AL = connection ID
  8720. Return: AH = return code
  8721.         00h successful
  8722.         01h no such connection
  8723.         02h invalid connection ID
  8724.         AL = correct connection ID
  8725. Desc:    terminate existing connection to allow another one to be established
  8726. Note:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  8727.       function, but redirects the port over the network; if DX is any other
  8728.       value, the call is chained
  8729. SeeAlso: AH=04h/DX=FFFFh,AH=0Dh/DX=FFFFh
  8730. --------S-1406-------------------------------
  8731. INT 14 - FOSSIL - RAISE/LOWER DTR
  8732.     AH = 06h
  8733.     DX = port
  8734.     AL = DTR state to be set
  8735.         00h = lower
  8736.         01h = raise
  8737. SeeAlso: AH=05h"MBBIOS",AH=1Ah
  8738. --------S-1406-------------------------------
  8739. INT 14 - MultiDOS Plus IODRV - WRITE CHARACTER TO PORT
  8740.     AH = 06h
  8741.     AL = character
  8742. Return: AL = status
  8743.         00h successful
  8744. Notes:    the port number is stored at offset BEh in the Task Control Block
  8745.     if output queue is full, the calling task is blocked until the
  8746.       character can be stored
  8747. SeeAlso: AH=01h,AH=04h"MultiDOS",AH=05h"MultiDOS",AH=21h"MultiDOS"
  8748. SeeAlso: INT 15/AH=13h"MultiDOS"
  8749. --------S-1406-------------------------------
  8750. INT 14 - MBBIOS - RAISE DTR AND RTS
  8751.     AH = 06h
  8752.     DX = port number
  8753. Return: none
  8754. SeeAlso: AH=05h"MBBIOS",AH=07h"MBBIOS"
  8755. --------S-1406-------------------------------
  8756. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DRIVER 'ID' FUNCTION
  8757.     AH = 06h
  8758.     DX = port number
  8759. Return: AH bit 7 set
  8760.     AL = number of highest function supported by driver
  8761. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  8762.       operating system by The Software Link, Inc.
  8763. SeeAlso: AH=18h"PC-MOS"
  8764. --------N-1406-------------------------------
  8765. INT 14 - TelAPI - WRITE???
  8766.     AH = 06h
  8767.     CX = number of characters to write???
  8768.     DX = port number
  8769.     ES:DI -> buffer containing data???
  8770. Return: AX = number of characters actually sent??? (negative on error)
  8771.     CX = ???
  8772. Note:    under Novell TELAPI.EXE v4.01, this function and AH=07h are implemented
  8773.       with identical code
  8774. SeeAlso: AH=07h"TelAPI",AH=E0h"TelAPI"
  8775. --------N-1406--DXFFFF-----------------------
  8776. INT 14 - Connection Manager - SEND CHARACTER BLOCK
  8777.     AH = 06h
  8778.     DX = FFFFh
  8779.     AL = connection ID
  8780.     CX = number of characters to send
  8781.     ES:DI -> buffer containing data to be sent
  8782. Return: AH = return code (see AH=00h/DX=FFFFh)
  8783. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8784.       serial ports over an IPX or NetBIOS-based network
  8785. SeeAlso: AH=04h/DX=FFFFh,AH=07h/DX=FFFFh,AH=09h/DX=FFFFh
  8786. --------S-1407-------------------------------
  8787. INT 14 - FOSSIL - RETURN TIMER TICK PARAMETERS
  8788.     AH = 07h
  8789. Return: AL = timer tick interrupt number
  8790.     AH = ticks per second on interrupt number in AL
  8791.     DX = approximate number of milliseconds per tick
  8792. SeeAlso: AH=16h
  8793. --------S-1407-------------------------------
  8794. INT 14 - MultiDOS Plus IODRV - GET PORT STATUS
  8795.     AH = 07h
  8796. Return: CL = modem status (see AH=03h)
  8797.     CH = character at head of input queue (if any)
  8798.     DX = number of characters in input queue
  8799. Note:    the port number is stored at offset BEh in the Task Control Block
  8800. SeeAlso: AH=03h,AH=05h"MultiDOS",AH=08h"MultiDOS",AH=09h"MultiDOS"
  8801. SeeAlso: AH=23h"MultiDOS",INT 15/AH=13h"MultiDOS"
  8802. --------S-1407-------------------------------
  8803. INT 14 - MBBIOS - SEND BREAK
  8804.     AH = 07h
  8805.     DX = port number
  8806. Return: none
  8807. SeeAlso: AH=06h"MBBIOS"
  8808. --------S-1407-------------------------------
  8809. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SEND RS-232 BREAK
  8810.     AH = 07h
  8811.     BX = duration of break in clock ticks
  8812.     DX = port number
  8813. Return: nothing
  8814. --------N-1407-------------------------------
  8815. INT 14 - TelAPI - WRITE???
  8816.     AH = 07h
  8817.     CX = number of characters to write???
  8818.     DX = port number
  8819.     ES:DI -> buffer containing data???
  8820. Return: AX = number of characters actually sent??? (negative on error)
  8821.     CX = ???
  8822. Note:    under Novell TELAPI.EXE v4.01, this function and AH=06h are implemented
  8823.       with identical code
  8824. SeeAlso: AH=06h"TelAPI",AH=E0h"TelAPI"
  8825. --------N-1407--DXFFFF-----------------------
  8826. INT 14 - Connection Manager - RECEIVE CHARACTER BLOCK
  8827.     AH = 07h
  8828.     DX = FFFFh
  8829.     AL = connection ID
  8830.     BL = flag
  8831.         00h wait for data
  8832.         nonzero do not wait if no data avaiable
  8833.     CX = size of receive buffer
  8834.     ES:DI -> buffer for received characters
  8835. Return: AH = return code (00h-02h,04h,FFh) (see AH=00h/DX=FFFFh)
  8836.     BH = line status (see AH=03h/DX=FFFFh)
  8837.     CX = number of characters received
  8838. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8839.       serial ports over an IPX or NetBIOS-based network
  8840. SeeAlso: AH=01h/DX=FFFFh,AH=04h/DX=FFFFh,AH=06h/DX=FFFFh
  8841. --------S-1408-------------------------------
  8842. INT 14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE
  8843.     AH = 08h
  8844.     DX = port number
  8845. SeeAlso: AH=09h"FOSSIL"
  8846. --------S-1408-------------------------------
  8847. INT 14 - MultiDOS Plus 4.0 IODRV - GET AND RESET PORT LINE STATUS
  8848.     AH = 08h
  8849. Return: AL = line status (see AH=03h)
  8850.     AH destroyed
  8851. Notes:    the port number is stored at offset BEh in the Task Control Block
  8852.     on every line status change, the line status is ORed with the line
  8853.       status accumulator; this function returns the accumulator and clears
  8854.       it
  8855. SeeAlso: AH=03h,AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
  8856. --------S-1408-------------------------------
  8857. INT 14 - Digiboard DigiCHANNEL PC/X* - ALTERNATE STATUS CHECK
  8858.     AH = 08h
  8859.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8860. Return: AH = RS232 status bits (see AH=03h)
  8861.     ZF set if no characters queued
  8862.     ZF clear if character available
  8863.         AL = next character
  8864. SeeAlso: AH=03h,AH=08h"PC-MOS",AH=09h"Digiboard",AH=14h"Digiboard"
  8865. --------S-1408-------------------------------
  8866. INT 14 - MBBIOS - NON-DESTRUCTIVE READ
  8867.     AH = 08h
  8868.     DX = port number
  8869. Return: AL = character (if AH bit 0 set)
  8870.     AH = status (see AH=03h)
  8871. SeeAlso: AH=0Bh"MBBIOS",AH=0Ch"FOSSIL"
  8872. --------S-1408-------------------------------
  8873. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STATUS CHECK
  8874.     AH = 08h
  8875.     DX = port number
  8876. Return: CF set if carrier loss detected
  8877.     ZF set if input buffer empty
  8878.     ZF clear if characters available
  8879.         AL = next character dequeued
  8880. --------N-1408--DXFFFF-----------------------
  8881. INT 14 - Connection Manager - RETURN DEFAULT CONNECTION PARAMETERS
  8882.     AH = 08h
  8883.     DX = FFFFh
  8884.     CX = size of buffer for parameters or 0000h to get length
  8885.     ES:DI -> buffer for parameter vector (see AH=04h/DX=FFFFh)
  8886. Return: AH = return code
  8887.         00h successful
  8888.         CX = number of bytes required (if CX=0000h on entry)
  8889.         CX = number of bytes omitted for lack of space (if CX nonzero)
  8890.         nonzero invalid request
  8891. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8892.       serial ports over an IPX or NetBIOS-based network
  8893. SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFh
  8894. --------S-1409-------------------------------
  8895. INT 14 - FOSSIL - PURGE OUTPUT BUFFER THROWING AWAY ALL PENDING OUTPUT
  8896.     AH = 09h
  8897.     DX = port number
  8898. SeeAlso: AH=08h"FOSSIL",AH=0Ah"FOSSIL",AH=88h
  8899. --------S-1409-------------------------------
  8900. INT 14 - MultiDOS Plus IODRV - RESET PORT STATUS
  8901.     AH = 09h
  8902. Return: modem status byte cleared
  8903. Note:    the port number is stored at offset BEh in the Task Control Block
  8904. SeeAlso: AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
  8905. --------S-1409-------------------------------
  8906. INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR BUFFERS
  8907.     AH = 09h
  8908.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8909. Return: AH = status
  8910.         00h successful
  8911.         FFh error
  8912. SeeAlso: AH=08h"Digiboard",AH=0Ah"Digiboard",AH=10h"Digiboard"
  8913. --------S-1409-------------------------------
  8914. INT 14 - MBBIOS - GET/SET OPTIONS
  8915.     AH = 09h
  8916.     AL = option byte (see below)
  8917.     DX = port number???
  8918. Return: AL = old option byte
  8919. SeeAlso: AH=00h"MBBIOS",AH=04h"MBBIOS",AH=10h"FOSSIL"
  8920.  
  8921. Bitfields for option byte:
  8922.  bit 0    transmit buffering enabled
  8923.  bit 2    hardware handshaking enabled
  8924.  bit 5    high-speed option enabled (see AH=00h"MBBIOS")
  8925.  other bits reserved
  8926. --------S-1409-------------------------------
  8927. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RESET I/O BUFFER POINTERS
  8928.     AH = 09h
  8929.     DX = port number
  8930. Return: nothing
  8931. SeeAlso: AH=13h"PC-MOS"
  8932. --------N-1409--DXFFFF-----------------------
  8933. INT 14 - Connection Manager - SEND BREAK
  8934.     AH = 09h
  8935.     DX = FFFFh
  8936.     AL = connection ID
  8937. Return: AH = return code (00h-02h) (see AH=00h/DX=FFFFh)
  8938. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8939.       serial ports over an IPX or NetBIOS-based network
  8940. SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFh
  8941. --------S-140A-------------------------------
  8942. INT 14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT
  8943.     AH = 0Ah
  8944.     DX = port number
  8945. SeeAlso: AH=09h"FOSSIL",AH=85h
  8946. --------S-140A-------------------------------
  8947. INT 14 - Digiboard DigiCHANNEL PC/X* - INPUT QUEUE CHECK
  8948.     AH = 0Ah
  8949.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8950. Return: AX = number of characters available in buffer
  8951. Note:    this function is also supported by the PC-MOS/386 v5.01 $serial.sys
  8952. SeeAlso: AH=09h"Digiboard",AH=0Dh"Digiboard"
  8953. --------S-140A-------------------------------
  8954. INT 14 - MBBIOS - WRITE BUFFER
  8955.     AH = 0Ah
  8956.     CX = count
  8957.     ES:DI -> buffer
  8958. Return: AX = status (see AH=03h)
  8959.     CX = unsent character count
  8960.     DI updated
  8961. Note:    the PACCOM version of MBBIOS does not use CX or ES:DI; instead, ES
  8962.       contains the segment of a buffer containing the packet to be sent,
  8963.       which by default will be freed once the packet has been sent.     Use
  8964.       AH=0Ch"MBBIOS" to allocate the buffer.
  8965. SeeAlso: AH=01h,AH=0Bh"MBBIOS",AH=0Ch"MBBIOS",AH=19h"FOSSIL"
  8966.  
  8967. Format of PACCOM buffer:
  8968. Offset    Size    Description
  8969.  00h 504 BYTEs    data area
  8970. 1F8h    WORD    length of data in data area
  8971. 1FAh    BYTE    flags/status
  8972.         bit 7: don't discard buffer after transmitting data
  8973.         bit 6: buffer has been transmitted
  8974. 1FBh    BYTE    reserved (0) for additional flags/status
  8975. 1FCh    WORD    user data
  8976. 1FEh    WORD    MBBIOS-internal pointer to next buffer
  8977. --------N-140A--DXFFFF-----------------------
  8978. INT 14 - Connection Manager - MODIFY ACTIVE CONNECTION PARAMETERS
  8979.     AH = 0Ah
  8980.     DX = FFFFh
  8981.     ES:DI -> vector string containing new parameters (see AH=04h/DX=FFFFh)
  8982. Return: AH = return code (00h-03h,06h) (see AH=00h/DX=FFFFh)
  8983. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8984.       serial ports over an IPX or NetBIOS-based network
  8985. Note:    any subvectors valid for the Change Parameters command replace the
  8986.       existing values in the current set
  8987. SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFh
  8988. --------S-140B-------------------------------
  8989. INT 14 - FOSSIL - TRANSMIT NO WAIT
  8990.     AH = 0Bh
  8991.     AL = character
  8992.     DX = port number
  8993. Return: AX = 0000h character not accepted
  8994.        = 0001h character accepted
  8995. SeeAlso: AH=01h
  8996. --------S-140B-------------------------------
  8997. INT 14 - MBBIOS - READ BUFFER
  8998.     AH = 0Bh
  8999.     CX = size of buffer
  9000.     ES:DI -> buffer
  9001. Return: AH = composite line status (see AH=03h) formed by ORing all statuses
  9002.           on receive interrupts; bit 0 set if additional characters
  9003.           available
  9004.     AL = composite modem status (see AH=03h) formed by ORing all statuses
  9005.     CX = number of characters actually read
  9006.     DI updated
  9007. Note:    the PACCOM version of MBBIOS does not use CX or ES:DI on call,
  9008.       instead returning ES set to the segment of the buffer containing a
  9009.       received packet, or 0000h if no packets available; the buffer may
  9010.       be freed with AH=0Ch"MBBIOS"
  9011. SeeAlso: AH=02h,AH=08h"MBBIOS",AH=0Ah"MBBIOS",AH=0Ch"MBBIOS",AH=18h"FOSSIL"
  9012. --------N-140B--DXFFFF-----------------------
  9013. INT 14 - Connection Manager - PREPARE FOR INBOUND CONNECTION
  9014.     AH = 0Bh
  9015.     DX = FFFFh
  9016.     AL = service name
  9017.         00h use parameter file or default
  9018.         01h use specified name
  9019.         ES:DI -> 16-byte blank-padded name
  9020.     BH = connection notification
  9021.         00h program awaiting connection, don't notify user
  9022.         01h notify user on connecting
  9023.     BL = connection type
  9024.         00h connection will use Connection Manager API
  9025. Return: AH = return code (00h-02h) (see AH=00h/DX=FFFFh)
  9026.     AL = connection ID if AH=00h
  9027. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  9028.       serial ports over an IPX or NetBIOS-based network
  9029. SeeAlso: AH=04h/DX=FFFFh,AH=0Ch/DX=FFFFh,AH=10h/DX=FFFFh
  9030. --------S-140C-------------------------------
  9031. INT 14 - FOSSIL - NON-DESTRUCTIVE READ AHEAD
  9032.     AH = 0Ch
  9033.     DX = port number
  9034. Return: AX = FFFFh character not available
  9035.     AX = 00xxh character xx available
  9036. SeeAlso: AH=08h"MBBIOS",AH=20h"FOSSIL"
  9037. --------S-140C-------------------------------
  9038. INT 14 - MBBIOS PACCOM support - BUFFER MANAGEMENT
  9039.     AH = 0Ch
  9040.     ES = segment of buffer to free, or 0000h to allocate new buffer
  9041. Return: ES = segment of allocated buffer (if ES=0000h on entry)
  9042. Note:    the PACCOM version of MBBIOS uses only ES as buffer address for
  9043.       AH=0Ah and AH=0Bh
  9044. SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"
  9045. --------N-140C--DXFFFF-----------------------
  9046. INT 14 - Connection Manager - TEST FOR INBOUND CONNECTION REQUEST
  9047.     AH = 0Ch
  9048.     DX = FFFFh
  9049.     AL = connection ID from AH=0Bh/DX=FFFFh
  9050. Return: AH = return code (00h-03h) (see also AH=00h/DX=FFFFh)
  9051.         03h not prepared for inbound connection
  9052.     AL = connection ID (if AH=00h) or correct connection ID (if AH=02h)
  9053. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  9054.       serial ports over an IPX or NetBIOS-based network
  9055. SeeAlso: AH=03h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Bh/DX=FFFFh
  9056. --------S-140D-------------------------------
  9057. INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT
  9058.     AH = 0Dh
  9059. Return: AX = result
  9060.         FFFFh character not available
  9061.         xxyyh standard IBM-style scan code
  9062. SeeAlso: AH=0Eh
  9063. --------S-140D-------------------------------
  9064. INT 14 - Digiboard DigiCHANNEL PC/X* - GET POINTER TO CH_KEY_RDY FLAG
  9065.     AH = 0Dh
  9066.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  9067. Return: ES:BX -> CH_KEY_RDY flag
  9068. SeeAlso: AH=0Ah"Digiboard"
  9069.  
  9070. Values for CH_KEY_RDY flag:
  9071.  00h    receive buffer empty
  9072.  FFh    characters available
  9073. --------S-140D-------------------------------
  9074. INT 14 - MBBIOS PACCOM support - SET TXD
  9075.     AH = 0Dh
  9076.     AL = new setting (FFh = 1.0)
  9077. Desc:    specify the time from RTS to start or packet
  9078. SeeAlso: AX=0D00h,AH=0Eh"MBBIOS",AH=0Fh"MBBIOS"
  9079. --------N-140D--DXFFFF-----------------------
  9080. INT 14 - Connection Manager - TERMINATE CONNECTION CLIENT ACTIVITY
  9081.     AH = 0Dh
  9082.     DX = FFFFh
  9083. Return: AH = return code
  9084.         00h successful
  9085.         nonzero operation not terminated
  9086. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  9087.       serial ports over an IPX or NetBIOS-based network
  9088. Desc:    end all Connection Client TSR activity to allow it to be removed from
  9089.       memory
  9090. SeeAlso: AH=05h/DX=FFFFh,AH=6Fh/BX=FFFFh
  9091. --------S-140D00-----------------------------
  9092. INT 14 - MBBIOS - GET AVAILABLE BYTES
  9093.     AX = 0D00h
  9094. Return: AX = bytes in transmit buffer
  9095.     CX = bytes in receive buffer
  9096. SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"
  9097. --------S-140D01-----------------------------
  9098. INT 14 - MBBIOS - LOWER ALL MODEM CONTROL SIGNALS
  9099.     AX = 0D01h
  9100. Note:    this function lowers DTR, RTS, etc.
  9101. SeeAlso: AX=0D02h
  9102. --------S-140D02-----------------------------
  9103. INT 14 - MBBIOS - RAISE ALL MODEM CONTROL SIGNALS
  9104.     AX = 0D02h
  9105. Note:    this function raises DTR, RTS, etc.
  9106. SeeAlso: AX=0D01h
  9107. --------S-140D03-----------------------------
  9108. INT 14 - MBBIOS - SET HANDSHAKE BYTE
  9109.     AX = 0D03h
  9110.     CL = new handshake byte
  9111. Return: CL = previous handshake byte
  9112. Note:    this function lowers DTR, RTS, etc.
  9113. --------S-140E-------------------------------
  9114. INT 14 - FOSSIL - KEYBOARD READ WITH WAIT
  9115.     AH = 0Eh
  9116. Return: AX = xxyyh standard IBM-style scan code
  9117. SeeAlso: AH=0Dh"FOSSIL"
  9118. --------S-140E-------------------------------
  9119. INT 14 - Digiboard DigiCHANNEL PC/X* - WRITE STRING
  9120.     AH = 0Eh
  9121.     CX = number of characters to write
  9122.     ES:BX -> string
  9123.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  9124. Return: AX = number of characters actually written
  9125.     ZF clear if successful
  9126.     ZF set on error
  9127. SeeAlso: AH=0Fh"Digiboard"
  9128. --------S-140E-------------------------------
  9129. INT 14 - MBBIOS PACCOM support - SET PERSISTENCE
  9130.     AH = 0Eh
  9131.     AL = new setting (FFh = 1.0)
  9132. Desc:    specify the time from end of DCD to RTS
  9133. SeeAlso: AH=0Dh"MBBIOS",AH=0Fh"MBBIOS"
  9134. --------N-140E--DXFFFF-----------------------
  9135. INT 14 - Connection Manager - SET HARDWARE FLOW STATE
  9136.     AH = 0Eh
  9137.     DX = FFFFh
  9138.     AL = connection ID from AH=04h/DX=FFFFh
  9139.     BL = RTS state (00h off, 01h on)
  9140. Return: AH = return code (00h-03h) (see also AH=00h/DX=FFFFh)
  9141.         03h invalid request (BL not 00h or 01h)
  9142. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  9143.       serial ports over an IPX or NetBIOS-based network
  9144. SeeAlso: AH=03h/DX=FFFFh,AH=0Ah/DX=FFFFh
  9145. --------S-140F-------------------------------
  9146. INT 14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL
  9147.     AH = 0Fh
  9148.     AL = bit mask describing requested flow control (see below)
  9149.     DX = port number
  9150. SeeAlso: AH=09h"MBBIOS",AH=10h"FOSSIL"
  9151.  
  9152. Bitfields for requested flow control:
  9153.  bit 0    XON/XOFF on transmit (watch for XOFF while sending)
  9154.  bit 1    CTS/RTS (CTS on transmit/RTS on receive)
  9155.  bit 2    reserved
  9156.  bit 3    XON/XOFF on receive (send XOFF when buffer near full)
  9157.  bit 4-7 all 1
  9158. --------S-140F-------------------------------
  9159. INT 14 - Digiboard DigiCHANNEL PC/X* - READ STRING
  9160.     AH = 0Fh
  9161.     CX = number of characters to read
  9162.     ES:BX -> buffer
  9163.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  9164. Return: AX = number of characters read
  9165.     ZF clear if successful
  9166.     ZF set on error (line status or wrong number of characters)
  9167. SeeAlso: AH=0Eh"Digiboard"
  9168. --------S-140F-------------------------------
  9169. INT 14 - MBBIOS PACCOM support - SET SLOT TIME
  9170.     AH = 0Fh
  9171.     AL = new setting in clock ticks
  9172. Desc:    specify the time from end of DCD to RTS
  9173. SeeAlso: AH=0Dh"MBBIOS",AH=0Eh"MBBIOS",AH=10h"MBBIOS"
  9174. --------N-140F--DXFFFF-----------------------
  9175. INT 14 - Connection Manager - RETURN ACTIVE CONNECTION PARAMETERS
  9176.     AH = 0Fh
  9177.     DX = FFFFh
  9178.     AL = connection ID
  9179.     CX = size of buffer or 0000h to get length of returned vector
  9180.     ES:DI -> buffer for connection parameter vector (see AH=04h/DX=FFFFh)
  9181. Return: AH = return code (00h-02h,06h) (see AH=00h/DX=FFFFh)
  9182.     CX = number of bytes which could not be returned because the given
  9183.           buffer was too small
  9184. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  9185.       serial ports over an IPX or NetBIOS-based network
  9186. SeeAlso: AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFh
  9187. --------!------------------------------------
  9188.