home *** CD-ROM | disk | FTP | other *** search
/ High Voltage Shareware / high1.zip / high1 / DIR3 / INTER38A.ZIP / INTERRUP.A < prev    next >
Text File  |  1993-12-05  |  358KB  |  9,418 lines

  1. Interrupt List        Release 38            Last change 12/05/93
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993 Ralf Brown
  3. --------!---FILELIST-------------------------
  4. Please redistribute the following files unmodified as a group, in a trio of
  5. archives named INTER38A through INTER38C (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/7F \
  9.     INTERRUP.B    INT 14/80 through INT 15  \
  10.     INTERRUP.C    INT 16 through INT 21/41   \   total 1410 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  \ 1513 with INTPRINT -p
  13.     INTERRUP.F    INT 22 through INT 2F/7F     / (5946 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 INTER38D:
  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. Note:    may be masked by setting bit 2 on I/O port 21h
  483. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71
  484. --------H-0A---------------------------------
  485. INT 0A - IRQ2 - ROLAND MPU MIDI INTERFACE
  486. Note:    newer Roland cards and MIDI interfaces by other manufacturers use
  487.       a jumper-selectable IRQ, but software and hardware generally defaults
  488.       to IRQ2
  489. SeeAlso: INT 52"DESQview",INT 5A"DoubleDOS",INT 71,INT 7A"GO32"
  490. --------C-0A---------------------------------
  491. INT 0A P - CPU-generated (80286+) - INVALID TASK STATE SEGMENT
  492. Desc:    automatically called during a task switch if the new TSS specified by
  493.       the task gate is invalid for any of the following reasons:
  494.         TSS limit is less than 43 (80286) or 103 (80386/80486)
  495.         LDT selector invalid or segment not present
  496.         null SS selector, or SS selector outside LDT/GDT limit
  497.         stack segment is read-only
  498.         stack segment DPL differs from new CPL, or RPL <> CPL
  499.         CS selector is outside LDT/GDT limit or not code
  500.         non-conforming code segment's DPL differs from CPL
  501.         conforming code segment's DPL > CPL
  502.         DS/ES selectors outside LDT/GDT limit or not readable segments
  503. Note:    the handler must use a task gate in order to have a valid TSS under
  504.       which to execute; it must also reset the busy bit in the new TSS
  505. SeeAlso: INT 0B"CPU"
  506. --------H-0B---------------------------------
  507. INT 0B - IRQ3 - SERIAL COMMUNICATIONS (COM2)
  508. Desc:    automatically asserted by the UART when COM2 needs attention, if the
  509.       UART has been programmed to generate interrupts
  510. Notes:    the TOPS and PCnet adapters use this interrupt request line as an
  511.       alternate
  512.     on PS/2s, COM2 through COM8 share this interrupt; on many PC's, COM4
  513.       shares this interrupt
  514.     may be masked by setting bit 3 on I/O port 21h
  515. SeeAlso: INT 0C"COM1",INT 53"DESQview",INT 5B"DoubleDOS",INT 7B"GO32"
  516. --------C-0B---------------------------------
  517. INT 0B P - CPU-generated (80286+) - SEGMENT NOT PRESENT
  518. Desc:    generated when loading a segment register if the segment descriptor
  519.       indicates that the segment is not currently in memory, unless the
  520.       segment is an LDT (see INT 0A"CPU") or stack segment (see
  521.       INT 0C"CPU") needed by a task switch
  522. Note:    may be used to implement virtual memory by loading in segments as they
  523.       are accessed, clearing the "not present" bit after loading
  524. SeeAlso: INT 0A"CPU",INT 0E"hardware"
  525. --------h-0B---------------------------------
  526. INT 0B - HP 95LX - LOW-LEVEL KEYBOARD HANDLER
  527. Desc:    this is the lowest-level keyboard handler on an HP 95LX palmtop
  528. Note:    debounces key, places the keycode in I/O register 60h, and calls INT 09
  529. SeeAlso: INT 09,INT 0D"HP 95LX",INT 15/AX=4DD4h
  530. --------H-0C---------------------------------
  531. INT 0C - IRQ4 - SERIAL COMMUNICATIONS (COM1)
  532. Desc:    automatically asserted by the UART when COM1 needs attention, if the
  533.       UART has been programmed to generate interrupts
  534. BUG:    this vector is modified but not restored by Direct Access v4.0, and
  535.       may be left dangling by other programs written with the same version
  536.       of compiled BASIC
  537. Notes:    on many PC's, COM3 shares this interrupt
  538.     may be masked by setting bit 4 on I/O port 21h
  539. SeeAlso: INT 0B"COM2",INT 54"DESQview",INT 5C"DoubleDOS",INT 7C"GO32"
  540. --------C-0C---------------------------------
  541. INT 0C - CPU-generated (80286+) - STACK FAULT
  542. Desc:    this interrupt is generated in protected mode on a stack overflow or
  543.       underflow, or if an inter-level transition or task switch references
  544.       a stack segment marked "not present"; it is generated in real mode
  545.       on accessing a word operand at SS:FFFFh
  546. Note:    the 80286 will shut down in real mode if SP=1 before a push.  On the
  547.       PC AT and compatibles, external circuitry generates a reset on
  548.       shutdown.
  549. SeeAlso: INT 0B"CPU",INT 0D"CPU"
  550. --------I-0C---------------------------------
  551. INT 0C - IBM SYSTEM 36/38 WORKSTATION EMULATION - API POINTER
  552. Desc:    the IBM System 36/38 emulator may be invoked through a private API,
  553.       whose entry point address is offset 100h in the segment pointed at
  554.       by this vector
  555.  
  556. Call the API entry point with
  557.     AH = function
  558.         03h update screen
  559.         05h select next session
  560.         AL = session number (00h-03h)
  561.         Return: AL = session type code
  562.                 00h not active
  563.                 01h display session
  564.                 02h printer session
  565.                 FEh invalid session number
  566.             DS = requested session's data segment (0 if not active)
  567. Return: ???
  568.  
  569. Format of emulator's data area (offset from interrupt handler's segment):
  570. Offset    Size    Description
  571. 13Eh    BYTE    bit flags for status line indicators turned on since this byte
  572.         last zerod
  573. 13Fh    BYTE    bit flags for status line indicators turned off since this
  574.         byte last set to FFh
  575. 140h    WORD    offset of EBCDIC to ASCII translation
  576. 146h    WORD    offset of EBCDIC screen buffer
  577. 148h    WORD    offset of EC (engineering change) level signature
  578. 150h    BYTE    "KEYI"
  579. 151h    BYTE    5250 key scan code to be sent to remote
  580. 15Bh    BYTE    "SYSAV"
  581. 15Dh    BYTE    5250 cursor column
  582. 15Eh    BYTE    5250 cursor row
  583. 167h    BYTE    "DVCTAD"
  584. 178h    BYTE    "FLAGS"
  585. 184h    BYTE    "SESSNOAD"
  586. 193h    BYTE    "STNAD"
  587. 198h    BYTE    "NSDS"
  588. --------H-0D---------------------------------
  589. INT 0D - IRQ5 - FIXED DISK (PC,XT), LPT2 (AT), reserved (PS/2)
  590. Notes:    under DESQview, only the INT 15h vector and BASIC segment address (the
  591.       word at 0000h:0510h) may be assumed to be valid for the handler's
  592.       process
  593.     may be masked by setting bit 5 on I/O port 21h
  594. SeeAlso: INT 0E"IRQ6",INT 0F"IRQ7",INT 55"DESQview",INT 5D"DoubleDOS"
  595. SeeAlso: INT 7D"GO32"
  596. --------H-0D---------------------------------
  597. INT 0D - IRQ5 - Tandy 1000 60 Hz RAM REFRESH
  598. Desc:    used to ensure that the dynamic RAM retains its contents
  599. SeeAlso: INT 55
  600. --------h-0D---------------------------------
  601. INT 0D - HP 95LX - INFRARED INTERRUPT
  602. Desc:    this interrupt is used to perform communications over the infrared
  603.       data link
  604. SeeAlso: INT 0B"HP 95LX",INT 0E"HP 95LX",INT 15/AX=4DD4h
  605. --------C-0D---------------------------------
  606. INT 0D - CPU-generated (80286+) - GENERAL PROTECTION VIOLATION
  607. Desc:    the CPU generates this interrupt when it detects a protection violation
  608.       which does not fit under any other category having a separate
  609.       interrupt
  610. Notes:    called in real mode when
  611.         an instruction accesses a memory operand extending beyond offset
  612.           FFFFh (i.e. WORD at FFFFh or DWORD at FFFDh or higher) in segment
  613.           CS, DS, ES, FG, or GS
  614.         a PUSH MEM or POP MEM instruction contains an invalid bit encoding
  615.           in the second byte
  616.         an instruction exceeds the maximum length allowed (10 bytes for
  617.           80286, 15 bytes for 80386/80486)
  618.         an instruction wraps from offset FFFFh to offset 0000h
  619.     called in protected mode on protection violations not covered by INT 06
  620.       through INT 0C, including
  621.         segment limit violations
  622.         write to read-only segments
  623.         accesses using null DS or ES selectors
  624.         accesses to segments with privilege greater than CPL
  625.         wrong descriptor type
  626.     called on 80486 protected-mode floating-point protection fault
  627. SeeAlso: INT 09"80486",INT 0C"STACK"
  628. --------H-0E---------------------------------
  629. INT 0E - IRQ6 - DISKETTE CONTROLLER
  630. Desc:    this interrupt is generated by the floppy disk controller on
  631.       completion of an operation
  632. Notes:    default handler is at F000h:EF57h in IBM PC and 100%-compatible BIOSes
  633.     may be masked by setting bit 6 on I/O port 21h
  634. SeeAlso: INT 0D"IRQ5",INT 56"DESQview",INT 5E"DoubleDOS",INT 7E"GO32"
  635. --------C-0E---------------------------------
  636. INT 0E - CPU-generated (80386+ native mode) - PAGE FAULT
  637. Desc:    this interrupt is generated in protected and virtual-86 modes on
  638.       attempting to access a 4K memory page whose page table entry has
  639.       the "present" bit cleared
  640. Note:    used to implement virtual memory
  641. SeeAlso: INT 0B"hardware"
  642. --------h-0E---------------------------------
  643. INT 0E - HP 95LX - EXTERNAL CARD INTERRUPT
  644. SeeAlso: INT 0D"HP 95LX",INT 0F"HP 95LX",INT 15/AX=4DD4h
  645. --------H-0F---------------------------------
  646. INT 0F - IRQ7 - PARALLEL PRINTER
  647. Desc:    this interrupt is generated by the LPT1 printer adapter when the
  648.       printer becomes ready
  649. Notes:    most printer adapters do not reliably generate this interrupt
  650.     the 8259 interrupt controller generates an interrupt corresponding to
  651.       IRQ7 when an error condition occurs
  652. SeeAlso: INT 0D"LPT2",INT 57"DESQview",INT 5F"DoubleDOS",INT 7F"GO32"
  653. --------h-0F---------------------------------
  654. INT 0F - HP 95LX - REAL-TIME CLOCK
  655. SeeAlso: INT 0E"HP 95LX",INT 15/AX=4DD4h,INT 70
  656. --------C-10---------------------------------
  657. INT 10 - CPU-generated (80286+) - COPROCESSOR ERROR
  658. Desc:    this interrupt is generated by the CPU when the -ERROR pin is asserted
  659.       by the coprocessor
  660. Note:    AT's and clones usually wire the coprocessor to use IRQ13, but not all
  661.       get it right
  662. SeeAlso: INT 09"hardware",INT 75
  663. --------V-1000-------------------------------
  664. INT 10 - VIDEO - SET VIDEO MODE
  665.     AH = 00h
  666.     AL = mode (see below)
  667. Return: AL = video mode flag (Phoenix BIOS)
  668.         20h mode > 7
  669.         30h modes 0-5 and 7
  670.         3Fh mode 6
  671.     AL = CRT controller mode byte (Phoenix 386 BIOS v1.10)
  672. Desc:    specify the display mode for the currently active display adapter
  673. Notes:    IBM standard modes do not clear the screen if the high bit of AL is set
  674.       (EGA or higher only)
  675.     the Tseng ET4000 chipset is used by the Orchid Prodesigner II, Diamond
  676.       SpeedSTAR VGA, Groundhog Graphics Shadow VGA, Boca Super X VGA,
  677.       Everex EV-673
  678.     the installation check for Ahead adapters is the signature "AHEAD" at
  679.       C000h:0025h
  680.     the installation check for Paradise adapters is the signature "VGA=" at
  681.       C000h:007Dh
  682.     the installation check for Oak Tech OTI-037/057/067/077 chipsets is the
  683.       signature "OAK VGA" at C000h:0008h
  684.     the installation check for ATI adapters is the signature "761295520" at
  685.       C000h:0031h; the byte at C000h:0043h indicates the chipset revision:
  686.         31h for 18800
  687.         32h for 18800-1
  688.         33h for 18800-2
  689.         34h for 18800-4
  690.         35h for 18800-5
  691.       the two bytes at C000h:0040h indicate the adapter type
  692.         "22" EGA Wonder
  693.         "31" VGA Wonder
  694.         "32" EGA Wonder800+
  695.       the byte at C000h:0042h contains feature flags
  696.         bit 1: mouse port present
  697.         bit 4: programmable video clock
  698.       the byte at C000h:0044h contains additional feature flags if chipset
  699.         byte > 30h (see below)
  700.     the installation check for Genoa video adapters is the signature
  701.       77h XXh 99h 66h at C000h:NNNNh, where NNNNh is stored at C000h:0037h
  702.       and XXh is
  703.         00h for Genoa 6200/6300
  704.         11h for Genoa 6400/6600
  705.         22h for Genoa 6100
  706.         33h for Genoa 5100/5200
  707.         55h for Genoa 5300/5400
  708.       for SuperEGA BIOS v2.41+, C000h:0057h contains the product level
  709.       for SuperEGA BIOS v3.0+, C000h:0070h contains the signature
  710.         "EXTMODE", indicating support for extended modes
  711. SeeAlso: AX=0070h,AX=007Eh,AX=10E0h,AX=10F0h,AH=40h,AX=6F05h,AH=FFh"GO32"
  712. SeeAlso: INT 33/AX=0028h,INT 5F/AH=00h,INT 62/AX=0001h
  713. Index:    installation check;Tseng ET4000|installation check;Ahead video cards
  714. Index:    installation check;Oak Technologies|installation check;ATI video cards
  715. Index:    installation check;Paradise video|installation check;Genoa video cards
  716.  
  717. Bitfields for ATI additional feature flags:
  718.  bit 0    70 Hz non-interlaced display
  719.  bit 1    Korean (double-byte) characters
  720.  bit 2    45 MHz memory clock rather than 40 MHz
  721.  bit 3    zero wait states
  722.  bit 4    paged ROMs
  723.  bit 6    no 8514/A monitor support
  724.  bit 7    HiColor DAC
  725.  
  726. Values for video mode:
  727.       text/ text pixel     pixel    colors    disply    scrn  system
  728.       grph resol  box    resoltn        pages    addr
  729.  00h = T   40x25  8x8        16gray       8    B800 CGA,PCjr
  730.      = T   40x25  8x14        16gray       8    B800 EGA
  731.      = T   40x25  8x16          16       8    B800 MCGA
  732.      = T   40x25  9x16          16       8    B800 VGA
  733.  01h = T   40x25  8x8          16       8    B800 CGA,PCjr
  734.      = T   40x25  8x14          16       8    B800 EGA
  735.      = T   40x25  8x16          16       8    B800 MCGA
  736.      = T   40x25  9x16          16       8    B800 VGA
  737.  02h = T   80x25  8x8        16gray       4    B800 CGA,PCjr
  738.      = T   80x25  8x14        16gray       4    B800 EGA
  739.      = T   80x25  8x16          16       4    B800 MCGA
  740.      = T   80x25  9x16          16       4    B800 VGA
  741.  03h = T   80x25  8x8          16       4    B800 CGA,PCjr
  742.      = T   80x25  8x14          16       4    B800 EGA
  743.      = T   80x25  8x16          16       4    B800 MCGA
  744.      = T   80x25  9x16          16       4    B800 VGA
  745.  04h = G   40x25  8x8    320x200       4        B800 CGA,PCjr,EGA,MCGA,VGA
  746.  05h = G   40x25  8x8    320x200     4gray        B800 CGA,PCjr,EGA
  747.      = G   40x25  8x8    320x200       4        B800 MCGA,VGA
  748.  06h = G   80x25  8x8    640x200       2        B800 CGA,PCjr,EGA,MCGA,VGA
  749.  07h = T   80x25  9x14         mono      var    B000 MDA,Hercules,EGA
  750.      = T   80x25  9x16         mono        B000 VGA
  751.  08h = T  132x25  8x8          16        B800 ATI EGA/VGA Wonder [2]
  752.      = T  132x25  8x8         mono        B000 ATI EGA/VGA Wonder [2]
  753.      = G   20x25  8x8    160x200      16             PCjr, Tandy 1000
  754.      = G   90x43  8x8    720x352     mono        B000 Hercules + MSHERC.COM
  755.      = G   90x45  8x8         mono        B000 Hercules + HERKULES [11]
  756.  09h = G   40x25  8x8    320x200      16             PCjr
  757.  0Ah = G   80x25  8x8    640x200       4             PCjr, Tandy 1000
  758.  0Bh =     reserved (used internally by EGA BIOS)
  759.      = G        640x200      16             Tandy 1000 SL/TL
  760.  0Ch =     reserved (used internally by EGA BIOS)
  761.  0Dh = G   40x25  8x8    320x200      16       8    A000 EGA,VGA
  762.  0Eh = G   80x25  8x8    640x200      16       4    A000 EGA,VGA
  763.  0Fh = G   80x25  8x14    640x350     mono       2    A000 EGA,VGA
  764.  10h = G   80x25  8x14    640x350       4       2    A000 64k EGA
  765.      = G        640x350      16        A000 256k EGA,VGA
  766.  11h = G   80x30  8x16    640x480     mono        A000 VGA,MCGA,ATI EGA,ATI VIP
  767.  12h = G   80x30  8x16    640x480     16/256k    A000 VGA,ATI VIP
  768.      = G   80x30  8x16    640x480     16/64        A000 ATI EGA Wonder
  769.      = G        640x480      16             UltraVision+256K EGA
  770.  13h = G   40x25  8x8    320x200 256/256k    A000 VGA,MCGA,ATI VIP
  771.  14h = T  132x25  Nx16          16             XGA, IBM Enhanced VGA [3]
  772.      = T  132x25  8x16 1056x400     16/256k         Cirrus CL-GD5420/5422/5426
  773.      = G   80x25  8x8    640x200                 Lava Chrome II EGA
  774.      = G        640x400      16             Tecmar VGA/AD
  775.  15h = G   80x25  8x14    640x350                 Lava Chrome II EGA
  776.  16h = G   80x25  8x14    640x350                 Lava Chrome II EGA
  777.      = G        800x600      16             Tecmar VGA/AD
  778.  17h = T  132x25                     Tecmar VGA/AD
  779.      = T   80x43  8x8    640x350      16       4    B800 Tseng ET4000 BIOS [10]
  780.      = G   80x34  8x14    640x480                 Lava Chrome II EGA
  781.  18h = T   80x30  9x16    720x480      16       1    A000 Realtek RTVGA [12]
  782.      = T  132x25         mono        B000 Cirrus 5320 chipset
  783.      = T  132x44  8x8         mono        B000 Tseng Labs EVA
  784.      = T  132x44  9x8  1188x352      4gray       2    B000 Tseng ET3000 chipset
  785.      = T  132x44  8x8         16/256       2    B000 Tseng ET4000 chipset
  786.      = G   80x34  8x14    640x480                 Lava Chrome II EGA
  787.      = G           1024x768      16             Tecmar VGA/AD
  788.  19h = T   80x43  9x11    720x473      16       1    A000 Realtek RTVGA [12]
  789.      = T  132x25  8x14         mono        B000 Tseng Labs EVA
  790.      = T  132x25  9x14 1188x350      4gray       4    B000 Tseng ET3000 chipset
  791.      = T  132x25  8x14         16/256       4    B000 Tseng ET4000 chipset
  792.      = T  132x34         mono        B000 Cirrus 5320 chipset
  793.  1Ah = T   80x60  9x8    720x480      16       1    A000 Realtek RTVGA [12]
  794.      = T  132x28  8x13         mono        B000 Tseng Labs EVA
  795.      = T  132x28  9x13 1188x364      4gray       4    B000 Tseng ET3000 chipset
  796.      = T  132x28  8x13         16/256       4    B000 Tseng ET4000 chipset
  797.      = T  132x44         mono        B000 Cirrus 5320 chipset
  798.      = G        640x350     256             Tecmar VGA/AD
  799.  1Bh = T  132x25  9x14 1188x350      16       1    A000 Realtek RTVGA [12]
  800.      = G        640x400     256             Tecmar VGA/AD
  801.  1Ch = T  132x25                     Cirrus 5320 chipset
  802.      = T  132x30  9x16 1188x480      16       1    A000 Realtek RTVGA [12]
  803.      = G        640x480     256             Tecmar VGA/AD
  804.  1Dh = T  132x43                     Cirrus 5320 chipset
  805.      = T  132x43  9x11 1188x473      16       1    A000 Realtek RTVGA [12]
  806.      = G        800x600     256             Tecmar VGA/AD
  807.  1Eh = T  132x44                     Cirrus 5320 chipset
  808.      = T  132x60  9x8  1188x480      16       1    A000 Realtek RTVGA [12]
  809.  1Fh = G  100x75  8x8    800x600      16       1    A000 Realtek RTVGA
  810.  20h = T  132x25          16             Avance Logic AL2101
  811.      = G        240x128            B000 HP 95LX
  812.      = G  120x45  8x16    960x720      16       1    A000 Realtek RTVGA
  813.  21h = T  132x30          16             Avance Logic AL2101
  814.      = T  132x44  9x9  1188x396     16/256k    B800 WD90C
  815.      = T  132x44  9x9          16        B800 Diamond Speedstar 24X
  816.      = T  132x60          16       2    B800 Tseng ET4000 chipset [10]
  817.      = G   80x43  8x8    720x348     mono        B000 DESQview 2.x+Hercules [4]
  818.      = G  128x48  8x16 1024x768      16       1    A000 Realtek RTVGA [12]
  819.  22h = T  132x43                     Allstar Peacock (VGA)
  820.      = T  132x43          16             Avance Logic AL2101
  821.      = T  132x44  8x8                     Tseng Labs EVA
  822.      = T  132x44  9x8  1188x352     16/256k   2    B800 Tseng ET3000 chipset
  823.      = T  132x44  8x8         16/256k   2    B800 Tseng ET4000 chipset
  824.      = T  132x44  8x8                     Ahead Systems EGA2001
  825.      = T  132x44  8x8          16       2    B800 Ahead B
  826.      = T  132x44          16             Orchid Prodesigner VGA
  827.      = G   80x43  8x8    720x348     mono        B800 DESQview 2.x+Hercules [4]
  828.      = G   96x64  8x16    768x1024  16       1    A000 Realtek RTVGA
  829.  23h = T  132x25  6x14                     Tseng Labs EVA
  830.      = T  132x25  9x14 1188x350     16/256k   4    B800 Tseng ET3000 chipset
  831.      = T  132x25  8x14         16/256       4    B800 Tseng ET4000 chipset
  832.      = T  132x25  8x14                     Ahead Systems EGA2001
  833.      = T  132x25  8x14          16       4    B800 Ahead B
  834.      = T  132x25  8x8          16        B800 ATI EGA Wonder,ATI VIP
  835.      = T  132x25                     Cirrus 5320 chipset
  836.      = T  132x28                     Allstar Peacock (VGA)
  837.      = T  132x28          16             Orchid Prodesigner VGA
  838.      = T  132x60          16             Avance Logic AL2101
  839.      = G  128x48  8x16 1024x768       4       1    A000 Realtek RTVGA
  840.  24h = T   80x30          16             Avance Logic AL2101
  841.      = T  132x25                     Allstar Peacock (VGA)
  842.      = T  132x25          16             Orchid Prodesigner VGA
  843.      = T  132x28  6x13                     Tseng Labs EVA
  844.      = T  132x28  9x13 1188x364     16/256k   4    B800 Tseng ET3000 chipset
  845.      = T  132x28  8x13         16/256k   4    B800 Tseng ET4000 chipset
  846.      = T  132x28  8x12          16       1    B800 Ahead B
  847.      = T  132x28                     Cirrus 5320 chipset
  848.      = G   64x32  8x16    512x512     256       1    A000 Realtek RTVGA
  849.  25h = T   80x43          16             Avance Logic AL2101
  850.      = G   80x60  8x8    640x480                 Tseng Labs EVA
  851.      = G   80x60  8x8    640x480     16/256k   1    A000 Tseng ET3000/4000 chipset
  852.      = G        640x480      16             VEGA VGA
  853.      = G   80x60  8x8    640x480      16        A000 Orchid Prodesigner VGA
  854.      = G   80x60  8x8    640x480      16       1    A000 Ahead B (same as 26h)
  855.      = G        640x480      16             NEC GB-1
  856.      = G        640x480      16             Cirrus 5320 chipset
  857.      = G        640x400     256             Realtek RTVGA
  858.  26h = T   80x60  8x8                     Tseng Labs EVA
  859.      = T   80x60  8x8    640x480     16/256k   3    B800 Tseng ET3000/4000 chipset
  860.      = T   80x60                     Allstar Peacock (VGA)
  861.      = T   80x60          16             Orchid ProDesigner VGA
  862.      = T   80x60          16             Avance Logic AL2101
  863.      = G   80x60  8x8    640x480                 Ahead Systems EGA2001
  864.      = G   80x60  8x8    640x480      16       1    A000 Ahead B (same as 25h)
  865.      = G        640x480     256             Realtek RTVGA
  866.  27h = T  132x25  8x8         mono        B000 ATI EGA Wonder,ATI VIP
  867.      = G        720x512      16             VEGA VGA
  868.      = G        720x512      16             Genoa
  869.      = G  100x75  8x8    800x600     256       1    A000 Realtek RTVGA [12]
  870.      = G        960x720      16             Avance Logic AL2101
  871.  28h = T  ???x???                     VEGA VGA
  872.      = G        512x512     256             Avance Logic AL2101
  873.      = G           1024x768     256             Realtek RTVGA (1meg)
  874.  29h = G        640x400     256             Avance Logic AL2101
  875.      = G        800x600      16             VEGA VGA
  876.      = G  100x37  8x16    800x600      16        A000 Orchid
  877.      = G        800x600      16        A000 STB,Genoa,Sigma
  878.      = G        800x600      16             Allstar Peacock (VGA)
  879.      = G  100x37  8x16    800x600     16/256k   1    A000 Tseng ET3000/4000 chipset
  880.      = G        800x600     ???             EIZO MDB10
  881.      = G        800x600      16             Cirrus 5320 chipset
  882.      = G           1024x1024 256             Realtek RTVGA BIOS v3.C10
  883.  2Ah = T  100x40                     Allstar Peacock (VGA)
  884.      = T  100x40  8x16          16             Orchid Prodesigner VGA
  885.      = T  100x40  8x15    800x600     16/256k   4    B800 Tseng ET3000/4000 chipset
  886.      = G        640x480     256             Avance Logic AL2101
  887.      = G           1280x1024  16             Realtek RTVGA
  888.  2Bh = G        800x600      16             Avance Logic AL2101
  889.  2Ch = G        800x600     256             Avance Logic AL2101
  890.  2Dh = G        640x350     256             VEGA VGA
  891.      = G        640x350 256/256k    A000 Orchid, Genoa, STB
  892.      = G   80x25  8x14    640x350 256/256k   1    A000 Tseng ET3000/4000 chipset
  893.      = G        640x350     256             Cirrus 5320 chipset
  894.      = G        768x1024  16             Avance Logic AL2101
  895.  2Eh = G        640x480     256             VEGA VGA
  896.      = G   80x30  8x16    640x480 256/256k    A000 Orchid
  897.      = G        640x480 256/256k    A000 STB,Genoa,Sigma
  898.      = G   80x30  8x16    640x480 256/256k   1    A000 Tseng ET3000/4000 chipset
  899.      = G        768x1024 256             Avance Logic AL2101
  900.  2Fh = T  160x50  8x8  1280x400      16       4    B800 Ahead B (Wizard/3270)
  901.      = G        720x512     256             VEGA VGA
  902.      = G        720x512     256             Genoa
  903.      = G   80x25  8x16    640x400 256/256k   1    A000 Tseng ET4000 chipset
  904.      = G           1024x768       4             Avance Logic AL2101
  905.  30h = G        800x600     256             VEGA VGA
  906.      = G  100x37  8x16    800x600 256/256k    A000 Orchid
  907.      = G        800x600 256/256k    A000 STB,Genoa,Sigma
  908.      = G        720x350       2             3270 PC
  909.      = G        800x600     256             Cardinal
  910.      = G        ???x???            B800 AT&T 6300
  911.      = G  100x37  8x16    800x600 256/256k   1    A000 Tseng ET3000/4000 chipset
  912.      = G           1024x768      16             Avance Logic AL2101
  913.  31h = G           1024x768     256             Avance Logic AL2101
  914.  32h = T   80x34  8x10          16       4    B800 Ahead B (Wizard/3270)
  915.  33h = T  132x44  8x8          16        B800 ATI EGA Wonder,ATI VIP
  916.      = T   80x34  8x8          16       4    B800 Ahead B (Wizard/3270)
  917.  34h = T   80x66  8x8          16       4    B800 Ahead B (Wizard/3270)
  918.  36h = G        960x720      16             VEGA VGA
  919.      = G        960x720      16             STB
  920.      = G        960x720      16             Tseng ET3000 only
  921.      = G           1280x1024  16             Avance Logic AL2101
  922.  37h = T  132x44  8x8         mono        B800 ATI EGA Wonder,ATI VIP
  923.      = G           1024x768      16             VEGA VGA
  924.      = G  128x48  8x16 1024x768      16        A000 Orchid
  925.      = G           1024x768      16        A000 STB,Genoa,Sigma
  926.      = G           1024x768      16             Definicon
  927.      = G  128x48  8x16 1024x768      16       1    A000 Tseng ET3000/4000 chipset
  928.      = G           1280x1024 256             Avance Logic AL2101
  929.  38h = G           1024x768     256             STB VGA/EM-16 Plus (1MB)
  930.      = G  128x48  8x16 1024x768 256/256k   1    A000 Tseng ET4000 chipset
  931.      = G           1024x768     256             Orchid ProDesigner II
  932.  3Dh = G           1280x1024  16             Definicon
  933.      = G  128x64  8x16 1280x1024  16       1    A000 Tseng ET4000 v3.00 [1,7]
  934.  3Eh = G           1280x961      16             Definicon
  935.  40h = T   80x43                     VEGA VGA, Tecmar VGA/AD
  936.      = T   80x43                     Video7 V-RAM VGA
  937.      = T   80x43                     Tatung VGA
  938.      = T  100x30          16             MORSE VGA
  939.      = T  100x30                     Cirrus 510/520 chipset
  940.      = T   80x25    720x350     mono             Genoa SuperEGA BIOS 3.0+
  941.      = G        320x200      64K             Avance Logic AL2101
  942.      = G   80x25  8x16    640x400       2       1    B800 AT&T 6300, AT&T VDC600
  943.      = G   80x25  8x16    640x400       2       1    B800 Olivetti Quaderno
  944.      = G   80x25  8x16    640x400       2       1    B800 Compaq Portable
  945.  41h = T  132x25                     VEGA VGA
  946.      = T  132x25                     Tatung VGA
  947.      = T  132x25                     Video7 V-RAM VGA
  948.      = T  100x50          16             MORSE VGA
  949.      = T  100x50                     Cirrus 510/520 chipset
  950.      = T   80x34  9x14    720x476     16/256k    B800 WD90C
  951.      = T   80x34  9x14          16        B800 Diamond Speedstar 24X
  952.      = G        512x512      64K             Avance Logic AL2101
  953.      = G        640x200      16       1         AT&T 6300
  954.      = G   80x25    720x348     mono        B000 Genoa SuperEGA BIOS 3.0+
  955.  42h = T  132x43                     VEGA VGA
  956.      = T  132x43                     Tatung VGA
  957.      = T  132x43                     Video7 V-RAM VGA
  958.      = T   80x34  9x10           4       4    B800 Ahead B (Wizard/3270)
  959.      = T  100x60          16             MORSE VGA
  960.      = T  100x60                     Cirrus 510/520 chipset
  961.      = G   80x25  8x16    640x400      16             AT&T 6300, AT&T VDC600
  962.      = G        640x400      64K             Avance Logic AL2101
  963.      = G   80x25    720x348     mono        B800 Genoa SuperEGA BIOS 3.0+
  964.  43h = T   80x60                     VEGA VGA
  965.      = T   80x60                     Tatung VGA
  966.      = T   80x60                     Video7 V-RAM VGA
  967.      = T   80x45  9x8           4       4    B800 Ahead B (Wizard/3270)
  968.      = T  100x75          16             MORSE VGA
  969.      = T   80x29    720x348     mono             Genoa SuperEGA BIOS 3.0+
  970.      = G         640x200 of 640x400 viewport     AT&T 6300 (unsupported)
  971.      = G        640x480      64K             Avance Logic AL2101
  972.  44h =     disable VDC and DEB output             AT&T 6300
  973.      = T  100x60                     VEGA VGA
  974.      = T  100x60                     Tatung VGA
  975.      = T  100x60                     Video7 V-RAM VGA
  976.      = T   80x32    720x352     mono             Genoa SuperEGA BIOS 3.0+
  977.      = G        800x600      64K             Avance Logic AL2101
  978.  45h = T  132x28                     Tatung VGA
  979.      = T  132x28                     Video7 V-RAM VGA
  980.      = T   80x44    720x352     mono             Genoa SuperEGA BIOS 3.0+
  981.  46h = T  132x25  8x14         mono             Genoa 6400
  982.      = T  132x25  9x14         mono             Genoa SuperEGA BIOS 3.0+
  983.      = G  100x40  8x15    800x600       2             AT&T VDC600
  984.  47h = T  132x29  8x12         mono             Genoa 6400
  985.      = T  132x29  9x12         mono             Genoa SuperEGA BIOS 3.0+
  986.      = T  132x28  9x16 1188x448     16/256k    B800 WD90C
  987.      = T  132x28  9x16          16        B800 Diamond Speedstar 24X
  988.      = G  100x37  8x16    800x600      16             AT&T VDC600
  989.  48h = T  132x32  8x12         mono             Genoa 6400
  990.      = T  132x32  9x11         mono             Genoa SuperEGA BIOS 3.0+
  991.      = G   80x50  8x8    640x400       2        B800 AT&T 6300, AT&T VDC600
  992.      = G   80x50  8x8    640x400       2        B800 Olivetti Quaderno
  993.  49h = T  132x44  8x8         mono             Genoa 6400
  994.      = T  132x44  9x8         mono             Genoa SuperEGA BIOS 3.0+
  995.      = G   80x30  8x16    640x480                 Lava Chrome II EGA
  996.  4Dh = T  120x25                     VEGA VGA
  997.  4Eh = T  120x43                     VEGA VGA
  998.      = T   80x60  8x8         16/256k    B800 Oak OTI-067/OTI-077 [8]
  999.  4Fh = T  132x25                     VEGA VGA
  1000.      = T  132x60                     some Oak Tech VGA [8]
  1001.  50h = T   80x30  8x16         16/256k    B800 Trident TVGA 8800/8900
  1002.      = T   80x34                     Lava Chrome II EGA
  1003.      = T   80x43         mono             VEGA VGA
  1004.      = T  132x25  9x14         mono             Ahead Systems EGA2001
  1005.      = T  132x25  9x14           4       4    B800 Ahead B
  1006.      = T  132x25  8x14          16       8    B800 OAK Technologies VGA-16
  1007.      = T  132x25  8x14         16/256k    B800 Oak OTI-037/067/077 [8]
  1008.      = T  132x25  8x14 1056x350      16       8    B800 UM587 chipset
  1009.      = T  132x30          16             MORSE VGA
  1010.      = T  132x30                     Cirrus 510/520 chipset
  1011.      = G   80x30  8x16    640x480      16             Paradise EGA-480
  1012.      = G   80x30  8x16    640x480      16             NEL Electronics BIOS
  1013.      = G        640x480     mono???         Taxan 565 EGA
  1014.      = G   40x25  8x8    320x200                 Genoa SuperEGA BIOS 3.0+
  1015.  51h = T   80x30  8x16                     Paradise EGA-480
  1016.      = T   80x30  9x16                     NEL Electronics BIOS
  1017.      = T   80x30                     Lava Chrome II EGA
  1018.      = T   80x43  8x11         16/256k    B800 Trident TVGA 8800/8900
  1019.      = T  132x25         mono             VEGA VGA
  1020.      = T  132x28  9x12           4       4    B800 Ahead B
  1021.      = T  132x43  8x8          16       5    B800 OAK Technologies VGA-16
  1022.      = T  132x43  8x8        16/256k        B800 Oak OTI-037/067/077
  1023.      = T  132x43  8x8  1056x344      16       5    B800 UM587 chipset
  1024.      = T  132x50          16             MORSE VGA
  1025.      = T  132x50                     Cirrus 510/520 chipset
  1026.      = G   80x34  8x14    640x480      16             ATI EGA Wonder
  1027.      = G   80x25  8x8    640x200                 Genoa SuperEGA BIOS 3.0+
  1028.  52h = T   80x60                     Lava Chrome II EGA
  1029.      = T   80x60  8x8         16/256k    B800 Trident TVGA 8800/8900
  1030.      = T  132x43         mono             VEGA VGA
  1031.      = T  132x44  9x8         mono             Ahead Systems EGA2001
  1032.      = T  132x44  9x8           4       2    B800 Ahead B
  1033.      = T  132x60          16             MORSE VGA
  1034.      = T  132x60                     Cirrus 510/520 chipset
  1035.      = G   94x29  8x14    752x410      16             ATI EGA Wonder
  1036.      = G  100x75  8x8    800x600      16       1    A000 OAK Technologies VGA-16
  1037.      = G  100x75  8x8    800x600      16        A000 Oak OTI-037 chipset [8]
  1038.      = G  100x37  8x16    800x600      16        A000 Oak OTI-067/077 chips [8]
  1039.      = G  100x75  8x8    800x600      16        A000 UM587 chipset
  1040.      = G  128x30  8x16 1024x480      16             NEL Electronics BIOS
  1041.  53h = T   80x25  8x16                     NEL Electronics BIOS
  1042.      = T   80x60          16             MORSE VGA
  1043.      = T   80x60                     Cirrus 510/520 chipset
  1044.      = T  132x25  8x14         16/256k    B800 Trident TVGA 8800/8900
  1045.      = T  132x43                     Lava Chrome II EGA
  1046.      = G        640x480     256             Oak VGA
  1047.      = G   80x30  8x16    640x480     256        A000 Oak OTI-067/OTI-077 [8]
  1048.      = G  100x40  8x14    800x560      16             ATI EGA Wonder,ATI VIP
  1049.      = G                         AX PC
  1050.  54h = T  132x25                     Lava Chrome II EGA
  1051.      = T  132x30  8x16         16/256k    B800 Trident TVGA 8800/8900
  1052.      = T  132x43  8x8                     Paradise EGA-480
  1053.      = T  132x43  8x8                     NEL Electronics BIOS
  1054.      = T  132x43  7x9         16/256k    B800 Paradise VGA
  1055.      = T  132x43  8x9         16/256k    B800 Paradise VGA on multisync
  1056.      = T  132x43                     Taxan 565 EGA
  1057.      = T  132x43                     AST VGA Plus
  1058.      = T  132x43                     Hewlett-Packard D1180A
  1059.      = T  132x43  7x9          16             AT&T VDC600
  1060.      = T  132x43  9x9  1188x387     16/256k    B800 WD90C
  1061.      = T  132x43  9x9  1188x387     16/256k    B800 Diamond Speedstar 24X
  1062.      = T  132x43  9x9  1188x387     16/256k    B800 Diamond Stealth 24X
  1063.      = T  132x43  8x8  1056x350     16/256k         Cirrus CL-GD5420/5422/5426
  1064.      = T  132x50  8x8          16        A000 NCR 77C22 [9]
  1065.      = G  100x42  8x14    800x600      16        A000 ATI EGA Wonder, VGA Wonder
  1066.      = G  100x42  8x14    800x600      16        A000 ATI Ultra 8514A, ATI XL
  1067.      = G        800x600     256        A000 Oak VGA
  1068.      = G  100x37  8x16    800x600     256        A000 Oak OTI-067/077 chips [8]
  1069.  55h = T   80x66  8x8         16/256k    A000 ATI VIP
  1070.      = T  132x25  8x14                     Paradise EGA-480
  1071.      = T  132x25  8x14                     NEL Electronics BIOS
  1072.      = T  132x25  7x16         16/256k    B800 Paradise VGA
  1073.      = T  132x25  8x16         16/256k    B800 Paradise VGA on multisync
  1074.      = T  132x25                     Taxan 565 EGA
  1075.      = T  132x25                     AST VGA Plus
  1076.      = T  132x25                     Hewlett-Packard D1180A
  1077.      = T  132x25  7x16          16             AT&T VDC600
  1078.      = T  132x25  8x16          16        A000 NCR 77C22 [9]
  1079.      = T  132x25  9x16 1188x400     16/256k    B800 WD90C
  1080.      = T  132x25  9x16 1188x400     16/256k    B800 Diamond Speedstar 24X
  1081.      = T  132x25  9x16 1188x400     16/256k    B800 Diamond Stealth 24X
  1082.      = T  132x25  8x14 1056x350     16/256k         Cirrus CL-GD5420/5422/5426
  1083.      = T  132x43  8x11         16/256k    B800 Trident TVGA 8800/8900
  1084.      = G   94x29  8x14    752x410                 Lava Chrome II EGA
  1085.      = G  128x48  8x16 1024x768     16/256k    A000 ATI VGA Wonder v4+     [5]
  1086.      = G           1024x768     16/256k         ATI VGA Wonder Plus
  1087.      = G           1024x768     16/256k         ATI Ultra 8514A,ATI XL
  1088.      = G  128x48  8x16 1024x768       4        A000 Oak OTI-067/077 chips [8]
  1089.  56h = T  132x43  8x8           3???       2    B000 NSI Smart EGA+
  1090.      = T  132x43  7x9           4        B000 Paradise VGA
  1091.      = T  132x43  8x9           4        B000 Paradise VGA on multisync
  1092.      = T  132x43         mono             Taxan 565 EGA
  1093.      = T  132x43  7x9           2             AT&T VDC600
  1094.      = T  132x43  9x8                     NEL Electronics BIOS
  1095.      = T  132x50  8x8           4        A000 NCR 77C22 [9]
  1096.      = T  132x60  8x8         16/256k    B800 Trident TVGA 8800/8900
  1097.      = G           1024x768      16        A000 Oak VGA
  1098.      = G  128x48  8x16 1024x768      16        A000 Oak OTI-067/077 chips [8]
  1099.  57h = T  132x25  8x14           3???       4    B000 NSI Smart EGA+
  1100.      = T  132x25  7x16           4        B000 Paradise VGA
  1101.      = T  132x25  8x16           4        B000 Paradise VGA on multisync
  1102.      = T  132x25  9x14                     NEL Electronics BIOS
  1103.      = T  132x25         mono             Taxan 565 EGA
  1104.      = T  132x25  7x16           2             AT&T VDC600
  1105.      = T  132x25  9x14         16/256k    B800 Trident TVGA 8800/8900
  1106.      = T  132x25  8x16           4        A000 NCR 77C22 [9]
  1107.      = G   96x48  8x16    768x1024  16        A000 Oak OTI-067/077 chips [8]
  1108.  58h = T   80x33  8x14          16        B800 ATI EGA Wonder,ATI VIP
  1109.      = T   80x32  9x16          16             Genoa 6400
  1110.      = T   80x43  8x8                     NEL Electronics BIOS
  1111.      = T  132x30  9x16         16/256k    B800 Trident TVGA 8800/8900
  1112.      = G  100x75  8x8    800x600     16/256k    A000 Paradise VGA
  1113.      = G  100x75  8x8    800x600      16             AT&T VDC600
  1114.      = G  100x75  8x8    800x600      16        A000 NCR 77C22 [9]
  1115.      = G  100x75  8x8    800x600      16             Diamond Speedstar 24X
  1116.      = G  100x75  8x8    800x600     16/256k    A000 Paradise VGA, WD90C
  1117.      = G        800x600      16             AST VGA Plus, Compaq VGA
  1118.      = G        800x600      16             Dell VGA
  1119.      = G        800x600      16             Hewlett-Packard D1180A
  1120.      = G        800x600     ???             ELT VGA PLUS 16
  1121.      = G  100x37  8x16    800x600     16/256k    A000 Cirrus CL-GD5420/5422/5426
  1122.      = G  160x64  8x16 1280x1024  16        A000 Oak OTI-077 chipset [8]
  1123.  59h = T   80x43  9x8                     NEL Electronics BIOS
  1124.      = T   80x66  8x8         16/256k    A000 ATI VIP
  1125.      = T  132x43  9x11         16/256k    B800 Trident TVGA 8800/8900
  1126.      = G  100x75  8x8    800x600       2        A000 Paradise VGA
  1127.      = G  100x75  8x8    800x600       2             AT&T VDC600
  1128.      = G        800x600       2             AST VGA Plus, Compaq VGA
  1129.      = G        800x600       2             Dell VGA
  1130.      = G        800x600       2             Hewlett-Packard D1180A
  1131.      = G  100x75  8x8    800x600       2        A000 NCR 77C22 [9]
  1132.      = G  128x48  8x16 1024x768     256        A000 Oak OTI-077 chipset [8]
  1133.  5Ah = T   80x60  8x8                     NEL Electronics BIOS
  1134.      = T  132x60  9x8         16/256k    B800 Trident TVGA 8800/8900
  1135.      = G  128x48  8x16 1024x768       2        A000 NCR 77C22 [9]
  1136.  5Bh = T   80x30  8x16                B800 ATI VGA Wonder (undoc)
  1137.      = G        640x350     256             Genoa 6400
  1138.      = G   80x25  8x16    640x400      32K        A000 Oak OTI-067/077 chips [8]
  1139.      = G        800x600      16             Maxxon, SEFCO TVGA, Imtec
  1140.      = G  100x75  8x8    800x600     16/256k    A000 Trident TVGA 8800, 8900
  1141.      = G        800x600     ???             Vobis MVGA
  1142.      = G  100x37  8x16    800x600                 NEL Electronics BIOS
  1143.      = G  128x48  8x16 1024x768      16        A000 NCR 77C22 [1,9]
  1144.  5Ch = T  100x37  8x16                     NEL Electronics BIOS
  1145.      = G        640x400     256             Logix, ATI Prism Elite
  1146.      = G        640x400     256             Maxxon, SEFCO TVGA, Imtec
  1147.      = G   80x25  8x16    640x400     256/256k    A000 Zymos Poach, Hi Res 512
  1148.      = G   80x25  8x16    640x400     256/256k    A000 Trident TVGA 8800/8900
  1149.      = G   80x30  8x16    640x480     256             Genoa 6400
  1150.      = G   80x30  8x16    640x480      32K        A000 Oak OTI-077 chipset [8]
  1151.      = G  100x75  8x8    800x600     256        A000 NCR 77C22 [9]
  1152.      = G  100x75  8x8    800x600     256/256k    A000 WD90C
  1153.      = G  100x75  8x8    800x600     256/256k    A000 Diamond Speedstar 24X
  1154.      = G  100x37  8x16    800x600     256/256k    A000 Cirrus CL-GD5420/5422/5426
  1155.  5Dh = T  100x75  8x8                     NEL Electronics BIOS
  1156.      = G        640x480     256             Logix, ATI Prism Elite
  1157.      = G        640x480     256             Maxxon, SEFCO TVGA, Imtec
  1158.      = G   80x30  8x16    640x480     256/256k    A000 Zymos Poach, Hi Res 512
  1159.      = G   80x30  8x16    640x480     256/256k    A000 Trident TVGA 8800 (512K)
  1160.      = G  128x48  8x16 1024x768      16        A000 NCR 77C22 [9]
  1161.      = G  128x48  8x16 1024x768      16/256k    A000 WD90C
  1162.      = G  128x48  8x16 1024x768      16             Diamond Speedstar 24X
  1163.      = G  128x48  8x16 1024x768     16/256k    A000 Cirrus CL-GD5420/5422/5426
  1164.  5Eh = G        640x400     256             Paradise VGA,VEGA VGA
  1165.      = G        640x400     256             AST VGA Plus, NCR 77C22
  1166.      = G        640x400     256             Compaq VGA, Dell VGA
  1167.      = G   80x25  8x16    640x400     256             AT&T VDC600
  1168.      = G   80x25  8x16    640x400     256        A000 NCR 77C22 [9]
  1169.      = G   80x25  8x16    640x400     256/256k    A000 WD90C
  1170.      = G   80x25  8x16    640x400     256/256k    A000 Diamond Speedstar 24X
  1171.      = G        800x600      16             Logix, ATI Prism Elite
  1172.      = G  100x37  8x16    800x600      16             NEL Electronics BIOS
  1173.      = G  100x75  8x8    800x600     256             Genoa 6400
  1174.      = G  100x75  8x8    800x600     256/256k    A000 Zymos Poach, Trident 8900
  1175.      = G  100x75  8x8    800x600     256/256k    A000 Hi Res 512
  1176.  5Fh = G        640x480     256             Paradise VGA
  1177.      = G        640x480     256             AST VGA Plus, NCR 77C22
  1178.      = G        640x480     256             Compaq VGA, Dell VGA
  1179.      = G        640x480     256             Hewlett-Packard D1180A
  1180.      = G   80x30  8x16    640x480     256             AT&T VDC600 (512K)
  1181.      = G   80x30  8x16    640x480     256        A000 NCR 77C22 [9]
  1182.      = G   80x30  8x16    640x480     256/256k    A000 WD90C
  1183.      = G   80x30  8x16    640x480     256/256k    A000 Diamond Speedstar 24X
  1184.      = G   80x30  8x16    640x480     256/256k    A000 Cirrus CL-GD5420/5422/5426
  1185.      = G           1024x768      16             Logix, ATI Prism Elite
  1186.      = G           1024x768      16             Maxxon, Imtec
  1187.      = G  128x48  8x16 1024x768      16             Genoa 6400
  1188.      = G  128x48  8x16 1024x768      16/256k    A000 Zymos Poach, Hi Res 512
  1189.      = G  128x48  8x16 1024x768      16/256k    A000 Trident TVGA 88/8900 512K
  1190.  60h = T  132x25  8x14          16/64       8    B800 Quadram Ultra VGA
  1191.      = T  132x25  8x14          16             Genoa 6400
  1192.      = T  132x25  8x14          16             Genoa SuperEGA BIOS 3.0+
  1193.      = T  132x25                     Cirrus 5320 chipset
  1194.      = T  132x25          16             Chips&Technologies chipset
  1195.      = G   80x???    ???x400                 Corona/Cordata BIOS 4.10+
  1196.      = G   80x25  8x16    640x400     256       1    A000 Ahead A, Ahead B
  1197.      = G        752x410                 VEGA VGA
  1198.      = G        752x410      16             Tatung VGA
  1199.      = G        752x410      16             Video7 V-RAM VGA
  1200.      = G  128x48  8x16 1024x768       4/256k    A000 Trident TVGA 8900
  1201.      = G  128x48  8x16 1024x768     256/256k    A000 WD90C
  1202.      = G  128x48  8x16 1024x768     256/256k    A000 Diamond Speedstar 24X
  1203.      = G  128x48  8x16 1024x768     256/256k    A000 Cirrus CL-GD5420/5422/5426
  1204.  61h = T  132x29  8x12          16/64       8    B800 Quadram Ultra VGA
  1205.      = T  132x29  8x8          16             Genoa 6400
  1206.      = T  132x29  8x8          16             Genoa SuperEGA BIOS 3.0+
  1207.      = T  132x50                     Cirrus 5320 chipset
  1208.      = T  132x50          16             Chips&Technologies chipset
  1209.      = G        ???x400                 Corona/Cordata BIOS 4.10+
  1210.      = G   80x25  8x16    640x400     256        A000 ATI VGA Wonder,VGA Wonder+
  1211.      = G   80x25  8x16    640x400     256        A000 ATI Ultra 8514A,ATI XL
  1212.      = G   80x30  8x16    640x480     256       1    A000 Ahead A, Ahead B (512K)
  1213.      = G        720x540                 VEGA VGA
  1214.      = G        720x540      16             Tatung VGA
  1215.      = G        720x540      16             Video7 V-RAM VGA
  1216.      = G   96x64  8x16    768x1024  16/256k    A000 Trident TVGA 88/8900 512K
  1217.      = G  128x48  8x16 1024x768     256        A000 NCR 77C22 [1,9]
  1218.  62h = T  132x32  8x11          16/64       6    B800 Quadram Ultra VGA
  1219.      = T  132x32  8x12          16             Genoa 6400
  1220.      = T  132x32  8x11          16             Genoa SuperEGA BIOS 3.0+
  1221.      = G        640x450      16             Cirrus 510/520 chipset
  1222.      = G   80x30  8x16    640x480     256        A000 ATI VGA Wonder,VGA Wonder+
  1223.      = G   80x30  8x16    640x480     256        A000 ATI Ultra 8514A,ATI XL
  1224.      = G   80x30  8x16    640x480     32K        A000 WD90C
  1225.      = G   80x30  8x16    640x480     32K        A000 Diamond Speedstar 24X
  1226.      = G        800x600                 VEGA VGA
  1227.      = G        800x600      16             Tatung VGA
  1228.      = G        800x600      16             Video7 V-RAM VGA
  1229.      = G  100x75  8x8    800x600     256       1    A000 Ahead A, Ahead B (512K)
  1230.      = G  128x48  8x16 1024x768     256/256k    A000 Trident TVGA 8900, Zymos
  1231.      = G  128x48  8x16 1024x768     256        A000 NCR 77C22 [9]
  1232.  63h = T  132x44  8x8          16/64       5    B800 Quadram Ultra VGA
  1233.      = T  132x44  8x8          16             Genoa 6400
  1234.      = T  132x44  8x8          16             Genoa SuperEGA BIOS 3.0+
  1235.      = G        720x540      16             MORSE VGA
  1236.      = G        720x540      16             Cirrus 510/520 chipset
  1237.      = G  100x42  8x14    800x600     256        A000 ATI VGA Wonder,VGA Wonder+
  1238.      = G  100x42  8x14    800x600     256        A000 ATI Ultra 8514A,ATI XL
  1239.      = G        800x600     32K        A000 WD90C
  1240.      = G        800x600     32K        A000 Diamond Speedstar 24X
  1241.      = G  128x48  7x16 1024x768     256       1    A000 Ahead B (1MB)
  1242.      = G           1024x768       2             Video7 V-RAM VGA
  1243.  64h = T  132x60  8x8          16             Genoa 6400
  1244.      = G    -       -    640x480     64K        A000 Cirrus CL-GD 5422/5426
  1245.      = G        800x600      16             MORSE VGA
  1246.      = G        800x600      16             Cirrus 510/520 chipset
  1247.      = G        800x600     ???             SAMPO-Mira VGA
  1248.      = G           1024x768       4             Video7 V-RAM VGA
  1249.      = G  128x48  8x16 1024x768     256        A000 ATI VGA Wonder Plus,ATI XL
  1250.      = G  160x64  8x16 1280x1024 16/256k    A000 WD90C [1]
  1251.      = G  160x64  8x16 1280x1024 16/256k    A000 Diamond Speedstar 24X [1]
  1252.  65h = G    -       -    800x600     64K        A000 Cirrus CL-GD 5422/5426
  1253.      = G           1024x768      16             Video7 V-RAM VGA
  1254.      = G  128x48  8x16 1024x768      16        A000 ATI VGA Wonder
  1255.  66h = T   80x50  8x8    640x400     16/256k    B800 WD90C
  1256.      = T   80x50  8x8          16        B800 Diamond Speedstar 24X
  1257.      = G        640x400     256             Tatung VGA
  1258.      = G        640x400     256             Video7 V-RAM VGA
  1259.      = G    -       -    640x480     32K        A000 Cirrus CL-GD 5422/5426
  1260.  67h = T   80x43  8x8    640x344     16/256k    B800 WD90C
  1261.      = T   80x43  8x8          16        B800 Diamond Speedstar 24X
  1262.      = G        640x480     256             Video7 V-RAM VGA
  1263.      = G    -       -    800x600     32K        A000 Cirrus CL-GD 5422/5426
  1264.      = G  128x48  8x16 1024x768       4        A000 ATI VGA Wonder
  1265.      = G  160x64  8x16 1280x1024  16        A000 NCR 77C22 [1,9]
  1266.  69h = T  132x50  8x8  1056x400     16/256k    B800 WD90C
  1267.      = T  132x50  8x8          16        B800 Diamond Speedstar 24X
  1268.      = G        720x540     256             Video7 V-RAM VGA
  1269.  6Ah = G        800x600      16        A000 VESA standard interface
  1270.      = G  100x75  8x8    800x600      16             Genoa 6400
  1271.      = G  100x75  8x8    800x600      16             Diamond Speedstar 24X
  1272.      = G        800x600      16        A000 Ahead A
  1273.      = G  100x75  8x8    800x600      16       1    A000 Ahead B (VESA) (see 71h)
  1274.      = G        800x600      16             Zymos Poach, Hi Res 512
  1275.      = G        800x600      16             Epson LT-386SX in CRT Mode
  1276.      = G        800x600      16             Compuadd 316SL in CRT Mode
  1277.      = G  100x37  8x16    800x600     16/256k    A000 Cirrus CL-GD5420/5422/5426
  1278.      = G  100x42  8x14    800x600            A000 ATI VGA Wonder (undoc)
  1279.      = G        800x600      16             Chips&Technologies chipset
  1280.      = G  160x64  8x16 1280x1024 256        A000 NCR 77C22 [1,9]
  1281.  6Bh = T  100x37  8x16          16             Genoa 6400
  1282.      = T  100x37  8x16                     NEL Electronics BIOS
  1283.  6Ch = G   80x30  8x16    640x480      16M        A000 Trident 8900CL/BIOS C04
  1284.      = G  100x75  8x8    800x600     256             Genoa 6400
  1285.      = G  160x60  8x16 1280x960     16/256k    A000 WD90C [1]
  1286.      = G  160x60  8x16 1280x960     16/256k    A000 Diamond Speedstar 24X [1]
  1287.      = G  160x64  8x16 1280x1024 16/256k    A000 Cirrus CL-GD 5422/5426 [1]
  1288.  6Dh = G  160x64  8x16 1280x1024 256/256k    A000 Cirrus CL-GD 5422/5426 [1]
  1289.  6Eh = G   40x25  8x8    320x200      64K        A000 Cirrus CL-GD 5422/5426
  1290.  6Fh = G   40x25  8x8    320x200      16M        A000 Cirrus CL-GD 5422/5426
  1291.  70h =     extended mode set (see AX=0070h)         Everex Micro Enhancer EGA
  1292.      = T   40x25  8x8          16       8    B800 Quadram (CGA double scan)
  1293.      = T   40x25  8x8    (CGA dblscan)             Genoa SuperEGA BIOS 3.0+
  1294.      = G        360x480     256             Cirrus 510/520/5320 chips
  1295.      = G   90x28  8x14    720x392      16       1    A000 Ahead B
  1296.      = G        800x600      16             C&T chipset, Cardinal
  1297.      = G           1024x480     256             Trident 8900C BIOS C3.0
  1298.  71h = T   80x25  8x8          16       8    B800 Quadram (CGA double scan)
  1299.      = T   80x25  8x8    (CGA dblscan)             Genoa SuperEGA BIOS 3.0+
  1300.      = G        528x400     256             Cirrus 510/520 chipset
  1301.      = G   80x30  8x16    640x480      16M        A000 Cirrus CL-GD 5422/5426
  1302.      = G  100x35  8x16    800x600     16of64        A000 NSI Smart EGA+
  1303.      = G  100x75  8x8    800x600      16       1    A000 Ahead B (same as 6Ah)
  1304.      = G        960x720      16             C&T chipset, Cardinal
  1305.      = G           1024x480     256             Trident 8900C BIOS C3.0
  1306.  72h = T   80x60  8x8          16        B800 Quadram Ultra VGA
  1307.      = T   80x60  8x8          16        B800 Genoa 6400
  1308.      = T   80x60  8x8          16        B800 Genoa SuperEGA BIOS 3.0+
  1309.      = G        528x480     256             Cirrus 510/520 chipset
  1310.      = G        640x480 32768        A000 ATI
  1311.      = G        640x480     16M        A000 WD90C
  1312.      = G        640x480     16M        A000 Diamond Speedstar 24X
  1313.      = G           1024x768      16             C&T chipset, Cardinal
  1314.  73h = G   80x60  8x8    640x480      16        A000 Quadram Ultra VGA
  1315.      = G   80x60  8x8    640x480      16             Genoa 6400
  1316.      = G   80x60  8x8    640x480      16             Genoa SuperEGA BIOS 3.0+
  1317.  74h = T   80x66  8x8          16        B800 Quadram Ultra VGA
  1318.      = T   80x66  8x8          16        B800 Genoa 6400
  1319.      = T   80x66  8x8          16        B800 Genoa SuperEGA BIOS 3.0+
  1320.      = G        640x400       2        B800 Toshiba 3100 AT&T mode
  1321.      = G   80x30  8x16    640x480      32K        A000 Trident 8900C/BIOS C03
  1322.      = G  128x48  8x16 1024x768      16       1    A000 Ahead A, Ahead B (512K)
  1323.      = G     -       -   1024x768      64K        A000 Cirrus CL-GD 5422/5426 [1]
  1324.  75h = G   80x30  8x16    640x480      64K        A000 Trident 8900C/BIOS C03
  1325.      = G   80x66    640x528      16???        A000 Quadram Ultra VGA
  1326.      = G   80x66    640x528      16             Genoa SuperEGA BIOS 3.0+
  1327.      = G  128x48  8x16 1024x768       4       1    A000 Ahead B
  1328.  76h = T   94x29  8x14          16        B800 Quadram Ultra VGA
  1329.      = T   94x29  8x14                     Genoa SuperEGA BIOS 3.0+
  1330.      = G  100x75  8x8    800x600      32K        A000 Trident 8900C/BIOS C03
  1331.      = G  128x48  8x16 1024x768       2       1    A000 Ahead B
  1332.  77h = G   94x29    752x410      16???        A000 Quadram Ultra VGA
  1333.      = G   94x29    752x410      16             Genoa SuperEGA BIOS 3.0+
  1334.      = G  100x75  8x8    800x600      64K        A000 Trident 8900C/BIOS C03
  1335.  78h = T  100x37  8x16          16             Genoa 6400
  1336.      = T  100x75  8x8          16        B800 Quadram Ultra VGA
  1337.      = T  100x75  8x8                     Genoa SuperEGA BIOS 3.0+
  1338.      = G        640x400     256             STB VGA/EM-16 Plus
  1339.      = G        640x400     256             Cardinal, C&T chipset
  1340.      = G        640x400     256             Cirrus 5320 chipset
  1341.  79h = G        640x480     256             Cardinal, C&T chipset
  1342.      = G  100x75    800x600      16???        A000 Quadram Ultra VGA
  1343.      = G  100x75  8x8    800x600      16             Genoa SuperEGA BIOS 3.0+
  1344.      = G  100x75  8x8    800x600      16             Genoa 6400
  1345.  7Ah = T  114x60  8x8          16        B800 Quadram Ultra VGA
  1346.      = T  114x60  8x8                     Genoa SuperEGA BIOS 3.0+
  1347.      = G        720x540     256             C&T chipset, Cardinal
  1348.  7Bh = G        800x600     256             C&T chipset, Cardinal
  1349.      = G  114x60    912x480      16???        A000 Quadram Ultra VGA
  1350.      = G        912x480      16             Genoa SuperEGA BIOS 3.0+
  1351.  7Ch = G        512x512      16             Genoa
  1352.      = G        800x600     256             C&T 82C453 chipset
  1353.  7Dh = G   64x32  8x16    512x512     256             Genoa
  1354.  7Eh =     special mode set (see AX=007Eh)         Paradise VGA, AT&T VDC600
  1355.      = G   80x25  8x16    640x400     256             Genoa 6400
  1356.      = G           1024x768     256             C&T 82C453 chipset
  1357.  7Fh =     special function set (see AX=007Fh)         Paradise VGA, AT&T VDC600
  1358.      = G  128x48  8x16 1024x768       4             Genoa 6400
  1359.  82h = T   80x25         B&W             AT&T VDC overlay mode [6]
  1360.  83h = T   80x25                     AT&T VDC overlay mode [6]
  1361.  86h = G        640x200     B&W             AT&T VDC overlay mode [6]
  1362.  88h = G   90x43  8x8    720x352     mono        B000 Hercules + MSHERC.COM
  1363.  C0h = G        640x400     2/prog pallet         AT&T VDC overlay mode [6]
  1364.      = G        640x400     2/prog pallet         Olivetti Quaderno overlay
  1365.  C4h =     disable output                     AT&T VDC overlay mode [6]
  1366.  C8h = G   80x50  8x8    640x400       2        B800 Olivetti Quaderno overlay
  1367.  D0h = G        640x400       2        B800 DEC VAXmate AT&T mode
  1368. Notes:
  1369. [1] interlaced only
  1370. [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
  1371.       SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
  1372.       otherwise to mode 23h, thus selecting the appropriate (monochrome or
  1373.       color) 132x25 character mode.
  1374.     for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
  1375.       resident
  1376. [3] early XGA boards support 132-column text but do not have this BIOS mode
  1377. [4] DESQview intercepts calls to change into these two modes (21h is page 0,
  1378.       22h is page 1) even if there is no Hercules graphics board installed
  1379. [5] ATI BIOS v4-1.00 has a text-scrolling bug in this mode
  1380. [6] for AT&T VDC overlay modes, BL contains the DEB mode, which may be 06h,
  1381.       40h, or 44h
  1382. [7] BIOS text support is broken in this undocumented mode; scrolling moves only
  1383.       about 1/3 of the screen (and does even that portion incorrectly), while
  1384.       screen clears only clear about 3/4.
  1385. [8] The Oak OTI-037/067/077 modes are present in the Oak VGA BIOS, which OEMs
  1386.       may choose to use only partially or not at all; thus, not all Oak boards
  1387.       support all "Oak" modes listed here
  1388. [9] this card uses the full 128K A000h-BFFFh range for the video buffer,
  1389.       precluding the use of a monochrome adapter in the same system
  1390. [10] mode 17h supported by Tseng ET4000 BIOS 8.01X dated 09/14/90, but not
  1391.       v8.01X dated 02/28/92; mode 21h supported by 02/28/92 version but not
  1392.       09/14/90 version
  1393. [11] HERKULES simulates a 90x45 text mode in Hercules graphics mode; the
  1394.       installation check for HERKULES.COM is the signature "Herkules" two bytes
  1395.       beyond the INT 10 handler
  1396. [12] The Realtek RTVGA BIOS v3.C10 crashes when attempting to switch into modes
  1397.     21h or 27h; this version of the BIOS also sets the BIOS data area
  1398.     incorrectly for extended text modes, resulting in scrolling after only
  1399.     24 lines (the VMODE.EXE    utility does set the data area correctly)
  1400. Index:    video modes
  1401. Index:    installation check|HERKULES
  1402. --------V-100070-----------------------------
  1403. INT 10 - VIDEO - Everex Micro Enhancer EGA/Viewpoint VGA - EXTENDED MODE SET
  1404.     AX = 0070h
  1405.     BL = mode (see below)
  1406. Desc:    specify a proprietary display mode on the Everex Micro Enhancer or
  1407.       Viewpoint video adapters
  1408. SeeAlso: AH=00h,AX=6F05h,AX=7000h/BX=0004h,AH=FFh"GO32"
  1409.  
  1410. Values for video mode:
  1411.       text/ text pixel     pixel    colors    disp    scrn  monitor    adapter
  1412.       grph resol  box    resoltn        page    addr
  1413.  00h = G        640x480      16             multsync    EGA,VGA
  1414.  01h = G        752x410      16             multsync    EGA,VGA
  1415.  02h = G        800x600      16             multsync    EGA,VGA
  1416.  03h = T   80x34                     multsync    EGA,VGA
  1417.  04h = T   80x60                     multsync    EGA,VGA
  1418.  05h = T   94x29                     multsync    EGA only
  1419.  06h = T   94x51                     multsync    EGA only
  1420.  07h = T  100x43  8x14          16                VGA only
  1421.  08h = T  100x75  8x8          16                VGA only
  1422.  09h = T   80x44                     EGA    EGA only
  1423.  0Ah = T  132x25                     EGA    EGA,VGA
  1424.  0Bh = T  132x44                     EGA    EGA,VGA
  1425.  0Ch = T  132x25                     CGA    EGA only
  1426.  0Dh = T   80x44                     mono    EGA only
  1427.  0Eh = T  132x25                     mono
  1428.  0Fh = T  132x44                     mono
  1429.  10h =     reserved
  1430.  11h = G           1280x350       4                EGA only
  1431.  12h = G           1280x600       4                EGA only
  1432.  13h = G        640x350     256                EGA,EV673
  1433.  14h = G        640x400     256
  1434.  15h = G        512x480     256
  1435.  16h = T   80x30  8x16         256                VGA only
  1436.  18h = T  100x27  8x16          16                VGA only
  1437.  20h = G           1024x768      16                Everex 629,678
  1438.                                 Everex EV-673
  1439.  21h = T  160x64  8x16 1280x1024  16                1MB VGA only
  1440.  30h = G        640x480     256                Everex 629,678
  1441.                                 Everex EV-673
  1442.  31h = G        800x600     256                Everex 629,678
  1443.                                 Everex EV-673
  1444.  32h = G  128x48  8x16 1024x768     256                1MB VGA only
  1445.  40h = T  132x30  8x16          16                VGA only
  1446.  50h = T  132x32  8x16         mono                VGA only
  1447.  62h = G   40x25  8x8    320x200     32K                Vwpt TC (EV629)
  1448.  70h = G   64x30  8x16    512x480     32K                Viewpoint TC
  1449.  71h = G   80x30  8x16    640x480     32K                Viewpoint TC
  1450.  76h = G   64x30  8x16    512x480     16M                Viewpoint TC
  1451.  77h = G   80x30  8x16    640x480     16M                Viewpoint TC
  1452. Index:    video modes
  1453. --------V-10007E-----------------------------
  1454. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET SPECIAL MODE
  1455.     AX = 007Eh
  1456.     BX = horizontal dimension of the mode desired
  1457.     CX = vertical dimension of the mode desired
  1458.          (both BX/CX in pixels for graphics modes, rows for alpha modes)
  1459.     DX = number of colors of the mode desired (0000h for monochrome modes)
  1460. Return: BH = 7Eh if successful (Paradise VGA)
  1461.     AL = 7Eh if successful (AT&T VDC600)
  1462. Desc:    specify a display mode by resolution rather than mode number
  1463. SeeAlso: AH=00h,AX=0070h,AX=007Fh,AX=6F05h,AH=FFh"GO32"
  1464. Index:    video modes
  1465. --------V-10007FBH00-------------------------
  1466. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET VGA OPERATION
  1467.     AX = 007Fh
  1468.     BH = 00h
  1469. Return: AL = 7Fh if successful (AT&T VDC600)
  1470.     BH = status (Paradise/Dell)
  1471.         00h invalid function
  1472.         7Fh successful
  1473. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1474. --------V-10007FBH01-------------------------
  1475. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - SET NON-VGA OPERATION
  1476.     AX = 007Fh
  1477.     BH = 01h
  1478. Return: AL = 7Fh if successful (AT&T VDC600)
  1479.     BH = status (Paradise/Dell)
  1480.         00h invalid function
  1481.         7Fh successful
  1482. Note:    color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation, monochrome
  1483.       mode 7 will set non-VGA MDA/Hercules operation
  1484. SeeAlso: AX=007Fh/BH=00h,AX=007Fh/BH=02h
  1485. --------V-10007FBH02-------------------------
  1486. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - QUERY MODE STATUS
  1487.     AX = 007Fh
  1488.     BH = 02h
  1489. Return: AL = 7Fh if successful (AT&T VDC600)
  1490.     BH = status (Paradise/Dell)
  1491.         00h invalid function
  1492.         7Fh successful
  1493.     ---if successful---
  1494.     BL = 00h if operating in VGA mode, 01h if non-VGA mode
  1495.     CH = total video RAM size in 64k byte units
  1496.     CL = video RAM used by the current mode
  1497. SeeAlso: AX=007Fh/BH=01h,AX=007Fh/BH=02h
  1498. --------V-10007F-----------------------------
  1499. INT 10 - VIDEO - Paradise VGA, AT&T VDC600 - EXTENDED FUNCTIONS
  1500.     AX = 007Fh
  1501.     BH = function
  1502.         03h     lock current mode
  1503.         allows current mode (VGA or non-VGA) to survive re-boot
  1504.         04h     enter MDA mode
  1505.         05h     enter CGA mode
  1506.         06h     enter monochrome VGA mode (also switches to video mode 7)
  1507.         07h     enter color VGA mode (also switches to video mode 3)
  1508.         0Ah,0Bh,0Ch,0Dh,0Eh,0Fh  WRITE PARADISE REGISTERS 0,1,2,3,4,5
  1509.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1510.         BL = value to set in the paradise register
  1511.         1Ah,1Bh,1Ch,1Dh,1Eh,1Fh READ PARADISE REGISTERS 0,1,2,3,4,5
  1512.         (port 03CEh indices 0Ah,0Bh,0Ch,0Dh,0Eh,0Fh)
  1513.         Return: BL = value of the paradise register
  1514.             BH = 7Fh if successful
  1515.         29h-2Fh ??? (Paradise VGA for Dell, 7/24/91)
  1516. Return: AL = 7Fh if successful (AT&T VDC600)
  1517.     BH = status (Paradise/Dell)
  1518.         00h invalid function
  1519.         7Fh successful
  1520. Desc:    set emulation mode or access proprietary extended data registers
  1521. SeeAlso: AX=007Eh,AH=FF"Oak"
  1522. --------V-10007FBH60-------------------------
  1523. INT 10 - Paradise VGA - ???
  1524.     AX = 007Fh
  1525.     BH = 60h
  1526.     BL = ??? (00h-13h)
  1527.     ???
  1528. Return: BH = status (00h failed or not supported, 7Fh successful)
  1529.     ???
  1530. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1531. --------V-10007FBH61-------------------------
  1532. INT 10 - Paradise VGA - ???
  1533.     AX = 007Fh
  1534.     BH = 61h
  1535.     ES:DI -> buffer for list of ??? (see below)
  1536. Return: BH = status (00h failed or not supported, 7Fh successful)
  1537.     ???
  1538. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1539.  
  1540. Format of list entry:
  1541. Offset    Size    Description
  1542.  00h    BYTE    ??? or 00h if end of list
  1543.  01h    BYTE    ???
  1544.  02h    WORD    ???
  1545.  04h    WORD    ???
  1546.  06h    WORD    ???
  1547. --------V-10007FBXA500-----------------------
  1548. INT 10 - Paradise VGA - ???
  1549.     AX = 007Fh
  1550.     BX = A500h
  1551.     ???
  1552. Return: BH = status (00h failed or not supported, 7Fh successful)
  1553.     ???
  1554. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1555. --------V-10007FBHA5-------------------------
  1556. INT 10 - Paradise VGA - ???
  1557.     AX = 007Fh
  1558.     BH = A5h
  1559.     BL = ???
  1560.         bits 3-0: ??? (0-4)
  1561.         bits 5,4: ???
  1562.     ???
  1563. Return: BH = status (00h failed or not supported, 7Fh successful)
  1564.     ???
  1565. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1566. --------V-10007FBHA6-------------------------
  1567. INT 10 - Paradise VGA - ???
  1568.     AX = 007Fh
  1569.     BH = A6h
  1570.     ???
  1571. Return: BH = status (00h failed or not supported, 7Fh successful)
  1572.     ???
  1573. Note:    this function is supported by the 5/14/93 ROM for the Dell 486D
  1574. --------V-1001-------------------------------
  1575. INT 10 - VIDEO - SET TEXT-MODE CURSOR SHAPE
  1576.     AH = 01h
  1577.     CH = bit 7    should be zero
  1578.          bits 6,5 cursor blink
  1579.              (00=normal, 01=invisible, 10=erratic, 11=slow)
  1580.              (00=normal, other=invisible on EGA/VGA)
  1581.          bits 4-0 top scan line containing cursor
  1582.     CL = bottom scan line containing cursor (bits 0-4)
  1583. Desc:    specify the starting and ending scan lines to be occupied by the
  1584.       hardware cursor in text modes
  1585. Notes:    buggy on EGA systems--BIOS remaps cursor shape in 43 line modes, but
  1586.       returns unmapped cursor shape
  1587.     UltraVision scales size to the current font height by assuming 14-line
  1588.       monochrome and 8-line color fonts; this call is not valid if cursor
  1589.       emulation has been disabled
  1590.     applications which wish to change the cursor by programming the
  1591.       hardware directly on EGA or above should call INT 10/AX=1130h or
  1592.       read 0040h:0085h first to determine the current font height
  1593. BUG:    AMI 386 BIOS and AST Premier 386 BIOS will lock up the system if AL
  1594.       is not equal to the current video mode
  1595. SeeAlso: AH=03h,AX=CD05h,AH=12h/BL=34h
  1596. --------V-1002-------------------------------
  1597. INT 10 - VIDEO - SET CURSOR POSITION
  1598.     AH = 02h
  1599.     BH = page number
  1600.         0-3 in modes 2&3
  1601.         0-7 in modes 0&1
  1602.         0 in graphics modes
  1603.     DH = row (00h is top)
  1604.     DL = column (00h is left)
  1605. SeeAlso: AH=03h,AH=05h,INT 60/DI=030Bh
  1606. --------V-1003-------------------------------
  1607. INT 10 - VIDEO - GET CURSOR POSITION AND SIZE
  1608.     AH = 03h
  1609.     BH = page number
  1610.         0-3 in modes 2&3
  1611.         0-7 in modes 0&1
  1612.         0 in graphics modes
  1613. Return: AX = 0000h (Phoenix BIOS)
  1614.     CH = start scan line
  1615.     CL = end scan line
  1616.     DH = row (00h is top)
  1617.     DL = column (00h is left)
  1618. Notes:    a separate cursor is maintained for each of up to 8 display pages
  1619.     many ROM BIOSes incorrectly return the default size for a color display
  1620.       (start 06h, end 07h) when a monochrome display is attached
  1621. SeeAlso: AH=01h,AH=02h,AH=12h/BL=34h
  1622. --------V-1004-------------------------------
  1623. INT 10 - VIDEO - READ LIGHT PEN POSITION (except VGA)
  1624.     AH = 04h
  1625. Return: AH = light pen trigger flag
  1626.         00h not down/triggered
  1627.         01h down/triggered
  1628.         DH,DL = row,column of character light pen is on
  1629.         CH = pixel row (graphics modes 04h-06h)
  1630.         CX = pixel row (graphics modes with >200 rows)
  1631.         BX = pixel column
  1632. Desc:    determine the current position and status of the light pen (if
  1633.       present)
  1634. Notes:    on a CGA, returned column numbers are always multiples of 2 (320-
  1635.       column modes) or 4 (640-column modes)
  1636.     returned row numbers are only accurate to two lines
  1637. --------V-1005-------------------------------
  1638. INT 10 - VIDEO -  SELECT ACTIVE DISPLAY PAGE
  1639.     AH = 05h
  1640.     AL = new page number (00h to number of pages - 1) (see AH=00h)
  1641. Desc:    specify which of possibly multiple display pages will be visible
  1642. Note:    to determine whether the requested page actually exists, use AH=0Fh
  1643.       to query the current page after making this call
  1644. SeeAlso: AH=0Fh,AH=43h,AH=45h
  1645. --------V-1005-------------------------------
  1646. INT 10 - VIDEO - PCjr - MANIPULATE CRT/CPU PAGE REGISTERS
  1647.     AH = 05h
  1648.     AL = subfunction
  1649.         80h read CRT and CPU page registers
  1650.         Return: BH = CRT page register
  1651.             BL = CPU page register
  1652.         81h set CPU page register
  1653.         BL = CPU page
  1654.         82h set CRT page register
  1655.         BH = CRT page
  1656.         83h set both CPU and CRT page registers
  1657.         BL = CPU page
  1658.         BH = CRT page
  1659. Notes:    the CPU page determines which 16K block of the first 128K of physical
  1660.       memory will be mapped at B800h by the hardware
  1661.     the CRT page determines the start address of the memory used by the
  1662.       video controller
  1663. --------V-1005-------------------------------
  1664. INT 10 - VIDEO - Corona/Cordata BIOS v4.10+ - GRAPHICS BITMAP BUFFER
  1665.     AH = 05h
  1666.     AL = function
  1667.         00h set address of graphics bitmap buffer (video modes 60h,61h)
  1668.         BX = segment of buffer
  1669.         0Fh get address of graphics bitmap buffer (video modes 60h,61h)
  1670.         Return: DX = segment of graphics bitmap buffer
  1671. --------V-1006-------------------------------
  1672. INT 10 - VIDEO - SCROLL UP WINDOW
  1673.     AH = 06h
  1674.     AL = number of lines by which to scroll up (00h = clear entire window)
  1675.     BH = attribute used to write blank lines at bottom of window
  1676.     CH,CL = row,column of window's upper left corner
  1677.     DH,DL = row,column of window's lower right corner
  1678. Note:    affects only the currently active page (see AH=05h)
  1679. Warning: some implementations have a bug which destroys BP
  1680. SeeAlso: AH=07h,AH=72h,AH=73h,AX=7F07h,INT 50/AX=0014h
  1681. --------V-1007-------------------------------
  1682. INT 10 - VIDEO - SCROLL DOWN WINDOW
  1683.     AH = 07h
  1684.     AL = number of lines by which to scroll down (00h=clear entire window)
  1685.     BH = attribute used to write blank lines at top of window
  1686.     CH,CL = row,column of window's upper left corner
  1687.     DH,DL = row,column of window's lower right corner
  1688. Note:    affects only the currently active page (see AH=05h)
  1689. Warning: some implementations have a bug which destroys BP
  1690. SeeAlso: AH=06h,AH=72h,AH=73h,INT 50/AX=0014h
  1691. --------V-1008-------------------------------
  1692. INT 10 - VIDEO - READ CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1693.     AH = 08h
  1694.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1695. Return: AH = charater's attribute (see below)
  1696.     AL = character
  1697. Notes:    for monochrome displays, a foreground of 1 with background 0 is
  1698.       underlined
  1699.     the blink bit may be reprogrammed to enable intense background colors
  1700.       using AX=1003h or by programming the CRT controller
  1701.     the foreground intensity bit (3) can be programmed to switch between
  1702.       character sets A and B on EGA and VGA cards, thus enabling 512
  1703.       simultaneous characters on screen.  In this case the bit's usual
  1704.       function (intensity) is regularly turned off.
  1705. SeeAlso: AH=09h,AX=1003h,AX=5001h
  1706.  
  1707. Bitfields for character's attribute:
  1708.  bit 7    blink
  1709.  bits 6-4  background color
  1710.         000 black    100 red
  1711.         001 blue    101 magenta
  1712.         010 green    110 brown
  1713.         011 cyan    111 white
  1714.  bits 3-0  foreground color
  1715.         0000 black     1000 dark gray
  1716.         0001 blue     1001 light blue
  1717.         0010 green     1010 light green
  1718.         0011 cyan     1011 light cyan
  1719.         0100 red     1100 light red
  1720.         0101 magenta     1101 light magenta
  1721.         0110 brown     1110 yellow
  1722.         0111 light gray     1111 white
  1723. --------V-1009-------------------------------
  1724. INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION
  1725.     AH = 09h
  1726.     AL = character to display
  1727.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1728.     BL = attribute (text mode) or color (graphics mode)
  1729.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1730.     CX = number of times to write character
  1731. Notes:    all characters are displayed, including CR, LF, and BS
  1732.     replication count in CX may produce an unpredictable result in graphics
  1733.       modes if it is greater than the number of positions remaining in the
  1734.       current row
  1735. SeeAlso: AH=08h,AH=0Ah,AH=4Bh"GRAFIX",INT 17/AH=60h,INT 1F,INT 43,INT 44
  1736. --------V-100A-------------------------------
  1737. INT 10 - VIDEO - WRITE CHARACTER ONLY AT CURSOR POSITION
  1738.     AH = 0Ah
  1739.     AL = character to display
  1740.     BH = page number (00h to number of pages - 1) (see AH=00h)
  1741.     BL = attribute (PCjr only) or color (graphics mode)
  1742.          if bit 7 set in graphics mode, character is xor'ed onto screen
  1743.     CX = number of times to write character
  1744. Notes:    all characters are displayed, including CR, LF, and BS
  1745.     replication count in CX may produce an unpredictable result in graphics
  1746.       modes if it is greater than the number of positions remaining in the
  1747.       current row
  1748. SeeAlso: AH=08h,AH=09h,AH=4Bh,INT 17/AH=60h,INT 1F,INT 43,INT 44
  1749. --------V-100B--BH00-------------------------
  1750. INT 10 - VIDEO - SET BACKGROUND/BORDER COLOR
  1751.     AH = 0Bh
  1752.     BH = 00h
  1753.     BL = background/border color (border only in text modes)
  1754. SeeAlso: AH=0Bh/BH=01h
  1755. --------V-100B--BH01-------------------------
  1756. INT 10 - VIDEO - SET PALETTE
  1757.     AH = 0BH
  1758.     BH = 01h
  1759.     BL = palette ID
  1760.         00h background, green, red, and brown/yellow
  1761.         01h background, cyan, magenta, and white
  1762. SeeAlso: AH=0Bh/BH=00h
  1763. --------V-100C-------------------------------
  1764. INT 10 - VIDEO - WRITE GRAPHICS PIXEL
  1765.     AH = 0Ch
  1766.     BH = page number
  1767.     AL = pixel color (if bit 7 set, value is xor'ed onto screen)
  1768.     CX = column
  1769.     DX = row
  1770. Desc:    set a single pixel on the display in graphics modes
  1771. Notes:    valid only in graphics modes
  1772.     BH is ignored if the current video mode supports only one page
  1773. SeeAlso: AH=0Dh,AH=46h
  1774. --------V-100D-------------------------------
  1775. INT 10 - VIDEO - READ GRAPHICS PIXEL
  1776.     AH = 0Dh
  1777.     BH = page number
  1778.     CX = column
  1779.     DX = row
  1780. Return: AL = pixel color
  1781. Desc:    determine the current color of the specified pixel in grahics modes
  1782. Notes:    valid only in graphics modes
  1783.     BH is ignored if the current video mode supports only one page
  1784. SeeAlso: AH=0Ch,AH=47h
  1785. --------V-100E-------------------------------
  1786. INT 10 - VIDEO - TELETYPE OUTPUT
  1787.     AH = 0Eh
  1788.     AL = character to write
  1789.     BH = page number
  1790.     BL = foreground color (graphics modes only)
  1791. Desc:    display a character on the screen, advancing the cursor and scrolling
  1792.       the screen as necessary
  1793. Notes:    characters 07h (BEL), 08h (BS), 0Ah (LF), and 0Dh (CR) are interpreted
  1794.       and do the expected things
  1795.     IBM PC ROMs dated 4/24/81 and 10/19/81 require that BH be the same as
  1796.       the current active page
  1797. SeeAlso: AH=02h,AH=0Ah
  1798. --------V-100F-------------------------------
  1799. INT 10 - VIDEO - GET CURRENT VIDEO MODE
  1800.     AH = 0Fh
  1801. Return: AH = number of character columns
  1802.     AL = display mode (see AH=00h)
  1803.     BH = active page (see AH=05h)
  1804. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1805.       also have bit 7 set
  1806.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1807.       (monochrome) in all extended-row text modes
  1808. SeeAlso: AH=00h,AH=05h,AX=10F2h/BL=00h,AX=1130h,AX=CD04h
  1809. --------V-100F56BX4756-----------------------
  1810. INT 10 - VUIMAGE DISPLAY DRIVER (v2.20 and below)
  1811.     AX = 0F56h
  1812.     BX = 4756h
  1813.     CX = 4944h
  1814.     DL = function
  1815.         01h installation check
  1816.         Return: AX = 5649h
  1817.             BX = 4443h
  1818.             CX = 5647h
  1819.             DH = 01h
  1820.         02h get first video mode's parameters
  1821.         Return: AX = BIOS mode number
  1822.             BX = width in pixels
  1823.             CX = height in pixels
  1824.             DX = number of colors
  1825.         03h get next video mode's parameters
  1826.         Return: as for DL=02h
  1827.         04h display line???
  1828.         ES:DI -> record (see below)
  1829.         ???
  1830.         Return: ???
  1831. Program: VUIMAGE is a shareware GIF/TIFF image viewer by Offe Enterprises
  1832. Note:    the use of TSR display drivers was discontinued after v2.20
  1833. Index:    installation check;VUIMAGE display driver
  1834.  
  1835. Format of record for DL=04h:
  1836. Offset    Size    Description
  1837.  00h    WORD    row number
  1838.  02h    WORD    starting column???
  1839.  04h    WORD    ending column???
  1840.     ???
  1841. --------V-100F--SIF123-----------------------
  1842. INT 10 - FRIEZE v7.41+ - INSTALLATION CHECK
  1843.     AH = 0Fh
  1844.     SI = F123h
  1845.     DI = 321Fh
  1846. Return: AH = number of character columns
  1847.     AL = display mode (see AH=00h)
  1848.     BH = active page (see AH=05h)
  1849.     SI = DI = F345h if installed
  1850. Notes:    if mode was set with bit 7 set ("no blanking"), the returned mode will
  1851.       also have bit 7 set
  1852.     EGA, VGA, and UltraVision return either AL=03h (color) or AL=07h
  1853.       (monochrome) in all extended-row text modes
  1854. SeeAlso: AH=0Fh"VIDEO",AH=4Bh"FRIEZE"
  1855. --------V-1010-------------------------------
  1856. INT 10 - BIOS Window Extension v1.1 - SET WINDOW COORDINATES
  1857.     AH = 10h
  1858.     CH,CL = row,column of upper left corner of window
  1859.     DH,DL = row,column of lower right corner of window
  1860. Return: AL = status
  1861.         00h successful
  1862.         01h failed
  1863.     AH destroyed
  1864. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  1865. Note:    when a window has been set, all output via AH=0Eh is restricted to
  1866.       the specified window
  1867. SeeAlso: AH=11h"Window",AH=12h"Window"
  1868. --------V-1010-------------------------------
  1869. INT 10 - VIDEO - Eagle PC2 BIOS Rev. C - SET SCROLL SPEED
  1870.     AH = 10h
  1871.     AL = speed
  1872.         00h fast
  1873.         01h slow (scrolling only moves characters during vertical retrace)
  1874. Return: AH = previous speed
  1875. --------V-101000-----------------------------
  1876. INT 10 - VIDEO - SET SINGLE PALETTE REGISTER (PCjr,EGA,MCGA,VGA)
  1877.     AX = 1000h
  1878.     BL = palette register number (00h-0Fh)
  1879.        = attribute register number (undocumented)
  1880.          10h attribute mode control register (should let BIOS control this)
  1881.          11h overscan color register (see also AX=1001h)
  1882.          12h color plane enable register (bits 3-0 enable corresponding
  1883.         text attribute bit)
  1884.          13h horizontal PEL panning register
  1885.          14h color select register
  1886.     BH = color or attribute register value
  1887. Notes:    on MCGA, only BX = 0712h is supported
  1888.     under UltraVision, the palette locking status (see AX=CD01h)
  1889.       determines the outcome
  1890. SeeAlso: AX=1002h,AX=1007h,AX=CD01h
  1891. --------V-101001-----------------------------
  1892. INT 10 - VIDEO - SET BORDER (OVERSCAN) COLOR (PCjr,EGA,VGA)
  1893.     AX = 1001h
  1894.     BH = border color (00h-3Fh)
  1895. BUG:    the original IBM VGA BIOS incorrectly updates the parameter save area
  1896.       and places the border color at offset 11h of the palette table
  1897.       rather than offset 10h
  1898. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  1899.       determines the outcome
  1900. SeeAlso: AX=1002h,AX=1008h,AX=CD01h
  1901. --------V-101002-----------------------------
  1902. INT 10 - VIDEO - SET ALL PALETTE REGISTERS (PCjr,EGA,VGA)
  1903.     AX = 1002h
  1904.     ES:DX -> palette register list
  1905. Note:    under UltraVision, the palette locking status (see AX=CD01h)
  1906.       determines the outcome
  1907. SeeAlso: AX=1000h,AX=1001h,AX=1009h,AX=CD01h
  1908.  
  1909. Format of palette register list:
  1910. Offset    Size    Description
  1911.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  1912.  10h    BYTE    border color
  1913. --------V-101003-----------------------------
  1914. INT 10 - VIDEO - TOGGLE INTENSITY/BLINKING BIT (Jr, PS, TANDY 1000, EGA, VGA)
  1915.     AX = 1003h
  1916.     BL = new state
  1917.         00h background intensity enabled
  1918.         01h blink enabled
  1919.     BH = 00h to avoid problems on some adapters
  1920. Notes:    although there is no function to get the current status on adapters
  1921.       prior to the VGA, bit 5 of 0040h:0065h indicates the state; on the
  1922.       VGA, use AH=1Bh and check offset 2Dh of the returned data
  1923.     when configured for a monochrome display, the Boca Research Multi-EGA
  1924.       with ROM v M1.1 Type D has its screen disrupted if BH is not clear
  1925. SeeAlso: AH=08h,AH=1Bh
  1926. --------V-101007-----------------------------
  1927. INT 10 - VIDEO - GET INDIVIDUAL PALETTE REGISTER (VGA,UltraVision v2+)
  1928.     AX = 1007h
  1929.     BL = palette or attribute (undoc) register number (see AX=1000h)
  1930. Return: BH = palette or attribute register value
  1931. Note:    UltraVision v2+ supports this function even on color EGA systems in
  1932.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  1933.       registers will cause incorrect results because the EGA registers are
  1934.       write-only.  To guard against older versions or unsupported video
  1935.       modes, programs which expect to use this function on EGA systems
  1936.       should set BH to FFh on entry.
  1937. SeeAlso: AX=1000h,AX=1009h
  1938. --------V-101008-----------------------------
  1939. INT 10 - VIDEO - READ OVERSCAN (BORDER COLOR) REGISTER (VGA,UltraVision v2+)
  1940.     AX = 1008h
  1941. Return: BH = border color (00h-3Fh)
  1942. Note:    (see AX=1007h)
  1943. SeeAlso: AX=1001h
  1944. --------V-101009-----------------------------
  1945. INT 10 - VIDEO - READ ALL PALETTE REGISTERS AND OVERSCAN REGISTER (VGA)
  1946.     AX = 1009h
  1947.     ES:DX -> 17-byte buffer (see AX=1002h)
  1948. Note:    UltraVision v2+ supports this function even on color EGA systems in
  1949.       video modes 00h-03h, 10h, and 12h; direct programming of the palette
  1950.       registers will cause incorrect results because the EGA registers are
  1951.       write-only.  To guard against older versions or unsupported video
  1952.       modes, programs which expect to use this function on EGA systems
  1953.       should set the ES:DX buffer to FFh before calling.
  1954. SeeAlso: AX=1002h,AX=1007h,AX=CD02h
  1955. --------V-101010-----------------------------
  1956. INT 10 - VIDEO - SET INDIVIDUAL DAC REGISTER (VGA/MCGA)
  1957.     AX = 1010h
  1958.     BX = register number
  1959.     CH = new value for green (0-63)
  1960.     CL = new value for blue (0-63)
  1961.     DH = new value for red (0-63)
  1962. SeeAlso: AX=1012h,AX=1015h
  1963. --------V-101012-----------------------------
  1964. INT 10 - VIDEO - SET BLOCK OF DAC REGISTERS (VGA/MCGA)
  1965.     AX = 1012h
  1966.     BX = starting color register
  1967.     CX = number of registers to set
  1968.     ES:DX -> table of 3*CX bytes where each 3 byte group represents one
  1969.          byte each of red, green and blue (0-63)
  1970. SeeAlso: AX=1010h,AX=1017h,INT 62/AX=00A5h
  1971. --------V-101013-----------------------------
  1972. INT 10 - VIDEO - SELECT VIDEO DAC COLOR PAGE (VGA)
  1973.     AX = 1013h
  1974.     BL = subfunction
  1975.         00h select paging mode
  1976.         BH = 00h select 4 blocks of 64
  1977.         BH = 01h select 16 blocks of 16
  1978.         01h select page
  1979.         BH = page number (00h to 03h) or (00h to 0Fh)
  1980. Note:    this function is not valid in mode 13h
  1981. SeeAlso: AX=101Ah
  1982. --------V-101015-----------------------------
  1983. INT 10 - VIDEO - READ INDIVIDUAL DAC REGISTER (VGA/MCGA)
  1984.     AX = 1015h
  1985.     BL = palette register number
  1986. Return: DH = red value
  1987.     CH = green value
  1988.     CL = blue value
  1989. SeeAlso: AX=1010h,AX=1017h
  1990. --------V-101017-----------------------------
  1991. INT 10 - VIDEO - READ BLOCK OF DAC REGISTERS (VGA/MCGA)
  1992.     AX = 1017h
  1993.     BX = starting palette register
  1994.     CX = number of palette registers to read
  1995.     ES:DX -> buffer (3 * CX bytes in size) (see also AX=1012h)
  1996. Return: buffer filled with CX red, green and blue triples
  1997. SeeAlso: AX=1012h,AX=1015h,INT 62/AX=00A4h
  1998. --------V-101018-----------------------------
  1999. INT 10 U - VIDEO - SET PEL MASK (VGA/MCGA)
  2000.     AX = 1018h
  2001.     BL = new PEL value
  2002. SeeAlso: AX=1019h
  2003. --------V-101019-----------------------------
  2004. INT 10 U - VIDEO - READ PEL MASK (VGA/MCGA)
  2005.     AX = 1019h
  2006. Return: BL = value read
  2007. SeeAlso: AX=1018h
  2008. --------V-10101A-----------------------------
  2009. INT 10 - VIDEO - GET VIDEO DAC COLOR-PAGE STATE (VGA)
  2010.     AX = 101Ah
  2011. Return: BL = paging mode
  2012.         00h four pages of 64
  2013.         01h sixteen pages of 16
  2014.     BH = current page
  2015. SeeAlso: AX=1013h
  2016. --------V-10101B-----------------------------
  2017. INT 10 - VIDEO - PERFORM GRAY-SCALE SUMMING (VGA/MCGA)
  2018.     AX = 101Bh
  2019.     BX = starting palette register
  2020.     CX = number of registers to convert
  2021. Desc:    convert the RGB values of one or more palette registers such that the
  2022.       resulting values are grays with the same intensities as the original
  2023.       colors
  2024. SeeAlso: AH=12h/BL=33h
  2025. --------V-1010E0-----------------------------
  2026. INT 10 - VIDEO - Diamond Speedstar 24 - SET 24-BIT GRAPHICS MODE
  2027.     AX = 10E0h
  2028.     BL = video mode (see also AH=00h)
  2029.         2Eh = 640x480
  2030. Return: ???
  2031. SeeAlso: AH=00h,AX=10F0h
  2032. --------V-1010F0-----------------------------
  2033. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  2034.     AX = 10F0h
  2035.     BL = video mode (see also AH=00h)
  2036.         13h = 320x200x32K
  2037.         2Dh = 640x350x32K
  2038.         2Eh = 640x480x32K
  2039.         2Fh = 640x400x32K
  2040.         30h = 800x600x32K
  2041.         3Eh = 640x480x16M (Genoa 7900)
  2042.         FFh Tseng 24-bit color mode
  2043.         BH = mode
  2044.             2Eh = 640x480x16M
  2045. Return: AL = 10h if supported
  2046.     AH = status
  2047.         00h if successful
  2048.         other on error
  2049. Desc:    switch the display into a graphics mode with 15 or more bits per pixel
  2050. Note:    the Tseng HiColor BIOS extensions are supported by:
  2051.       Diamond Computer Systems    SpeedStar HiColor VGA
  2052.       Everex Systems        HC VGA
  2053.       Focus Information Systems    2theMax 4000
  2054.       Cardinal Technologies        VGA732
  2055.       Orchid ProDesigner IIs    Genoa 7900
  2056. SeeAlso: AH=00h,AX=10E0h,AX=10F1h,AX=10F2h
  2057. Index:    video modes
  2058. --------V-1010F1-----------------------------
  2059. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  2060.     AX = 10F1h
  2061. Return: AL = 10h if supported
  2062.     BL = type of digital/analog converter
  2063.         00h normal VGA DAC
  2064.         01h Sierra SC1148x HiColor DAC
  2065.         02h new Sierra DAC
  2066.        else other HiColor DAC
  2067. Desc:    determine which type of digital-to-analog converter is installed on the
  2068.       display board
  2069. SeeAlso: AX=10F0h,AX=10F2h
  2070. --------V-1010F2BL00-------------------------
  2071. INT 10 u - VIDEO - Tseng ET-4000 BIOS - CHECK IF IN HiColor MODE
  2072.     AX = 10F2h
  2073.     BL = 00h
  2074. Return: AX = 0010h if supported
  2075.     BL = video mode type
  2076.         00h normal
  2077.         else HiColor mode
  2078. Desc:    determine whether the display is in a graphics mode with 15 or more
  2079.       bits per pixel color resolution
  2080. SeeAlso: AH=0Fh,AX=10F0h,AX=10F1h
  2081. --------V-1011-------------------------------
  2082. INT 10 - BIOS Window Extension v1.1 - GET WINDOW COORDINATES
  2083.     AH = 11h
  2084. Return: CH,CL = row,column of upper left corner
  2085.     DH,DL = row,column of lower right corner
  2086. Desc:    determine the portion of the display to which output is restricted
  2087. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2088. SeeAlso: AH=10h"Window",AH=12h"Window"
  2089. --------V-1011-------------------------------
  2090. INT 10 - VIDEO - TEXT-MODE CHARACTER GENERATOR FUNCTIONS (PS, EGA, VGA)
  2091.     AH = 11h
  2092.     The following functions will cause a mode set, completely resetting
  2093.     the video environment, but without clearing the video buffer
  2094.     AL = 00h, 10h: load user-specified patterns
  2095.         ES:BP -> user table
  2096.         CX      = count of patterns to store
  2097.         DX      = character offset into map 2 block
  2098.         BL      = block to load in map 2
  2099.         BH      = number of bytes per character pattern
  2100.     AL = 01h, 11h: load ROM monochrome patterns (8 by 14)
  2101.         BL      = block to load
  2102.     AL = 02h, 12h: load ROM 8 by 8 double-dot patterns
  2103.         BL      = block to load
  2104.     AL = 03h: set block specifier
  2105.         BL      = block specifier
  2106.            (EGA/MCGA) bits 0,1 = block selected by chars with attribute
  2107.                      bit 3 = 0
  2108.                   bits 2,3 = block selected by chars with attribute
  2109.                      bit 3 = 1
  2110.            (VGA) bits 0,1,4 = block selected by attribute bit 3 = 0
  2111.              bits 2,3,5 = block selected by attribute bit 3 = 1
  2112.     AL = 04h, 14h: load ROM 8x16 character set (VGA)
  2113.         BL    = block to load
  2114. Notes:    The routines called with AL=1xh are designed to be called only
  2115.       immediately after a mode set and are similar to the routines called
  2116.       with AL=0xh, except that:
  2117.           Page 0 must be active.
  2118.           Bytes/character is recalculated.
  2119.           Max character rows is recalculated.
  2120.           CRT buffer length is recalculated.
  2121.           CRTC registers are reprogrammed as follows:
  2122.              R09 = bytes/char-1 ; max scan line (mode 7 only)
  2123.              R0A = bytes/char-2 ; cursor start
  2124.              R0B = 0        ; cursor end
  2125.              R12 = ((rows+1)*(bytes/char))-1 ; vertical display end
  2126.              R14 = bytes/char    ; underline loc
  2127.                (*** BUG: should be 1 less ***)
  2128.     the current block specifiers may be determined with INT 10/AH=1Bh,
  2129.       looking at offsets 2Bh and 2Ch of the returned data (VGA only)
  2130. SeeAlso: AH=1Bh,AX=CD10h
  2131. --------V-1011-------------------------------
  2132. INT 10 - VIDEO - Realtek RTVGA - TEXT-MODE CHARACTER GENERATOR FUNCTIONS
  2133.     AH = 11h
  2134.     AL = 07h load user-specified paterns and recalculate mode parms
  2135.          parameters are the same as for AL = 10h
  2136.     AL = 08h load monochrome patterns (8x14) and recalculate mode parms
  2137.          parameters are the same as for AL = 11h
  2138.     AL = 09h load ROM 8 by 8 double-dot patterns and recalculate mode parms
  2139.          parameters are the same as for AL = 12h
  2140.     AL = 0Bh load ROM 8x16 character set (VGA) and recalculate mode parms
  2141.          parameters are the same as for AL = 14h
  2142. Note:    these functions should only be called under the same conditions as
  2143.       AL=1xh (see entry above)
  2144. SeeAlso: AH=11h
  2145. --------V-10110F-----------------------------
  2146. INT 10 - VIDEO - Realtek RTVGA - SET USER 8x8 GRAPHICS CHARACTERS
  2147.     AX = 110Fh
  2148.     ES:BP -> user table for INT 1F
  2149. Note:    this function is meant to be called immediately after a mode set;
  2150.       results are unpredictable at other times
  2151. SeeAlso: AX=1110h,AX=1111h,AX=1112h,AX=1120h
  2152. --------V-101110-----------------------------
  2153. INT 10 - VIDEO - Realtek RTVGA - SET USER GRAPHICS CHARACTERS
  2154.     AX = 1110h
  2155.     ES:BP -> user table
  2156.     CX = bytes per character
  2157.     BL = row specifier
  2158.         00h user set
  2159.         DL = number of rows
  2160.         01h 14 rows
  2161.         02h 25 rows
  2162.         03h 43 rows
  2163. Note:    this function is meant to be called immediately after a mode set;
  2164.       results are unpredictable at other times
  2165. SeeAlso: AX=110Fh,AX=1112h,AX=1121h
  2166. --------V-101111-----------------------------
  2167. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x14 GRAPHICS CHARACTERS
  2168.     AX = 1111h
  2169.     BL = row specifier (see AX=1121h)
  2170. Note:    this function is meant to be called immediately after a mode set;
  2171.       results are unpredictable at other times
  2172. SeeAlso: AX=110Fh,AX=1110h,AX=1122h
  2173. --------V-101112-----------------------------
  2174. INT 10 - VIDEO - Realtek RTVGA - SET ROM 8x8 DOUBLE-DOT CHARACTERS
  2175.     AX = 1112h
  2176.     BL = row specifier (see AX=1121h)
  2177. Note:    this function is meant to be called immediately after a mode set;
  2178.       results are unpredictable at other times
  2179. SeeAlso: AX=110Fh,AX=1110h,AX=1111h,AX=1123h
  2180. --------V-101120-----------------------------
  2181. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER 8x8 GRAPHICS CHARS (PS,EGA,VGA)
  2182.     AX = 1120h
  2183.     ES:BP -> user table for INT 1F
  2184. Note:    this function is meant to be called immediately after a mode set;
  2185.       results are unpredictable at other times
  2186. SeeAlso: AX=1121h,AX=1122h,AX=1123h,AX=1124h,AX=1125h,INT 1F,INT 43
  2187. --------V-101121-----------------------------
  2188. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET USER GRAPHICS CHARACTERS (PS,EGA,VGA)
  2189.     AX = 1121h
  2190.     ES:BP -> user table
  2191.     CX = bytes per character
  2192.     BL = row specifier
  2193.         00h user set
  2194.         DL = number of rows
  2195.         01h 14 rows
  2196.         02h 25 rows
  2197.         03h 43 rows
  2198. Note:    this function is meant to be called immediately after a mode set;
  2199.       results are unpredictable at other times
  2200. SeeAlso: AX=1120h,AX=1122h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2201. --------V-101122-----------------------------
  2202. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x14 GRAPHICS CHARS (PS,EGA,VGA)
  2203.     AX = 1122h
  2204.     BL = row specifier (see AX=1121h)
  2205. Notes:    this function is meant to be called immediately after a mode set;
  2206.       results are unpredictable at other times
  2207.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2208. SeeAlso: AX=1111h,AX=1120h,AX=1121h,AX=1123h,AX=1124h,AX=1129h,INT 1F,INT 43
  2209. --------V-101123-----------------------------
  2210. INT 10 - VIDEO - GRAPH-MODE CHARGEN - SET ROM 8x8 DOUBLE-DOT CHARS (PS,EGA,VGA)
  2211.     AX = 1123h
  2212.     BL = row specifier (see AX=1121h)
  2213. Notes:    this function is meant to be called immediately after a mode set;
  2214.       results are unpredictable at other times
  2215.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2216. SeeAlso: AX=1112h,AX=1120h,AX=1121h,AX=1122h,AX=1124h,AX=1129h,INT 1F,INT 43
  2217. --------V-101124-----------------------------
  2218. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPHICS CHARS (VGA,MCGA)
  2219.     AX = 1124h
  2220.     BL = row specifier (see AX=1121h)
  2221. Notes:    this function is meant to be called immediately after a mode set;
  2222.       results are unpredictable at other times
  2223.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2224. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1129h,INT 1F,INT 43
  2225. --------V-101129-----------------------------
  2226. INT 10 - VIDEO - GRAPH-MODE CHARGEN - LOAD 8x16 GRAPH CHARS (Compaq Systempro)
  2227.     AX = 1129h
  2228.     BL = row specifier (see AX=1121h)
  2229. Notes:    this function is meant to be called immediately after a mode set;
  2230.       results are unpredictable at other times
  2231.     UltraVision v2+ sets INT 43 to the appropriate font on this call
  2232. SeeAlso: AX=1120h,AX=1121h,AX=1122h,AX=1123h,AX=1124h,INT 1F, INT 43
  2233. --------V-101130-----------------------------
  2234. INT 10 - VIDEO - GET FONT INFORMATION (EGA, MCGA, VGA)
  2235.     AX = 1130h
  2236.     BH = pointer specifier
  2237.         00h INT 1Fh pointer
  2238.         01h INT 43h pointer
  2239.         02h ROM 8x14 character font pointer
  2240.         03h ROM 8x8 double dot font pointer
  2241.         04h ROM 8x8 double dot font (high 128 characters)
  2242.         05h ROM alpha alternate (9 by 14) pointer (EGA,VGA)
  2243.         06h ROM 8x16 font (MCGA, VGA)
  2244.         07h ROM alternate 9x16 font (VGA only)
  2245.         11h (UltraVision v2+) 8x20 font (VGA) or 8x19 font (autosync EGA)
  2246.         12h (UltraVision v2+) 8x10 font (VGA) or 8x11 font (autosync EGA)
  2247. Return: ES:BP = specified pointer
  2248.     CX    = bytes/character of on-screen font (not the requested font!)
  2249.     DL    = highest character row on screen
  2250. Note:    for UltraVision v2+, the 9xN alternate fonts follow the corresponding
  2251.       8xN font at ES:BP+256N
  2252. BUG:    the IBM EGA and some other EGA cards return in DL the number of rows on
  2253.       screen rather than the highest row number (which is one less).
  2254. SeeAlso: AX=1100h,AX=1120h,INT 1F,INT 43
  2255.  
  2256. Format of alternate font table [array]:
  2257. Offset    Size    Description
  2258.  00h    BYTE    character to be replaced (00h = end of table)
  2259.  01h  N BYTEs    graphics data for character, one byte per scan line
  2260. --------V-101130BX4D4F-----------------------
  2261. INT 10 - M10_SCR.COM v3.5+ - INSTALLATION CHECK
  2262.     AX = 1130h
  2263.     BX = 4D4Fh
  2264. Return: CX = 4F4Dh if installed
  2265.         ES:BP -> M10_SCR INT 10 handler
  2266. Program: M10_SCR is a shareware extended text mode and font driver by
  2267.       I.V. Morozov
  2268. SeeAlso: INT 16/AX=4D4Fh
  2269. --------V-1012-------------------------------
  2270. INT 10 - BIOS Window Extension v1.1 - GET BLANKING ATTRIBUTE
  2271.     AH = 12h
  2272. Return: BH = attribute to use on blanked lines when scrolling
  2273. Program: BWE is a TSR by John J. Seal published in May 1986 Dr. Dobb's Journal
  2274. SeeAlso: AH=11h"Window",AH=12h"Window"
  2275. --------V-1012--BL10-------------------------
  2276. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, EGA, VGA, MCGA) - GET EGA INFO
  2277.     AH = 12h
  2278.     BL = 10h
  2279. Return: BH = 00h color mode in effect (I/O port 3Dxh)
  2280.          01h mono mode in effect (I/O port 3Bxh)
  2281.     BL = installed memory (00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K)
  2282.     CH = feature bits
  2283.     CL = switch settings
  2284.         bit 0: switch 1 OFF
  2285.         bit 1: switch 2 OFF
  2286.         bit 2: switch 3 OFF
  2287.         bit 3: switch 4 OFF
  2288.         bits 4-7: unused
  2289. Note:    one possible check for the presence of an EGA or later display card
  2290.       is to call this function with BH=FFh; if not present, BH will be
  2291.       unchanged on return
  2292. --------V-1012--BL11-------------------------
  2293. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET BIOS INFO
  2294.     AH = 12h
  2295.     BL = 11h
  2296. Return: AL = 12h if function supported
  2297.         ES:BP -> BIOS info structure
  2298. SeeAlso: AH=12h/BL=12h"TRIDENT"
  2299.  
  2300. Format of Info structure:
  2301. Offset    Size     Description
  2302.  00h    BYTE     ??? (=0)
  2303.  01h    BYTE     OEM Code (00h for original Trident)
  2304.  02h    WORD     ID??? (1073h for 8800BR, 1074 for 8800CS)
  2305.  04h  8 BYTEs     BIOS date ('mm/dd/yy')
  2306.  0Ch    WORD     ???
  2307.  0Eh  8 BYTEs     BIOS Version (' C3-128 ', ' C3-129 ')
  2308. --------V-1012--BL12-------------------------
  2309. INT 10 - VIDEO - Trident TVGA 8800/8900/9000 BIOS - GET VIDEO RAM SIZE
  2310.     AH = 12h
  2311.     BL = 12h
  2312. Return: AL = 12h if function supported
  2313.         AH = number of 256K banks of RAM installed
  2314. SeeAlso: AH=12h/BL=11h"TRIDENT"
  2315. --------V-1012--BL20-------------------------
  2316. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS,EGA,VGA,MCGA) - ALTERNATE PRTSC
  2317.     AH = 12h
  2318.     BL = 20h  select alternate print screen routine
  2319. Desc:    installs a PrtSc routine from the video card's BIOS to replace the
  2320.       default PrtSc handler from the ROM BIOS, which usually does not
  2321.       understand screen heights other than 25 lines
  2322. Note:    some adapters disable print-screen instead of enhancing it
  2323. SeeAlso: INT 05
  2324. --------V-1012--BL2E-------------------------
  2325. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2326.     AH = 12h
  2327.     BL = 2Eh
  2328. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2329.       crash the system on this function
  2330. --------V-1012--BL30-------------------------
  2331. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - SELECT VERTICAL RESOLUTION
  2332.     AH = 12h
  2333.     BL = 30h
  2334.     AL = vertical resolution
  2335.          00h 200 scan lines
  2336.          01h 350 scan lines
  2337.          02h 400 scan lines
  2338. Return: AL = 12h if function supported
  2339. Desc:    specify the number of scan lines used to display text modes
  2340. Note:    the specified resolution will take effect on the next mode set
  2341. SeeAlso: AH=00h
  2342. --------V-1012--BL31-------------------------
  2343. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - PALETTE LOADING
  2344.     AH = 12h
  2345.     BL = 31h
  2346.     AL = new state
  2347.         00h enable default palette loading
  2348.         01h disable default palette loading
  2349. Return: AL = 12h if function supported
  2350. Desc:    specify whether a default palette should be loaded when the display
  2351.       mode is set
  2352. SeeAlso: AH=00h
  2353. --------V-1012--BL32-------------------------
  2354. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - VIDEO ADDRESSING
  2355.     AH = 12h
  2356.     BL = 32h
  2357.     AL = new state
  2358.         00h enable video addressing
  2359.         01h disable video addressing
  2360. Return: AL = 12h if function supported
  2361. Desc:    specify whether the CPU should have access to video memory and the
  2362.       display adapters I/O registers
  2363. --------V-1012--BL33-------------------------
  2364. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA, MCGA) - GRAY-SCALE SUMMING
  2365.     AH = 12h
  2366.     BL = 33h
  2367.     AL = new state
  2368.         00h enable gray scale summing
  2369.         01h disable gray scale summing
  2370. Return: AL = 12h if function supported
  2371. Desc:    specify whether or not colors should be converted to gray scale when
  2372.       palette or color registers are loaded
  2373. SeeAlso: AX=101Bh,AX=BF06h,AX=BF08h
  2374. --------V-1012--BL34-------------------------
  2375. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (VGA) - CURSOR EMULATION
  2376.     AH = 12h
  2377.     BL = 34h
  2378.     AL = new state
  2379.         00h enable alphanumeric cursor emulation
  2380.         01h disable alphanumeric cursor emulation
  2381. Return: AL = 12h if function supported
  2382. Desc:    specify whether the BIOS should automatically remap cursor start/end
  2383.       according to the current character height in text modes
  2384. SeeAlso: AH=01h,AH=03h
  2385. --------V-1012--BL35-------------------------
  2386. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS) - DISPLAY-SWITCH INTERFACE
  2387.     AH = 12h
  2388.     BL = 35h
  2389.     AL = subfunction
  2390.         00h initial adapter video off
  2391.         01h initial planar video on
  2392.         02h switch active video off
  2393.         03h switch inactive video on
  2394.         80h *UNDOCUMENTED* set system board video active flag
  2395.     ES:DX -> buffer for 128 byte save area (if AL = 00h-03h)
  2396. Return: AL = 12h if function supported
  2397. Desc:    switch between two video adapters which may otherwise have address
  2398.       conflicts
  2399. --------V-1012--BL36-------------------------
  2400. INT 10 - VIDEO - ALTERNATE FUNCTION SELECT (PS, VGA) - VIDEO REFRESH CONTROL
  2401.     AH = 12h
  2402.     BL = 36h
  2403.     AL = new state
  2404.         00h enable refresh
  2405.         01h disable refresh
  2406. Return: AL = 12h if function supported
  2407. Desc:    specify whether the contents of video memory should be displayed on
  2408.       the screen; disabling refresh effectively blanks the screen
  2409. SeeAlso: AX=BF05h
  2410. --------V-1012--BL53-------------------------
  2411. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2412.     AH = 12h
  2413.     BL = 53h
  2414. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2415.       crash the system on this function
  2416. --------V-1012--BL57-------------------------
  2417. INT 10 - Tseng ET-4000 BIOS v8.00 (06/07/91) - BUG
  2418.     AH = 12h
  2419.     BL = 57h
  2420. Note:    due to an omitted end-of-list marker, this version of the BIOS will
  2421.       crash the system on this function
  2422. --------V-1012--BH55-------------------------
  2423. INT 10 - VIDEO - ALTERNATE FUNC SELECT (ATI,Tatung,Taxan) - ENHANCED FEATURES
  2424.     AH = 12h
  2425.     BH = 55h
  2426.     BL = subfunction
  2427.         00h disable enhanced features
  2428.         01h enable enhanced features
  2429.         02h get status
  2430.         Return: AL = status flags (see below)
  2431.         03h disable register trapping (CGA emulation)
  2432.         04h enable register trapping
  2433.         05h program video mode
  2434.         ES:BP -> video mode table (see below)
  2435.         06h get mode table
  2436.         AL = video mode
  2437.         Return: ES:BP -> table suitable for mode AL (and subfnc BL=05h)
  2438.             BP = FFFFh on error
  2439. SeeAlso: AH=FFh"Oak"
  2440.  
  2441. Bitfields for status flags:
  2442.  bit 3    set if enhanced features enabled
  2443.  bits 7-5 monitor type
  2444.     000 PS/2 mono
  2445.     001 PS/2 color
  2446.     010 multi-sync
  2447.     011 Taxan 650 25kHz
  2448.     100 RGB
  2449.     101 mono
  2450.     110 EGA
  2451.     111 Compaq internal
  2452.  
  2453. Format of ATI VGA Wonder video mode table:
  2454. Offset    Size    Description
  2455.  00h    BYTE    number of columns
  2456.  01h    BYTE    maximum row (number of rows - 1)
  2457.  02h    BYTE    scan lines per row
  2458.  03h    WORD    video buffer size in bytes
  2459.  05h  4 BYTEs    values for Sequencer registers 1-4
  2460.  09h    BYTE    value for Miscellaneous Output register
  2461.  0Ah 25 BYTEs    values for CRTC registers 00h-18h
  2462.         00h horizontal total size (chars)
  2463.         01h horizontal displayed (chars)
  2464.         02h horizontal sync position (chars)
  2465.         03h horizontal sync width (chars)
  2466.         04h vertical total size (char rows)
  2467.         05h vertical total adjust (scan lines)
  2468.         06h vertical displayed (char rows)
  2469.         07h vertical sync position (char rows)
  2470.         08h interlace mode
  2471.         09h max scan line in row
  2472.         0Ah cursor start scan line
  2473.         0Bh cursor end scan line
  2474.         0Ch screen memory start (high)
  2475.         0Dh screen memory start (low)
  2476.         0Eh cursor address (high)
  2477.         0Fh cursor address (low)
  2478.         10h light pen (high)
  2479.         11h light pen (low)
  2480.  23h 20 BYTEs    default palette (values for Attribute Controller regs 00h-13h)
  2481.  37h  9 BYTEs    values for Graphics Controller registers 00h-08h
  2482. --------V-1012--BL74-------------------------
  2483. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2484.     AH = 12h
  2485.     BL = 74h
  2486. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2487.       crash the system on this function
  2488. --------V-1012--BL80-------------------------
  2489. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2490.     AH = 12h
  2491.     BL = 80h
  2492. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2493.       crash the system on this function
  2494. --------V-1012--BL80-------------------------
  2495. INT 10 - Cirrus Logic BIOS - INQUIRE VGA TYPE
  2496.     AH = 12h
  2497.     BL = 80h
  2498. Return: AX = controller type in bits 13-0 (see below)
  2499.         bit 14: ???
  2500.         bit 15: ???
  2501.     BL = silicon revision number (bit 7 set if not available)
  2502. SeeAlso: AH=12h/BL=81h,AH=12h/BL=82h,AH=12h/BL=85h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2503.  
  2504. Values for controller type:
  2505.  0000h    no extended alternate select support
  2506.  0002h    510/520
  2507.  0003h    610/620
  2508.  0004h    5320
  2509.  0005h    6410
  2510.  0006h    5410
  2511.  0007h    6420
  2512.  0008h    6412
  2513.  0010h    5401
  2514.  0011h    5402
  2515.  0012h    5420
  2516.  0013h    5422
  2517.  0014h    5424
  2518.  0015h    5426
  2519.  0016h    5420r1
  2520.  0017h    5402r1
  2521.  0018h    5428
  2522.  0020h    6205/15/25
  2523.  0030h    5432
  2524.  0031h    5434
  2525. --------V-1012--BL81-------------------------
  2526. INT 10 - Cirrus Logic BIOS - GET BIOS VERSION NUMBER
  2527.     AH = 12h
  2528.     BL = 81h
  2529. Return: AH = BIOS major version
  2530.     AL = BIOS minor version
  2531. SeeAlso: AH=12h/BL=80h,AH=12h/BL=82h
  2532. --------V-1012--BL82-------------------------
  2533. INT 10 - Cirrus Logic BIOS - GET DESIGN REVISION CODE
  2534.     AH = 12h
  2535.     BL = 82h
  2536. Return: AL = chip revision
  2537.     AH = ??? (AFh for v1.01)
  2538. SeeAlso: AH=12h/BL=80h,AH=12h/BL=81h
  2539. ----------1012--BL84-------------------------
  2540. INT 10 - Cirrus Logic BIOS v3.02 - INQUIRE OPTIONS
  2541.     AH = 12h
  2542.     BL = 84h
  2543. Return: AX = user options word (see below)
  2544. SeeAlso: AH=12h/BL=89h,AH=12h/BL=8Ah,AH=12h/BL=8Bh,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2545. SeeAlso: AH=12h/BL=90h,AH=12h/BL=9Ah
  2546.  
  2547. Bitfields for user options word:
  2548.  bits 1,0    centering
  2549.         00 vertical centered, 01 from bottom, 10 from top, 11 reserved
  2550.  bits 3,2    720-dot fix-up options
  2551.         00 OR every 8th and 9th pixel
  2552.         01 display MGA mode from left
  2553.         10 display MGA mode from right
  2554.         11 skip every 9th pixel
  2555.  bit 4        ???
  2556.  bits 7-5    video mode
  2557.         001 CGA
  2558.         010 MGA
  2559.         011 EGA
  2560.         100 VGA
  2561.  bit 8        external monitor enabled instead of LCD panel
  2562.  bit 9        vertical expand mode enabled
  2563.  bit 10        8-bit mode instead of 16-bit mode
  2564.  bit 11        normal video rather than reverse video (for LCD)
  2565.  bit 12        attribute automap rather than attribute emulation
  2566.  bit 13        bold mode disabled (default)
  2567.  bit 14        fast bandwidth
  2568.  bit 15        ???
  2569. --------V-1012--BL85-------------------------
  2570. INT 10 - Cirrus Logic BIOS - GET INSTALLED MEMORY
  2571.     AH = 12h
  2572.     BL = 85h
  2573. Return: AL = number of 64K banks of video memory
  2574. SeeAlso: AH=12h/BL=80h,AH=12h/BL=93h
  2575. --------V-1012--BL89-------------------------
  2576. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - EN/DISABLE REVERSE VIDEO MODE
  2577.     AH = 12h
  2578.     BL = 89h
  2579.     AL = new state (00h enabled, 01h disabled)
  2580. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=8Bh
  2581. --------V-1012--BL8A-------------------------
  2582. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET FRAME COLOR
  2583.     AH = 12h
  2584.     BL = 8Ah
  2585.     AL = new gray-scale color (00h = black to 0Fh = white)
  2586. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Fh
  2587. --------V-1012--BL8B-------------------------
  2588. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE BOLD MODE
  2589.     AH = 12h
  2590.     BL = 8Bh
  2591.     AL = new state (00h enabled, 01h disabled)
  2592. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Ch,AH=12h/BL=8Fh
  2593. --------V-1012--BL8C-------------------------
  2594. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET AUTOMAP/EMULATE ATTRIBUTES
  2595.     AH = 12h
  2596.     BL = 8Ch
  2597.     AL = new state
  2598.         00h enable automap
  2599.         01h disable automap and emulate attributes
  2600. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Bh
  2601. --------V-1012--BL8F-------------------------
  2602. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - ENABLE/DISABLE EXPAND MODE
  2603.     AH = 12h
  2604.     BL = 8Fh
  2605.     AL = new state (00h enabled, 01h disabled)
  2606. Note:    when expand mode is enabled, the vertical dimension is enlarged to
  2607.       full screen
  2608. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=8Bh,AH=12h/BL=90h
  2609. --------V-1012--BL90-------------------------
  2610. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET CENTERING MODE
  2611.     AH = 12h
  2612.     BL = 90h
  2613.     AL = new position
  2614.         00h centered
  2615.         01h from top
  2616.         02h from bottom
  2617.         03h from top
  2618. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Fh
  2619. --------V-1012--BL91-------------------------
  2620. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SET 720-DOT FIXUP MODE
  2621.     AH = 12h
  2622.     BL = 91h
  2623.     AL = new mode
  2624.         00h display MGA mode from left of screen (default)
  2625.         01h display MGA from right
  2626.         02h skip every ninth pixel
  2627.         03h OR every 8th and 9th pixel
  2628. SeeAlso: AH=12h/BL=84h,AH=12h/BL=8Ah,AH=12h/BL=90h
  2629. --------V-1012--BL92-------------------------
  2630. INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - SWITCH DISPLAY
  2631.     AH = 12h
  2632.     BL = 92h
  2633.     AL = new display (00h LCD, 01h external monitor)
  2634. Note:    the deselected display is disabled
  2635. SeeAlso: AH=12h/BL=84h,AH=12h/BL=89h,AH=12h/BL=90h,AH=12h/BL=94h
  2636. --------V-1012--BL93-------------------------
  2637. INT 10 - Cirrus Logic BIOS - FORCE 8-BIT OR 16-BIT OPERATION
  2638.     AH = 12h
  2639.     BL = 93h
  2640.     AL = new I/O width (00h = 16 bits, 01h = 8 bits)
  2641. SeeAlso: AH=12h/BL=9Ah
  2642. --------V-1012--BL94-------------------------
  2643. INT 10 - Cirrus Logic BIOS v3.02 - POWER CONSERVATION
  2644.     AH = 12h
  2645.     BL = 94h
  2646.     AL = new state (00h wake up monitor, 01h shut down display)
  2647. Note:    AL=01h is reported not to work properly on the LCD panel
  2648. SeeAlso: AH=12h/BL=84h,AH=12h/BL=92h
  2649. --------V-1012--BL9A-------------------------
  2650. INT 10 - Cirrus Logic BIOS - GET USER OPTIONS
  2651.     AH = 12h
  2652.     BL = 9Ah
  2653. Return: AX = options word 1 (see below)
  2654.     CX = options word 2 (see below)
  2655. SeeAlso: AH=12h/BL=80h,AH=12h/BL=84h,AH=12h/BL=93h,AH=12h/BL=A0h
  2656. SeeAlso: AH=12h/BL=A3h,AH=12h/BL=A4h
  2657.  
  2658. Bitfields for options word 1:
  2659.  bits 0,1 reserved
  2660.  bits 2-4 monitor type
  2661.  bits 5-6 maximum vertical resolution
  2662.  bits 7-9 reserved
  2663.  bit 10    force 8-bit operation
  2664.  bits 11-13 reserved
  2665.  bit 14    vertical refresh frequency at 640x480
  2666.  bit 15    reserved
  2667.  
  2668. Bitfields for options word 2:
  2669.  bits 0-3 reserved
  2670.  bits 4-5 vertical refresh frequency at 1280x1024
  2671.  bits 6-10 reserved
  2672.  bits 11-12 vertical refresh frequency at 800x600
  2673.  bits 13-15 vertical refresh frequency at 1024x768
  2674. --------V-1012--BLA0-------------------------
  2675. INT 10 - Cirrus Logic BIOS - GET VIDEO MODE AVAILABILITY
  2676.     AH = 12h
  2677.     BL = A0h
  2678.     AL = video mode number (00h-7Fh)
  2679. Return: AH bit 0: video mode supported
  2680.     BX = offset of BIOS subroutine to fixup standard video parameters
  2681.         (call subroutine with DS:SI and ES:DI as returned by this call)
  2682.     DS:SI -> standard video parameters or FFFFh:FFFFh
  2683.     ES:DI -> supplemental video parameters or FFFFh:FFFFh
  2684. SeeAlso: AH=00h,AH=12h/BL=9Ah,AH=12h/BL=A1h
  2685. --------V-1012--BLA1-------------------------
  2686. INT 10 - Cirrus Logic BIOS - READ MONITOR TYPE AND ID FROM 15-PIN CONNECTOR
  2687.     AH = 12h
  2688.     BL = A1h
  2689. Return: BH = monitor ID (see below)
  2690.     BL = monitor type (00h color, 01h grayscale, 02h no display)
  2691. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A2h
  2692.  
  2693. Values for monitor ID:
  2694.  00h-08h reserved
  2695.  09h    IBM 8604/8507 or equivalent
  2696.  0Ah    IBM 8514 or equivalent
  2697.  0Bh    IBM 8515 or equivalent
  2698.  0Dh    IBM 8503 or equivalent
  2699.  0Eh    IBM 8512/8513 or equivalent
  2700.  0Fh    no monitor
  2701. --------V-1012--BLA2-------------------------
  2702. INT 10 - Cirrus Logic BIOS - SET MONITOR HORIZONTAL RETRACE FREQUENCY
  2703.     AH = 12h
  2704.     BL = A2h
  2705.     AL = retrace rate
  2706.         00h standard VGA (31.5 kHz)
  2707.         01h 8514-compatible (31.5 kHz and 35.5 kHz interlaced)
  2708.         02h SuperVGA (31.5-35.1 kHz)
  2709.         03h extended SuperVGA (31.5-35.5 kHz)
  2710.         04h multi-frequency (31.5-37.8 kHz)
  2711.         05h extended multi-frequency (31.5-48.0 kHz)
  2712.         06h super multi-frequency (31.5-56.0 kHz)
  2713.         07h extended super multi-frequency (31.5-64.0 kHz)
  2714. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A0h,AH=12h/BL=A4h
  2715. --------V-1012--BLA3-------------------------
  2716. INT 10 - Cirrus Logic BIOS - SET VGA REFRESH
  2717.     AH = 12h
  2718.     BL = A3h
  2719.     AL = refresh rate for 640x480 (00h normal, 01h high)
  2720. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A4h
  2721. --------V-1012--BLA4-------------------------
  2722. INT 10 - Cirrus Logic BIOS - SET MONITOR TYPE
  2723.     AH = 12h
  2724.     BL = A4h
  2725.     AL bits 3-0 = maximum vertical resolution
  2726.         (0 = 480 scanlines, 1 = 600, 2 = 768, 3 = 1024, other reserved)
  2727.     AL bits 7-4 = vertical refresh at 640x480
  2728.         (0 = 60Hz, 1 = 72Hz, other reserved)
  2729.     BH bits 3-0 = vertical refresh at 800x600
  2730.         (0 = 56Hz, 1 = 60Hz, 2 = 72Hz, other reserved)
  2731.     BH bits 7-4 = vertical refresh at 1024x768
  2732.         (0=87Hz-int, 1=60Hz, 2=70Hz, 3=72Hz, 4=76Hz, other reserved)
  2733.     CH bits 4-7 = vertical refresh at 1280x1024
  2734.         (0=87Hz-int, 1=60Hz, 2=70Hz, other reserved)
  2735. SeeAlso: AH=12h/BL=9Ah,AH=12h/BL=A3h
  2736. --------V-1012--BLBE-------------------------
  2737. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2738.     AH = 12h
  2739.     BL = BEh
  2740. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2741.       crash the system on this function
  2742. --------V-1012--BLC6-------------------------
  2743. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2744.     AH = 12h
  2745.     BL = C6h
  2746. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2747.       crash the system on this function
  2748. --------V-1012--BLF0-------------------------
  2749. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  2750.     AH = 12h
  2751.     BL = F0h
  2752. Note:    due to an omitted end-of-list marker, these versions of the BIOS will
  2753.       crash the system on this function
  2754. --------V-1013-------------------------------
  2755. INT 10 - VIDEO - WRITE STRING (AT and later,EGA)
  2756.     AH = 13h
  2757.     AL = write mode
  2758.        bit 0: update cursor after writing
  2759.        bit 1: string contains alternating characters and attributes
  2760.     BH = page number
  2761.     BL = attribute if string contains only characters
  2762.     CX = number of characters in string
  2763.     DH,DL = row,column at which to start writing
  2764.     ES:BP -> string to write
  2765. Notes:    recognizes CR, LF, BS, and bell
  2766.     also available PC or XT with EGA or higher
  2767.     HP 95LX only supports write mode 00h
  2768. BUG:    on the IBM VGA Adapter, any scrolling which may occur is performed on
  2769.       the active page rather than the requested page
  2770. SeeAlso: AH=09h,AH=0Ah
  2771. --------V-101400-----------------------------
  2772. INT 10 - VIDEO - LOAD USER-SPECIFIED LCD CHARACTER FONT (CONV,Compaq Port 386)
  2773.     AX = 1400h
  2774.     ES:DI -> character font
  2775.     BH = number of bytes per character
  2776.         08h or 10h (Compaq)
  2777.     BL = 00h load main font (block 0)
  2778.          01h load alternate font (block 1)
  2779.     CX = number of characters to store
  2780.     DX = character offset into RAM font area
  2781. SeeAlso: AH=11h,AX=1401h
  2782. --------V-101401-----------------------------
  2783. INT 10 - VIDEO - LOAD SYSTEM ROM DEFAULT LCD CHARACTER FONT (CONV,CP386)
  2784.     AX = 1401h
  2785.     BL = font to load
  2786.         00h main font (block 0)
  2787.         01h alternate font (block 1)
  2788. SeeAlso: AH=11h,AX=1400h
  2789. --------V-101402-----------------------------
  2790. INT 10 - VIDEO - SET MAPPING OF LCD HIGH INTENSITY ATTRIBUTES (CONV,CP386)
  2791.     AX = 1402h
  2792.     BL = function
  2793.         00h ignore high intensity attribute
  2794.         01h map high intensity to underscore
  2795.         02h map high intensity to reverse video
  2796.         03h map high intensity to selected alternate font
  2797.         B0h half intensity (Compaq)
  2798.         B1h toggle active intensity bit interpretation (CP386)
  2799. --------V-1015-------------------------------
  2800. INT 10 - VIDEO - GET PHYSICAL DISPLAY PARAMETERS (CONVERTIBLE)
  2801.     AH = 15h
  2802. Return: AX = alternate display adapter type (see below)
  2803.     ES:DI -> parameter table (see below)
  2804. SeeAlso: AH=1Bh
  2805.  
  2806. Values for alternate display adapter type:
  2807.  0000h    none
  2808.  5140h    LCD
  2809.  5153h    CGA
  2810.  5151h    mono
  2811.  
  2812. Format of display parameter table:
  2813. Offset    Size    Description
  2814.  00h    WORD    monitor model number
  2815.  02h    WORD    vertical pixels per meter
  2816.  04h    WORD    horizontal pixels per meter
  2817.  06h    WORD    total vertical pixels
  2818.  08h    WORD    total horizontal pixels
  2819.  0Ah    WORD    horizontal pixel separation in micrometers
  2820.  0Ch    WORD    vertical pixel separation in micrometers
  2821. --------V-1015-------------------------------
  2822. INT 10 - VIDEO - SET SUPERIMPOSE MODE (Sperry PC)
  2823.     AH = 15h
  2824.     AL = superimpose mode
  2825.         00h show graphics screen
  2826.         01h show text screen
  2827.         02h show text screen superimposed on graphics screen
  2828. --------V-101A00-----------------------------
  2829. INT 10 - VIDEO - GET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  2830.     AX = 1A00h
  2831. Return: AL = 1Ah if function was supported
  2832.         BL = active display code (see below)
  2833.         BH = alternate display code
  2834. SeeAlso: AH=12h/BL=35h,AX=1A01h,AH=1Bh
  2835.  
  2836. Values for display combination code:
  2837.  00h    no display
  2838.  01h    monochrome adapter w/ monochrome display
  2839.  02h    CGA w/ color display
  2840.  03h    reserved
  2841.  04h    EGA w/ color display
  2842.  05h    EGA w/ monochrome display
  2843.  06h    PGA w/ color display
  2844.  07h    VGA w/ monochrome analog display
  2845.  08h    VGA w/ color analog display
  2846.  09h    reserved
  2847.  0Ah    MCGA w/ digital color display
  2848.  0Bh    MCGA w/ monochrome analog display
  2849.  0Ch    MCGA w/ color analog display
  2850.  FFh    unknown display type
  2851. --------V-101A01-----------------------------
  2852. INT 10 - VIDEO - SET DISPLAY COMBINATION CODE (PS,VGA/MCGA)
  2853.     AX = 1A01h
  2854.     BL = active display code (see AX=1A00h)
  2855.     BH = alternate display code
  2856. Return: AL = 1Ah if function was supported
  2857. SeeAlso: AH=12h/BL=35h,AX=1A00h
  2858. --------V-101B-------------------------------
  2859. INT 10 - VIDEO - FUNCTIONALITY/STATE INFORMATION (PS,VGA/MCGA)
  2860.     AH = 1Bh
  2861.     BX = implementation type
  2862.         0000h return funtionality/state information
  2863.     ES:DI -> 64-byte buffer for state information (see below)
  2864. Return: AL = 1Bh if function supported
  2865.         ES:DI buffer filled with state information
  2866. BUG:    Trident 8900 (BIOS D3.0 11/12/91) and Trident 9000 (C3.0 10/25/91)
  2867.       do not correctly set the fields at offsets 27h and 29h of the
  2868.       state information
  2869. SeeAlso: AH=15h,AX=1A00h,AX=1F01h
  2870.  
  2871. Format of state information:
  2872. Offset    Size    Description
  2873.  00h    DWORD    address of static funtionality table (see below)
  2874.  04h    BYTE    video mode in effect
  2875.  05h    WORD    number of columns
  2876.  07h    WORD    length of regen buffer in bytes
  2877.  09h    WORD    starting address of regen buffer
  2878.  0Bh    WORD    cursor position for page 0
  2879.  0Dh    WORD    cursor position for page 1
  2880.  0Fh    WORD    cursor position for page 2
  2881.  11h    WORD    cursor position for page 3
  2882.  13h    WORD    cursor position for page 4
  2883.  15h    WORD    cursor position for page 5
  2884.  17h    WORD    cursor position for page 6
  2885.  19h    WORD    cursor position for page 7
  2886.  1Bh    WORD    cursor type
  2887.  1Dh    BYTE    active display page
  2888.  1Eh    WORD    CRTC port address
  2889.  20h    BYTE    current setting of register (3?8)
  2890.  21h    BYTE    current setting of register (3?9)
  2891.  22h    BYTE    number of rows
  2892.  23h    WORD    bytes/character
  2893.  25h    BYTE    display combination code of active display
  2894.  26h    BYTE    DCC of alternate display
  2895.  27h    WORD    number of colors supported in current mode
  2896.  29h    BYTE    number of pages supported in current mode
  2897.  2Ah    BYTE    number of scan lines active
  2898.         (0,1,2,3) = (200,350,400,480)
  2899.         Tseng ET3000: (4,5,6 = 512,600,768)
  2900.  2Bh    BYTE    primary character block
  2901.  2Ch    BYTE    secondary character block
  2902.  2Dh    BYTE    miscellaneous flags (see below)
  2903.  2Eh  3 BYTEs    reserved (00h)
  2904.  31h    BYTE    video memory available
  2905.         00h = 64K, 01h = 128K, 02h = 192K, 03h = 256K
  2906.  32h    BYTE    save pointer state flags (see below)
  2907.  33h 13 BYTEs    reserved (00h)
  2908.  
  2909. Bitfields for miscellaneous flags:
  2910.  bit 0    all modes on all displays on
  2911.  bit 1    gray summing on
  2912.  bit 2    monochrome display attached
  2913.  bit 3    default palette loading disabled
  2914.  bit 4    cursor emulation enabled
  2915.  bit 5    0 = intensity; 1 = blinking
  2916.  bit 6    PS/2 P70 plasma display (without 9-dot wide font) active
  2917.  bit 7    reserved
  2918.  
  2919. Bitfields for save pointer state flags:
  2920.  bit 0    512 character set active
  2921.  bit 1    dynamic save area present
  2922.  bit 2    alpha font override active
  2923.  bit 3    graphics font override active
  2924.  bit 4    palette override active
  2925.  bit 5    DCC override active
  2926.  bits 6-7 reserved
  2927.  
  2928. Format of Static Functionality Table:
  2929. Offset    Size    Description
  2930.  00h    BYTE    modes supported #1
  2931.         bit 0 to bit 7 = 1 modes 0,1,2,3,4,5,6 supported
  2932.  01h    BYTE    modes supported #2
  2933.         bit 0 to bit 7 = 1 modes 8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh supported
  2934.  02h    BYTE    modes supported #3
  2935.         bit 0 to bit 3 = 1 modes 10h,11h,12h,13h supported
  2936.         bit 4 to bit 7 reserved
  2937.  03h    BYTE    (IBM) reserved
  2938.         (Tseng ET3000/4000) modes supported #4
  2939.                 bit 0 to bit 7 = modes 18h-1Fh supported
  2940.  04h    BYTE    (IBM) reserved
  2941.         (Tseng ET3000/4000) modes supported #5
  2942.                 bit 0 to bit 7 = modes 20h-27h supported
  2943.  05h    BYTE    (IBM) reserved
  2944.         (Tseng ET3000/4000) modes supported #6
  2945.                 bit 0 to bit 7 = modes 28h-2Fh supported
  2946.  06h    BYTE    (IBM) reserved
  2947.         (Tseng ET3000/4000) modes supported #7
  2948.                 bit 0 to bit 7 = modes 30h-37h supported
  2949.  07h    BYTE    scan lines supported
  2950.         bit 0 to bit 2 = 1 if scan lines 200,350,400 supported
  2951.  08h    BYTE    total number of character blocks available in text modes
  2952.  09h    BYTE    maximum number of active character blocks in text modes
  2953.  0Ah    WORD    miscellaneous function support flags (see below)
  2954.  0Ch    WORD    reserved
  2955.  0Eh    BYTE    save pointer function flags (see below)
  2956.  0Fh    BYTE    reserved
  2957.  
  2958. Bitfields for miscellaneous function support flags:
  2959.  bit 0    all modes on all displays function supported
  2960.  bit 1    gray summing function supported
  2961.  bit 2    character font loading function supported
  2962.  bit 3    default palette loading enable/disable supported
  2963.  bit 4    cursor emulation function supported
  2964.  bit 5    EGA palette present
  2965.  bit 6    color palette present
  2966.  bit 7    color paging function supported
  2967.  bit 8    light pen supported
  2968.  bit 9    save/restore state function 1Ch supported
  2969.  bit 10 intensity blinking function supported
  2970.  bit 11 Display Combination Code supported
  2971.  bits 12-15 reserved
  2972.  
  2973. Bitfields for save pointer function flags:
  2974.  bit 0    512 character set supported
  2975.  bit 1    dynamic save area supported
  2976.  bit 2    alpha font override supported
  2977.  bit 3    graphics font override supported
  2978.  bit 4    palette override supported
  2979.  bit 5    DCC extension supported
  2980.  bits 6-7 reserved
  2981. --------V-101C-------------------------------
  2982. INT 10 - VIDEO - SAVE/RESTORE VIDEO STATE (PS50+,VGA)
  2983.     AH = 1Ch
  2984.     AL = function
  2985.         00h return state buffer size
  2986.         Return: BX = number of 64-byte blocks needed
  2987.         01h save video state
  2988.         ES:BX -> buffer
  2989.         02h restore video state
  2990.         ES:BX -> buffer containing previously saved state
  2991.     CX = requested states
  2992.          bit 0 video hardware
  2993.          bit 1 BIOS data areas
  2994.          bit 2 color registers and DAC state
  2995.          bits 3-15 reserved
  2996. Return: AL = 1Ch if function supported
  2997. Notes:    many BIOSes corrupt the video registers when saving the state, so a
  2998.       program should restore the state immediately after saving it (the
  2999.       saved data is uncorrupted)
  3000.     the BIOS data area consists of the 96 bytes from 0040h:0049h-00A8h
  3001.  
  3002. Format of video hardware state:
  3003. Offset    Size    Description
  3004.  00h    BYTE    sequencer index register
  3005.  01h    BYTE    CRTC index register
  3006.  02h    BYTE    graphics controller index register
  3007.  03h    BYTE    attribute controller index register
  3008.  04h    BYTE    feature controller register
  3009.  05h  4 BYTEs    sequencer registers
  3010.  09h    BYTE    sequencer register 0
  3011.  0Ah 25 BYTEs    CRTC registers 0-8
  3012.  23h 16 BYTEs    palette registers 00h-0Fh
  3013.  33h  4 BYTEs    attribute registers 10h-13h
  3014.  37h  9 BYTEs    graphics controller registers 0-8
  3015.  40h    BYTE    CRTC base address (low)
  3016.  41h    BYTE    CRTC base address (high)
  3017.  42h    BYTE    plane 0 latch
  3018.  43h    BYTE    plane 1 latch
  3019.  44h    BYTE    plane 2 latch
  3020.  45h    BYTE    plane 3 latch
  3021.  
  3022. Format of DAC state:
  3023. Offset    Size    Description
  3024.  00h    BYTE    read/write mode DAC
  3025.  01h    BYTE    pixel address
  3026.  02h    BYTE    pixel mask
  3027.  03h 768 BYTEs    color data (256 triples)
  3028. 303h    BYTE    color select register
  3029. --------V-101D-------------------------------
  3030. INT 10 - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  3031.     AH = 1Dh
  3032.     AL = video mode
  3033.     ES = caller's segment
  3034. Return: nothing
  3035. Note:    the caller's segment contains at offset 5Ch (FCB field in PSP)
  3036.       or 100h a table with sync parameters (BIOS looks at both offsets)
  3037.  
  3038. Format of sync table:
  3039. Offset    Size    Description
  3040.  00h  9 BYTEs    ID contains string 'ey5CENTER'
  3041.  09h  5 BYTEs    sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  3042.  0Bh  5 BYTEs    sync parameters for 800x600 modes 29h,30h,2Ah
  3043.  13h  5 BYTEs    sync parameters for 1024x768 modes 37h,38h
  3044. --------V-101D-------------------------------
  3045. INT 10 - Tseng ET-4000 BIOS v3.00 and v8.00 - BUG
  3046.     AH = 1Dh
  3047. Note:    these versions of the BIOS jump to a random location on this function
  3048.       due to a fencepost error
  3049. --------V-101F00-----------------------------
  3050. INT 10 - VIDEO - XGA - GET DMQS (Display Mode Query and Set) DATA LENGTH
  3051.     AX = 1F00h
  3052. Return: AL = 1Fh if supported
  3053.         BX = number of bytes of DMQS data
  3054. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3055.       and later models.
  3056. SeeAlso: AX=1F01h
  3057. --------V-101F01-----------------------------
  3058. INT 10 - VIDEO - XGA - READ DMQS DATA
  3059.     AX = 1F01h
  3060.     ES:DI -> user buffer for return data (call AX=1F00h for size)
  3061. Return: AL = 1Fh if function supported
  3062.     user buffer filled with DMQS data, see below.
  3063. Note:    not supported on the original IBM XGA, only on XGA-NI (non-interlaced)
  3064.       and later models.
  3065. SeeAlso: AH=1Bh,AX=1F00h,AX=3000h
  3066.  
  3067. Format of DMQS buffer:
  3068. Offset    Size    Description
  3069.  00h    WORD    offset (in bytes) to DMQS data for next XGA instance
  3070.  02h    BYTE    slot number
  3071.  03h    BYTE    XGA implementation function level identifier
  3072.  04h    BYTE    XGA implementation resolution level identifier
  3073.  05h    WORD    vendor identifier - identifies card vendor
  3074.  07h    WORD    vendor defined field
  3075.  09h    WORD    XGA adapter I/O register base address
  3076.  0Bh    WORD    XGA coprocessor register base address
  3077.         (paragraph--multiply by 10h to get physical address)
  3078.  0Dh    WORD    1 Megabyte system video memory aperture
  3079.         0000h if not allocated
  3080.         (Multiply by 100000h to get physical address)
  3081.  0Fh    WORD    4 Megabyte system video memory aperture
  3082.         0000h if not allocated
  3083.         (multiply by 100000h to get physical address)
  3084.  11h    WORD    video memory base address
  3085.         (multiply by 100000h to get physical address)
  3086.  13h    WORD    composite ID of the attached display
  3087.  15h    BYTE    amount of video memory available, in multiples of 256K bytes
  3088.  16h    DWORD    alternate XGA coprocessor register base address.  0 = none.
  3089.  1Ah    var    DMQS Data for further XGA Instances (as above)
  3090. Note:    "Instances" refers to the capability of having up to 8 XGA
  3091.       adapters in one computer.
  3092. --------V-103000CX0000-----------------------
  3093. INT 10 - VIDEO - LOCATE 3270PC CONFIGURATION TABLE (INSTALLATION CHECK)
  3094.     AX = 3000h
  3095.     CX = 0000h
  3096.     DX = 0000h
  3097. Return: CX:DX -> 3270PC configuration table (see below)
  3098.     CX:DX = 0000h:0000h if 3270PC Control Program not active
  3099. SeeAlso: AX=1F01h
  3100.  
  3101. Format of 3270 PC configuration table:
  3102. Offset    Size    Description
  3103.  00h    BYTE    aspect ratio X
  3104.  01h    BYTE    aspect ratio Y
  3105.  02h    BYTE    monitor type (see below)
  3106.  03h    BYTE    reserved
  3107.  04h    BYTE    adapter ID
  3108.         00h = 5151/5272 adapter
  3109.         04h = 5151/5272 with XGA adapter
  3110.         30h = 3295 or 3270PC G/GX adapter
  3111.  05h    BYTE    reserved
  3112.  06h    BYTE    function flags 1 (see below)
  3113.  07h    BYTE    function flags 2
  3114.         bit 6: GPI graphics supported
  3115.  08h    WORD    segment address of Control Program Level table (see below)
  3116.  0Ah 10 BYTEs    reserved
  3117.  
  3118. Values for monitor type:
  3119.  00h    5151 (mono) or 5272 (color)
  3120.  01h    3295
  3121.  02h    5151 or 5272 with XGA (???) graphics adapter
  3122.  03h    5279 with 3270PC G adapter
  3123.  04h    5379 model C01 with 3270PC GX adapter
  3124.  05h    5379 model M01 with 3270PC GX adapter
  3125.  07h    non-3270PC with 3270 Workstation Program
  3126.  FFh    3270PC Control Program not loaded
  3127.  
  3128. Bitfields for function flags 1:
  3129.  bit 7    mono text, 1 page
  3130.  bit 6    color text, 1 page
  3131.  bit 5    color text, 4 pages
  3132.  bit 4    CGA color graphics
  3133.  bit 3    720x350 two-color graphics
  3134.  bit 2    360x350 four-color graphics
  3135.  bit 1    720x350 eight-color graphics
  3136.  
  3137. Format of Control Program Level table:
  3138. Offset    Size    Description
  3139.  00h    WORD    program version
  3140.         02xxh = 3270PC Control Program v2.xx
  3141.         03xxh = 3270PC Control Program v3.xx
  3142.         04xxh = 3270 Workstation Program v1.xx
  3143.  02h    BYTE    Control Program ID (00h)
  3144.  03h 27 BYTEs    Control Program Descriptor ("IBM 3270 PC CONTROL PROGRAM")
  3145. --------a-103800-----------------------------
  3146. INT 10 - Tinytalk Personal v1.09f+ - GET CONFIGURATION INFO
  3147.     AX = 3800h
  3148. Return: ES:DI -> configuration info (see below)
  3149. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3150. Notes:    this call is also used as the installation check by verifying that the
  3151.       returned ES:DI points at valid configuration info
  3152.     Tinytalk v1.09f ignores AL and always returns the configuration info;
  3153.       v1.10 adds several subfunctions selected with AL
  3154. SeeAlso: AX=3801h,AX=3803h,AX=3806h,AH=39h,INT 14/AX=F0F1h
  3155. SeeAlso: INT 2F/FB00h"AutoBraille"
  3156. Index:    installation check;Tinytalk Personal
  3157.  
  3158. Format of configuration info:
  3159. Offset    Size    Description
  3160.  00h  8 BYTEs    signature "TTCONFIG"
  3161.  08h    WORD    size of configuration data, not counting signature, this WORD,
  3162.         or the following byte
  3163.  0Ah    BYTE    ???
  3164.  0Bh    ???    configuration data
  3165. --------a-103801-----------------------------
  3166. INT 10 - Tinytalk Personal v1.10 - ???
  3167.     AX = 3801h
  3168.     DL = ???
  3169. Return: ???
  3170. SeeAlso: AX=3800h,AX=3802h
  3171. --------a-103802-----------------------------
  3172. INT 10 - Tinytalk Personal v1.10 - ???
  3173.     AX = 3802h
  3174.     DL = ???
  3175. Return: ???
  3176. SeeAlso: AX=3800h,AX=3801h
  3177. --------a-103803-----------------------------
  3178. INT 10 - Tinytalk Personal v1.10 - GET ???
  3179.     AX = 3803h
  3180. Return: AL = ???
  3181. SeeAlso: AX=3800h,AX=3804h,AX=3805h
  3182. --------a-103804-----------------------------
  3183. INT 10 - Tinytalk Personal v1.10 - GET ???
  3184.     AX = 3804h
  3185. Return: AX = ???
  3186. SeeAlso: AX=3800h,AX=3803h,AX=3805h
  3187. --------a-103805-----------------------------
  3188. INT 10 - Tinytalk Personal v1.10 - GET ???
  3189.     AX = 3805h
  3190. Return: AL = ???
  3191. SeeAlso: AX=3800h,AX=3803h,AX=3804h
  3192. --------a-103806-----------------------------
  3193. INT 10 - Tinytalk Personal v1.10 - ???
  3194.     AX = 3806h
  3195.     ES:DX -> ASCIZ ???
  3196. Return: ???
  3197. SeeAlso: AX=3800h
  3198. --------a-1039-------------------------------
  3199. INT 10 - Tinytalk Personal v1.10 - ???
  3200.     AH = 39h
  3201. Program: Tinytalk is a shareware screen reader by OMS Development/Eric Bohlman
  3202. Note:    this function was a NOP in TTDEMO.EXE, but may be implemented in other
  3203.       variants of Tinytalk
  3204. --------V-1040-------------------------------
  3205. INT 10 - VIDEO - SET GRAPHICS MODE (Hercules GRAFIX)
  3206.     AH = 40h
  3207. Desc:    switch the Hercules Graphics Card into graphics mode (720x348)
  3208. SeeAlso: AH=00h,AH=41h
  3209. Index:    video modes
  3210. --------V-1041-------------------------------
  3211. INT 10 - VIDEO - SET TEXT MODE (Hercules GRAFIX)
  3212.     AH = 41h
  3213. Desc:    switch the Hercules Graphics Card into text mode
  3214. SeeAlso: AH=00h,AH=40h
  3215. Index:    video modes
  3216. --------V-1042-------------------------------
  3217. INT 10 - VIDEO - CLEAR CURRENT PAGE (Hercules GRAFIX)
  3218.     AH = 42h
  3219. SeeAlso: AH=45h
  3220. --------V-1043-------------------------------
  3221. INT 10 - VIDEO - SELECT DRAWING PAGE (Hercules GRAFIX)
  3222.     AH = 43h
  3223.     AL = page number (0,1)
  3224. Desc:    specify which of the two pages of video memory is to be used for
  3225.       output
  3226. SeeAlso: AH=05h,AH=44h,AH=45h
  3227. --------V-1044-------------------------------
  3228. INT 10 - VIDEO - SELECT DRAWING FUNCTION (Hercules GRAFIX)
  3229.     AH = 44h
  3230.     AL = drawing function
  3231.         00h clear pixels
  3232.         01h set pixels
  3233.         02h invert pixels
  3234. Desc:    specify how graphics output will change the display
  3235. SeeAlso: AH=45h,AH=46h,AH=4Ch,AH=4Dh
  3236. --------V-1045-------------------------------
  3237. INT 10 - VIDEO - SELECT PAGE TO DISPLAY (Hercules GRAFIX)
  3238.     AH = 45h
  3239.     AL = page number (0,1)
  3240. Desc:    specify which of the two pages of video memory is visible on screen
  3241. SeeAlso: AH=05h,AH=42h,AH=43h
  3242. --------V-1046-------------------------------
  3243. INT 10 - VIDEO - DRAW ONE PIXEL (Hercules GRAFIX)
  3244.     AH = 46h
  3245.     DI = x (0-720)
  3246.     BP = y (0-347)
  3247. Note:    function 44h determines operation and function 43h which page to use
  3248. SeeAlso: AH=0Ch,AH=47h,AH=49h,AH=4Ch,AH=4Dh
  3249. --------V-1047-------------------------------
  3250. INT 10 - VIDEO - FIND PIXEL VALUE (Hercules GRAFIX)
  3251.     AH = 47h
  3252.     DI = x (0-720)
  3253.     BP = y (0-347)
  3254. Return: AL = 00h pixel clear
  3255.     AL = 01h pixel set
  3256. Note:    function 43h specifies which page is used
  3257. SeeAlso: AH=0Dh,AH=46h
  3258. --------V-1048-------------------------------
  3259. INT 10 - VIDEO - MOVE TO POINT (Hercules GRAFIX)
  3260.     AH = 48h
  3261.     DI = x (0-720)
  3262.     BP = y (0-347)
  3263. Desc:    specify the location from which to start the next graphics output
  3264. SeeAlso: AH=49h
  3265. --------V-1049-------------------------------
  3266. INT 10 - VIDEO - DRAW TO POINT (Hercules GRAFIX)
  3267.     AH = 49h
  3268.     DI = x (0-720)
  3269.     BP = y (0-347)
  3270. Note:    function 48h or 49h specify first point, 44h operation and 43h page to
  3271.       use
  3272. SeeAlso: AH=43h,AH=44h,AH=48h,AH=4Ch,AH=4Dh
  3273. --------V-104A-------------------------------
  3274. INT 10 - VIDEO - BLOCK FILL (Hercules GRAFIX)
  3275.     AH = 4Ah
  3276.     DI = x coordinate of lower left corner
  3277.     BP = y coordinate of lower left corner
  3278.     BX = height in pixels
  3279.     CX = width in pixels
  3280. Desc:    draw a solid rectangle of the specified size at the given location
  3281. SeeAlso: AH=4Eh
  3282. --------V-104B-------------------------------
  3283. INT 10 - VIDEO - DISPLAY CHARACTER (Hercules GRAFIX)
  3284.     AH = 4Bh
  3285.     AL = character to display
  3286.     DI = x (0-720)
  3287.     BP = y (0-347)
  3288. Note:    unlike the other BIOS character functions character position is
  3289.       specified in pixels rather than rows and columns
  3290. SeeAlso: AH=09h,AH=0Ah
  3291. ----------104B-------------------------------
  3292. INT 10 - FRIEZE - API
  3293.     AH = 4Bh
  3294.     CL = function
  3295.         00h (v6.x-) print window
  3296.         AL = mode
  3297.             00h character
  3298.             01h normal
  3299.             02h sideways
  3300.         01h load window
  3301.         ES:BX -> ASCIZ filename from which to read
  3302.         02h save window
  3303.         ES:BX -> ASCIZ filename to which to write
  3304.         03h set print width
  3305.         AL = width in 1/4 inches
  3306.         04h set print height
  3307.         AL = height in 1/4 inches
  3308.         05h reserved
  3309.         06h set left margin
  3310.         AL = printout margin in 1/4 inches
  3311.         07h set window size
  3312.         ES:BX -> four-WORD structure with Xmin, Ymin, Xmax, Ymax
  3313.         08h reserved
  3314.         09h set patterns
  3315.         ES:BX -> 16-BYTE vector of screen->printer color correspondnces
  3316.         0Ah get patterns
  3317.         ES:BX -> 16-BYTE buffer for color correspondences
  3318.         0Bh set mode
  3319.         AL = mode
  3320.         0Ch (v7.41) ???
  3321.         AL = ???
  3322.             00h ??? (calls original INT 05)
  3323.             else ???
  3324.         0Dh (v7.41) ???
  3325.         AL = ???
  3326.             00h ??? (calls original INT 05)
  3327.             else ???
  3328.         0Eh (v7.41) ???
  3329.         ???
  3330.         0Fh get window
  3331.         ES:BX -> four-WORD buffer for Xmin, Ymin, Xmax, Ymax
  3332.         10h set print options
  3333.         ES:BX -> printer options in same format as FRIEZE cmdline
  3334.         11h initialize
  3335.         ES:BX -> three-WORD array from CARDS.DAT for HRes, VRes, code
  3336.         12h (v7.41) ???
  3337.         ???
  3338.         13h (v7.41) ???
  3339.         ???
  3340.         14h get version
  3341.         Return: AH = major version (00h if FRIEZE version before 7)
  3342.             AL = minor version
  3343.         15h set parameters
  3344.         ES:BX -> parameter table (see below)
  3345.         16h get parameters
  3346.         ES:BX -> buffer for parameter table (see below)
  3347.         17h get printer resolution
  3348.         ES:BX -> 12-WORD table for six horizontal/vertical resol pairs
  3349.         18h (v8.0 only) reserved
  3350.         50h (v7.41) get ???
  3351.         Return: AX = ???
  3352.         51h (v7.41) get ???
  3353.         Return: ES = ??? (seen 2348h)
  3354.             AX = ??? (seen 8432h)
  3355. Return: AX = status (see below)
  3356. SeeAlso: AH=0Fh/SI=F123h
  3357.  
  3358. Values for status:
  3359.  00h    successful
  3360.  01h    user aborted printout with ESC
  3361.  02h    reserved
  3362.  03h    file read error
  3363.  04h    file write error or printer error
  3364.  05h    file not found
  3365.  06h    invalid header (not an image or wrong screen mode) or can't create file
  3366.  07h    file close error
  3367.  08h    disk error
  3368.  09h    (v7.0+) printer error
  3369.  0Ah    invalid function
  3370.  0Bh    (v7.0+) can't create file
  3371.  0Ch    (v7.0+) wrong video mode
  3372.  
  3373. Format of parameter table:
  3374. Offset    Size    Description
  3375.  00h    WORD    top margin (1/100 inch)
  3376.  02h    WORD    left margin (1/100 inch)
  3377.  04h    WORD    horizontal size (1/100 inch)
  3378.  06h    WORD    vertical size (1/100 inch)
  3379.  08h    WORD    quality/draft mode
  3380.         00h draft mode
  3381.         01h quality mode
  3382.         02h use horizontal/vertical resolution for output resolution
  3383.  0Ah    WORD    printer horizontal resolution (dots per inch)
  3384.  0Ch    WORD    printer vertical resolution (dots per inch)
  3385.  0Eh    WORD    reserved (FFFFh)
  3386. Note:    any field which should remain unchanged may be filled with FFFFh
  3387. --------V-104C-------------------------------
  3388. INT 10 - VIDEO - DRAW ARC (Hercules GRAFIX)
  3389.     AH = 4Ch
  3390.     AL = quadrant (1 = upper right, 2 = upper left, etc)
  3391.     DI = x coordinate of center
  3392.     BP = y coordinate of center
  3393.     BX = radius
  3394. SeeAlso: AH=49h,AH=4Dh
  3395. --------V-104D-------------------------------
  3396. INT 10 - VIDEO - DRAW CIRCLE (Hercules GRAFIX)
  3397.     AH = 4Dh
  3398.     DI = x of center
  3399.     BP = y of center
  3400.     BX = radius
  3401. SeeAlso: AH=49h,AH=4Ch
  3402. --------V-104E-------------------------------
  3403. INT 10 - VIDEO - FILL AREA (Hercules GRAFIX)
  3404.     AH = 4Eh
  3405.     DI = x coordinate of an interior point
  3406.     BP = y coordinate of an interior point
  3407. Desc:    fill a convex polygonal area bounded by a contiguous line of the
  3408.       opposite color with the border color
  3409. Note:    the first fill makes the figure solid, the second erases it
  3410. SeeAlso: AH=4Ah
  3411. --------V-104F00-----------------------------
  3412. INT 10 - VESA SuperVGA BIOS - GET SuperVGA INFORMATION
  3413.     AX = 4F00h
  3414.     ES:DI -> 256-byte buffer for SuperVGA information (see below)
  3415. Return: AL = 4Fh function supported
  3416.     AH = status
  3417.         00h successful
  3418.         ES:DI buffer filled
  3419.         01h failed
  3420. Desc:    determine whether VESA BIOS extensions are present and the capabilities
  3421.       supported by the display adapter
  3422. SeeAlso: AX=4F01h,AX=7F00h
  3423. Index:    installation check;VESA
  3424.  
  3425. Format of SuperVGA information:
  3426. Offset    Size    Description
  3427.  00h  4 BYTEs    signature ('VESA')
  3428.  04h    WORD    VESA version number
  3429.  06h    DWORD    pointer to OEM name
  3430.         "761295520" for ATI
  3431.  0Ah  4 BYTEs    capabilities
  3432.  0Eh    DWORD    pointer to list of supported VESA and OEM video modes
  3433.         (list of words terminated with FFFFh)
  3434.  12h    WORD    total amount of video memory in 64K blocks
  3435.  14h 236 BYTEs    reserved
  3436. Notes:    the list of supported video modes is stored in the reserved portion of
  3437.       the SuperVGA information record by some implementations, and it may
  3438.       thus be necessary to either copy the mode list or use a different
  3439.       buffer for all subsequent VESA calls
  3440.     the 1.1 VESA document specifies 242 reserved bytes at the end, so the
  3441.       buffer should be 262 bytes to ensure that it is not overrun
  3442. --------V-104F01-----------------------------
  3443. INT 10 - VESA SuperVGA BIOS - GET SuperVGA MODE INFORMATION
  3444.     AX = 4F01h
  3445.     CX = SuperVGA video mode
  3446.     ES:DI -> 256-byte buffer for mode information (see below)
  3447. Return: AL = 4Fh function supported
  3448.     AH = status
  3449.         00h successful
  3450.         ES:DI buffer filled
  3451.         01h failed
  3452. Desc:    determine the attributes of the specified video mode
  3453. SeeAlso: AX=4F00h,AX=4F02h
  3454.  
  3455. Format of mode information:
  3456. Offset    Size    Description
  3457.  00h    WORD    mode attributes
  3458.         bit 0: mode supported
  3459.         bit 1: optional information available
  3460.         bit 2: BIOS output supported
  3461.         bit 3: set if color, clear if monochrome
  3462.         bit 4: set if graphics mode, clear if text mode
  3463.  02h    BYTE    window A attributes
  3464.         bit 0: exists
  3465.         bit 1: readable
  3466.         bit 2: writable
  3467.         bits 3-7 reserved
  3468.  03h    BYTE    window B attributes (as for window A)
  3469.  04h    WORD    window granularity in KB
  3470.  06h    WORD    window size in KB
  3471.  08h    WORD    start segment of window A
  3472.  0Ah    WORD    start segment of window B
  3473.  0Ch    DWORD    -> FAR window positioning function (equivalent to AX=4F05h)
  3474.  10h    WORD    bytes per scan line
  3475. ---remainder is optional for VESA modes in v1.0/1.1, needed for OEM modes---
  3476.  12h    WORD    width in pixels (graphics) or characters (text)
  3477.  14h    WORD    height in pixels (graphics) or characters (text)
  3478.  16h    BYTE    width of character cell in pixels
  3479.  17h    BYTE    height of character cell in pixels
  3480.  18h    BYTE    number of memory planes
  3481.  19h    BYTE    number of bits per pixel
  3482.  1Ah    BYTE    number of banks
  3483.  1Bh    BYTE    memory model type (see below)
  3484.  1Ch    BYTE    size of bank in KB
  3485.  1Dh    BYTE    number of image pages
  3486.  1Eh    BYTE    reserved (0)
  3487. ---VBE v1.2+---
  3488.  1Fh    BYTE    red mask size
  3489.  20h    BYTE    red field position
  3490.  21h    BYTE    green mask size
  3491.  22h    BYTE    green field size
  3492.  23h    BYTE    blue mask size
  3493.  24h    BYTE    blue field size
  3494.  25h    BYTE    reserved mask size
  3495.  26h    BYTE    reserved mask position
  3496.  27h    BYTE    direct color mode info
  3497.  28h 216 BYTEs    reserved (0)
  3498.  
  3499. Values for memory model type:
  3500.  00h    text
  3501.  01h    CGA graphics
  3502.  02h    HGC graphics
  3503.  03h    16-color (EGA) graphics
  3504.  04h    packed pixel graphics
  3505.  05h    "sequ 256" (non-chain 4) graphics
  3506.  06h    direct color (HiColor, 24-bit color)
  3507.  07h    YUV (luminance-chrominance, also called YIQ)
  3508.  08h-0Fh reserved for VESA
  3509.  10h-FFh OEM memory models
  3510. --------V-104F02-----------------------------
  3511. INT 10 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
  3512.     AX = 4F02h
  3513.     BX = mode
  3514.         bit 15 set means don't clear video memory
  3515. Return: AL = 4Fh function supported
  3516.     AH = status
  3517.         00h successful
  3518.         01h failed
  3519. SeeAlso: AX=4F01h,AX=4F03h
  3520.  
  3521. Values for VESA video mode:
  3522.  00h-FFh OEM video modes (see AH=00h)
  3523.  100h    640x400x256
  3524.  101h    640x480x256
  3525.  102h    800x600x16
  3526.  103h    800x600x256
  3527.  104h    1024x768x16
  3528.  105h    1024x768x256
  3529.  106h    1280x1024x16
  3530.  107h    1280x1024x256
  3531.  108h    80x60 text
  3532.  109h    132x25 text
  3533.  10Ah    132x43 text
  3534.  10Bh    132x50 text
  3535.  10Ch    132x60 text
  3536. ---VBE v1.2---
  3537.  10Dh    320x200x32K
  3538.  10Eh    320x200x64K
  3539.  10Fh    320x200x16M
  3540.  110h    640x480x32K
  3541.  111h    640x480x64K
  3542.  112h    640x480x16M
  3543.  113h    800x600x32K
  3544.  114h    800x600x64K
  3545.  115h    800x600x16M
  3546.  116h    1024x768x32K
  3547.  117h    1024x768x64K
  3548.  118h    1024x768x16M
  3549.  119h    1280x1024x32K
  3550.  11Ah    1280x1024x64K
  3551.  11Bh    1280x1024x16M
  3552. Index:    video modes
  3553.  
  3554. Values for S3 OEM video mode:
  3555.  201h    640x480x256
  3556.  202h    800x600x16
  3557.  203h    800x600x256
  3558.  204h    1024x768x16
  3559.  205h    1024x768x256
  3560.  206h    1280x960x16
  3561.  208h    1280x1024x16
  3562.  211h    640x480x64K (Diamond Stealth 24X)
  3563.  212h    640x480x16M (Diamond Stealth 24X)
  3564.  301h    640x480x32K
  3565. Index:    video modes
  3566. --------V-104F03-----------------------------
  3567. INT 10 - VESA SuperVGA BIOS - GET CURRENT VIDEO MODE
  3568.     AX = 4F03h
  3569. Return: AL = 4Fh function supported
  3570.     AH = status
  3571.         00h successful
  3572.         01h failed
  3573.     BX = video mode (see AX=4F02h)
  3574. SeeAlso: AX=4F02h
  3575. --------V-104F04-----------------------------
  3576. INT 10 - VESA SuperVGA BIOS - SAVE/RESTORE SuperVGA VIDEO STATE
  3577.     AX = 4F04h
  3578.     DL = subfunction
  3579.         00h get state buffer size
  3580.         Return: BX = number of 64-byte blocks needed
  3581.         01h save video states
  3582.         ES:BX -> buffer
  3583.         02h restore video states
  3584.         ES:BX -> buffer
  3585.     CX = flags for states to save/restore
  3586.         bit 0: video hardware state
  3587.         bit 1: video BIOS data state
  3588.         bit 2: video DAC state
  3589.         bit 3: SuperVGA state
  3590. Return: AL = 4Fh function supported
  3591.     AH = status
  3592.         00h successful
  3593.         01h failed
  3594. --------V-104F05-----------------------------
  3595. INT 10 - VESA SuperVGA BIOS - CPU VIDEO MEMORY CONTROL
  3596.     AX = 4F05h
  3597.     BH = subfunction
  3598.         00h select video memory window
  3599.         DX = window address in video memory (in granularity units)
  3600.         01h get video memory window
  3601.         Return: DX = window address in video memory (in gran. units)
  3602.     BL = window number
  3603.         00h window A
  3604.         01h window B
  3605. Return: AL = 4Fh function supported
  3606.     AH = status
  3607.         00h successful
  3608.         01h failed
  3609. SeeAlso: AX=4F01h,AX=4F06h,AX=4F07h,AX=7000h/BX=0004h
  3610. --------V-104F06-----------------------------
  3611. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET LOGICAL SCAN LINE LENGTH
  3612.     AX = 4F06h
  3613.     BL = function
  3614.         00h set scan line length
  3615.         CX = desired width in pixels
  3616.         01h get scan line length
  3617. Return: AL = 4Fh if function supported
  3618.     AH = status
  3619.         00h successful
  3620.         01h failed
  3621.     BX = bytes per scan line
  3622.     CX = number of pixels per scan line
  3623.     DX = maximum number of scan lines
  3624. Notes:    if the desired width is not achievable, the next larger width will be
  3625.       set
  3626.     the scan line may be wider than the visible area of the screen
  3627.     this function is valid in text modes, provided that values are
  3628.       multiplied by the character cell width/height
  3629. SeeAlso: AX=4F01h,AX=4F05h,AX=4F07h
  3630. --------V-104F07BH00-------------------------
  3631. INT 10 - VESA SuperVGA BIOS v1.1+ - GET/SET DISPLAY START
  3632.     AX = 4F07h
  3633.     BH = 00h (reserved)
  3634.     BL = function
  3635.         00h set display start
  3636.         CX = leftmost displayed pixel in scan line
  3637.         DX = first displayed scan line
  3638.         01h get display start
  3639.         Return: BH = 00h
  3640.             CX = leftmost displayed pixel in scan line
  3641.             DX = first displayed scan line
  3642. Return: AL = 4Fh if function supported
  3643.     AH = status
  3644.         00h successful
  3645.         01h failed
  3646. Note:    this function is valid in text modes, provided that values are
  3647.       multiplied by the character cell width/height
  3648. SeeAlso: AX=4F01h,AX=4F05h,AX=4F06h
  3649. --------V-104F08-----------------------------
  3650. INT 10 - VESA SuperVGA BIOS v1.2+ - GET/SET DAC PALETTE CONTROL
  3651.     AX = 4F08h
  3652.     BL = function
  3653.         00h set DAC palette width
  3654.         BH = desired number of bits per primary color
  3655.         01h get DAC palette width
  3656. Return: AL = 4Fh if function supported
  3657.     AH = status
  3658.     BH = current number of bits per primary (06h = standard VGA)
  3659. --------V-104FFF-----------------------------
  3660. INT 10 - VESA SuperVGA BIOS - Everex - TURN VESA ON/OFF
  3661.     AX = 4FFFh
  3662.     DL = new state (00h off, 01h on)
  3663. Return: AX = 0000h if successful
  3664. --------V-104FFF-----------------------------
  3665. INT 10 - Diamond Stealth 24 - SET/RESET DUAL DISPLAY MODE
  3666.     AX = 4FFFh
  3667.     BX = dual display mode
  3668.         00h reset
  3669.         01h set dual display, 32KB VGA test
  3670.         02h set dual display, 64KB VGA test
  3671. Return: AX = 4F00h if successful
  3672.         BX = number of scanlines off screen for test mode
  3673. --------U-1050-------------------------------
  3674. INT 10 - SCROLOCK.COM - INSTALLATION CHECK
  3675.     AH = 50h
  3676. Return: BX = 1954h if installed
  3677.         AL = 00h if inactive, nonzero if active
  3678. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  3679. SeeAlso: AH=51h
  3680. --------J-105000-----------------------------
  3681. INT 10 - VIDEO - AX PC - SET SCREEN COUNTRY CODE
  3682.     AX = 5000h
  3683.     BX = country code
  3684.         0001h USA (English), 0051h Japan
  3685. Return: AL = status
  3686.         00h successful
  3687.         01h bad country code
  3688.         02h other error
  3689. SeeAlso: AX=5001h,INT 16/AX=5000h
  3690. --------J-105001-----------------------------
  3691. INT 10 - VIDEO - AX PC - GET SCREEN COUNTRY CODE
  3692.     AX = 5001h
  3693. Return: AL = status
  3694.         00h successful
  3695.         BX = country code
  3696.         02h error
  3697. SeeAlso: AH=00h,AX=5000h,INT 16/AX=5001h,INT 21/AH=38h
  3698. --------V-105049-----------------------------
  3699. INT 10 - VIDEO - SCREENR v1.55+ - API
  3700.     AX = 5049h ('PI')
  3701.     BX = function
  3702.         0000h installation check
  3703.         0001h lock mode
  3704.         0002h unlock mode
  3705.         0003h lock palette
  3706.         0004h unlock palette
  3707. Return: AX = 0000h if installed
  3708.         BX = TSR version (BH=major,BL=minor)
  3709.         CL = mode locking status
  3710.         00h mode not locked
  3711.         01h mode locked: INT 10/AH=00h disabled
  3712.         CH = palette locking status
  3713.         00h palette not locked
  3714.         01h palette locked, the following functions are disabled:
  3715.             AX=1000h, AX=1001h, AX=1002h, AX=1010h, AX=1012h
  3716. Program: SCREENR is a TSR supplied with Patrick Ibbetson's SCREEN display
  3717.       utility.
  3718. Index:    installation check;SCREENR
  3719. --------U-1051-------------------------------
  3720. INT 10 - SCROLOCK.COM - ENABLE/DISABLE
  3721.     AH = 51h
  3722.     AL = state
  3723.         00h disable
  3724.         nonzero enable
  3725. Program: SCROLOCK is a utility supplied with System Enhancement Associates' ARC
  3726. SeeAlso: AH=50h"SCROLOCK"
  3727. --------J-105100-----------------------------
  3728. INT 10 - VIDEO - AX PC - REGISTER EXTERNAL CHARACTER
  3729.     AX = 5100h
  3730.     BH = character width in bits (10h)
  3731.     BL = character height (10h)
  3732.     DX = character code (DH = F0h-F3h, DL=40h-7Eh,80h-FCh)
  3733.     ES:BP -> character bitmap
  3734. Return: AL = status (00h successful, 01h failed)
  3735. SeeAlso: AX=5101h,INT 1F
  3736. --------J-105101-----------------------------
  3737. INT 10 - VIDEO - AX PC - READ CHARACTER
  3738.     AX = 5101h
  3739.     BH = character width in bits
  3740.     BL = character height
  3741.     DX = character code (DH = 00h if 8-bit character)
  3742.     ES:BP -> buffer for character bitmap
  3743. Return: AL = status (00h successful, 01h failed)
  3744. SeeAlso: AH=09h,AX=5100h
  3745. --------J-105200-----------------------------
  3746. INT 10 - VIDEO - AX PC - SET VIRTUAL TEXT RAM BUFFER
  3747.     AX = 5200h
  3748.     BX = segment of buffer
  3749. SeeAlso: AX=5201h
  3750. --------J-105201-----------------------------
  3751. INT 10 - VIDEO - AX PC - GET VIRTUAL TEXT RAM BUFFER
  3752.     AX = 5201h
  3753. Return: BX = segment of buffer or 0000h if failed
  3754. SeeAlso: AX=8300h,AH=FEh
  3755. ----------1053-------------------------------
  3756. INT 10 - Show Partner F/X v3.6 - START PRESENTATION
  3757.     AH = 53h
  3758.     DS:DX -> ASCIZ name of presentation file (no path, extension forced to
  3759.         .PR2)
  3760. Return: ???
  3761. SeeAlso: AH=55h
  3762. ----------1055-------------------------------
  3763. INT 10 - Show Partner F/X v3.6 - UNINSTALL
  3764.     AH = 55h
  3765. Return: FXSHOW.EXE removed from memory
  3766. SeeAlso: AH=53h
  3767. --------V-105555-----------------------------
  3768. INT 10 - VIDEO - ATI EGA/VGA Wonder Super Switch - INSTALLATION CHECK
  3769.     AX = 5555h
  3770. Return: AX = AAAAh    if installed
  3771.     BX:CX -> ??? routine in SMS.COM resident portion
  3772.           -> data area in VCONFIG
  3773. Program: Super Switch (SMS.COM) is a video mode switch program supplied with
  3774.       ATI EGA Wonder. It also maps video mode 08h to 27h or 23h.
  3775. SeeAlso: INT 10/AH=00h,INT 2F/AX=6400h
  3776. Index:    screen saver;ATI Wonder SMS.COM
  3777.  
  3778. Format of data area:
  3779. Offset    Size    Description
  3780.  00h    DWORD    original INT 09 vector
  3781.  04h    DWORD    original INT 10 vector
  3782.  08h    DWORD    original INT 1C vector
  3783.  0Ch    WORD    screen saver state, 0=off, 1=on
  3784.  0Eh    WORD    blanking interval in clock ticks
  3785. --------V-105F00-----------------------------
  3786. INT 10 - Chips & Technologies Extended BIOS - RETURN 82C45X CHIP INFORMATION
  3787.     AX = 5F00h
  3788. Return: AL = 5Fh function supported
  3789.         BL = chip type (see below)
  3790.         BH = video memory size (00h 256KB, 01h 512KB, 02h 1MB)
  3791.         CX = miscellaneous information (see below)
  3792. SeeAlso: AX=5F01h
  3793.  
  3794. Bitfields for chip type:
  3795.  bits 7-4 chip type
  3796.     0000: 82c451
  3797.     0001: 82c452
  3798.     0010: 82c455
  3799.     0011: 82c453
  3800.     0101: 82c456
  3801.     0110: 82c457
  3802.     0111: F65520
  3803.     1000: F65530
  3804.  bits 3-0 revision number
  3805.  
  3806. Bitfields for miscellaneous information:
  3807.  bit 0    DAC size (0=6-bit, 1=8-bit)
  3808.  bit 1    system type (0=PC/AT, 1=PS/2)
  3809.  bit 2    extended text modes supported by BIOS
  3810.  bit 3    reserved
  3811.  bit 4    extended graphics modes supported by BIOS
  3812.  bit 5    reserved
  3813.  bit 6    BIOS supports graphics cursor
  3814.  bit 7    BIOS supports anti-aliased font
  3815.  bit 8    BIOS supports pre-programmed emulation
  3816.  bit 9    BIOS supports auto emulation
  3817.  bit 10    BIOS supports variable mode set at cold boot
  3818.  bit 11    BIOS supports variable mode set on warm boot
  3819.  bit 12    BIOS supports emulation mode set at cold boot
  3820.  bit 13    BIOS supports emulation mode set on warm boot
  3821.  bits 14-15 reserved
  3822. --------V-105F00-----------------------------
  3823. INT 10 - VIDEO - Realtek RTVGA - RETURN CHIP VERSION
  3824.     AX = 5F00h
  3825. Return: AH = 00h, if successful
  3826.     AL = chip version (the same value that VTEST.EXE reads)
  3827.         00h RTG3103???
  3828.         01h RTG31030/RTG3105
  3829.         02h RTG3106???
  3830.         3Fh non-Realtek chip
  3831. BUG:    in v3.C10, AX=5F00h on return due to improper stack restoration code
  3832. SeeAlso: AX=5F01h"RTVGA"
  3833. --------V-105F01-----------------------------
  3834. INT 10 - Chips & Technologies Extended BIOS - SET PREPROGRAMMED EMULATION
  3835.     AX = 5F01h
  3836.     BL = emulation type (see below)
  3837. Return: AL = 5Fh if function supported
  3838.         AH = status
  3839.         00h unsuccessful
  3840.         01h successful
  3841. SeeAlso: AX=5F00h,AX=5F02h,AH=FFh"Oak"
  3842.  
  3843. Values for emulation type:
  3844.  00h,01h reserved
  3845.  02h    CGA
  3846.  03h    MDA
  3847.  04h    Hercules
  3848.  05h    EGA
  3849.  06h    VGA
  3850. --------V-105F01-----------------------------
  3851. INT 10 - VIDEO - Realtek RTVGA - WRITE RTVGA BIOS STRING TO DESTINATION
  3852.     AX = 5F01h
  3853.     ES:DI -> zero-filled buffer for BIOS ID string
  3854. Return: AH = 00h if successful
  3855.     ES:DI -> ASCII signature "REALTEK VGA BIOS Version 3C.10"
  3856. BUG:    in v3.C10, AX=5F01h on return due to improper stack restoration code
  3857. SeeAlso: AX=5F00h"RTVGA",AX=5F02h"RTVGA"
  3858. --------V-105F02-----------------------------
  3859. INT 10 - Chips & Technologies Extended BIOS - AUTO EMULATION CONTROL
  3860.     AX = 5F02h
  3861.     BL = new state of autmatic emulation (00h enabled, 01h disabled)
  3862. Return: AL = 5Fh if function supported
  3863.         AH = status
  3864.         00h unsuccessful
  3865.         01h successful
  3866. SeeAlso: AX=5F01h,AX=5F03h
  3867. --------V-105F02-----------------------------
  3868. INT 10 - VIDEO - Realtek RTVGA - RETURN RTVGA ON-BOARD MEMORY SIZE
  3869.     AX = 5F02h
  3870. Return: AH = 00h, if successful
  3871.     AL = on-board memory size
  3872.          (00h = 256K, 01h = 512K, 02h = 768K, 03h = 1024K)
  3873. BUG:    in v3.C10, AX=5F02h on return due to improper stack restoration code
  3874. SeeAlso: AX=5F01h"RTVGA",AX=5F03h"RTVGA"
  3875. --------V-105F03-----------------------------
  3876. INT 10 - VIDEO - Realtek RTVGA - SET ???
  3877.     AX = 5F03h
  3878.     BL = 0-3 (???)
  3879. Return: AH = 00h if successful
  3880. BUG:    in v3.C10, AX=5F03h on return due to improper stack restoration code
  3881. SeeAlso: AX=5F02h"RTVGA"
  3882. --------V-105F03-----------------------------
  3883. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON VIDEO CONDITIONS
  3884.     AX = 5F03h
  3885.     BL = configuration
  3886.         00h power-up display mode
  3887.         CL = display mode
  3888.         CH = mode
  3889.             bits 1-0 scanlines
  3890.             00: 200
  3891.             01: 350
  3892.             10: 400
  3893.             bit 7 persistence (0 reset on next boot, 1 until changed)
  3894.         01h power-up emulation mode
  3895.         CL = emulation mode (see AX=5F01h"Chips")
  3896.         CH = permanence (00h reset after next boot, 01h until changed)
  3897. Return: AL = 5Fh if function supported
  3898.         AH = status
  3899.         00h unsuccessful
  3900.         01h successful
  3901. SeeAlso: AX=5F02h,AX=5F03h/BL=01h,AX=5F90h
  3902. --------V-105F03BL01-------------------------
  3903. INT 10 - Chips & Technologies Extended BIOS - SET POWER-ON EMULATION MODE
  3904.     AX = 5F03h
  3905.     BL = 01h
  3906.     CL = emulation mode
  3907.     CH = mode
  3908.         bit 7 persistence (0 reset on next boot, 1 until changed)
  3909. Return: AL = 5Fh if function supported
  3910.         AH = status
  3911.         00h unsuccessful
  3912.         01h successful
  3913. SeeAlso: AX=5F02h,AX=5F03h/BL=00h,AX=5F90h
  3914. --------V-105F-------------------------------
  3915. INT 10 - Chips & Technologies Extended BIOS - SAVE/RESTORE SUPERVGA STATE
  3916.     AH = 5Fh
  3917.     AL = subfunction
  3918.         90h determine size of save buffer
  3919.         91h save state
  3920.         92h restore state
  3921.     CX = state mask (see below)
  3922.     ES:BX -> save buffer (subfunctions 91h,92h only)
  3923. Return: AL = 5Fh if function supported
  3924.         ---subfunction 90h---
  3925.         BX = number of 64-byte blocks required
  3926.         ---subfunction 92h---
  3927.         buffer at ES:BX filled
  3928. SeeAlso: AH=1Ch,AX=5F03h
  3929.  
  3930. Bitfields for state mask:
  3931.  bit 0    video hardware
  3932.  bit 1    BIOS data state
  3933.  bit 2    DAC state
  3934.  bit 15 type (0 all state info, 1 SuperVGA state only)
  3935. --------V-106A00BX0000-----------------------
  3936. INT 10 - Direct Graphics Interface Standard (DGIS) - INQUIRE AVAILABLE DEVICES
  3937.     AX = 6A00h
  3938.     BX = 0000h
  3939.     CX = 0000h
  3940.     DX = buffer length (may be 0)
  3941.     ES:DI -> buffer
  3942. Return: BX = number of bytes stored in buffer
  3943.     CX = bytes required for all descriptions (0 if no DGIS)
  3944. Note:    buffer contains descriptions and addresses of DGIS-compatible
  3945.       display(s) and printer(s)
  3946. SeeAlso: AX=6A02h
  3947. --------V-106A01CX0000-----------------------
  3948. INT 10 - Direct Graphics Interface Standard (DGIS) - REDIRECT CHARACTER OUTPUT
  3949.     AX = 6A01h
  3950.     CX = 0000h
  3951.     ES:DI = address of device to send INT 10 output to
  3952. Return: CX = 0000h  output could not be redirected
  3953.          else INT 10h output now routed to requested display
  3954. SeeAlso: AX=6A02h
  3955. --------V-106A02-----------------------------
  3956. INT 10 - DGIS - INQUIRE INT 10 OUTPUT DEVICE
  3957.     AX = 6A02h
  3958.     ES:DI = 0000h:0000h
  3959. Return: ES:DI = 0000h:0000h  if current display is non-DGIS
  3960.         else address of the current DGIS INT 10 display
  3961. SeeAlso: AX=6A00h,AX=6A01h
  3962. --------V-106E00-----------------------------
  3963. INT 10 - Paradise VGA internal - GET ???
  3964.     AX = 6E00h
  3965. Return: BX = 5744h ('WD') if supported
  3966.         DH:AH:AL = last three ASCII digits of ROM serial number
  3967.         CL = ???
  3968.         CH = ???
  3969. SeeAlso: AX=6E04h,AX=6E05h
  3970. --------V-106E04-----------------------------
  3971. INT 10 - Paradise VGA internal - GET SCREEN SIZE AND ???
  3972.     AX = 6E04h
  3973. Return: BX = screen width (columns)
  3974.     CX = screen height (lines)
  3975.     AH = ??? (05h or FFh)
  3976.     AL = ??? (04h or video mode)
  3977. SeeAlso: AX=6E00h,AX=6E05h
  3978. --------V-106E05-----------------------------
  3979. INT 10 - Paradise VGA internal - SET MODE
  3980.     AX = 6E05h
  3981.     BL = mode
  3982. Note:    like AH=00h, AL=BL.
  3983. SeeAlso: AH=00h,AX=6E00h,AX=6E04h,AX=6F05h
  3984. --------V-106F00BX0000-----------------------
  3985. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - INSTALLATION CHECK
  3986.     AX = 6F00h
  3987.     BX = 0000h
  3988. Return: BX = 5637h ('V7') indicates Video7 VGA/VEGA VGA extensions are present
  3989.     BX = 4850h ('HP') indicates HP Extended BIOS video functions present
  3990. SeeAlso: AX=6F01h,AX=6F02h,AX=6F03h,AX=6F04h,AX=6F05h
  3991. --------V-106F01-----------------------------
  3992. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Ext BIOS - GET MONITOR INFO
  3993.     AX = 6F01h
  3994. Return: AL = monitor type code (HP,VEGA VGA only) (see below)
  3995.     AH = status register information
  3996.          bit  0 = display enable
  3997.             0 = display enabled
  3998.             1 = vertical or horizontal retrace in progress
  3999.          bit  1 = light pen flip flop set
  4000.          bit  2 = light pen switch activated
  4001.          bit  3 = vertical sync
  4002.          bit  4 = monitor resolution
  4003.             0 = high resolution (>200 lines)
  4004.             1 = low resolution (<=200 lines)
  4005.          bit  5 = display type
  4006.             0 = color
  4007.             1 = monochrome
  4008.          bits6,7= diagnostic bits
  4009.     CL = current value of Extended Control register (HP Ext BIOS, and only
  4010.         if AL=41h)
  4011. Note:    bits 0-3 are the same as the EGA/VGA status register bits 0-3
  4012.  
  4013. Values for monitor type code (HP Extended BIOS):
  4014.  00h    non-HP card with ROM and possibly its own INT 10h driver
  4015.  41h    MultiMode video display adapter
  4016.  42h-44h reserved
  4017.  45h    industry standard monochrome display adapter
  4018.  46h    industry standard color display adapter
  4019.  51h    reserved
  4020. --------V-106F02-----------------------------
  4021. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - SET MONITOR INFO
  4022.     AX = 6F02h
  4023.     BL = new value for extended control register (see below)
  4024. Return: nothing
  4025. Notes:    this function is only valid when an HP MultiMode Video Display Adapter
  4026.       is installed
  4027.     the Extended Control register is at I/O address 3DDh
  4028. SeeAlso: AX=6F01h,AX=6F03h
  4029.  
  4030. Bitfields for extended control register:
  4031.  bit 0    screen resolution (0 = 200 lines, 1 = 400 lines)
  4032.  bit 1    underline enable (if set, 'blue' bit of fg color = underl)
  4033.  bit 2    font (0 = Standard-8, 1 = HP-Roman-8)
  4034.  bit 3    memory disabled for CPU access
  4035.  bit 4    allow access to full 32K memory instead of wrapping at 16K
  4036.  bit 5    select second 16K page instead of first
  4037.  bits 6,7 unused
  4038. --------V-106F03-----------------------------
  4039. INT 10 - VIDEO - HP Vectra EXTENDED BIOS - MODIFY MONITOR INFO
  4040.     AX = 6F03h
  4041.     BH = exclude mask (set bits are not modified)
  4042.     BL = new values for bits indicated by BH (see AX=6F02h)
  4043. Return: nothing
  4044. Note:    this function is only valid when an HP MultiMode Video Display Adapter
  4045.       is installed
  4046. SeeAlso: AX=6F01h,AX=6F02h
  4047. --------V-106F04-----------------------------
  4048. INT 10 - VIDEO - Video7 VGA,VEGA VGA,HP Vectra - GET MODE AND SCREEN RESOLUTION
  4049.     AX = 6F04h
  4050. Return: AL = current video mode (see AX=6F05h)
  4051.     BX = horizontal columns (text) or pixels (graphics)
  4052.     CX = vertical columns (text) or pixels (graphics)
  4053. SeeAlso: AX=6F05h
  4054. --------V-106F05-----------------------------
  4055. INT 10 - VIDEO - Video7 VGA, VEGA EXTENDED EGA/VGA - SET VIDEO MODE
  4056.     AX = 6F05h
  4057.     BL = mode (see below)
  4058. Notes:    also supported by the HP Vectra Extended BIOS
  4059.     on the HP Vectra, this function rather than AH=00h must be used to
  4060.       return to an IBM-standard mode after setting an HP-specified mode
  4061.       from 08h to 0Fh.
  4062. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4063.  
  4064. Values for video mode:
  4065.       text/ text pixel     pixel    colors    disp    scrn  system
  4066.       grph resol  box    resoltn        page    addr
  4067.  00h-13h = standard IBM modes (see AH=00h)
  4068.  08h = T   80x27           mono             HP MultiMode Video
  4069.  09h = T   80x27                     HP MultiMode Video
  4070.  0Ah = T   40x27           mono             HP MultiMode Video
  4071.  0Bh = T   40x27                     HP MultiMode Video
  4072.  0Ch = Reserved                         HP MultiMode Video
  4073.  0Dh = G        640x400                 HP MultiMode Video
  4074.  0Eh = G        320x400                 HP MultiMode Video
  4075.  0Fh = G        320x400                 HP MultiMode Video
  4076.  40h = T   80x43  8x8                     Video7/VEGA VGA
  4077.  41h = T  132x25  8x14                     Video7/VEGA VGA
  4078.  42h = T  132x43  8x8                     Video7/VEGA VGA
  4079.  43h = T   80x60  8x8                     Video7/VEGA VGA
  4080.  44h = T  100x60  8x8                     Video7/VEGA VGA
  4081.  45h = T  132x28  8x8                     Video7/VEGA VGA
  4082.  60h = G        752x410      16             Video7 VGA, VEGA VGA
  4083.  61h = G        720x540      16             Video7 VGA, VEGA VGA
  4084.      = G        720x540      16             Northgate, Headland 1024i
  4085.  62h = G        800x600      16             Video7 VGA, VEGA Ext EGA
  4086.      = G        800x600      16             Headland 1024i
  4087.  63h = G           1024x768       2             Video7 VGA
  4088.  64h = G           1024x768       4             Video7 VGA
  4089.  65h = G           1024x768      16             Video7 VGA, VEGA Ext EGA
  4090.      = G           1024x768      16             Headland 1024i
  4091.  66h = G        640x400     256             Video7 VGA, VEGA Ext VGA
  4092.      = G        640x400     256             Northgate, Headland 1024i
  4093.  67h = G        640x480     256             Video7 VGA, VEGA Ext VGA
  4094.      = G        640x480     256             Headland 1024i
  4095.  68h = G        720x540     256             Video7 VGA, VEGA Ext VGA
  4096.      = G        720x540     256             Headland 1024i
  4097.  69h = G        800x600     256             Video7 VGA, VEGA Ext VGA
  4098.      = G        800x600     256             Headland 1024i
  4099.  70h = G        752x410      16gray         Video7 VGA, VEGA VGA
  4100.  71h = G        720x540      16gray         Video7 VGA, VEGA VGA
  4101.  72h = G        800x600      16gray         Video7 VGA
  4102.  73h = G           1024x768       2gray         Video7 VGA
  4103.  74h = G           1024x768       4gray         Video7 VGA
  4104.  75h = G           1024x768      16gray         Video7 VGA
  4105.  76h = G        640x400     256gray         Video7 VGA
  4106.  77h = G        640x480     256gray         Video7 VGA
  4107.  78h = G        720x540     256gray         Video7 VGA
  4108.  79h = G        800x600     256gray         (future)
  4109. SeeAlso: AH=00h,AX=0070h,AX=007Eh,AX=6F04h
  4110. Index:    video modes
  4111. --------V-106F06-----------------------------
  4112. INT 10 - VIDEO - Video7 VGA,VEGA VGA - SELECT AUTOSWITCH MODE
  4113.     AX = 6F06h
  4114.     BL = Autoswitch mode select
  4115.          00h select EGA/VGA-only modes
  4116.          01h select Autoswitched VGA/EGA/CGA/MGA modes
  4117.          02h select 'bootup' CGA/MGA modes
  4118.     BH = enable/disable (00h enable, 01h = disable selection)
  4119. --------V-106F07-----------------------------
  4120. INT 10 - VIDEO -  Video7 VGA,VEGA VGA - GET VIDEO MEMORY CONFIGURATION
  4121.     AX = 6F07h
  4122. Return: AL = 6Fh
  4123.     AH = bits 0-6 = number of 256K blocks of video memory
  4124.          bit 7    = DRAM/VRAM (0: DRAM, 1: VRAM)
  4125.     BH = chip revision (SR8F) (S/C Chip in VEGA VGA)
  4126.     BL = chip revision (SR8E) (G/A Chip in VEGA VGA)
  4127.     CX = 0000h
  4128. SeeAlso: AH=12h/BL=10h
  4129. --------V-1070-------------------------------
  4130. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF VIDEO RAM
  4131.     AH = 70h
  4132. Return: AX:BX -> WORD containing green plane's offset
  4133.     AX:CX -> WORD containing green plane's segment
  4134.     AX:DX -> WORD containing segment of red (offset 0) and blue (offset
  4135.             4000) planes
  4136. SeeAlso: AH=71h
  4137. --------V-107000BX0000-----------------------
  4138. INT 10 - Everex Extended Video BIOS - RETURN EMULATION STATUS
  4139.     AX = 7000h
  4140.     BX = 0000h
  4141. Return: AL = 70h if Trident-based Everex card
  4142.     CL = monitor type (see below)
  4143.     CH = feature bits (see below)
  4144.     DX = video board info
  4145.         bits 4-15: board ID model
  4146.         bits 0-3:  board ID revision
  4147.     DI = BCD BIOS version number
  4148. Note:    board models for Trident-based Everex cards:
  4149.         236h Ultragraphics II
  4150.         620h Vision VGA
  4151.         673h EVGA
  4152.         678h Viewpoint
  4153. SeeAlso: AX=5F01h,AH=FF"Oak"
  4154.  
  4155. Values for monitor type:
  4156.  00h    mono
  4157.  01h    CGA
  4158.  02h    EGA
  4159.  03h    digital multifrequency
  4160.  04h    IBM PS/2
  4161.  05h    IBM 8514
  4162.  06h    SuperVGA
  4163.  07h    analog multifrequency
  4164.  08h    super multifrequency
  4165.  
  4166. Bitfields for feature bits:
  4167.  bits 7,6  memory size
  4168.     00 = 256K
  4169.     01 = 512K
  4170.     10 = 1024K
  4171.     11 = 2048K
  4172.  bit 5    special oscillator present
  4173.  bit 4    VGA protect enabled
  4174.  bit 0    6845 emulation
  4175. --------V-107000BX0004-----------------------
  4176. INT 10 - Everex Extended Video BIOS - GET PAGING FUNCTION POINTER FOR CURR MODE
  4177.     AX = 7000h
  4178.     BX = 0004h
  4179. Return: ES:DI -> FAR paging function (call with DL = page to set)
  4180. Note:    the word preceding ES:DI is the length of the function in bytes, and
  4181.       the last byte of the function is a FAR return instruction.
  4182. SeeAlso: AX=4F05h,AX=7000h/BX=0000h,AX=7000h/BX=0005h
  4183. --------V-107000BX0005-----------------------
  4184. INT 10 - Everex Extended Video BIOS - GET SUPPORTED MODE INFO
  4185.     AX = 7000h
  4186.     BX = 0005h
  4187.     CL = maximum number of modes to get info for
  4188.     CH = mode type to get info for (see below)
  4189.     DL = monitor type to get info for
  4190.     ES:DI -> buffer for mode info (see below)
  4191. Return: CL = total number of modes fitting criteria
  4192.     CH = size of each info record
  4193. SeeAlso: AX=7000h/BX=0000h,AX=7000h/BX=0004h
  4194.  
  4195. Values for mode type:
  4196.  00h    all modes
  4197.  01h    monochrome text modes
  4198.  02h    color text modes
  4199.  03h    four-color CGA graphics modes
  4200.  04h    two-color CGA graphics modes
  4201.  05h    16-color graphics modes
  4202.  06h    256-color graphics modes
  4203.  
  4204. Format of mode information record:
  4205. Offset    Size    Description
  4206.  00h    BYTE    mode number (bit 7 set if extended mode)
  4207.  01h    BYTE    mode type (see above)
  4208.  02h    BYTE    info bits
  4209.         bits 7,6 reserved
  4210.              5     monochrome mode
  4211.              4     interlaced display
  4212.              3     requires special oscillator
  4213.              2,1 memory required
  4214.              00 = 256K
  4215.              01 = 512K
  4216.              10 = 1024K
  4217.              11 = 2048K
  4218.              0     reserved
  4219.  03h    BYTE    font height
  4220.  04h    BYTE    text columns on screen
  4221.  05h    BYTE    text rows on screen
  4222.  06h    WORD    number of scan lines
  4223.  08h    BYTE    color information
  4224.         bits 7-4 reserved
  4225.              3-0 bits per pixel
  4226. --------V-1071-------------------------------
  4227. INT 10 - VIDEO - TANDY 2000 only - GET ADDRESS OF INCRAM
  4228.     AH = 71h
  4229. Return: AX:BX -> WORD containing segment address of INCRAM
  4230.     AX:CX -> WORD containing offset of INCRAM
  4231. SeeAlso: AH=70h
  4232. --------V-1072-------------------------------
  4233. INT 10 - VIDEO - TANDY 2000 only - SCROLL RIGHT PART OR ALL OF SCREEN
  4234.     AH = 72h
  4235.     AL = number of columns to shift scroll area, 00h to clear entire area
  4236.     BH = new attributes for blanked columns at left
  4237.     CH,CL = row, column of upper left corner of scroll area
  4238.     DH,DL = row, column of lower right corner of scroll area
  4239. SeeAlso: AH=06h,AH=07h,AH=73h,INT 15/AH=12h/BH=05h
  4240. --------V-1073-------------------------------
  4241. INT 10 - VIDEO - TANDY 2000 only - SCROLL LEFT PART OR ALL OF SCREEN
  4242.     AH = 73h
  4243.     AL = number of columns to shift scroll area, 00h to clear entire area
  4244.     BH = new attributes for blanked columns at right
  4245.     CH,CL = row, column of upper left corner of scroll area
  4246.     DH,DL = row, column of lower right corner of scroll area
  4247. SeeAlso: AH=06h,AH=07h,AH=72h,INT 15/AH=12h/BH=05h
  4248. --------V-107F00-----------------------------
  4249. INT 10 - SOLLEX SuperVGA - GET EXTENSIONS INFO
  4250.     AX = 7F00h
  4251. Return: AL <> 7Fh if not supported
  4252.     AL = 7Fh if supported
  4253.         AH = status
  4254.         00h successful
  4255.             ES:DI -> info structure (see below)
  4256.         01h failed
  4257. Program: the SOLLEX (Smos videO controLLer EXtensions) SuperVGA functions are
  4258.       an extension to the VESA SuperVGA BIOS Extensions (see AX=4F00h) by
  4259.       Seiko Epson Corporation intended to provided a standardized interface
  4260.       to SuperVGA functionality not addressed by the VESA standard
  4261. SeeAlso: AX=4F00h
  4262.  
  4263. Format of info structure:
  4264. Offset    Size    Description
  4265.  00h    DWORD    pointer to VESA function dispatch table
  4266.  04h    DWORD    pointer to SOLLEX function dispatch table
  4267.  08h    DWORD    pointer to VESA SuperVGA info (see AX=4F00h)
  4268.  0Ch    DWORD    pointer to mode info structure table, consisting of
  4269.         alternating ResInfo (see below) and VESA mode information
  4270.         (see AX=4F01h) blocks, terminated with an FFFFh word
  4271.  10h    DWORD    pointer to font info structure table (see below)
  4272.  14h    WORD    high resolution crystal frequency in Hz (0000h = not present)
  4273.  16h    DWORD    pointer to ASCIZ ID string
  4274.  1Ah    DWORD    pointer to timeout reset table
  4275.         array of bytes, each a multiple of the minimum time increment
  4276.  1Eh    WORD    minimum time increment in timer ticks
  4277.  20h    BYTE    inverse options supported
  4278.         bit 0: inverse supported
  4279.         bits 1-7: reserved
  4280.  21h    BYTE    normal color value
  4281.  22h    BYTE    inverse color value
  4282.  23h    WORD    port to be accessed for normal/inverse settings
  4283.  25h    WORD    type of interface chip (currently undefined)
  4284.  27h    WORD    program operational mode
  4285.         bits 1-0: 00 no preference
  4286.               01 terse (minimum detail in program messages)
  4287.               10 verbose
  4288.               11 use menus if supported, verbose mode otherwise
  4289.         bits 7-2: reserved
  4290.  29h    WORD    SOLLEX specification version
  4291.  2Bh    WORD    version of VESA/SOLLEX implementation
  4292.  2Dh    DWORD    offset to relocatable portion of SOLLEX extensions (for CONFIG)
  4293.  2Eh    DWORD    offset to unused section of the extensions ROM
  4294.  31h 16 BYTEs    reserved
  4295. Note:    all DWORD pointers initially require segment fixups; if the segment
  4296.       is 0000h, it should be changed to the returned ES, otherwise it
  4297.       may be assumed to be correct
  4298.  
  4299. Format of ResInfo:
  4300. Offset    Size    Description
  4301.  00h    WORD    16-bit mode number
  4302.  02h    WORD    adapter type (00h VGA, 01h EGA, 02h CGA, 03h MDA)
  4303.  04h    WORD    display info (see AX=7F01h/BL=01h)
  4304.  06h    DWORD    pointer to video parameter table
  4305.  0Ah    BYTE    replacement entry in master Video Parameter
  4306.  0Bh    BYTE    mode requested for mode set by BIOS
  4307.  0Ch    DWORD    pointer to LoadReg table
  4308.  10h    BYTE    index into table of clock values (see below)
  4309.  
  4310. Format of font info table [array] entry:
  4311. Offset    Size    Description
  4312.  00h    BYTE    required font height
  4313.  01h    BYTE    parameter to load text mode font
  4314.  02h    BYTE    parameter to load graphics mode font
  4315.  
  4316. Values for clock value index:
  4317.  00h    25 MHz
  4318.  01h    28 MHz
  4319.  02h    PCLK
  4320.  03h    31.5 MHz (VESA 640x480)
  4321.  04h    reserved
  4322.  05h    16 MHz (EGA)
  4323.  06h    PCLK
  4324.  07h    24 MHz (EGA)
  4325.  08h    25 MHz
  4326.  09h    28 MHz
  4327.  0Ah    36 MHz
  4328.  0Bh    45 MHz (for 1024x768)
  4329.  0Ch    80 MHz
  4330.  0Dh    40 MHz
  4331.  0Eh    65 MHz
  4332.  0Fh     1 MHz (for powerdown)
  4333. --------V-107F00BX4000-----------------------
  4334. INT 10 - Diamond Stealth 24 - GET S3 INFORMATION BLOCK
  4335.     AX = 7F00h
  4336.     BX = 4000h
  4337. Return: AX = 007Fh if supported
  4338.         DX:BX -> DAC set mode routine
  4339. SeeAlso: AX=7F00h/BX=4001h,AX=7F00h/BX=4002h
  4340. --------V-107F00BX4001-----------------------
  4341. INT 10 - Diamond Stealth 24 - GET LINEAR ADDRESS
  4342.     AX = 7F00h
  4343.     BX = 4001h
  4344. Return: AX = 007Fh if supported
  4345.         CX = current linear address base (high word)
  4346. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4002h
  4347. --------V-107F00BX4002-----------------------
  4348. INT 10 - Diamond Stealth 24 - SET LINEAR ADDRESS
  4349.     AX = 7F00h
  4350.     BX = 4002h
  4351.     CX = new linear address base (high word)
  4352. Return: AX = 007Fh if supported
  4353. SeeAlso: AX=7F00h/BX=4000h,AX=7F00h/BX=4001h
  4354. --------V-107F01BL00-------------------------
  4355. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - SET ADAPTER
  4356.     AX = 7F01h
  4357.     BL = 00h
  4358.     CX = adapter request
  4359.         bits 1-0: adapter type (00 VGA, 01 EGA, 10 CGA, 11 MDA)
  4360.         bit 2:    reserved
  4361.         bits 4-3: change displays (00 none, 01 analog 10 digital 11 panel)
  4362.         bits 6-5: desired monitor sense (01 color, 10 mono, 11=8514)
  4363.         bit 7:    lock override
  4364.         bit 8:    alternate adapter mode
  4365.         bits 15-9: reserved
  4366. Return: AL = 7Fh if supported
  4367.         AH = status
  4368.         00h successful
  4369.         01h failed
  4370.     AL <> 7Fh if not supported
  4371. Note:    initializes video hardware to a particular standard
  4372. SeeAlso: AX=7F00h,AX=7F01h/BL=01h,AX=7F01h/BL=02h
  4373. --------V-107F01BL01-------------------------
  4374. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - GET ADAPTER
  4375.     AX = 7F01h
  4376.     BL = 01h
  4377. Return: AL <> 7Fh if not supported
  4378.     AL = 7Fh if supported
  4379.         AH = status
  4380.         00h successful
  4381.         01h failed
  4382.         BX = adapter type (see AX=7F01h/BL=00h)
  4383.         DX = display type (see below)
  4384. SeeAlso: AX=7F00h,AX=7F01h/BL=00h,AX=7F01h/BL=02h
  4385.  
  4386. Bitfields for display type:
  4387.  bits 1-0 monitor sense (00 none, 01 color, 10 mono, 11=8514)
  4388.  bit 2    multi-frequency analog monitor active
  4389.  bit 3    LCD panel active
  4390.  bit 4    plasma/electroluminescent panel active
  4391.  bit 5    PS/2-type monitor active
  4392.  bit 6    multi-frequency digital monitor active
  4393.  bit 7    Enhanced Color Display monitor active
  4394.  bit 8    alternate display active
  4395.  bits 15-9 reserved
  4396. --------V-107F01BL02-------------------------
  4397. INT 10 - SOLLEX SuperVGA - ADAPTER CONTROL - DETERMINE ADAPTER SUPPORT
  4398.     AX = 7F01h
  4399.     BL = 02h
  4400.     CX = adapter request (see AX=7F01h/BL=00h)
  4401. Return: AL <> 7Fh if not supported
  4402.     AL = 7Fh if supported
  4403.         AH = status
  4404.         00h requested setting can successfully be made
  4405.         01h requested setting not available in this configuration
  4406. SeeAlso: AX=7F00h,AX=7F01h/BL=00h
  4407. --------V-107F02BL00-------------------------
  4408. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - SET DISPLAY OUTPUT
  4409.     AX = 7F02h
  4410.     BL = 00h
  4411.     CX = display output setting (see below)
  4412. Return: AL <> 7Fh if not supported
  4413.     AL = 7Fh if supported
  4414.         AH = status
  4415.         00h successful
  4416.         01h failed
  4417. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  4418.  
  4419. Bitfields for display output setting:
  4420.  bit 0    CRTC control in bits 2,1 valid
  4421.  bit 1    enable digital output
  4422.  bit 2    enable analog output
  4423.  bit 3    panel control in bits 5,4 valid
  4424.  bit 4    enable LCD output
  4425.  bit 5    enable plasma/EL output
  4426.  bit 6    inverse control in bit 7 valid
  4427.  bit 7    0=normal, 1=inverse
  4428.  bits 15-8 reserved
  4429. --------V-107F02BL01-------------------------
  4430. INT 10 - SOLLEX SuperVGA - DISPLAY OUTPUT CONTROL - GET DISPLAY OUTPUT
  4431.     AX = 7F02h
  4432.     BL = 01h
  4433. Return: AL <> 7Fh if not supported
  4434.     AL = 7Fh if supported
  4435.         AH = status
  4436.         00h successful
  4437.             BX = display output setting (see AX=7F02h/BL=00h)
  4438.             CX = displays attached (see below)
  4439.         01h failed
  4440. SeeAlso: AX=7F00h,AX=7F02h/BL=00h
  4441.  
  4442. Bitfields for displays attached:
  4443.  bit 0    PS/2 display on analog output
  4444.  bit 1    multi-frequency monitor on analog output
  4445.  bit 2    LCD panel attached
  4446.  bit 3    plasma/electroluminescent panel attached
  4447.  bit 4    multi-frequency monitor on digital output
  4448.  bit 5    Enhanced Color Display attached to digital outpt
  4449.  bit 6    alternate display
  4450.  bits 15-7 reserved
  4451. --------V-107F03BL00-------------------------
  4452. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GET SUPPORT INFO
  4453.     AX = 7F03h
  4454.     BL = 00h
  4455.     CX = support type
  4456.         0000h VGA, 0001h EGA, 0002h CGA, 0003h MDA, 0004h extensions,
  4457.         0005h-0012h reserved for SOLLEX, 0013h Hercules,
  4458.         0014h-001Fh reserved for SOLLEX, 0020h-00FFh reserved for OEM
  4459. Return: AL <> 7Fh if not supported
  4460.     AL = 7Fh if supported
  4461.         AH = status
  4462.         00h successful
  4463.             CX = size of video support code
  4464.             DX = segment of physical video support (0000h if no ROM)
  4465.             ES = segment of active video support
  4466.             ES:DI -> information block (DI = 0000h if none available)
  4467.         01h failed
  4468. SeeAlso: AX=7F03h/BL=01h
  4469. --------V-107F03BL01-------------------------
  4470. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - INITIALIZE VIDEO SUPPORT
  4471.     AX = 7F03h
  4472.     BL = 01h
  4473.     CX = support request
  4474.     ES = segment of support code
  4475. Return: AL <> 7Fh if not supported
  4476.     AL = 7Fh if supported
  4477.         AH = status
  4478.         00h successful
  4479.         01h failed
  4480. Note:    initializes the indicated video support by calling ES:0003h; this
  4481.       function may be used to switch the active video support back to
  4482.       ROM after AX=7F03h/BL=02h
  4483. SeeAlso: AX=7F03h/BL=00h
  4484. --------V-107F03BL02-------------------------
  4485. INT 10 - SOLLEX SuperVGA - VIDEO SUPPORT CONTROL - GO RAM RESIDENT
  4486.     AX = 7F03h
  4487.     BL = 02h
  4488.     CX = support request
  4489.     ES = destination segment
  4490. Return: AL <> 7Fh if not supported
  4491.     AL = 7Fh if supported
  4492.         AH = status
  4493.         00h successful
  4494.         01h failed
  4495. SeeAlso: AX=7F00h,AX=7F03h/BL=01h
  4496. --------V-107F04BL00-------------------------
  4497. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET POWER STATE
  4498.     AX = 7F04h
  4499.     BL = 00h
  4500.     CX = new power state
  4501. Return: AL <> 7Fh if not supported
  4502.     AL = 7Fh if supported
  4503.         AH = status
  4504.         00h successful
  4505.         01h failed
  4506. Note:    higher values progressively reduce the operations available on the
  4507.       video adapter while yielding increasing power savings
  4508. SeeAlso: AX=7F00h,AX=7F04h/BL=01h
  4509. --------V-107F04BL01-------------------------
  4510. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET POWER STATE
  4511.     AX = 7F04h
  4512.     BL = 01h
  4513. Return: AL <> 7Fh if not supported
  4514.     AL = 7Fh if supported
  4515.         AH = status
  4516.         00h successful
  4517.             CX = current power state
  4518.             DX = maximum state
  4519.         01h failed
  4520. SeeAlso: AX=7F00h,AX=7F04h/BL=00h
  4521. --------V-107F04BL02-------------------------
  4522. INT 10 - SOLLEX SuperVGA - POWER CONTROL - SET TIMEOUT RESET
  4523.     AX = 7F04h
  4524.     BL = 02h
  4525.     CX = timeout reset
  4526. Return: AL <> 7Fh if not supported
  4527.     AL = 7Fh if supported
  4528.         AH = status
  4529.         00h successful
  4530.         01h failed
  4531. SeeAlso: AX=7F00h,AX=7F04h/BL=03h
  4532. --------V-107F04BL03-------------------------
  4533. INT 10 - SOLLEX SuperVGA - POWER CONTROL - GET TIMEOUT RESET
  4534.     AX = 7F04h
  4535.     BL = 03h
  4536. Return: AL <> 7Fh if not supported
  4537.     AL = 7Fh if supported
  4538.         AH = status
  4539.         00h successful
  4540.             BX = time increment
  4541.             CX = current timeout reset
  4542.             DX = maximum timeout reset
  4543.             ES:DI -> timeout reset table (array of bytes)
  4544.         01h failed
  4545. Note:    the timeout period is computed as (BYTE ES:[DI+CX]) * BX timer ticks
  4546. SeeAlso: AX=7F00h,AX=7F04h/BL=02h
  4547. --------V-107F05-----------------------------
  4548. INT 10 - SOLLEX SuperVGA - LOAD REGISTER
  4549.     AX = 7F05h
  4550.     ES:DI -> register value table (see below)
  4551. Return: AL <> 7Fh if not supported
  4552.     AL = 7Fh if supported
  4553.         AH = status
  4554.         00h successful
  4555.         01h failed
  4556. SeeAlso: AH=F1h,AH=F3h,AH=F5h
  4557.  
  4558. Format of register value table:
  4559. Offset    Size    Description
  4560.  00h    WORD    base I/O register (FFFFh = end of list)
  4561.  02h 2N BYTEs    pairs of values to be written to the base I/O register as an
  4562.         index value and the following register as a data byte
  4563.  2N+2    WORD    FFFFh (end of data list)
  4564.     ... (repeats until FFFFh base address)
  4565. --------V-107F06-----------------------------
  4566. INT 10 - SOLLEX SuperVGA - MULTIPLE FONT CONTROL
  4567.     AX = 7F06h
  4568.     BL = subfunction
  4569.         00h set multiple font state
  4570.         CX = new state (00h off, 01h on)
  4571.         01h get multiple font state
  4572.         Return: BL = current state (00h off, 01h on)
  4573. Return: AL <> 7Fh if not supported
  4574.     AL = 7Fh if supported
  4575.         AH = status
  4576.         00h successful
  4577.         01h failed
  4578. SeeAlso: AH=11h
  4579. --------V-107F07-----------------------------
  4580. INT 10 - SOLLEX SuperVGA - FILL VIDEO RAM
  4581.     AX = 7F07h
  4582.     BL = how much to fill
  4583.        00h regen size
  4584.        01h all video memory
  4585.     CX = pattern to write (normally 0720h for text modes and 0000h for gr)
  4586. Return: AL <> 7Fh if not supported
  4587.     AL = 7Fh if supported
  4588.         AH = status
  4589.         00h successful
  4590.         01h failed
  4591. SeeAlso: AH=06h
  4592. --------A-1080-------------------------------
  4593. INT 10 - CU Writer v1.4 - GET OPTION
  4594.     AH = 80h
  4595.     AL = desired option
  4596. Return: ???
  4597. Program: CU Writer is a public-domain Thai-English word processor from
  4598.       Chulalongkorn University, Bangkok
  4599. SeeAlso: AH=81h"CU Writer"
  4600. --------Q-1080--DX4456-----------------------
  4601. INT 10 U - VIDEO - DESQview 2.0x only - internal - SET ??? HANDLER
  4602.     AH = 80h
  4603.     DX = 4456h ('DV')
  4604.     ES:DI -> FAR subroutine to be called on ???
  4605. Return: DS = segment of DESQview data structure for video buffer
  4606. Note:    this function is probably meant for internal use only, due to the magic
  4607.       value required in DX
  4608.     the subroutine seems to be called when the DESQview menu is accessed;
  4609.       on entry, AL = 03h or 04h
  4610. --------A-1081-------------------------------
  4611. INT 10 - CU Writer v1.4 - SET OPTION
  4612.     AH = 81h
  4613.     ???
  4614. Return: ???
  4615. SeeAlso: AH=80h"CU Writer"
  4616. --------Q-1081--DX4456-----------------------
  4617. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET ???
  4618.     AH = 81h
  4619.     DX = 4456h ('DV')
  4620. Return: ES = segment of DESQview data structure for video buffer
  4621.         BYTE ES:[0] = current window number in DV 2.0x
  4622. Note:    this function is probably meant for internal use only, due to the magic
  4623.       value required in DX
  4624. SeeAlso: AH=82h"DESQview"
  4625. --------Q-1082--DX4456-----------------------
  4626. INT 10 U - VIDEO - DESQview 2.0x only - internal - GET CURRENT WINDOW INFO
  4627.     AH = 82h
  4628.     DX = 4456h ('DV')
  4629. Return: DS = segment in DESQview for data structure
  4630.          in DV 2.00,
  4631.           BYTE DS:[0] = window number
  4632.           WORD DS:[1] = segment of other data structure
  4633.           WORD DS:[3] = segment of window's object handle
  4634.     ES = segment of DESQview data structure for video buffer
  4635.     AL = current window number
  4636.     AH = ???
  4637.     BL = direct screen writes
  4638.         00h program does not do direct writes
  4639.         01h program does direct writes, so shadow buffer not usable
  4640.     BH = ???
  4641.     CL = current video mode
  4642.     CH = ???
  4643. Note:    this function is probably meant for internal use only, due to the magic
  4644.       value required in DX
  4645. SeeAlso: AH=81h"DESQview"
  4646. --------J-108200-----------------------------
  4647. INT 10 - VIDEO - AX PC - GET/SET SCROLL MODE
  4648.     AX = 8200h
  4649.     BL = new scroll mode or FFh to get current mode
  4650.         00h dynamic, 01h software
  4651. Return: AL = scroll mode (current mode if BL=FFh, previous mode otherwise)
  4652. SeeAlso: AH=06h,AH=07h
  4653. --------J-108300-----------------------------
  4654. INT 10 - VIDEO - AX PC - GET VIDEO RAM ADDRESS
  4655.     AX = 8300h
  4656. Return: AX = offset of video RAM
  4657.     ES:BX -> virtual text RAM buffer
  4658. SeeAlso: AX=5201h
  4659. --------N-108B-------------------------------
  4660. INT 10 - Alloy MW386 - FORCE WORKSTATION SCREEN UPDATE
  4661.     AH = 8Bh
  4662. SeeAlso: AH=92h,AH=93h
  4663. --------N-1090-------------------------------
  4664. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION DISPLAY MODE
  4665.     AH = 90h
  4666. Return: AL = current video mode (see AH=00h)
  4667. SeeAlso: AH=91h
  4668. --------N-1091-------------------------------
  4669. INT 10 - Alloy MW386 - GET PHYSICAL WORKSTATION ADAPTER TYPE
  4670.     AH = 91h
  4671. Return: AL = video adapter type (see below)
  4672. Note:    types less than 80h do not imply that the current user is on the host
  4673. SeeAlso: AH=90h
  4674.  
  4675. Values for video adapter type:
  4676.  00h    monochrome
  4677.  01h    Hercules monochrome graphics
  4678.  02h    CGA
  4679.  03h    EGA
  4680.  04h    VGA
  4681.  80h    monochrome text terminal
  4682.  81h    Hercules graphics terminal
  4683.  82h    color graphics terminal
  4684. --------N-1092-------------------------------
  4685. INT 10 - Alloy MW386 - INHIBIT WORKSTATION SCREEN UPDATES
  4686.     AH = 92h
  4687. Note:    the terminal will be updated even when screen updates are inhibited if
  4688.       TTY output is used
  4689. SeeAlso: AH=8Bh
  4690. --------N-1093-------------------------------
  4691. INT 10 - Alloy MW386 - REDRAW SCREEN
  4692.     AH = 93h
  4693. SeeAlso: AH=8Bh,AH=FFh
  4694. --------A-10A0-------------------------------
  4695. INT 10 - CU Writer v1.4 - SET PIXEL WRITE MODE
  4696.     AH = A0h
  4697.     ???
  4698. Return: ???
  4699. Program: CU Writer is a public-domain Thai-English word processor from
  4700.       Chulalongkorn University, Bangkok
  4701. SeeAlso: AH=80h"CU Writer",AH=B0h
  4702. --------A-10B0-------------------------------
  4703. INT 10 - CU Writer v1.4 - PUT PIXEL
  4704.     AH = B0h
  4705.     ???
  4706. Return: ???
  4707. SeeAlso: AH=A0h"CU Writer",AH=B1h,AH=B2h,AH=B3h,AH=B4h,AH=B5h,AH=D0h
  4708. --------A-10B1-------------------------------
  4709. INT 10 - CU Writer v1.4 - MOVE TO
  4710.     AH = B1h
  4711.     ???
  4712. Return: ???
  4713. SeeAlso: AH=B0h,AH=B2h,AH=C0h"CU Writer"
  4714. --------A-10B2-------------------------------
  4715. INT 10 - CU Writer v1.4 - DRAW LINE TO
  4716.     AH = B2h
  4717.     ???
  4718. Return: ???
  4719. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h,AH=B5h
  4720. --------A-10B3-------------------------------
  4721. INT 10 - CU Writer v1.4 - FLOOD FILL
  4722.     AH = B3h
  4723.     ???
  4724. Return: ???
  4725. SeeAlso: AH=B2h,AH=B5h
  4726. --------A-10B4-------------------------------
  4727. INT 10 - CU Writer v1.4 - DRAW RECTANGLE
  4728.     AH = B4h
  4729.     ???
  4730. Return: ???
  4731. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B5h
  4732. --------A-10B5-------------------------------
  4733. INT 10 - CU Writer v1.4 - DRAW FILLED RECTANGLE
  4734.     AH = B5h
  4735.     ???
  4736. Return: ???
  4737. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  4738. --------b-10BF00-----------------------------
  4739. INT 10 - VIDEO - Compaq Extensions - SELECT EXTERNAL MONITOR
  4740.     AX = BF00h
  4741. Desc:    specify that the external monitor become the active monitor
  4742. Note:    all registers preserved and the internal monitor is blanked
  4743. SeeAlso: AX=BF01h
  4744. --------b-10BF01-----------------------------
  4745. INT 10 - VIDEO - Compaq Extensions - SELECT INTERNAL MONITOR
  4746.     AX = BF01h
  4747. Desc:    specify that the internal monitor become the active monitor
  4748. Note:    all registers preserved and the external monitor is blanked
  4749. SeeAlso: AX=BF00h
  4750. --------b-10BF02-----------------------------
  4751. INT 10 - VIDEO - Compaq Extensions - SET MASTER MODE OF CURRENT CONTROLLER
  4752.     AX = BF02h
  4753.     BH = master mode
  4754.         04h CGA
  4755.         05h EGA
  4756.         07h MDA
  4757. SeeAlso: AX=BF03h
  4758. --------b-10BF03BX0000-----------------------
  4759. INT 10 - VIDEO - Compaq Extensions - GET ENVIRONMENT
  4760.     AX = BF03h
  4761.     BX = 0000h
  4762. Return: BH = active monitor
  4763.         00h = external
  4764.         01h = internal
  4765.     BL = master mode
  4766.         00h = switchable VDU not present
  4767.         04h = CGA
  4768.         05h = EGA
  4769.         07h = MDA
  4770.         08h = switchable LCD controller present
  4771.     CH = 00h (reserved)
  4772.     CL = switchable VDU mode supported
  4773.         bit     0   = CGA supported
  4774.         bits 1,2 = reserved (1)
  4775.         bit     3   = MDA supported
  4776.         bits 4-7 = reserved (1)
  4777.     DH = internal monitor type (see below)
  4778.     DL = external monitor type (see below)
  4779. SeeAlso: AH=1Ah,AX=BF00h,AX=BF01h,AX=BF02h
  4780.  
  4781. Values for monitor type:
  4782.  00h    none
  4783.  01h    dual-mode monitor
  4784.  02h    5153 RGB monitor
  4785.  03h    Compaq Color monitor
  4786.  04h    640x400 flat panel
  4787.  05h    VGC monochrome
  4788.  06h    VGC color
  4789.  07h    LCD VGA
  4790. --------b-10BF04-----------------------------
  4791. INT 10 - VIDEO - Compaq Extensions - SET MODE SWITCH DELAY
  4792.     AX = BF04h
  4793.     BH = new state of delay
  4794.         00h enabled
  4795.         01h disabled
  4796. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  4797.       version of the list will provide more definite information
  4798. SeeAlso: AX=BF05h
  4799. --------b-10BF05-----------------------------
  4800. INT 10 - VIDEO - Compaq Extensions - ENABLE/DISABLE DISPLAY
  4801.     AX = BF05h
  4802.     BH = new state of video
  4803.         00h off
  4804.         01h on
  4805. Note:    the 04/08/93 sytem ROM appears to use BL instead of BH; a future
  4806.       version of the list will provide more definite information
  4807. SeeAlso: AH=12h/BL=36h,AX=BF04h
  4808. --------b-10BF06-----------------------------
  4809. INT 10 - VIDEO - Compaq SLT/286 - READ GRAY SCALE TABLE
  4810.     AX = BF06h
  4811.     CL = address to be read from gray scale table
  4812. Return: AL = bit 3-0 - Value read from gray scale table
  4813.     CL = address to be read from gray scale table
  4814. SeeAlso: AH=12h/BL=33h,AX=BF07h
  4815. --------b-10BF07-----------------------------
  4816. INT 10 - VIDEO - Compaq SLT/286 - WRITE GRAY SCALE TABLE
  4817.     AX = BF07h
  4818.     CH = value to write to gray scale table
  4819.     CL = address to be written to gray scale table
  4820. SeeAlso: AX=BF06h,AX=BF08h
  4821. --------b-10BF08-----------------------------
  4822. INT 10 - VIDEO - Compaq SLT/286 - WRITE COLOR MIX REGISTERS
  4823.     AX = BF08h
  4824.     CH = bits 7-4 green weight
  4825.          bits 3-0 blue weight
  4826.     CL = bits 7-4 unused
  4827.          bits 3-0 red weight
  4828. SeeAlso: AH=12h/BH=33h,AX=BF07h
  4829. --------b-10BF09-----------------------------
  4830. INT 10 - VIDEO - Compaq LTE Lite - ENABLE ???
  4831.     AX = BF09h
  4832. Return: CF clear
  4833. Note:    sets bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  4834.       to 6Fh and index 83h to 04h
  4835. SeeAlso: AX=BF0Ah,AX=BF0Bh
  4836. --------b-10BF0A-----------------------------
  4837. INT 10 - VIDEO - Compaq LTE Lite - DISABLE ???
  4838.     AX = BF0Ah
  4839. Return: CF clear
  4840. Note:    clears bit 6 of port 03CEh index 81h; in some cases also sets index 84h
  4841.       to 80h and index 83h to FBh
  4842. SeeAlso: AX=BF09h,AX=BF0Bh
  4843. --------b-10BF0B-----------------------------
  4844. INT 10 - VIDEO - Compaq LTE Lite - CHECK WHETHER ??? ENABLED
  4845.     AX = BF0Bh
  4846. Return: CF clear
  4847.     AX = state (0000h disabled, 0001h enabled)
  4848. SeeAlso: AX=BF09h,AX=BF0Ah
  4849. --------b-10BF0C-----------------------------
  4850. INT 10 - VIDEO - Compaq SystemPro XL - CLEAR ???
  4851.     AX = BF0Ch
  4852. Return: CF clear
  4853. SeeAlso: AX=BF0Dh,AX=BF0Eh
  4854. --------b-10BF0D-----------------------------
  4855. INT 10 - VIDEO - Compaq SystemPro XL - SET ???
  4856.     AX = BF0Dh
  4857. Return: CF clear
  4858. SeeAlso: AX=BF0Ch,AX=BF0Eh
  4859. --------b-10BF0E-----------------------------
  4860. INT 10 - VIDEO - Compaq SystemPro XL - CHECK WHETHER ??? SET
  4861.     AX = BF0Eh
  4862. Return: CF clear
  4863.     AL = ??? (00h clear [AX=BF0Ch called] or 01h set [AX=BF0Dh called])
  4864. SeeAlso: AX=BF0Ch,AX=BF0Dh
  4865. --------b-10BF0F-----------------------------
  4866. INT 10 - VIDEO - Compaq SystemPro XL, LTE Lite - ???
  4867.     AX = BF0Fh
  4868.     BX = ??? or FFFFh to get current value
  4869. Return: CF clear
  4870.     AX = ???
  4871. Note:    this function calls AX=BF10h if BX=FFFFh and an EISA System ROM is
  4872.       present
  4873. SeeAlso: AX=BF10h
  4874. --------b-10BF10-----------------------------
  4875. INT 10 - VIDEO - Compaq SystemPro XL, LTE Lite - GET ???
  4876.     AX = BF10h
  4877. Return: CF clear
  4878.     AX = ???
  4879. SeeAlso: AX=BF0Fh
  4880. --------b-10BF11-----------------------------
  4881. INT 10 - VIDEO - Compaq LTE Lite, ProSignia - GET ???
  4882.     AX = BF11h
  4883. Return: AL = BFh if supported
  4884.         CF clear
  4885.         ES:BX -> ASCII signature "COMPAQ"
  4886.         ES:DI -> ???
  4887. --------b-10BF12-----------------------------
  4888. INT 10 - VIDEO - Compaq LTE Lite, ProSignia - ???
  4889.     AX = BF12h
  4890.     BL = ???
  4891. Return: CF clear
  4892. Note:    this function is a NOP if the VGA subsystem is inactive or the current
  4893.       Display Combination Code is 10h or higher
  4894. --------V-10BFA0BXADAD-----------------------
  4895. INT 10 - VIDEO - Compaq ADAPT.COM - INSTALLATION CHECK
  4896.     AX = BFA0h
  4897.     BX = ADADh
  4898. Return: AX = BDBDh if newer ADAPT.COM installed
  4899.         BX = BCD version (BH = major, BL = minor)
  4900.         CL = ???
  4901.         CH = ???
  4902.         DL = ???
  4903.     AX = ADADh if older version of ADAPT.COM installed
  4904. Program: ADAPT is Compaq's Advanced Display Attribute Programming Tool, an
  4905.       optionally-resident utility for setting display colors and cursor
  4906.       size; when resident, it also includes a screen blanker
  4907. SeeAlso: AX=BFA1h,AX=BFA2h,AX=DFA5h
  4908. Index:    screen saver;ADAPT
  4909. --------V-10BFA1-----------------------------
  4910. INT 10 - VIDEO - Compaq ADAPT.COM - GET ???
  4911.     AX = BFA1h
  4912. Return: AX = BDBEh if supported
  4913.         CH = current value of ???
  4914.         DL = current value of ???
  4915. SeeAlso: AX=BFA0h,AX=BFA2h
  4916. --------V-10BFA2-----------------------------
  4917. INT 10 - VIDEO - Compaq ADAPT.COM - SET ???
  4918.     AX = BFA2h
  4919.     CH = new value for ???
  4920.     DL = new value for ???
  4921. Return: AX = BDBEh if supported
  4922. SeeAlso: AX=BFA0h,AX=BFA1h
  4923. --------A-10C0-------------------------------
  4924. INT 10 - CU Writer v1.4 - GO TO TEXT ROW AND COLUMN
  4925.     AH = C0h
  4926.     ???
  4927. Return: ???
  4928. SeeAlso: AH=B1h,AH=C1h,AH=C2h,AH=C3h,AH=C4h
  4929. --------A-10C1-------------------------------
  4930. INT 10 - CU Writer v1.4 - OUTPUT TEXT
  4931.     AH = C1h
  4932.     ???
  4933. Return: ???
  4934. SeeAlso: AH=C0h,AH=C2h,AH=C3h,AH=C4h
  4935. --------A-10C2-------------------------------
  4936. INT 10 - CU Writer v1.4 - REVERSE TEXT
  4937.     AH = C2h
  4938.     ???
  4939. Return: ???
  4940. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=C4h
  4941. --------A-10C3-------------------------------
  4942. INT 10 - CU Writer v1.4 - TEXT BAR
  4943.     AH = C3h
  4944.     ???
  4945. Return: ???
  4946. SeeAlso: AH=C0h,AH=C1h,AH=C4h
  4947. --------A-10C4-------------------------------
  4948. INT 10 - CU Writer v1.4 - TEXT MENU
  4949.     AH = C4h
  4950.     ???
  4951. Return: ???
  4952. SeeAlso: AH=C0h,AH=C1h,AH=C3h,AH=D0h
  4953. --------V-10CC00SI0000-----------------------
  4954. INT 10 - VIDEO - UltraVision - GET STATUS (INSTALLATION CHECK)
  4955.     AX = CC00h
  4956.     SI = 0000h (if checking version)
  4957. Return: CX = ABCDh
  4958.     AL = Ultravision extensions
  4959.         00h enabled
  4960.         FFh disabled
  4961.     AH = card designator
  4962.     BX:00F0h -> palette values (for compatibility with NEWFONT)
  4963.     DX = support for high resolution modes
  4964.         00h not active
  4965.         01h active
  4966.     SI = UltraVision version number (v1.2+), high byte=major,low byte=minor
  4967.        = unchanged for versions <1.2
  4968. SeeAlso: AX=CC01h,AX=CC02h
  4969. --------V-10CC01-----------------------------
  4970. INT 10 - VIDEO - UltraVision - DISABLE EXTENSIONS
  4971.     AX = CC01h
  4972. Notes:    subsequent BIOS calls will be passed through to previous handler
  4973.     should be followed immediately by mode set to restore normal EGA/VGA
  4974.       state
  4975. SeeAlso: AX=CC02h
  4976. --------V-10CC02-----------------------------
  4977. INT 10 - VIDEO - UltraVision - ENABLE EXTENSIONS
  4978.     AX = CC02h
  4979. Note:    should be followed immediately by mode set to restore previous
  4980.       UltraVision state
  4981. SeeAlso: AX=CC01h
  4982. --------V-10CD00-----------------------------
  4983. INT 10 - VIDEO - UltraVision - LOAD ULTRAVISION PALETTE (color EGA,VGA)
  4984.     AX = CD00h
  4985.     CL = palette table number (01h-07h for v1.x, 01h-0Fh for v2+)
  4986.     DS:DX -> 16-byte palette register list (colors for registers 00h-0Fh)
  4987. Notes:    if palette locking is in effect for the current mode, the new colors
  4988.       will be displayed immediately; otherwise, the system reverts to the
  4989.       default palette
  4990.     palette table 0 is reserved for the default palette and cannot be set
  4991.     UltraVision always sets the border color to black
  4992. SeeAlso: AX=CD01h,AX=CD02h
  4993. --------V-10CD01-----------------------------
  4994. INT 10 - VIDEO - UltraVision - SET PALETTE LOCKING STATUS (color EGA,VGA)
  4995.     AX = CD01h
  4996.     CL = palette locking value
  4997.         00h none
  4998.         01h text modes only (02h,03h)
  4999.         FFh all modes (all standard color text and graphics modes)
  5000. Notes:    intended for video modes with 16 or fewer colors
  5001. SeeAlso: AX=1000h,AX=1002h,AX=CD00h,AX=CD03h
  5002. --------V-10CD02-----------------------------
  5003. INT 10 - VIDEO - UltraVision - GET ULTRAVISION PALETTE (EGA,VGA)
  5004.     AX = CD02h
  5005. Return: CL = palette table number
  5006.     DS:DX -> 17-byte palette register list
  5007.     DS:SI -> current font names table (see below)
  5008. Note:    only the font names are valid on monochrome EGA systems
  5009. SeeAlso: AX=1009h,AX=CD00h
  5010.  
  5011. Format of palette register list:
  5012. Offset    Size    Description
  5013.  00h 16 BYTEs    colors for palette registers 00h through 0Fh
  5014.  10h    BYTE    border color
  5015.  
  5016. Format of current font names table (v2+):
  5017. Offset    Size    standard EGA    HiRes EGA    VGA
  5018.  00h  8 BYTEs    N/A        F19 font    F20 font
  5019.  08h  8 BYTEs    F14 font    F14 font    F14 font
  5020.  10h  8 BYTEs    N/A        F11 font    F10 font
  5021.  18h  8 BYTEs    F8 font        F8 font        F8 font
  5022.  
  5023. Format of current font names table (v1.x):
  5024. Offset    Size    HiRes EGA
  5025.  00h  8 BYTEs    F19/F14 font
  5026.  08h  8 BYTEs    F11/F8 font
  5027. --------V-10CD03-----------------------------
  5028. INT 10 - VIDEO - UltraVision - GET PALETTE LOCKING STATUS (color EGA,VGA)
  5029.     AX = CD03h
  5030. Return: CL = palette locking value
  5031.         00h none
  5032.         01h text modes only
  5033.         FFh all modes
  5034. SeeAlso: AX=CD01h
  5035. --------V-10CD04-----------------------------
  5036. INT 10 - VIDEO - UltraVision - GET UltraVision TEXT MODE (EGA,VGA)
  5037.     AX = CD04h
  5038. Return: AL = mode number (see below)
  5039. SeeAlso: AH=0Fh,AX=CC00h,AH=CDh
  5040.  
  5041. Values for video mode number:
  5042.  11h    80x25
  5043.  12h    80x43, 80x50
  5044.  13h    80x34, 80x36
  5045.  14h    80x60, 80x63
  5046.  19h    94x25
  5047.  1Ah    94x43, 94x50
  5048.  1Bh    94x36
  5049.  1Ch    94x63
  5050.  21h    108x25
  5051.  22h    108x43, 108x50
  5052.  23h    107x34, 108x36
  5053.  24h    108x60, 108x63
  5054.  31h    120x25
  5055.  32h    120x43, 120x50
  5056.  33h    132x25
  5057.  34h    132x44, 132x50
  5058.  39h    120x36
  5059.  3Ah    120x63
  5060.  3Bh    132x36
  5061.  3Ch    132x60
  5062. Index:    video modes
  5063. --------V-10CD05-----------------------------
  5064. INT 10 - VIDEO - UltraVision - SET CURSOR TYPE (EGA,VGA)
  5065.     AX = CD05h
  5066.     CL = type
  5067.         00h line cursor
  5068.         FFh box cursor
  5069. Note:    sets default cursor type for text-based programs
  5070. SeeAlso: AH=01h,AX=CD06h
  5071. --------V-10CD06-----------------------------
  5072. INT 10 - VIDEO - UltraVision - GET CURSOR TYPE (EGA,VGA)
  5073.     AX = CD06h
  5074. Return: CL = type
  5075.         00h line cursor
  5076.         FFh box cursor
  5077. SeeAlso: AH=03h,AX=CD05h
  5078. --------V-10CD07-----------------------------
  5079. INT 10 - VIDEO - UltraVision v1.2+ - SET UNDERLINE STATUS (EGA,VGA)
  5080.     AX = CD07h
  5081.     CL = hardware underline status
  5082.         00h off (color systems only)
  5083.         01h underline below characters
  5084.         02h strike through characters
  5085.     BL = foreground color for normal text (FFh = current)
  5086.     BH = foreground color for bright text (FFh = current)
  5087. Return: CL = hardware underline status
  5088.     BL = current foreground color for normal text
  5089.     BH = current foreground color for bright text
  5090. Notes:    when underline or strikeout is enabled in color text modes, the
  5091.       specified colors will be assigned temporarily to colors 01h and 09h,
  5092.       allowing affected text to match non-underlined text.    The color
  5093.       remapping uses values from the current onscreen palette regardless
  5094.       of the palette locking status (see AX=CD01h)
  5095.     specify the standard colors (BL=01h,BH=09h) to enable underline or
  5096.       strikeout without color remapping
  5097. SeeAlso: AX=CD08h
  5098. --------V-10CD08-----------------------------
  5099. INT 10 - VIDEO - UltraVision v1.2+ - GET UNDERLINE STATUS (EGA,VGA)
  5100.     AX = CD08h
  5101. Return: CL = hardware underline status (see AX=CD07h)
  5102.     BL = foreground color for normal text
  5103.     BH = foreground color for bright text
  5104. Note:    only CL is valid on monochrome EGA systems
  5105. SeeAlso: AX=CD07h
  5106. --------V-10CD10-----------------------------
  5107. INT 10 - VIDEO - UltraVision - LOAD USER FONT (EGA,VGA)
  5108.     AX = CD10h
  5109.     BH = bytes per character (08h,0Ah,0Bh,0Eh,13h,14h)
  5110.     CX = ABCDh load 9xN alternate font (v2+)
  5111.        else number of characters to load
  5112.         DX = character offset into font table
  5113.         DS:SI -> 8-byte ASCII font name
  5114.     ES:BP -> font definitions
  5115. Return: AX = FFFFh if invalid font parameters
  5116. Notes:    loads the designated characters into UltraVision's resident font area
  5117.     should be followed by a video mode set to reload character generator
  5118. SeeAlso: AX=1100h
  5119. --------V-10CD-------------------------------
  5120. INT 10 - VIDEO - UltraVision - SET ULTRAVISION TEXT MODE (EGA,VGA)
  5121.     AH = CDh
  5122.     AL = text mode number (see AX=CD04h)
  5123. Return: AX = CDCDh if invalid mode
  5124. SeeAlso: AX=CD04h
  5125. --------A-10D0-------------------------------
  5126. INT 10 - CU Writer v1.4 - LOAD PICTURE
  5127.     AH = D0h
  5128.     ???
  5129. Return: ???
  5130. SeeAlso: AH=B0h"CU Writer",AH=C4h
  5131. --------V-10D5-------------------------------
  5132. INT 10 - Netroom SCRNCLK - ???
  5133.     AH = D5h
  5134.     ???
  5135. Return: ???
  5136. Program: SCRNCLK is a "cloaked" screen accelerator included with Netroom
  5137. --------V-10DFA5-----------------------------
  5138. INT 10 U - VIDEO - Compaq ADAPT.COM - GET ??? DATA AREA
  5139.     AX = DFA5h
  5140. Return: AX = BDBFh if supported
  5141.         ES:DI -> ??? data area
  5142.         BX = ES
  5143. SeeAlso: AX=BFA0h
  5144. --------V-10EF-------------------------------
  5145. INT 10 - VIDEO - MSHERC.COM - GET VIDEO ADAPTER TYPE AND MODE
  5146.     AH = EFh
  5147. Return: DL = video adapter type
  5148.         00h original Hercules
  5149.         01h Hercules Plus
  5150.         02h Hercules InColor???
  5151.     DH = memory mode byte
  5152.         01h "half" mode
  5153.         03h "full" mode
  5154. Program: MSHERC.COM is a support program for the Microsoft Quick languages which
  5155.       makes their graphics libraries compatible with a Hercules card by
  5156.       adding video modes 08h and 88h, and supporting text in the new
  5157.       graphics modes.
  5158. Notes:    while in mode 08h or 88h, INT 10 supports the Hercules card much like
  5159.       a CGA.
  5160.     MSHERC performs an installation check by setting DL=FFh and testing
  5161.       whether it has been changed on return
  5162. Index:    installation check;MSHERC
  5163. --------V-10F0-------------------------------
  5164. INT 10 - EGA Register Interface Library - READ ONE REGISTER
  5165.     AH = F0h
  5166.     BL = register number
  5167.     BH = 00h
  5168.     DX = group index
  5169.         Pointer/data chips
  5170.            00h CRT Controller (25 reg) 3B4h mono modes, 3D4h color modes
  5171.            08h Sequencer (5 registers) 3C4h
  5172.            10h Graphics Controller (9 registers) 3CEh
  5173.            18h Attribute Controller (20 registers) 3C0h
  5174.         Single registers
  5175.            20h Miscellaneous Output register 3C2h
  5176.            28h Feature Control register (3BAh mono modes, 3DAh color modes)
  5177.            30h Graphics 1 Position register 3CCh
  5178.            38h Graphics 2 Position register 3CAh
  5179. Return: BL = data
  5180. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5181.       compatibility box, and others
  5182. SeeAlso: AH=F1h,AH=F2h,INT 2F/AX=BC00h
  5183. --------V-10F1-------------------------------
  5184. INT 10 - EGA Register Interface Library - WRITE ONE REGISTER
  5185.     AH = F1h
  5186.     DX = group index (see AH=F0h)
  5187.         if single register:
  5188.         BL = value to write
  5189.         otherwise
  5190.         BL = register number
  5191.         BH = value to write
  5192. Return: BL = data
  5193. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5194.       compatibility box, and others
  5195. SeeAlso: AX=7F05h,AH=F0h,AH=F3h
  5196. --------V-10F2-------------------------------
  5197. INT 10 - EGA Register Interface Library - READ REGISTER RANGE
  5198.     AH = F2h
  5199.     CH = starting register number
  5200.     CL = Number of registers (>1)
  5201.     DX = group index
  5202.          00h CRTC (3B4h mono modes, 3D4h color modes)
  5203.          08h Sequencer 3C4h
  5204.          10h Graphics Controller 3CEh
  5205.          18h Attribute Controller 3C0h
  5206.     ES:BX -> buffer, CL bytes
  5207. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5208.       compatibility box, and others
  5209. SeeAlso: AH=F0h,AH=F3h
  5210. --------V-10F3-------------------------------
  5211. INT 10 - EGA Register Interface Library - WRITE REGISTER RANGE
  5212.     AH = F3h
  5213.     CH = starting register
  5214.     CL = number of registers (>1)
  5215.     DX = group index (see AH=F2h)
  5216.     ES:BX -> buffer, CL bytes
  5217. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5218.       compatibility box, and others
  5219. SeeAlso: AX=7F05h,AH=F1h,AH=F2h
  5220. --------V-10F4-------------------------------
  5221. INT 10 - EGA Register Interface Library - READ REGISTER SET
  5222.     AH = F4h
  5223.     CX = number of registers to read (>1)
  5224.     ES:BX -> table of records (see below)
  5225. Return: register values in table filled in
  5226. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5227.       compatibility box, and others
  5228. SeeAlso: AH=F0h,AH=F2h,AH=F5h
  5229.  
  5230. Format of entries in table of register records:
  5231. Offset    Size    Description
  5232.  00h    WORD    group index
  5233.         Pointer/data chips
  5234.            00h CRTC (3B4h mono modes, 3D4h color modes)
  5235.            08h Sequencer 3C4h
  5236.            10h Graphics Controller 3CEh
  5237.            18h Attribute Controller 3C0h
  5238.         Single registers
  5239.            20h Miscellaneous Output register 3C2h
  5240.            28h Feature Control register (3BAh mono modes, 3DAh color)
  5241.            30h Graphics 1 Position register 3CCh
  5242.            38h Graphics 2 Position register 3CAh
  5243.  02h    BYTE    register number (0 for single registers)
  5244.  03h    BYTE    register value
  5245. --------V-10F5-------------------------------
  5246. INT 10 - EGA Register Interface Library - WRITE REGISTER SET
  5247.     AH = F5h
  5248.     CX = number of registers to write (>1)
  5249.     ES:BX -> table of records (see AH=F4h)
  5250. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5251.       compatibility box, and others
  5252. SeeAlso: AX=7F05h,AH=F1h,AH=F3h,AH=F4h
  5253. --------V-10F6-------------------------------
  5254. INT 10 - EGA Register Interface Library - REVERT TO DEFAULT REGISTERS
  5255.     AH = F6h
  5256. Note:    provided by the Microsoft Mouse driver, OS/2 compatibility box, and
  5257.       others
  5258. SeeAlso: AH=F7h
  5259. --------V-10F7-------------------------------
  5260. INT 10 - EGA Register Interface Library - DEFINE DEFAULT REGISTER TABLE
  5261.     AH = F7h
  5262.     DX = port number
  5263.        Pointer/data chips
  5264.           00h CRTC (3B4h mono modes, 3D4h color modes)
  5265.           08h Sequencer 3C4h
  5266.           10h Graphics Controller 3CEh
  5267.           18h Attribute Controller 3C0h
  5268.        Single registers
  5269.           20h Miscellaneous Output register 3C2h
  5270.           28h Feature Control register (3BAh mono modes, 3DAh color modes)
  5271.           30h Graphics 1 Position register 3CCh
  5272.           38h Graphics 2 Position register 3CAh
  5273.     ES:BX -> table of one-byte entries, one byte to be written to each
  5274.          register
  5275. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5276.       compatibility box, and others
  5277. SeeAlso: AH=F6h
  5278. --------V-10FA--BX0000-----------------------
  5279. INT 10 - EGA Register Interface Library - INTERROGATE DRIVER
  5280.     AH = FAh
  5281.     BX = 0000h
  5282. Return: BX = 0000h if RIL driver not present
  5283.     ES:BX -> EGA Register Interface version number, if present:
  5284.         byte 0 = major release number
  5285.         byte 1 = minor release number
  5286. Note:    the RIL is provided by EGA.SYS, the Microsoft Mouse driver, the OS/2
  5287.       compatibility box, and others
  5288. SeeAlso: AH=F6h,INT 2F/AX=BC00h
  5289. --------K-10FA-------------------------------
  5290. INT 10 - FASTBUFF.COM - INSTALLATION CHECK
  5291.     AH = FAh
  5292. Return: AX = 00FAh if installed
  5293.         ES = segment of resident code
  5294. Program: FASTBUFF.COM is a keyboard speedup/screen blanking utility by David
  5295.       Steiner
  5296. Index:    screen saver;FASTBUFF
  5297. --------V-10FE-------------------------------
  5298. INT 10 - TopView - GET SHADOW BUFFER
  5299.     AH = FEh
  5300.     ES:DI -> assumed video buffer
  5301.         B800h:0000h color text/CGA graphics, B000h:0000h mono text,
  5302.           or A000h:0000h EGA/VGA graphics (RSIS environments only)
  5303. Return: ES:DI -> actual video buffer for calling process
  5304. Desc:    Determine the address of the virtual screen to which the program
  5305.       should write instead of the actual video memory; this permits
  5306.       programs to be multitasked without interfering with each other's
  5307.       output, and allows memory managers to move the video memory to
  5308.       permit larger programs to be loaded.
  5309. Notes:    if no multitasker or RSIS-compliant environment is installed, ES:DI is
  5310.       returned unchanged; RSIS is the Relocated Screen Interface
  5311.       Specification
  5312.     for display pages other than 0, use AH=05h and AH=0Fh to determine
  5313.       whether a particular page exists
  5314.     TopView requires a call to AH=FFh to notify it that the screen has
  5315.       changed; DESQview will check for changes itself until the first call
  5316.       to AH=FFh
  5317. SeeAlso: AH=05h,AX=5201h,AH=FFh,INT 15/AX=1024h,INT 21/AH=2Bh"DESQview"
  5318. SeeAlso: INT 21/AH=ECh"DoubleDOS"
  5319. --------V-10FF-------------------------------
  5320. INT 10 - TopView - UPDATE SCREEN FROM SHADOW BUFFER
  5321.     AH = FFh
  5322.     CX = number of consecutive changed characters
  5323.     ES:DI -> first changed character in shadow buffer
  5324. Notes:    avoid CX=0000h
  5325.     DESQview will discontinue the automatic screen updating initiated by
  5326.       AH=FEh after this call
  5327.     not supported (ignored) by DESQview/X 1.0x
  5328. SeeAlso: AH=93h,AH=FEh
  5329. --------E-10FF-------------------------------
  5330. INT 10 - DJ GO32.EXE 80386+ DOS extender - VIDEO EXTENSIONS
  5331.     AH = FFh
  5332.     AL = video mode (see below)
  5333. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  5334.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  5335. SeeAlso: AH=00h,INT 21/AH=FFh"GO32"
  5336.  
  5337. Values for video mode number:
  5338.  00h    80x25 text
  5339.  01h    default text
  5340.  02h    CXxDX text
  5341.  03h    biggest text
  5342.  04h    320x200 graphics
  5343.  05h    default graphics
  5344.  06h    CXxDX graphics
  5345.  07h    biggest non-interlaced graphics
  5346.  08h    biggest graphics
  5347. Index:    video modes
  5348. --------V-10FF-------------------------------
  5349. INT 10 - VIDEO - Oak VGA BIOS v1.02+ - SET EMULATION
  5350.     AH = FFh
  5351.     AL = emulation
  5352.         43h ('C') CGA emulation
  5353.         45h ('E') EGA emulation
  5354.         4Dh ('M') Hercules emulation
  5355.         56h ('V') VGA emulation
  5356.     ES:DI -> signature string "Calamity"
  5357. Return: VGA switched to suggested mode
  5358. SeeAlso: AH=00h,AX=007Fh,AX=5F01h
  5359. --------R-10FF00-----------------------------
  5360. INT 10 - CARBON COPY PLUS v5.0 - CHECK IF CC CONNECTED TO CCHELP
  5361.     AX = FF00h
  5362. Return: BL = 00h not connected
  5363.        = 01h connected
  5364. SeeAlso: AX=FF01h,AX=FF02h
  5365. --------R-10FF01-----------------------------
  5366. INT 10 - CARBON COPY PLUS v5.0 - DISCONNECT AND RESET LINE
  5367.     AX = FF01h
  5368. SeeAlso: AX=FF00h,AX=FF02h
  5369. --------R-10FF02-----------------------------
  5370. INT 10 - CARBON COPY PLUS v5.0 - GET LAST PHONE NUMBER DIALED
  5371.     AX = FF02h
  5372. Return: ES:DI -> ASCIZ phone number
  5373. SeeAlso: AX=FF00h,AX=FF01h
  5374. --------C-11---------------------------------
  5375. INT 11 - CPU-generated (80486+) - ALIGNMENT CHECK
  5376. Desc:    automatically generated by the CPU when the AC flag is set, the current
  5377.       privilege level is 3, and a misaligned memory access (WORD not on an
  5378.       even address or DWORD not on a multiple of 4) is made
  5379. Note:    not all V86 monitors allow the AC flag to be set, such as Turbo
  5380.       Debugger 386
  5381. --------B-11---------------------------------
  5382. INT 11 - BIOS - GET EQUIPMENT LIST
  5383. Return: (E)AX = BIOS equipment list word (see below)
  5384. Note:    since older BIOSes do not know of the existence of EAX, the high word
  5385.       of EAX should be cleared before this call if any of the high bits
  5386.       will be tested
  5387.  
  5388. Bitfields for BIOS equipment list:
  5389.  bit 0    floppy disk(s) installed (see bits 6-7)
  5390.  bit 1    80x87 coprocessor installed
  5391.  bits 2,3 number of 16K banks of RAM on motherboard (PC only)
  5392.     number of 64K banks of RAM on motherboard (XT only)
  5393.  bit 2    pointing device installed (PS)
  5394.  bit 3    unused (PS)
  5395.  bits 4-5 initial video mode
  5396.     00 EGA, VGA, or PGA
  5397.     01 40x25 color
  5398.     10 80x25 color
  5399.     11 80x25 monochrome
  5400.  bits 6-7 number of floppies installed less 1 (if bit 0 set)
  5401.  bit 8    DMA support installed (PCjr, some Tandy 1000s, 1400LT)
  5402.  bits 9-11 number of serial ports installed
  5403.  bit 12    game port installed
  5404.  bit 13    serial printer attached (PCjr)
  5405.     internal modem installed (PC/Convertible)
  5406.  bits 14-15 number of parallel ports installed
  5407. ---Compaq, Dell, and many other 386/486 machines--
  5408.  bit 23: page tables set so that Weitek coprocessor addressable in real mode
  5409.  bit 24: Weitek math coprocessor present
  5410. ---Compaq Systempro---
  5411.  bit 25: internal DMA parallel port available
  5412.  bit 26: IRQ for internal DMA parallel port (if bit 25 set)
  5413.         0 = IRQ5
  5414.         1 = IRQ7
  5415.  bits 27,28: parallel port DMA channel
  5416.         00 DMA channel 0
  5417.         01 DMA channel 0 ???
  5418.         10 reserved
  5419.         11 DMA channel 3
  5420. SeeAlso: INT 12
  5421. --------d-11----SI6A6A-----------------------
  5422. INT 11 - Columbia Data Products Standard Device Level Protocol (SDLP) 1.6
  5423.     SI = 6A6Ah
  5424.     AH = command (see below)
  5425.     AL = SCSI Addressing
  5426.         bits 2-0 SCSI Target LUN (logical unit number)
  5427.         bits 5-3 SCSI Target ID
  5428.         bits 7-6 Host Adapter
  5429. Return: CF clear if successful
  5430.         DI = 6A6Ah if AH=01h on entry (maybe for all functions???)
  5431.         AH = ??? for command 01h
  5432.     CF set on error
  5433.         AL = error code
  5434. SeeAlso: INT 21/AX=4402h"ASPI"
  5435.  
  5436. Values for SDLP command:
  5437.  00h    SDLP initialization
  5438.  01h    SDLP System Identify
  5439.  02h    simple read sectors
  5440.  03h    simple write sectors
  5441.  04h    simple verify sectors/seek to sector
  5442.  05h    get device size/type
  5443.  06h    ready unit
  5444.  07h    format unit
  5445.  08h    diagnostics
  5446.  09h    rewind
  5447.  0Ah    erase
  5448.  0Bh    write filemarks
  5449.  0Ch    space
  5450.  0Dh    prevent/allow media removal
  5451.  0Eh    load/unload media
  5452.  0Fh    reserved - returns good status
  5453.  10h    set block size
  5454.  11h    write setmark
  5455.  12h    set error level
  5456.  13h    get address of Request Sense Buffer
  5457.  14h    get SDLP error via Request Sense
  5458.  F0h    Vendor Unique Function (WD7000-FASST2 only)
  5459.  FDh    reset current SCSI HAC
  5460.  FEh    get/set current SCSI HAC
  5461.  FFh    execute SCSI command
  5462. --------V-110225BX6900-----------------------
  5463. INT 11 - Blank-It Screen Blanker - INSTALLATION CHECK
  5464.     AX = 0225h
  5465.     BX = 6900h
  5466. Return: BL = 23h
  5467.     ES:DI -> ASCIZ "BLNKIT"
  5468. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  5469.       Inc.
  5470. SeeAlso: AX=0225h/BX=6902h,AX=0225h/BX=6908h,AX=0225h/BX=6909h
  5471. Index:    screen saver;Blank-It
  5472. --------V-110225BX6901-----------------------
  5473. INT 11 - Blank-It Screen Blanker - SET TIMEOUT FOR SCREEN BLANKING
  5474.     AX = 0225h
  5475.     BX = 6901h
  5476.     CX = timeout in timer ticks (18.2/second) or 0000h to disable timeout
  5477.          largest value is 59 minutes (FBACh or 64428)
  5478. Return: CF clear if successful
  5479.         DI = 6A6Ah (possibly also 6A6Ah for all following functions)
  5480.         AH = ???
  5481.     CF set on error
  5482.         AL = error code
  5483. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6904h
  5484. Index:    screen saver;Blank-It
  5485. --------V-110225BX6902-----------------------
  5486. INT 11 - Blank-It Screen Blanker - ENABLE THE SOFTWARE
  5487.     AX = 0225h
  5488.     BX = 6902h
  5489. Return: CF clear if successful
  5490.     CF set on error
  5491.         AL = error code
  5492. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6903h
  5493. Index:    screen saver;Blank-It
  5494. --------V-110225BX6903-----------------------
  5495. INT 11 - Blank-It Screen Blanker - DISABLE THE SOFTWARE
  5496.     AX = 0225h
  5497.     BX = 6903h
  5498. Return: CF clear if successful
  5499.     CF set on error
  5500.         AL = error code
  5501. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6902h
  5502. Index:    screen saver;Blank-It
  5503. --------V-110225BX6904-----------------------
  5504. INT 11 - Blank-It Screen Blanker - GET BLANKING TIMEOUT
  5505.     AX = 0225h
  5506.     BX = 6904h
  5507. Return: CF clear if successful
  5508.         BX = timeout (see BX=6901h)
  5509.     CF set on error
  5510.         AL = error code
  5511. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6901h
  5512. Index:    screen saver;Blank-It
  5513. --------V-110225BX6905-----------------------
  5514. INT 11 - Blank-It Screen Blanker - ENABLE WINDOWS COMPATIBILITY MODE
  5515.     AX = 0225h
  5516.     BX = 6905h
  5517. Return: CF clear if successful
  5518.     CF set on error
  5519.         AL = error code
  5520. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6906h
  5521. Index:    screen saver;Blank-It
  5522. --------V-110225BX6906-----------------------
  5523. INT 11 - Blank-It Screen Blanker - DISABLE WINDOWS COMPATIBILITY MODE
  5524.     AX = 0225h
  5525.     BX = 6906h
  5526. Return: CF clear if successful
  5527.     CF set on error
  5528.         AL = error code
  5529. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  5530.       Inc.
  5531. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6905h
  5532. Index:    screen saver;Blank-It
  5533. --------V-110225BX6907-----------------------
  5534. INT 11 - Blank-It Screen Blanker - UNBLANK THE SCREEN
  5535.     AX = 0225h
  5536.     BX = 6907h
  5537. Return: CF clear if successful
  5538.     CF set on error
  5539.         AL = error code
  5540. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6908h
  5541. Index:    screen saver;Blank-It
  5542. --------V-110225BX6908-----------------------
  5543. INT 11 - Blank-It Screen Blanker - BLANK THE SCREEN
  5544.     AX = 0225h
  5545.     BX = 6908h
  5546. Return: CF clear if successful
  5547.     CF set on error
  5548.         AL = error code
  5549. SeeAlso: AX=0225h/BX=6900h,AX=0252h/BX=6907h
  5550. Index:    screen saver;Blank-It
  5551. --------V-110225BX6909-----------------------
  5552. INT 11 - Blank-It Screen Blanker - SET HOTKEY FOR MANUAL BLANKING
  5553.     AX = 0225h
  5554.     BX = 6909h
  5555.     CL = key scan code (see below)
  5556. Return: CF clear if successful
  5557.     CF set on error
  5558.         AL = error code
  5559. Program: Blank-It is a resident screen blanker by Rhode Island Soft Systems,
  5560.       Inc.
  5561. SeeAlso: AX=0225h/BX=6900h
  5562. Index:    screen saver;Blank-It|hotkeys;Blank-It
  5563.  
  5564. Values for key scan code:
  5565.  00h    No hot key
  5566.  1Dh    Left CTRL
  5567.  2Ah    Left Shift
  5568.  36h    Right Shift
  5569.  57h    F11
  5570.  58h    F12
  5571. ----------1105D7-----------------------------
  5572. INT 11 CU - Borland C++ IDE - INSTALLED CALLOUT
  5573.     AX = 05D7h
  5574.     BX = product ID (0088h)
  5575. Note:    called by the BC++ IDE when an application calls
  5576.       INT 12/AX=05D7h/BX=05D7h
  5577. SeeAlso: INT 12/AX=05D7h/BX=05D7h
  5578. Index:    installation check;Borland C++ IDE
  5579. --------F-1177-------------------------------
  5580. INT 11 - RainbowFAX v1.3 - SFENGINE API - OPERATIONAL CONTROL
  5581.     AH = 77h
  5582.     AL = subfunction
  5583.         01h request SFENGINE start
  5584.         Return: AX = 0001h
  5585.         02h check if SFENGINE started
  5586.         Return: AX = 0000h or 0001h
  5587.         03h request SFENGINE stop
  5588.         Return: AX = 0001h
  5589.         04h check if SFENGINE stopped
  5590.         Return: AX = 0000h or 0001h
  5591.         05h installation check
  5592.         Return: AX = 0001h
  5593.         06h uninstall???
  5594.         BX:DX -> return address for successful uninstall???
  5595.         Return: (at caller's address)
  5596.             AX = 0000h
  5597.         else
  5598.         Return: AX = FFFFh
  5599. Return: ES:DX -> ASCIZ signature string "SFAX ENGINE V1.0"
  5600.         followed by internal data area???
  5601. SeeAlso: AH=78h,AH=79h,AH=7Ah,AH=7Ch
  5602. Index:    installation check;RainbowFAX|installation check;SFENGINE
  5603. Index:    uninstall;RainbowFAX|uninstall;SFENGINE
  5604. --------F-1178-------------------------------
  5605. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  5606.     AH = 78h
  5607.     AL = subfunction
  5608.         7801h set ???
  5609.         BX = new state for ???
  5610.             0000h ???
  5611.             else ???
  5612.         Return: AX = 0001h
  5613.         7802h set ???
  5614.         BX = ???
  5615.         CX = ???
  5616.         Return: AX = 0001h
  5617.         7803h set ???
  5618.         BX = new state for ???
  5619.             0000h ???
  5620.             else ???
  5621.         Return: AX = 0001h
  5622.         78XXh invalid subfunction
  5623.         Return: AX = FFFFh
  5624. SeeAlso: AH=77h,AH=79h,AH=7Ah,AH=7Ch
  5625. --------F-1179-------------------------------
  5626. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  5627.     AH = 79h
  5628.     AL = subfunction
  5629.         01h set ??? flag
  5630.         Return: AX = previous state (0000h already set, 0001h clear)
  5631.         02h clear ??? flag (see subfunc 01h)
  5632.         Return: AX = 0001h
  5633.         03h set ??? flag (different from subfn 02h or 04h)
  5634.         Return: AX = 0001h
  5635.         04h clear ??? flag (different from subfn 02h or 03h)
  5636.         Return: AX = 0001h
  5637.         else
  5638.         Return: AX = FFFFh
  5639. SeeAlso: AH=77h,AH=78h,AH=7Ah,AH=7Ch
  5640. --------F-117A-------------------------------
  5641. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  5642.     AH = 7Ah
  5643.     AL = subfunction
  5644.         01h set ??? flag
  5645.         Return: AX = previous state (0000h already set, 0001h clear)
  5646.         02h clear ??? flag
  5647.         Return: AX = 0001h
  5648.         03h set ??? flag (different from subfn 02h)
  5649.         Return: AX = 0001h
  5650.         else
  5651.         Return: AX = FFFFh
  5652. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ch
  5653. --------F-117C-------------------------------
  5654. INT 11 - RainbowFAX v1.3 - SFENGINE API - ???
  5655.     AH = 7Ch
  5656.     AL = subfunction
  5657.         01h set ??? flag (see also subfn 02h)
  5658.         Return: AX = 0001h
  5659.         02h clear ??? flag (see also subfn 01h)
  5660.         Return: AX = 0001h
  5661.         else
  5662.         Return: AX = FFFFh
  5663. SeeAlso: AH=77h,AH=78h,AH=79h,AH=7Ah
  5664. --------S-11BC--DX1954-----------------------
  5665. INT 11 - BNU FOSSIL - INSTALLATION CHECK
  5666.     AH = BCh
  5667.     DX = 1954h
  5668. Return: AX = 1954h
  5669.     ES:DX -> entry point of driver (instead of INT 14)
  5670. SeeAlso: INT 14/AH=04h"FOSSIL"
  5671. --------d-11FF--SI6A6A-----------------------
  5672. INT 11 - WD7000 SDLP interface - EXECUTE GENERIC SCSI COMMAND
  5673.     AH = FFh
  5674.     SI = 6A6Ah
  5675.     AL = SCSI Addressing
  5676.         bits 2-0 SCSI Target LUN (logical unit number)
  5677.         bits 5-3 SCSI Target ID
  5678.         bit 7    write flag, set for write operations, clear otherwise
  5679.     CX = bytes of data to be transmitted (max FFF0h)
  5680.     DH = 00h
  5681.     DL = length of SCSI Command Descriptor Block
  5682.     DS:DI -> SCSI Command Descriptor Block
  5683.     ES:BX -> data buffer
  5684. Return: CF set on error
  5685.         AL = error code
  5686.     CF clear if successful
  5687. Note:    because of busmaster operations with WD7000FASST avoid accessing
  5688.       video memory directly; check 386 memory manager for VDS support.
  5689.       The WD7000XTAT works with programmed IO and does not have this
  5690.       limitation.
  5691. SeeAlso: INT 21/AX=4402h"ASPI",INT 2F/AX=7F01h
  5692. --------T-11FFFECXFFFE-----------------------
  5693. INT 11 - BACK&FORTH (before v1.62) API
  5694.     AX = FFFEh
  5695.     CX = FFFEh
  5696.     BX = function
  5697.         00h installation check
  5698.         Return: AX = 0001h BNFHIGH and BNFLOW both loaded
  5699.                = 0003h only BNFHIGH loaded
  5700.                else neither loaded
  5701.         01h ???
  5702.         Return: DX:AX -> ???
  5703.         02h ???
  5704.         03h ???
  5705.         04h ???
  5706.         05h ??? switches current PSP segment and stack if BNFLOW has not
  5707.             yet announced itself installed
  5708.         06h ???
  5709.         Return: AX = ???
  5710. SeeAlso: INT 12/AX=FFFEh
  5711. Index:    installation check;BACK&FORTH
  5712. --------B-12---------------------------------
  5713. INT 12 - BIOS - GET MEMORY SIZE
  5714. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  5715. Note:    this call returns the contents of the word at 0040h:0013h; in PC and
  5716.       XT, this value is set from the switches on the motherboard
  5717. SeeAlso: INT 11,INT 2F/AX=4A06h
  5718. --------K-12----CX1806-----------------------
  5719. INT 12 - KEYBUI v2.0+ - INSTALLATION CHECK
  5720.     CX = 1806h
  5721. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  5722.     CX = 1960h if installed
  5723. Program: KEYBUI is a resident keyboard driver by Johan Zwiekhorst which allows
  5724.       accented characters and box drawing on standard QWERTY keyboards; it
  5725.       also provides break-to-DOS and screen blanking capabilities
  5726. Index:    screen saver;KEYBUI
  5727. --------d-12----CX1807-----------------------
  5728. INT 12 - PARKER v2.0+ - INSTALLATION CHECK
  5729.     CX = 1807h
  5730. Return: AX = kilobytes of contiguous memory starting at absolute address 00000h
  5731.     CX = 1961h if installed
  5732. Program: PARKER is an optionally-resident hard disk parking program by Johan
  5733.       Zwiekhorst
  5734. ----------1205D7BX05D7-----------------------
  5735. INT 12 U - Borland C++ IDE - INSTALLATION CHECK
  5736.     AX = 05D7h (1495d)
  5737.     BX = 05D7h
  5738. Note:    the BC++ IDE will call INT 11/AX=05D7h/BX=0088h if it is loaded
  5739. SeeAlso: INT 11/AX=05D7h/BX=0088h
  5740. --------T-12FFFECXFFFE-----------------------
  5741. INT 12 - Back&Forth v1.62+ - API
  5742.     AX = FFFEh
  5743.     CX = FFFEh
  5744.     BX = function
  5745.         00h installation check
  5746.         Return: AX = 0001h installed
  5747.                  else  not loaded
  5748.         02h build program ID list
  5749.         ES:DI -> buffer of at least 100 bytes, to be filled with words
  5750.         Return: AX = number of programs defined
  5751.             ES:DI buffer filled with AX words
  5752.         03h switch to specified task (task need not be open yet)
  5753.         DX = two-letter program ID
  5754.         Return: AX = 0000h if task undefined
  5755.         04h ???
  5756.         05h ???
  5757.         06h get version (undoc)
  5758.         Return: AX = version * 100 (v1.71 = 00ABh)
  5759.         07h ???
  5760.         08h get open tasks (undoc)
  5761.         ES:DI -> task info buffer (see below)
  5762.         Return: AX = number of open tasks (max 20)
  5763.         09h ???
  5764. Program: Back & Forth is a task switcher by Progressive Solutions, Inc.
  5765. SeeAlso: INT 11/AX=FFFEh
  5766. Index:    installation check;BACK&FORTH
  5767.  
  5768. Format of task info buffer:
  5769. Offset    Size    Description
  5770.  00h 21 BYTEs    ASCIZ task name
  5771.  15h    BYTE    hotkey shift state (as for INT 16/AH=02h)
  5772.  16h    WORD    hotkey scan code
  5773.  18h    WORD    program ID
  5774. Index:    hotkeys;Back&Forth
  5775. --------B-1300-------------------------------
  5776. INT 13 - DISK - RESET DISK SYSTEM
  5777.     AH = 00h
  5778.     DL = drive (if bit 7 is set both hard disks and floppy disks reset)
  5779. Return: AH = status (see AH=01h)
  5780.     CF clear if successful (returned AH=00h)
  5781.     CF set on error
  5782. Note:    forces controller to recalibrate drive heads (seek to track 0)
  5783. SeeAlso: AH=0Dh,AH=11h,INT 21/AH=0Dh,INT 4E"TI Professional"
  5784. --------B-1301-------------------------------
  5785. INT 13 - DISK - GET STATUS OF LAST OPERATION
  5786.     AH = 01h
  5787.     DL = drive (bit 7 set for hard disk)
  5788. Return: CF clear if successful (returned status 00h)
  5789.     CF set on error
  5790.     AH = status of previous operation (see below)
  5791. Note:    some BIOSes return the status in AL; the PS/2 Model 30/286 returns the
  5792.       status in both AH and AL
  5793.  
  5794. Values for status:
  5795.  00h    successful completion
  5796.  01h    invalid function in AH or invalid parameter
  5797.  02h    address mark not found
  5798.  03h    disk write-protected
  5799.  04h    sector not found/read error
  5800.  05h    reset failed (hard disk)
  5801.  06h    disk changed (floppy)
  5802.  07h    drive parameter activity failed (hard disk)
  5803.  08h    DMA overrun
  5804.  09h    attempted DMA across 64K boundary
  5805.  0Ah    bad sector detected (hard disk)
  5806.  0Bh    bad track detected (hard disk)
  5807.  0Ch    unsupported track or invalid media
  5808.  0Dh    invalid number of sectors on format (hard disk)
  5809.  0Eh    control data address mark detected (hard disk)
  5810.  0Fh    DMA arbitration level out of range (hard disk)
  5811.  10h    uncorrectable CRC or ECC error on read
  5812.  11h    data ECC corrected (hard disk)
  5813.  20h    controller failure
  5814.  31h    no such drive (Compaq)
  5815.  32h    incorrect drive type stored in CMOS (Compaq)
  5816.  40h    seek failed
  5817.  80h    timeout (not ready)
  5818.  AAh    drive not ready (hard disk)
  5819.  BBh    undefined error (hard disk)
  5820.  CCh    write fault (hard disk)
  5821.  E0h    status register error (hard disk)
  5822.  FFh    sense operation failed (hard disk)
  5823. --------B-1302-------------------------------
  5824. INT 13 - DISK - READ SECTOR(S) INTO MEMORY
  5825.     AH = 02h
  5826.     AL = number of sectors to read (must be nonzero)
  5827.     CH = low eight bits of cylinder number
  5828.     CL = sector number 1-63 (bits 0-5)
  5829.          high two bits of cylinder (bits 6-7, hard disk only)
  5830.     DH = head number
  5831.     DL = drive number (bit 7 set for hard disk)
  5832.     ES:BX -> data buffer
  5833. Return: CF set on error
  5834.         if AH = 11h (corrected ECC error), AL = burst length
  5835.     CF clear if successful
  5836.     AH = status (see AH=01h)
  5837.     AL = number of sectors transferred
  5838. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  5839.       enough; the read should be retried at least three times, resetting
  5840.       the disk with AH=00h between attempts
  5841.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  5842.       DH (head number) since the WD-1003 controller which is the standard
  5843.       AT controller (and the controller that IDE emulates) only supports
  5844.       16 heads
  5845.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5846.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5847.       into bits 6 and 7 of DH
  5848. SeeAlso: AH=03h,AH=0Ah
  5849. --------B-1303-------------------------------
  5850. INT 13 - DISK - WRITE DISK SECTOR(S)
  5851.     AH = 03h
  5852.     AL = number of sectors to write (must be nonzero)
  5853.     CH = low eight bits of cylinder number
  5854.     CL = sector number 1-63 (bits 0-5)
  5855.          high two bits of cylinder (bits 6-7, hard disk only)
  5856.     DH = head number
  5857.     DL = drive number (bit 7 set for hard disk)
  5858.     ES:BX -> data buffer
  5859. Return: CF set on error
  5860.     CF clear if successful
  5861.     AH = status (see AH=01h)
  5862.     AL = number of sectors transferred
  5863. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  5864.       enough; the write should be retried at least three times, resetting
  5865.       the disk with AH=00h between attempts
  5866.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  5867.       DH (head number) since the WD-1003 controller which is the standard
  5868.       AT controller (and the controller that IDE emulates) only supports
  5869.       16 heads
  5870.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5871.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5872.       into bits 6 and 7 of DH
  5873. SeeAlso: AH=02h,AH=0Bh
  5874. --------B-1304-------------------------------
  5875. INT 13 - DISK - VERIFY DISK SECTOR(S)
  5876.     AH = 04h
  5877.     AL = number of sectors to verify (must be nonzero)
  5878.     CH = low eight bits of cylinder number
  5879.     CL = sector number 1-63 (bits 0-5)
  5880.          high two bits of cylinder (bits 6-7, hard disk only)
  5881.     DH = head number
  5882.     DL = drive number (bit 7 set for hard disk)
  5883.     ES:BX -> data buffer (PC,XT,AT with BIOS prior to 11/15/85)
  5884. Return: CF set on error
  5885.     CF clear if successful
  5886.     AH = status (see AH=01h)
  5887.     AL = number of sectors verified
  5888. Notes:    errors on a floppy may be due to the motor failing to spin up quickly
  5889.       enough; the write should be retried at least three times, resetting
  5890.       the disk with AH=00h between attempts
  5891.     this function does not compare the disk with memory, it merely
  5892.       checks whether the sector's stored CRC matches the data's actual CRC
  5893.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  5894.       DH (head number) since the WD-1003 controller which is the standard
  5895.       AT controller (and the controller that IDE emulates) only supports
  5896.       16 heads
  5897.     AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5898.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5899.       into bits 6 and 7 of DH
  5900. SeeAlso: AH=02h
  5901. --------B-1305-------------------------------
  5902. INT 13 - FLOPPY - FORMAT TRACK
  5903.     AH = 05h
  5904.     AL = number of sectors to format
  5905.     CH = track number
  5906.     DH = head number
  5907.     DL = drive number
  5908.     ES:BX -> address field buffer (see below)
  5909. Return: CF set on error
  5910.     CF clear if successful
  5911.     AH = status (see AH=01h)
  5912. Notes:    on AT or higher, call AH=17h first
  5913.     the number of sectors per track is read from the diskette parameter
  5914.       table pointed at by INT 1E
  5915. SeeAlso: AH=05h"FIXED",AH=17h,AH=18h,INT 1E
  5916.  
  5917. Format of address field buffer entry (one per sector in track):
  5918. Offset    Size    Description
  5919.  00h    BYTE    track number
  5920.  01h    BYTE    head number (0-based)
  5921.  02h    BYTE    sector number
  5922.  03h    BYTE    sector size (00h=128 bytes, 01h=256 bytes, 02h=512, 03h=1024)
  5923. --------B-1305-------------------------------
  5924. INT 13 - FIXED DISK - FORMAT TRACK
  5925.     AH = 05h
  5926.     AL = interleave value (XT-type controllers only)
  5927.     ES:BX -> 512-byte format buffer
  5928.         the first 2*(sectors/track) bytes contain F,N for each sector
  5929.            F = 00h for good sector, 80h for bad sector
  5930.            N = sector number
  5931.     CH = cylinder number (bits 8,9 in high bits of CL)
  5932.     CL = high bits of cylinder number (bits 7,6)
  5933.     DH = head
  5934.     DL = drive
  5935. Return: AH = status code (see AH=01h)
  5936. Notes:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5937.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5938.       into bits 6 and 7 of DH
  5939.     for XT-type controllers on an AT or higher, AH=0Fh should be called
  5940.       first
  5941.     the IBM AT BIOS and many other BIOSes use only the low four bits of
  5942.       DH (head number) since the WD-1003 controller which is the standard
  5943.       AT controller (and the controller that IDE emulates) only supports
  5944.       16 heads
  5945. SeeAlso: AH=05h"FLOPPY",AH=06h"FIXED",AH=07h"FIXED",AH=0Fh,AH=18h,AH=1Ah
  5946. --------d-1305-------------------------------
  5947. INT 13 - Future Domain SCSI BIOS - SEND SCSI MODE SELECT COMMAND
  5948.     AH = 05h
  5949.     DL = hard drive ID
  5950.     ES:BX -> mode select data (see below)
  5951. Return: CF set on error
  5952.     AH = status code (see AH=01h)
  5953. Notes:    this function can be called before AH=07h"SCSI" or AH=06h"SCSI" to
  5954.       format a SCSI disk with the desired parameters
  5955.     the mode select data below is from the SCSI-1 specification
  5956.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  5957.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  5958. SeeAlso: AH=06h"SCSI",AH=07h"SCSI",INT 4F/AX=8100h
  5959.  
  5960. Format of mode select data:
  5961. Offset    Size    Description
  5962.  00h    BYTE    number of bytes of remaining data (12 + vendor unique length)
  5963.  01h    BYTE    reserved (0)
  5964.  02h    BYTE    medium type (0 for hard disk)
  5965.  03h    BYTE    reserved (0)
  5966.  04h    BYTE    block descriptor length (8)
  5967.  05h    BYTE    density code (0 for hard disk)
  5968.  06h  3 BYTEs    (big-endian) number of blocks (000000h for entire disk)
  5969.  09h    BYTE    reserved (0)
  5970.  0Ah  3 BYTEs    (big-endian) block length (512 standard, or 256)
  5971.  0Dh    ???    vendor-specific parameter bytes (optional)
  5972. --------B-1306-------------------------------
  5973. INT 13 - FIXED DISK - FORMAT TRACK AND SET BAD SECTOR FLAGS (XT,PORT)
  5974.     AH = 06h
  5975.     AL = interleave value
  5976.     CH = cylinder number (bits 8,9 in high bits of CL)
  5977.     CL = sector number
  5978.     DH = head
  5979.     DL = drive
  5980. Return: AH = status code (see AH=01h)
  5981. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  5982.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  5983.       into bits 6 and 7 of DH
  5984. SeeAlso: AH=05h"FIXED",AH=07h"FIXED"
  5985. --------d-1306-------------------------------
  5986. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE WITH BAD SECTOR MAPPING
  5987.     AH = 06h
  5988.     AL = interleave
  5989.          (0 = default, 1 = consecutive sectors, 2 - 255 = vendor unique)
  5990.     DL = hard drive ID
  5991.     DH = bits 7-5 drive LUN
  5992.          bit 4    defect list is available
  5993.          bit 3    defect list is complete (erase drive's defect list)
  5994.          bits 2-0 defect table format
  5995.               (000=use defect table A, 100=use defect table B,
  5996.               101=use defect table C)
  5997.     ES:BX ->  defect table A, B or C (see below)
  5998. Return: CF set on error
  5999.     AH = status code (see AH=01h)
  6000. Notes:    block addresses must be in ascending order (for table B, cylinder is
  6001.       most significant, byte from index least significant; for table C,
  6002.       cylinder is most significant, sector number least significant)
  6003.     table B defect bytes from index of FFFFFFFFh indicates that the entire
  6004.       track shall be reassigned
  6005.     table C defect sector number of FFFFFFFFh indicates that the entire
  6006.       track shall be reassigned
  6007.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6008.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6009. SeeAlso: AH=05h"SCSI",AH=06h"FIXED",AH=07h"SCSI"
  6010.  
  6011. Format of defect table A:
  6012. Offset    Size    Description
  6013.  00h    WORD    number of bytes remaining in table
  6014.  02h    BYTE    reserved (0)
  6015.  03h    BYTE    reserved (0)
  6016.  04h    WORD    (big-endian) defect list length (4*number of defects)
  6017.  06h  4 DWORDs    (big-endian) defect block addresses
  6018.  
  6019. Format of defect table B:
  6020. Offset    Size    Description
  6021.  00h    WORD    number of bytes remaining in table
  6022.  02h    BYTE    reserved (0)
  6023.  03h    BYTE    reserved (0)
  6024.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6025.  06h 8N BYTEs    defect list [array] (see below)
  6026.  
  6027. Format of defect table C:
  6028. Offset    Size    Description
  6029.  00h    WORD    number of bytes remaining in table
  6030.  02h    BYTE    reserved (0)
  6031.  03h    BYTE    reserved (0)
  6032.  04h    WORD    (big-endian) defect list length (8*number of defects)
  6033.  06h 8N BYTEs    defect list [array] (see below)
  6034.  
  6035. Format of defect list entry:
  6036. Offset    Size    Description
  6037.  00h  3 BYTEs    (big-endian) cylinder number of defect
  6038.  03h    BYTE    head number of defect
  6039.  04h    DWORD    (big-endian) defect bytes from index
  6040. --------d-1306-------------------------------
  6041. INT 13 - Adaptec AHA-154xA/Bustek BT-542 BIOS - IDENTIFY SCSI DEVICES
  6042.     AH = 06h
  6043. Return: AH = status code (see AH=01h)
  6044.     CF clear if successful
  6045.         AL = first drive supported
  6046.         (80h nonconcurrent operation, 81h concurrent operation)
  6047.     CF set on error
  6048. Desc:    determine the number of the first supported SCSI drive
  6049. Note:    the return value is 80h when two SCSI drives are supported, 81h if
  6050.       only one SCSI drive is installed
  6051. SeeAlso: AH=08h
  6052. --------B-1307-------------------------------
  6053. INT 13 - FIXED DISK - FORMAT DRIVE STARTING AT GIVEN TRACK (XT,PORT)
  6054.     AH = 07h
  6055.     AL = interleave value (XT only)
  6056.     ES:BX = 512-byte format buffer (see AH=05h)
  6057.     CH = cylinder number (bits 8,9 in high bits of CL)
  6058.     CL = sector number
  6059.     DH = head
  6060.     DL = drive
  6061. Return: AH = status code (see AH=01h)
  6062. Note:    AWARD AT BIOS and AMI 386sx BIOS have been extended to handle more
  6063.       than 1024 cylinders by placing bits 10 and 11 of the cylinder number
  6064.       into bits 6 and 7 of DH
  6065. SeeAlso: AH=05h"FIXED",AH=06h"FIXED",AH=1Ah
  6066. --------d-1307-------------------------------
  6067. INT 13 - Future Domain SCSI BIOS - FORMAT DRIVE
  6068.     AH = 07h
  6069.     AL = interleave (0 = default, 1 = consecutive sectors,
  6070.            2 - 255 = vendor unique)
  6071.     DL = hard drive ID
  6072. Return: CF set on error
  6073.     AH = status code (see AH=01h)
  6074. SeeAlso: AH=05h"SCSI",AH=06h"SCSI",AH=07h"FIXED"
  6075. --------B-1308-------------------------------
  6076. INT 13 - DISK - GET DRIVE PARAMETERS (PC,XT286,CONV,PS,ESDI,SCSI)
  6077.     AH = 08h
  6078.     DL = drive (bit 7 set for hard disk)
  6079. Return: CF set on error
  6080.         AH = status (07h) (see AH=01h)
  6081.     CF clear if successful
  6082.         AH = 00h
  6083.         BL = drive type (AT/PS2 floppies only) (see below)
  6084.         CH = low eight bits of maximum cylinder number
  6085.         CL = maximum sector number (bits 5-0)
  6086.          high two bits of maximum cylinder number (bits 7-6)
  6087.         DH = maximum head number
  6088.         DL = number of drives
  6089.         ES:DI -> drive parameter table (floppies only)
  6090. Notes:    may return successful even though specified drive is greater than the
  6091.       number of attached drives of that type (floppy/hard); check DL to
  6092.       ensure validity
  6093.     for systems predating the IBM AT, this call is only valid for hard
  6094.       disks, as it is implemented by the hard disk BIOS rather than the
  6095.       ROM BIOS
  6096.     Toshiba laptops with HardRAM return DL=02h when called with DL=80h,
  6097.       but fail on DL=81h.  The BIOS data at 40h:75h correctly reports 01h.
  6098. SeeAlso: AH=06h"Adaptec",AH=15h,INT 1E,INT 41
  6099.  
  6100. Values for drive type:
  6101.  01h    360K
  6102.  02h    1.2M
  6103.  03h    720K
  6104.  04h    1.44M
  6105.  05h    ??? (reportedly an obscure drive type shipped on some IBM machines)
  6106.     2.88M on some machines (at least AMI 486 BIOS)
  6107.  06h    2.88M
  6108. --------B-1309-------------------------------
  6109. INT 13 - HARD DISK - INITIALIZE CONTROLLER WITH DRIVE PARAMETERS (AT,PS)
  6110.     AH = 09h
  6111.     DL = drive (80h for first, 81h for second)
  6112. Return: CF clear if successful
  6113.     CF set on error
  6114.     AH = status (see AH=01h)
  6115. Notes:    on the PC and XT, this function uses the parameter table pointed at by
  6116.       INT 41
  6117.     on the AT and later, this function uses the parameter table pointed at
  6118.       by INT 41 if DL=80h, and the parameter table pointed at by INT 46 if
  6119.       DL=81h
  6120. SeeAlso: INT 41,INT 46
  6121. --------B-130A-------------------------------
  6122. INT 13 - HARD DISK - READ LONG SECTOR(S) (AT and later)
  6123.     AH = 0Ah
  6124.     AL = number of sectors
  6125.     CH = low eight bits of cylinder number
  6126.     CL = sector number (bits 5-0)
  6127.          high two bits of cylinder number (bits 7-6)
  6128.     DH = head number
  6129.     DL = drive number (80h = first, 81h = second)
  6130.     ES:BX -> data buffer
  6131. Return: CF clear if successful
  6132.     CF set on error
  6133.     AH = status (see AH=01h)
  6134.     AL = number of sectors transferred
  6135. Notes:    this function reads in four to seven bytes of error-correcting code
  6136.       along with each sector's worth of information
  6137.     data errors are not automatically corrected, and the read is aborted
  6138.       after the first sector with an ECC error
  6139.     used for diagnostics only on PS/2 systems
  6140. SeeAlso: AH=02h,AH=0Bh
  6141. --------B-130B-------------------------------
  6142. INT 13 - HARD DISK - WRITE LONG SECTOR(S) (AT and later)
  6143.     AH = 0Bh
  6144.     AL = number of sectors
  6145.     CH = low eight bits of cylinder number
  6146.     CL = sector number (bits 5-0)
  6147.          high two bits of cylinder number (bits 7-6)
  6148.     DH = head number
  6149.     DL = drive number (80h = first, 81h = second)
  6150.     ES:BX -> data buffer
  6151. Return: CF clear if successful
  6152.     CF set on error
  6153.     AH = status (see AH=01h)
  6154.     AL = number of sectors transferred
  6155. Notes:    each sector's worth of data must be followed by four to seven bytes of
  6156.       error-correction information
  6157.     used for diagnostics only on PS/2 systems
  6158. SeeAlso: AH=03h,AH=0Ah
  6159. --------B-130C-------------------------------
  6160. INT 13 - HARD DISK - SEEK TO CYLINDER
  6161.     AH = 0Ch
  6162.     CH = low eight bits of cylinder number
  6163.     CL = sector number (bits 5-0)
  6164.          high two bits of cylinder number (bits 7-6)
  6165.     DH = head number
  6166.     DL = drive number (80h = first, 81h = second hard disk)
  6167. Return: CF set on error
  6168.     CF clear if successful
  6169.     AH = status (see AH=01h)
  6170. SeeAlso: AH=00h,AH=02h,AH=0Ah
  6171. --------d-130D-------------------------------
  6172. INT 13 - HARD DISK - RESET HARD DISKS
  6173.     AH = 0Dh
  6174.     DL = drive number (80h = first, 81h = second hard disk)
  6175. Return: CF set on error
  6176.     CF clear if successful
  6177.     AH = status (see AH=01h)
  6178. Notes:    reinitializes the hard disk controller, resets the specified drive's
  6179.       parameters, and recalibrates the drive's heads (seek to track 0)
  6180.     not for PS/2 ESDI drives
  6181. SeeAlso: AH=00h,INT 21/AH=0Dh
  6182. --------B-130E-------------------------------
  6183. INT 13 - HARD DISK - READ SECTOR BUFFER (XT only)
  6184.     AH = 0Eh
  6185.     DL = drive number (80h = first, 81h = second hard disk)
  6186.     ES:BX -> buffer
  6187. Return: CF set on error
  6188.     CF clear if successful
  6189.     AH = status code (see AH=01h)
  6190. Notes:    transfers controller's sector buffer.  No data is read from the drive
  6191.     used for diagnostics only on PS/2 systems
  6192. SeeAlso: AH=0Ah
  6193. --------B-130F-------------------------------
  6194. INT 13 - HARD DISK - WRITE SECTOR BUFFER (XT only)
  6195.     AH = 0Fh
  6196.     DL = drive number (80h = first, 81h = second hard disk)
  6197.     ES:BX -> buffer
  6198. Return: CF set on error
  6199.     CF clear if successful
  6200.     AH = status code (see AH=01h)
  6201. Notes:    does not write data to the drive
  6202.     should be called before formatting to initialize an XT-type
  6203.       controller's sector buffer
  6204.     used for diagnostics only on PS/2 systems
  6205. SeeAlso: AH=0Bh
  6206. --------B-1310-------------------------------
  6207. INT 13 - HARD DISK - CHECK IF DRIVE READY
  6208.     AH = 10h
  6209.     DL = drive number (80h = first, 81h = second hard disk)
  6210. Return: CF set on error
  6211.     CF clear if successful
  6212.     AH = status (see AH=01h)
  6213. --------B-1311-------------------------------
  6214. INT 13 - HARD DISK - RECALIBRATE DRIVE
  6215.     AH = 11h
  6216.     DL = drive number (80h = first, 81h = second hard disk)
  6217. Return: CF set on error
  6218.     CF clear if successful
  6219.     AH = status (see AH=01h)
  6220. Note:    causes hard disk controller to seek the specified drive to cylinder 0
  6221. SeeAlso: AH=00h,AH=0Ch,AH=19h"FIXED DISK"
  6222. --------B-1312-------------------------------
  6223. INT 13 - HARD DISK - CONTROLLER RAM DIAGNOSTIC (XT,PS)
  6224.     AH = 12h
  6225.     DL = drive number (80h = first, 81h = second hard disk)
  6226. Return: CF set on error
  6227.     CF clear if successful
  6228.     AH = status code (see AH=01h)
  6229. SeeAlso: AH=13h,AH=14h
  6230. --------d-1312-------------------------------
  6231. INT 13 - Future Domain SCSI CONTROLLER - STOP SCSI DISK
  6232.     AH = 12h
  6233.     DL = hard drive ID
  6234. Return: CF set on error
  6235.     AH = status code (see AH=01h)
  6236. Notes:    available at least on the TMC-870 8-bit SCSI controller BIOS v6.0A
  6237.     if the given drive is a SCSI device, the SCSI Stop Unit command is sent
  6238.       and either "Disk prepared for shipping" or "Disk Stop command failed"
  6239.       is displayed
  6240.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6241.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6242. --------B-1313-------------------------------
  6243. INT 13 - HARD DISK - DRIVE DIAGNOSTIC (XT,PS)
  6244.     AH = 13h
  6245.     DL = drive number (80h = first, 81h = second hard disk)
  6246. Return: CF set on error
  6247.     CF clear if successful
  6248.     AH = status code (see AH=01h)
  6249. SeeAlso: AH=12h,AH=14h
  6250. --------B-1314-------------------------------
  6251. INT 13 - HARD DISK - CONTROLLER INTERNAL DIAGNOSTIC
  6252.     AH = 14h
  6253. Return: CF set on error
  6254.     CF clear if successful
  6255.     AH = status code (see AH=01h)
  6256. SeeAlso: AH=12h,AH=13h
  6257. --------B-1315-------------------------------
  6258. INT 13 - DISK - GET DISK TYPE (XT 1/10/86 or later,XT286,AT,PS)
  6259.     AH = 15h
  6260.     DL = drive number (bit 7 set for hard disk)
  6261. Return: CF clear if successful
  6262.         AH = type code
  6263.         00h no such drive
  6264.         01h floppy without change-line support
  6265.         02h floppy with change-line support
  6266.         03h hard disk
  6267.             CX:DX = number of 512-byte sectors
  6268.     CF set on error
  6269.         AH = status (see AH=01h)
  6270. SeeAlso: AH=08h,AH=16h,AH=17h,AH=19h"SCSI"
  6271. --------B-1316-------------------------------
  6272. INT 13 - FLOPPY DISK - DETECT DISK CHANGE (XT 1/10/86 or later,XT286,AT,PS)
  6273.     AH = 16h
  6274.     DL = drive number
  6275. Return: CF clear if change line inactive
  6276.         AH = 00h (disk not changed)
  6277.     CF set if change line active
  6278.         AH = status
  6279.         06h change line active or not supported
  6280.         80h drive not ready or not present
  6281. Note:    call AH=15h first to determine whether the drive supports a change
  6282.       line
  6283. SeeAlso: AH=15h
  6284. --------B-1317-------------------------------
  6285. INT 13 - FLOPPY DISK - SET DISK TYPE FOR FORMAT (AT,PS)
  6286.     AH = 17h
  6287.     AL = format type
  6288.         01h = 320/360K disk in 360K drive
  6289.         02h = 320/360K disk in 1.2M drive
  6290.         03h = 1.2M disk in 1.2M drive
  6291.         04h = 720K disk in 720K drive
  6292.     DL = drive number
  6293. Return: CF set on error
  6294.     CF clear if successful
  6295.     AH = status (see AH=01h)
  6296. Note:    this function does not handle 1.44M drives; use AH=18h instead
  6297. SeeAlso: AH=15h,AH=18h
  6298. --------d-131700-----------------------------
  6299. INT 13 - Future Domain SCSI CONTROLLER - GET INQUIRY INFO FROM SCSI DEVICE
  6300.     AX = 1700h
  6301.     CL = length of buffer
  6302.     DL = hard drive ID
  6303.     ES:BX -> buffer for info
  6304. Return: CF clear if successful
  6305.         CH = number of bytes returned in buffer???
  6306.     CF set on error
  6307.         AH = status code (see AH=01h)
  6308. Notes:    this function is not available with 8-bit controller ROM versions < 7.0
  6309.     information block bytes 5-n are vendor-specific in older SCSI devices
  6310.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6311.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6312. SeeAlso: AH=18h"SCSI",AH=1Bh"SCSI"
  6313.  
  6314. Format of SCSI inquiry information block:
  6315. Offset    Size    Description
  6316.  00h    BYTE    device type
  6317.         bits 0-4: peripheral device type (see below)
  6318.         bits 5-7: peripheral qualifier (see below)
  6319.  01h    BYTE    device type modifier
  6320.         bits 0-6: device type modifier
  6321.         bit 7: removable medium
  6322.  02h    BYTE    SCSI version
  6323.         bits 0-2: ANSI-approved version
  6324.               000 device might or might not comply to ANSI standard
  6325.               001 device complies to ANSI SCSI-1
  6326.               010 device complies to ANSI SCSI-2
  6327.               other reserved
  6328.         bits 3-5: ECMA version
  6329.         bits 6,7: ISO version
  6330.  03h    BYTE    data format/capabilities
  6331.         bits 0-2: response data format
  6332.               000 information block is as specified in SCSI-1
  6333.               001 information block is as specified in CCS
  6334.               010 information block is as specified in SCSI-2
  6335.               other reserved
  6336.         bits 4,5: reserved
  6337.         bit 6: terminate I/O process supported
  6338.         bit 7: asynchronous event notification supported
  6339.  04h    BYTE    additional data length (total remaining bytes)
  6340.  05h  2 BYTEs    reserved
  6341.  07h    BYTE    device capabilities (see below)
  6342.  08h  8 BYTEs    vendor identification (space-padded ASCII)
  6343.  10h  8 BYTEs    product identification (space-padded ASCII)
  6344.  20h  4 BYTEs    product revision level (space-padded ASCII)
  6345.  24h 20 BYTEs    vendor specific
  6346.  38h 40 BYTEs    reserved
  6347.  60h    var    vendor specific parameters
  6348.  
  6349. Values for peripheral device type:
  6350.  00h    direct-access device (e.g., magnetic disk)
  6351.  01h    sequential-access device (e.g., magnetic tape)
  6352.  02h    printer device
  6353.  03h    processor device
  6354.  04h    write-once device (e.g., some optical disks)
  6355.  05h    CD-ROM device
  6356.  06h    scanner device
  6357.  07h    optical memory device (e.g., some optical disks)
  6358.  08h    medium changer device (e.g., jukeboxes)
  6359.  09h    communications device
  6360.  0Ah    (defined by ASC IT8)
  6361.  0Bh    (defined by ASC IT8)
  6362.  0Ch-1Eh reserved
  6363.  1Fh    unknown or no device type
  6364.  
  6365. Values for peripheral qualifier:
  6366.  000b    device is currently connected to this logical unit and available
  6367.  001b    target is capable of supporting the specified peripheral, but the
  6368.       physical device is not currently connected to this logical unit
  6369.  010b    reserved
  6370.  011b    target can't support a physical device on this logical unit
  6371.  1xxb    vendor specific
  6372.  
  6373. Bitfields for device capabilities:
  6374.  bit 0    device responds to RESET with a hard RESET
  6375.  bit 1    tagged command queuing supported
  6376.  bit 2    reserved
  6377.  bit 3    linked commands supported
  6378.  bit 4    synchronous data transfer supported
  6379.  bit 5    16-bit transfers supported
  6380.  bit 6    32-bit transfers supported
  6381.  bit 7    relative addressing supported
  6382. --------B-1318-------------------------------
  6383. INT 13 - DISK - SET MEDIA TYPE FOR FORMAT (AT model 3x9,XT2,XT286,PS)
  6384.     AH = 18h
  6385.     DL = drive number
  6386.     CH = lower 8 bits of highest cylinder number (number of cylinders - 1)
  6387.     CL = sectors per track (bits 0-5)
  6388.          top 2 bits of highest cylinder number (bits 6,7)
  6389. Return: AH = status
  6390.         00h requested combination supported
  6391.         01h function not available
  6392.         0Ch not supported or drive type unknown
  6393.         80h there is no disk in the drive
  6394.     ES:DI -> 11-byte parameter table
  6395. SeeAlso: AH=05h,AH=07h,AH=17h
  6396. --------d-1318-------------------------------
  6397. INT 13 - Future Domain SCSI BIOS - GET SCSI CONTROLLER INFORMATION
  6398.     AH = 18h
  6399.     DL = hard drive ID
  6400. Return: CF set on error
  6401.         AH = status code (see AH=01h)
  6402.     CF clear if successful
  6403.         AX = 4321h (magic number)
  6404.         CX = controller family code (see below)
  6405.         ---if family code=0200h
  6406.         DH = number of exclusively ROM-controlled SCSI devices
  6407.         DL = canonical SCSI device number for specified drive
  6408.         ---if family code <> 0200h
  6409.         BH = number of exclusively ROM-controlled SCSI devices
  6410.         BL = canonical SCSI device number for specified drive
  6411. Notes:    also sets an internal flag (non-resettable) which prevents some
  6412.       controller messages from being displayed, allows writes to
  6413.       removable devices (use caution!), and enables the INT 13 interface
  6414.       for more than one drive (i.e. DL >= 81h) in at least some ROM
  6415.       versions
  6416.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6417.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6418. SeeAlso: AH=05h"SCSI",AX=1700h"SCSI",AH=1Bh"SCSI",INT 4F/AX=8100h
  6419.  
  6420. Values for controller family code:
  6421.  0200h    TMC-1680/? (ROM 3.0)
  6422.  0203h    TMC-1650/1660/1670/1680 (ROM 2.0)
  6423.  040Ah    TMC-820/830/840/850/860/870/875/880/885 (ROM <= 6.0A)
  6424.  050Dh    TMC-840/841/880/881 (ROM 5.2D)
  6425.  0700h    TMC-830/850/860/875/885 (ROM 7.0)
  6426. --------B-1319-------------------------------
  6427. INT 13 - FIXED DISK - PARK HEADS (XT286,PS)
  6428.     AH = 19h
  6429.     DL = drive
  6430. Return: CF set on error
  6431.     AH = status (see AH=01h)
  6432. SeeAlso: AH=11h
  6433. --------d-1319-------------------------------
  6434. INT 13 - Future Domain SCSI CONTROLLER - REINITIALIZE DRIVE
  6435.     AH = 19h
  6436.     DL = hard drive ID
  6437. Return: CF set on error
  6438.         AH = status code (see AH=01h)
  6439.     CF clear if successful
  6440.         AH = disk type (03h = fixed disk)
  6441.         CX:DX = number of 512-byte sectors
  6442. Notes:    sends SCSI Read Capacity command to get number of logical blocks and
  6443.       adjusts the result for 512-byte sectors
  6444.     displays either "Error in Read Capacity Command" or "nnn Bytes per
  6445.       sector" (nnn=256 or 512, the only sizes supported in the translation
  6446.       code)
  6447.     should probably be called when a removable device has its media changed
  6448.     returns the same values as AH=15h
  6449.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6450.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6451. SeeAlso: AH=15h,AH=1Ah,INT 4F/AX=8100h
  6452. --------d-131A-------------------------------
  6453. INT 13 - ESDI FIXED DISK - FORMAT UNIT (PS)
  6454.     AH = 1Ah
  6455.     AL = defect table count
  6456.     CL = format modifiers (see below)
  6457.     DL = drive
  6458.     ES:BX -> defect table
  6459. Return: CF set on error
  6460.     AH = status (see AH=01h)
  6461. Note:    if periodic interrupt selected, INT 15/AH=0Fh is called after each
  6462.       cylinder is formatted
  6463. SeeAlso: AH=07h,INT 15/AH=0Fh
  6464.  
  6465. Bitfields for format modifiers:
  6466.  bit 4    generate periodic interrupt
  6467.  bit 3    perform surface analysis
  6468.  bit 2    update secondary defect map
  6469.  bit 1    ignore secondary defect map
  6470.  bit 0    ignore primary defect map
  6471. --------d-131A-------------------------------
  6472. INT 13 - Future Domain SCSI CONTROLLER - GET SCSI PARTIAL MEDIUM CAPACITY
  6473.     AH = 1Ah
  6474.     CH = track (bits 8,9 in high bits of CL)
  6475.     CL = sector (01h to number of sectors/track for drive)
  6476.     DH = head
  6477.     DL = hard drive ID
  6478. Return: CF set on error
  6479.     AH = status code (see AH=01h)
  6480.     CX:DX = logical block number of last quickly-accessible block after
  6481.         given block
  6482. Notes:    sends SCSI Read Capacity command with the PMI bit set to obtain the
  6483.       logical block address of the last block after which a substantial
  6484.       delay in data transfer will be encountered (usually the last block
  6485.       on the current cylinder).  No translation to 512 byte sectors is
  6486.       performed on the result if data is stored on the disk in other than
  6487.       512 byte sectors.
  6488.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6489.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6490. SeeAlso: AH=15h,AH=19h"SCSI"
  6491. --------d-131B-------------------------------
  6492. INT 13 - ESDI FIXED DISK - GET MANUFACTURING HEADER
  6493.     AH = 1Bh
  6494.     AL = number of record
  6495.     DL = drive
  6496.     ES:BX -> buffer for manufacturing header (defect list)
  6497. Return: CF set on error
  6498.         AH = status
  6499. Note:    manufacturing header format (Defect Map Record format) can be found
  6500.       in IBM 70MB, 115MB Fixed Disk Drives Technical Reference
  6501. --------d-131B-------------------------------
  6502. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO SCSI DISK INFO BLOCK
  6503.     AH = 1Bh
  6504.     DL = hard drive ID
  6505. Return: CF set on error
  6506.         AH = status code (see AH=01h)
  6507.     CF clear if successful
  6508.         ES:BX -> SCSI disk information block
  6509. Notes:    also sets a non-resettable flag which prevents some controller messages
  6510.       from being displayed
  6511.     the TMC-950 does not support any Future Domain BIOS calls; instead,
  6512.       it provides a full CAM implementation (see INT 4F/AX=8100h)
  6513. SeeAlso: AH=18h"SCSI",AH=1Ch"SCSI"
  6514.  
  6515. Format of SCSI disk information block:
  6516. Offset    Size    Description
  6517.  00h    BYTE    drive physical information (see below)
  6518.  01h    WORD    translated number of cylinders
  6519.  03h    BYTE    translated number of heads
  6520.  04h    BYTE    translated number of sectors per track (17, 34, or 63)
  6521.  05h    BYTE    drive address
  6522.         bits 0-2: logical unit number
  6523.         bits 3-5: device number
  6524.  06h    BYTE    01h at initialization
  6525.  07h    BYTE    sense code byte 00h, or extended sense code byte 0Ch
  6526.  08h    BYTE    00h
  6527.  09h    BYTE    00h or extended sense code byte 02h (sense key)
  6528.  0Ah    BYTE    00h
  6529.  0Bh 10 BYTEs    copy of Command Descriptor Block (CDB)
  6530.  15h    DWORD    translated number of sectors on device
  6531.  
  6532. Bitfields for device physical information:
  6533.  bit 0    ???
  6534.  bit 1    device uses parity
  6535.  bit 2    256 bytes per sector instead of 512
  6536.  bit 3    don't have capacity yet???
  6537.  bit 4    disk is removable
  6538.  bit 5    logical unit number is not present
  6539. --------d-131C-------------------------------
  6540. INT 13 - Future Domain SCSI CONTROLLER - GET POINTER TO FREE CONTROLLER RAM
  6541.     AH = 1Ch
  6542.     DL = hard drive ID (any valid SCSI hard disk)
  6543. Return: CF set on error
  6544.         AH = status code (see AH=01h)
  6545.     CF clear if successful
  6546.         ES:BX -> first byte of free RAM on controller
  6547. Notes:    the Future Domain TMC-870 contains 1024 bytes of RAM at offsets 1800h
  6548.       to 1BFFh on-board the controller for storing drive information and
  6549.       controller status; ES:BX points to the first byte available for other
  6550.       uses
  6551.     ES contains the segment at which the controller resides; the
  6552.       controller's two memory-mapped I/O ports are at offsets 1C00h, 1E00h
  6553. SeeAlso: AH=1Bh"SCSI"
  6554. --------d-131C0A-----------------------------
  6555. INT 13 - ESDI FIXED DISK - GET DEVICE CONFIGURATION
  6556.     AX = 1C0Ah
  6557.     DL = drive
  6558.     ES:BX -> buffer for device configuration (drive physical parameter)
  6559. Return: CF set on error
  6560.         AH = status
  6561. Note:    device configuration format can be found in IBM ESDI Fixed Disk Drive
  6562.       Adapter/A Technical Reference
  6563. --------d-131C0B-----------------------------
  6564. INT 13 - ESDI FIXED DISK - GET ADAPTER CONFIGURATION
  6565.     AX = 1C0Bh
  6566.     ES:BX -> buffer for adapter configuration
  6567. Return: CF set on error
  6568.         AH = status
  6569. SeeAlso: AX=1C0Ch
  6570. --------d-131C0C-----------------------------
  6571. INT 13 - ESDI FIXED DISK - GET POS INFORMATION
  6572.     AX = 1C0Ch
  6573.     ES:BX -> POS information
  6574. Return: CF set on error
  6575.         AH = status
  6576. SeeAlso: AX=1C0Bh
  6577. --------d-131C0E-----------------------------
  6578. INT 13 - ESDI FIXED DISK - TRANSLATE RBA TO ABA
  6579.     AX = 1C0Eh
  6580.     CH = low 8 bits of cylinder number
  6581.     CL = sector number, high two bits of cylinder number in bits 6 and 7
  6582.     DH = head number
  6583.     DL = drive number
  6584.     ES:BX -> ABA number
  6585. Return: CF set on error
  6586.         AH = status
  6587. Note:    ABA (absolute block address) format can be found in IBM ESDI Adapter
  6588.       Technical Reference by using its Device Configuration Status Block
  6589. --------c-131D-------------------------------
  6590. INT 13 - IBMCACHE.SYS - CACHE STATUS
  6591.     AH = 1Dh
  6592.     AL = subfunction
  6593.         01h get status record
  6594.         DL = drive???
  6595.         Return: ES:BX -> status record (see below)
  6596.             CF set on error
  6597.                 AH = error code
  6598.         02h set cache status
  6599.         ES:BX -> status record (see below)
  6600.         DL = drive???
  6601.         Return: CF set on error
  6602.  
  6603. Format of status record:
  6604. Offset    Size    Description
  6605.  00h    DWORD    total number of read requests
  6606.  04h    DWORD    total number of hits
  6607.  08h    DWORD    number of physical disk reads
  6608.  0Ch    DWORD    total number of sectors requested by physical disk reads
  6609.  10h  6 bytes    ???
  6610.  16h    DWORD    pointer to start of error list
  6611.  1Ah    DWORD    pointer to end of error list
  6612.  1Eh    WORD    ???
  6613.  20h    BYTE    using extended memory if nonzero
  6614.  21h    BYTE    ???
  6615.  22h  4 BYTEs    ASCII version number
  6616.  26h    WORD    cache size in KB
  6617.  28h    WORD    sectors per page
  6618.  
  6619. Format of error list:
  6620. Offset    Size    Description
  6621.  00h    DWORD    relative block address of bad page
  6622.  04h    BYTE    drive
  6623.  05h    BYTE    sector bit-map
  6624.  06h    WORD    next error
  6625. --------d-1320-------------------------------
  6626. INT 13 - DISK - ??? (Western Digital "Super BIOS")
  6627.     AH = 20h
  6628.     ???
  6629. Return: ???
  6630. Note:    returns some kind of status related to whether the drive contains its
  6631.       default media type
  6632. --------b-1320-------------------------------
  6633. INT 13 U - Compaq DESKPRO/i - GET CURRENT MEDIA FORMAT
  6634.     AH = 20h
  6635.     DL = drive number (00h,01h)
  6636. Return: CF clear if successful
  6637.         AL = media type (see below)
  6638.     CF set on error
  6639.         AH = error code
  6640.         31h no such drive
  6641.         32h incorrect drive type stored in CMOS
  6642. Note:    this function is supported by the 3/8/93 ROM BIOS, but only partially
  6643.       (AL is always 00h when successful) by the 8/3/93 version
  6644.  
  6645. Values for media type:
  6646.  03h    720K
  6647.  04h    1.44M
  6648.  06h    2.88M
  6649.  0Ch    360K
  6650.  0Dh    1.2M
  6651.  0Eh    ???
  6652.  0Fh    ??? (1024-byte sectors)
  6653. --------c-1320-------------------------------
  6654. INT 13 u - QUICKCACHE II v4.20 - DISMOUNT
  6655.     AH = 20h
  6656.     AL = drive (00h = A:, etc. or 7Fh for all removable drives???
  6657.                    or FFh for all drives)
  6658. Return: AX = status (0000h successful)
  6659. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6660.       Associates, Inc.
  6661. Desc:    flush any dirty buffers for the specified drive(s) and then discard
  6662.       those sector buffers
  6663. SeeAlso: AH=21h,AH=22h,AH=28h
  6664. --------c-1321-------------------------------
  6665. INT 13 u - QUICKCACHE II v4.20 - FLUSH CACHE
  6666.     AH = 21h
  6667. Return: AX = status (0000h successful)
  6668. Desc:    immediately write all dirty sectors back to disk
  6669. SeeAlso: AH=25h,AH=2Eh,AH=2Fh
  6670. --------c-1322-------------------------------
  6671. INT 13 u - QUICKCACHE II v4.20 - ENABLE/DISABLE CACHE
  6672.     AH = 22h
  6673.     AL = new state (00h disabled, 01h enabled)
  6674. Return: AX = status (0000h successful)
  6675. Note:    enables/disables caching of all drives
  6676. SeeAlso: AH=2Ch,AH=2Dh,AH=32h,AH=33h,AH=A3h,AH=A4h
  6677. --------c-1323-------------------------------
  6678. INT 13 U - QUICKCACHE II v4.20 - GET ??? ADDRESS
  6679.     AH = 23h
  6680. Return: AX = status (0000h successful)
  6681.     ES = segment of ??? data
  6682. --------c-1324-------------------------------
  6683. INT 13 u - QUICKCACHE II v4.20 - SET SECTORS
  6684.     AH = 24h
  6685.     BX = new number of sector buffers in cache
  6686. Return: AX = status
  6687.         0000h successful
  6688.         0001h failed--size adjusted
  6689.         8000h cache cannot be resized while enabled
  6690. SeeAlso: AH=36h
  6691. --------c-1325-------------------------------
  6692. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH INTERVAL
  6693.     AH = 25h
  6694.     BX = interval
  6695. Return: AX = status (0000h successful)
  6696. Desc:    specify how often the cache should write dirty buffers to disk when
  6697.       buffered writes are enabled
  6698. SeeAlso: AH=21h,AH=2Ch,AH=2Eh
  6699. --------c-1326-------------------------------
  6700. INT 13 U - QUICKCACHE II v4.20 - UNINSTALL
  6701.     AH = 26h
  6702. Return: AX = status
  6703.         0000h successful
  6704.         0001h-00FFh interrupt vector which was hooked by another TSR
  6705. SeeAlso: AH=27h
  6706. --------c-1327--BX0000-----------------------
  6707. INT 13 u - QUICKCACHE II v4.20 - INSTALLATION CHECK
  6708.     AH = 27h
  6709.     BX = 0000h
  6710. Return: AX = 0000h if installed
  6711.     BX nonzero if installed
  6712.         BH = major version
  6713.         BL = binary minor version
  6714. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6715.       Associates, Inc.
  6716. SeeAlso: AH=26h,AH=A0h,INT 16/AX=FFA5h/CX=1111h
  6717. --------c-1328-------------------------------
  6718. INT 13 U - QUICKCACHE II v4.20 - SET AUTOMATIC DISMOUNT
  6719.     AH = 28h
  6720.     AL = new state (00h disabled, 01h enabled)
  6721. Return: AX = status (0000h successful)
  6722. SeeAlso: AH=20h"QUICKCACHE"
  6723. --------c-1329-------------------------------
  6724. INT 13 U - QUICKCACHE II v4.20 - NOP
  6725.     AH = 29h
  6726. Return: AX = 0000h
  6727. --------c-132A-------------------------------
  6728. INT 13 u - QUICKCACHE II v4.20 - SET BUFFER SIZE
  6729.     AH = 2Ah
  6730.     AL = buffer size (1-30)
  6731. Return: AX = status (0000h successful)
  6732. Desc:    specify the number of cache sector buffers to dedicate to buffered read
  6733.       and write operations
  6734. SeeAlso: AH=2Ch,AH=2Dh,AH=39h,AH=3Ah
  6735. --------c-132B-------------------------------
  6736. INT 13 U - QUICKCACHE II v4.20 - DRIVE ACCESS SOUNDS
  6737.     AH = 2Bh
  6738.     AL = new state (00h disabled, 01h enabled)
  6739. Return: AX = status (0000h successful)
  6740. --------c-132C-------------------------------
  6741. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED WRITES
  6742.     AH = 2Ch
  6743.     AL = new state (00h disabled, 01h enabled)
  6744. Return: AX = status (0000h successful)
  6745. Desc:    specify whether the cache should delay disk writes
  6746. Note:    this function enables or disables delayed writes for all drives; use
  6747.       AH=38h to change a single drive
  6748. SeeAlso: AH=25h,AH=2Dh,AH=2Eh,AH=38h
  6749. --------c-132D-------------------------------
  6750. INT 13 u - QUICKCACHE II v4.20 - SET BUFFERED READ
  6751.     AH = 2Dh
  6752.     AL = new state (00h disabled, 01h enabled)
  6753. Return: AX = status (0000h successful)
  6754. Desc:    specify whether the cache should attempt to read ahead of actual
  6755.       requests
  6756. Note:    this function enables or disables read-ahead for all drives; use AH=37h
  6757.       to change a single drive
  6758. SeeAlso: AH=2Ch,AH=37h
  6759. --------c-132E-------------------------------
  6760. INT 13 u - QUICKCACHE II v4.20 - SET FLUSH COUNT
  6761.     AH = 2Eh
  6762.     BX = flush count
  6763. Return: AX = status (0000h successful)
  6764. Desc:    specify how many dirty sectors the cache should write after each flush
  6765.       interval (see AH=25h) when buffered writes are enabled
  6766. SeeAlso: AH=21h,AH=25h,AH=2Ch
  6767. --------c-132F-------------------------------
  6768. INT 13 - QUICKCACHE II v4.20 - FORCE IMMEDIATE INCREMENTAL FLUSH
  6769.     AH = 2Fh
  6770. Return: AX = status (0000h successful)
  6771. Desc:    immediately flush up to "flushcount" dirty sectors to disk as if the
  6772.       flush interval had expired
  6773. SeeAlso: AH=21h
  6774. --------c-1330-------------------------------
  6775. INT 13 u - QUICKCACHE II v4.20 - GET INFO
  6776.     AH = 30h
  6777.     AL = what to get
  6778.         00h system info (see below)
  6779.         01h drive info (see below)
  6780.         02h access frequency (array of 30 words)
  6781.         03h drive index
  6782.         (array of 32 bytes indicating BIOS drive for DOS drive)
  6783.     DS:DX -> buffer for info
  6784. Return: AX = status (0000h successful, 8000h invalid info specifier)
  6785. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6786.       Associates, Inc.
  6787.  
  6788. Format of system info:
  6789. Offset    Size    Description
  6790.  00h    BYTE    flag: cache enabled
  6791.  01h    BYTE    flag: buffered writes enabled
  6792.  02h    BYTE    flag: buffered reads enabled
  6793.  03h    BYTE    flag: sounds enabled
  6794.  04h    BYTE    flag: autodismount enabled
  6795.  05h    BYTE    ???
  6796.  06h    BYTE    flag: ???
  6797.  07h    BYTE    flag: ???
  6798.  08h    BYTE    flag: "em_assigned"
  6799.  09h    BYTE    flag: emulated EMS
  6800.  0Ah    BYTE    single sector bonus
  6801.  0Bh    BYTE    "sticky_max"
  6802.  0Ch    BYTE    write sector bonus
  6803.  0Dh    BYTE    bonus threshold
  6804.  0Eh    WORD    flush interval
  6805.  10h    WORD    flush count
  6806.  12h    WORD    reserve pool size
  6807.  14h    WORD    remaining space in reserve pool
  6808.  16h    WORD    required free memory
  6809.  18h    WORD    total cache sectors
  6810.  1Ah    WORD    dirty cache sectors
  6811.  1Ch    BYTE    trace buffer size
  6812.  1Dh    BYTE    reserved (padding)
  6813.  
  6814. Format of drive info [16-element array, one element]:
  6815. Offset    Size    Description
  6816.  00h    BYTE    DOS drive number
  6817.  01h    BYTE    BIOS drive number
  6818.  02h    BYTE    maximum sector number
  6819.  03h    BYTE    maximum head number
  6820.  04h    BYTE    read buffer size
  6821.  05h    BYTE    write buffer size
  6822.  06h    BYTE    last status
  6823.  07h    BYTE    flag: enabled
  6824.  08h    BYTE    flag: buffered write enabled
  6825.  09h    BYTE    flag: buffered read enabled
  6826.  0Ah    BYTE    flag: in use (drive info is valid)
  6827.  0Bh    BYTE    flag: cylinder flush
  6828.  0Ch    BYTE    reserved (padding)
  6829.  0Dh    BYTE    sectors per track
  6830.  0Eh    WORD    sector size
  6831.  10h    WORD    sectors assigned
  6832.  12h    WORD    dirty sectors
  6833.  14h    WORD    reserved sectors
  6834.  16h    WORD    number of read errors
  6835.  18h    WORD    number of write errors
  6836.  1Ah    DWORD    "rio_count"
  6837.  1Eh    DWORD    number of cache misses
  6838.  22h    DWORD    "wio_count"
  6839.  26h    DWORD    "dio_count"
  6840. --------c-1331-------------------------------
  6841. INT 13 U - QUICKCACHE II v4.20 - RESERVE MEMORY
  6842.     AH = 31h
  6843.     BX = number of paragraphs of conventional memory to reserve for apps
  6844. Return: AX = status (0000h successful)
  6845. --------c-1332-------------------------------
  6846. INT 13 U - QUICKCACHE II v4.20 - ENABLE CACHING FOR SPECIFIC DRIVE
  6847.     AH = 32h
  6848.     AL = drive number (00h=A:)
  6849. Return: AX = status (0000h successful)
  6850. SeeAlso: AH=22h,AH=33h
  6851. --------c-1333-------------------------------
  6852. INT 13 U - QUICKCACHE II v4.20 - DISABLE CACHING FOR SPECIFIC DRIVE
  6853.     AH = 33h
  6854.     AL = drive number (00h=A:)
  6855. Return: AX = status (0000h successful)
  6856. SeeAlso: AH=22h,AH=32h
  6857. --------c-1334-------------------------------
  6858. INT 13 U - QUICKCACHE II v4.20 - SECTOR LOCKING
  6859.     AH = 34h
  6860.     AL = function
  6861.         00h end sector locking/unlocking
  6862.         01h lock all accessed sectors into cache
  6863.         02h unlock all accessed sectors and discard from cache
  6864. Return: AX = status (0000h successful)
  6865. SeeAlso: AH=20h,AH=35h
  6866. --------c-1335-------------------------------
  6867. INT 13 U - QUICKCACHE II v4.20 - SET LOCK POOL SIZE
  6868.     AH = 35h
  6869.     BX = number of sectors in lock pool
  6870. Return: AX = status (0000h successful)
  6871. Desc:    specify the number of cache sector buffers which may be dedicated to
  6872.       data locked into the cache
  6873. SeeAlso: AH=34h
  6874. --------c-1336-------------------------------
  6875. INT 13 U - QUICKCACHE II v4.20 - SET TRACE BUFFER SIZE
  6876.     AH = 36h
  6877.     AL = new size of trace buffer
  6878. Return: AX = status (0000h successful)
  6879. Note:    called with AL=05h during an INT 13/AH=24h call
  6880. SeeAlso: AH=24h
  6881. --------c-1337-------------------------------
  6882. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED READS FOR SPECIFIC DRIVE
  6883.     AH = 37h
  6884.     AL = new state (00h disabled, else enabled)
  6885.     DL = drive number (00h = A:)
  6886. Return: AX = status (0000h successful)
  6887. SeeAlso: AH=2Dh,AH=38h
  6888. --------c-1338-------------------------------
  6889. INT 13 U - QUICKCACHE II v4.20 - SET BUFFERED WRITES FOR SPECIFIC DRIVE
  6890.     AH = 38h
  6891.     AL = new state (00h disabled, else enabled)
  6892.     DL = drive number (00h = A:)
  6893. Return: AX = status (0000h successful)
  6894. SeeAlso: AH=2Ch,AH=37h
  6895. --------c-1339-------------------------------
  6896. INT 13 U - QUICKCACHE II v4.20 - SET READ BUFFER SIZE FOR SPECIFIC DRIVE
  6897.     AH = 39h
  6898.     AL = new size of read buffer
  6899.     DL = drive number (00h = A:)
  6900. Return: AX = status (0000h successful)
  6901. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6902.       Associates, Inc.
  6903. SeeAlso: AH=2Ah,AH=3Ah
  6904. --------c-133A-------------------------------
  6905. INT 13 U - QUICKCACHE II v4.20 - SET WRITE BUFFER SIZE FOR SPECIFIC DRIVE
  6906.     AH = 3Ah
  6907.     AL = new size of write buffer
  6908.     DL = drive number (00h = A:)
  6909. Return: AX = status (0000h successful)
  6910. SeeAlso: AH=2Ah,AH=39h
  6911. --------c-133B-------------------------------
  6912. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  6913.     AH = 3Bh
  6914.     AL = new state of ??? (01h enabled, else disabled)
  6915. Return: AX = status (0000h successful)
  6916. Note:    is affected by the flag reported at offset 05h of the system info
  6917.       returned by AH=30h, and sets the flag at offset 06h
  6918. SeeAlso: AH=3Ch
  6919. --------c-133C-------------------------------
  6920. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE ???
  6921.     AH = 3Ch
  6922.     AL = new state of ??? (01h enabled, else disabled)
  6923. Return: AX = status (0000h successful)
  6924. Note:    is affected by the flag reported at offset 05h of the system info
  6925.       returned by AH=30h, and sets the flag at offset 07h
  6926. SeeAlso: AH=3Bh
  6927. --------c-133D-------------------------------
  6928. INT 13 U - QUICKCACHE II v4.20 - ENABLE/DISABLE CYLINDER FLUSH FOR DRIVE
  6929.     AH = 3Dh
  6930.     AL = new state (01h enabled, else disabled)
  6931.     DL = drive number (00h = A:)
  6932. Return: AX = status (0000h successful)
  6933. --------c-133E-------------------------------
  6934. INT 13 U - QUICKCACHE II v4.20 - SET SINGLE-SECTOR BONUS
  6935.     AH = 3Eh
  6936.     AL = new value for bonus
  6937. Return: AX = status (0000h successful)
  6938. Desc:    specify the bonus score to give to single-sector transfers in order to
  6939.       keep those sectors in the cache longer
  6940. --------c-133F-------------------------------
  6941. INT 13 U - QUICKCACHE II v4.20 - SET BONUS THRESHOLD
  6942.     AH = 3Fh
  6943.     AL = new value for bonus threshold
  6944. Return: AX = status (0000h successful)
  6945. --------c-1340-------------------------------
  6946. INT 13 U - QUICKCACHE II v4.20 - SET "sticky_max"
  6947.     AH = 40h
  6948.     AL = new value for "sticky_max"
  6949. Return: AX = status (0000h successful)
  6950. --------c-1341-------------------------------
  6951. INT 13 U - QUICKCACHE II v4.20 - SAVE/RESTORE ???
  6952.     AH = 41h
  6953.     AL = direction
  6954.         01h save to file
  6955.         else restore from file
  6956.     ES:DI -> 1024-byte buffer for ???
  6957. Return: AX = status (0000h successful, 8000h failed)
  6958. Program: QUICKCACHE II is a shareware disk cache by P.R. Glassel and
  6959.       Associates, Inc.
  6960. --------N-134257DX1234-----------------------
  6961. INT 13 U - Beame&Whiteside BWLPD - INSTALLATION CHECK
  6962.     AX = 4257h ("BW")
  6963.     DX = 1234h
  6964. Return: BX = 414Ch if installed
  6965. Program: BWLPD is the printer daemon from the BW-NFS package
  6966. SeeAlso: INT 62"BW-TCP"
  6967. --------v-135342CX0001-----------------------
  6968. INT 13 - ScanBoot - INSTALLATION CHECK
  6969.     AX = 5342h ("SB")
  6970.     CX = 0001h
  6971.     DX = 0000h
  6972. Return: CF clear if ScanBoot installed
  6973.        AX = 0000h
  6974.        CX = serial number ("SW" if shareware release)
  6975.        DX = version
  6976.        BX,SI,ES destroyed
  6977. Program: ScanBoot is a virus-detection TSR by PanSoft
  6978. --------d-135504-----------------------------
  6979. INT 13 - Seagate - GET CONTROLLER TYPE???
  6980.     AX = 5504h
  6981.     DX = drive (bit 7 set for hard disk)
  6982. Return: CF clear if successful
  6983.         AX = 4321h,4322h if Seagate controller
  6984.     CF set on error
  6985. SeeAlso: AX=5505h,AX=5514h
  6986. --------d-135505-----------------------------
  6987. INT 13 - Seagate - PARK HEADS???
  6988.     AX = 5505h
  6989.     DX = drive (bit 7 set for hard disk)
  6990. Return: CF clear if successful
  6991.     CF set on error
  6992. SeeAlso: AX=5504h,AX=5515h
  6993. --------d-135514-----------------------------
  6994. INT 13 - Seagate - ???
  6995.     AX = 5514h
  6996.     DX = drive (bit 7 set for hard disk)
  6997. Return: CF clear if successful
  6998.     CF set on error
  6999.     AX = return value (FEBEh,FEBFh,FEDAh,FEDBh)
  7000. SeeAlso: AX=5504h,AX=5515h
  7001. --------d-135515-----------------------------
  7002. INT 13 - Seagate - PARK HEADS???
  7003.     AX = 5515h
  7004.     DX = drive (bit 7 set for hard disk)
  7005. Return: CF clear if successful
  7006.     CF set on error
  7007. Note:    appears to be identical to AX=5505h
  7008. SeeAlso: AX=5504h,AX=5505h
  7009. --------d-1370-------------------------------
  7010. INT 13 - Priam EDVR.SYS DISK PARTITIONING SOFTWARE???
  7011.     AH = 70h
  7012.     ???
  7013. Return: ???
  7014. Note:    Priam's EDISK.EXE (FDISK replacement) and EFMT.EXE (low-level
  7015.       formatting program) make this call, presumably to EDVR.SYS (the
  7016.       partitioning driver)
  7017. SeeAlso: AH=ADh
  7018. ----------1375-------------------------------
  7019. INT 13 - ???
  7020.     AH = 75h
  7021.     ???
  7022. Return: AH = ???
  7023.     ???
  7024. Note:    intercepted by PC-Cache (v5.1 only)
  7025. ----------1376-------------------------------
  7026. INT 13 - ???
  7027.     AH = 76h
  7028.     ???
  7029. Return: AH = ???
  7030.     ???
  7031. Note:    intercepted by PC-Cache (v5.1 only)
  7032. --------c-137B00-----------------------------
  7033. INT 13 - NOW! v3.05 - GET INFORMATION
  7034.     AX = 7B00h
  7035.     CX:DX -> 1F8h-byte buffer for information record (see below)
  7036. Return: AX = 0000h
  7037.     BX = segment of main resident code
  7038.     ES = ???
  7039. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  7040. SeeAlso: AX=7B02h,AH=EFh
  7041.  
  7042. Format of information record:
  7043. Offset    Size    Description
  7044.  00h 80 BYTEs    name of directory from which NOW! was started
  7045.  50h 424 BYTEs    ???
  7046.  81h  ? BYTEs    array of bytes for ???
  7047.  F7h 250 BYTEs    array of 25 entries, one per drive???
  7048.     Offset    Size    Description
  7049.      00h  2 BYTEs    ???
  7050.      02h    WORD    ???
  7051.      04h    WORD    ???
  7052.      06h  4 BYTEs    ???
  7053. 1F1h  7 BYTEs    ???
  7054. --------c-137B01-----------------------------
  7055. INT 13 - NOW! v3.05 - ???
  7056.     AX = 7B01h
  7057. Return: DX = segment of ???
  7058. SeeAlso: AX=7B00h
  7059. --------c-137B02-----------------------------
  7060. INT 13 - NOW! v3.05 - SET INFORMATION
  7061.     AX = 7B02h
  7062.     BX = segment of ??? (10h above a PSP)
  7063.     CX:DX -> 1F8h-byte information record (see AX=7B00h)
  7064. Return: ???
  7065. Program: NOW! is a disk cache by Vertisoft Systems, Inc.
  7066. Note:    NOW! grabs the INT 24h value from the PSP reached via the segment in
  7067.       BX
  7068. SeeAlso: AX=7B00h
  7069. --------c-137B03-----------------------------
  7070. INT 13 - NOW! v3.05 - ???
  7071.     AX = 7B03h
  7072.     ???
  7073. Return: ???
  7074. SeeAlso: AX=7B00h,AX=7B04h
  7075. --------c-137B04-----------------------------
  7076. INT 13 - NOW! v3.05 - ???
  7077.     AX = 7B04h
  7078.     ???
  7079. Return: ???
  7080. SeeAlso: AX=7B03h
  7081. --------c-137B05-----------------------------
  7082. INT 13 - NOW! v3.05 - GET DISK ACCESSES???
  7083.     AX = 7B05h
  7084. Return: BX:AX = number of physical accesses???
  7085.     DX:CX = total disk accesses???
  7086. SeeAlso: AX=7B00h,AX=7B06h
  7087. --------c-137B06-----------------------------
  7088. INT 13 - NOW! v3.05 - GET ???
  7089.     AX = 7B06h
  7090.     BX = ???
  7091. Return: AX = 0000h
  7092.     BX = ???
  7093. SeeAlso: AX=7B05h,AX=7B07h
  7094. --------c-137B07-----------------------------
  7095. INT 13 - NOW! v3.05 - GET ???
  7096.     AX = 7B07h
  7097. Return: AX = ???
  7098.     BX = ???
  7099.     CX = ???
  7100.     DX = ???
  7101. SeeAlso: AX=7B06h
  7102. --------c-137B08-----------------------------
  7103. INT 13 - NOW! v3.05 - ???
  7104.     AX = 7B08h
  7105.     CX = ??? (default 00h)
  7106. Return: ???
  7107. SeeAlso: AX=7B00h
  7108. --------c-1380--CX6572-----------------------
  7109. INT 13 - FAST! v4.02+ - API
  7110.     AH = 80h
  7111.     CX = 6572h
  7112.     DX = 1970h
  7113.     ES:BX -> request packet (see below)
  7114.     AL = function
  7115.         01h get cache information (see separate entry)
  7116.         04h disable cache
  7117.         05h enable cache and reset statistics
  7118.         06h installation check (see separate entry)
  7119.         07h unhook interrupts (see separate entry)
  7120.         09h flush cache
  7121.         0Ah (v4.02+) enable staged writes
  7122.         0Bh (v4.02+) disable staged writes
  7123.         0Ch (v4.02+) enable beep on flush
  7124.         0Dh (v4.02+) disable beep on flush
  7125.         0Eh ???
  7126.         0Fh ???
  7127.         10h (v4.12+) enable hotkeys
  7128.         11h (v4.12+) disable hotkeys
  7129.         12h (v4.13+) set idle delay
  7130.         13h (v4.13+) set flush dirty percentage
  7131.         14h (v5.00+) enable mouse checks
  7132.         15h (v5.00+) disable mouse checks
  7133.         16h (v5.00d+) reduce cache size to minimum
  7134.         17h (v5.00d+) increase cache size to maximum
  7135. Return: AH = status (except function 06h)
  7136.         00h if successful
  7137.         01h invalid function
  7138.         05h not supported by the installed variant
  7139.     CF clear if successful
  7140.     CF set on error
  7141.     AL may be destroyed
  7142. Program: FAST! is a disk cache by Future Computing Systems and marketed by BLOC
  7143.       Publishing Corp.
  7144. SeeAlso: AX=8001h,AX=8006h,AX=8007h
  7145. Index:    hotkeys;FAST!
  7146.  
  7147. Format of request packet:
  7148. Offset    Size    Description
  7149.  00h    DWORD    pointer to 19-byte signature string (see below)
  7150.  04h    DWORD    pointer to buffer for data (if needed by function)
  7151.  
  7152. Values for v4.04-v5.03 signature string:
  7153.  13h 07h 06h 08h 11h 18h 0Fh 0Eh 02h 18h 13h 08h 0Bh 08h 01h 00h 04h 08h 15h
  7154. --------c-138001CX6572-----------------------
  7155. INT 13 - FAST! v4.02+ - GET CACHE INFORMATION
  7156.     AX = 8001h
  7157.     CX = 6572h
  7158.     DX = 1970h
  7159.     ES:BX -> request packet (see below)
  7160. Return: AH = 00h if successful
  7161. SeeAlso: AH=80h,AX=8006h
  7162.  
  7163. Format of request packet:
  7164. Offset    Size    Description
  7165.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  7166.  04h    DWORD    -> buffer for cache information (see below)
  7167.  
  7168. Format of cache information (v5.00-5.03):
  7169. Offset    Size    Description
  7170.  00h    WORD    binary version number of FAST! (v5.00 = 01F4h)
  7171.  02h    BYTE    revision letter (61h = X.XXa, 62h = X.XXb, etc.)
  7172.  03h    BYTE    FAST! variant
  7173.         (01h = FASTE, 02h = FASTX BIOS, 04h = FASTC, 20h = FASTX XMS)
  7174.  04h    DWORD    total number of read requests
  7175.  08h    DWORD    number of physical disk reads
  7176.  0Ch    DWORD    grabbed hash buckets
  7177.  10h    DWORD    "st_386mem"
  7178.  14h    DWORD    total number of writes (only counted when staging enabled)
  7179.  18h    DWORD    number of physical disk writes (only when staging enabled)
  7180.  1Ch    DWORD    number of write errors while flushing cache
  7181.  20h    WORD    flags
  7182.         bit 0: beep on flush
  7183.         bit 3: hotkeys enabled
  7184.         bit 4: mouse idle check enabled
  7185.         bit 8: caching enabled
  7186.         bit 13: ???
  7187.  22h    WORD    flags
  7188.         bit 0: ???
  7189.         bit 1: staged writes enabled
  7190.  24h    WORD    ???
  7191.  26h    WORD    maximum cache size in KB
  7192.  28h    WORD    minimum cache size in KB
  7193.  2Ah    WORD    segment of first cache buffer (FASTC)
  7194.         segment of EMS page frame (FASTE)
  7195.         XMS handle (FASTX XMS)
  7196.  2Ch    WORD    number of hash buckets containing no entries
  7197.  2Eh    WORD    number of hash buckets containing one entry
  7198.  30h    WORD    number of hash buckets containing two entries
  7199.  32h    WORD    number of hash buckets containing three entries
  7200.  34h    WORD    number of hash buckets containing four entries
  7201.  36h    WORD    number of hash buckets containing five entries
  7202.  38h    WORD    maximum contiguous sectors
  7203.  3Ah    WORD    hash factor
  7204.  3Ch    WORD    number of paragraphs of memory used below 1M
  7205.  3Eh    WORD    entries per hash bucket
  7206.  40h    WORD    idle delay in seconds
  7207.  42h  2 BYTEs    ???
  7208.  44h    WORD    staged write threshold percentage
  7209.  46h  2 BYTEs    ???
  7210.  48h    WORD    number of dirty sectors
  7211.  4Ah    WORD    number of staged write buffers
  7212.  4Ch    WORD    current cache size in KB
  7213.  4Eh    WORD    beep frequency in Hz
  7214.  50h    WORD    ???
  7215.  52h    WORD    ???
  7216. --------c-138006CX6572-----------------------
  7217. INT 13 - FAST! v4.02+ - INSTALLATION CHECK
  7218.     AX = 8006h
  7219.     CX = 6572h
  7220.     DX = 1970h
  7221.     ES:BX -> request packet (see below)
  7222. Return: AX = 1965h if installed
  7223. SeeAlso: AH=80h,AX=8001h,AX=8007h
  7224.  
  7225. Format of request packet:
  7226. Offset    Size    Description
  7227.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  7228. --------c-138007CX6572-----------------------
  7229. INT 13 - FAST! v4.02+ - UNHOOK INTERRUPTS
  7230.     AX = 8007h
  7231.     CX = 6572h
  7232.     DX = 1970h
  7233.     ES:BX -> request packet (see below)
  7234. Return: AX = 1965h if installed
  7235. SeeAlso: AH=80h,AX=8006h
  7236. Index:    uninstall;FAST!
  7237.  
  7238. Format of request packet:
  7239. Offset    Size    Description
  7240.  00h    DWORD    -> 19-byte signature string (see AH=80h)
  7241. --------c-1381--SI4358-----------------------
  7242. INT 13 - Super PC-Kwik v3.20+ - ???
  7243.     AH = 81h
  7244.     SI = 4358h
  7245.     ???
  7246. Return: ???
  7247. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7248.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  7249.       to PC-Kwik v3.20 and PC-Cache v5.5 to PC-Kwik v3.27)
  7250.     returns immediately in PC-Cache v5.x
  7251. Index:    PC-Cache|Qualitas Qcache
  7252. --------c-1382--SI4358-----------------------
  7253. INT 13 - Super PC-Kwik v3.20+ - ???
  7254.     AH = 82h
  7255.     SI = 4358h
  7256.     ???
  7257. Return: AL = ???
  7258. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7259.       Super PC-Kwik, and thus support this call
  7260. SeeAlso: AH=84h
  7261. Index:    PC-Cache|Qualitas Qcache
  7262. --------c-1383--SI4358-----------------------
  7263. INT 13 - Super PC-Kwik v3.20+ - ???
  7264.     AH = 83h
  7265.     SI = 4358h
  7266.     AL = ???
  7267.     ES:BX -> ???
  7268.     ???
  7269. Return: ???
  7270. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7271.       Super PC-Kwik, and thus support this call
  7272. SeeAlso: AH=85h
  7273. Index:    PC-Cache|Qualitas Qcache
  7274. --------c-1384--SI4358-----------------------
  7275. INT 13 - Super PC-Kwik v3.20+ - ???
  7276.     AH = 84h
  7277.     SI = 4358h
  7278.     AL = ???
  7279.     ???
  7280. Return: AL = ???
  7281. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7282.       Super PC-Kwik, and thus support this call
  7283. SeeAlso: AH=82h
  7284. Index:    PC-Cache|Qualitas Qcache
  7285. --------c-1385--SI4358-----------------------
  7286. INT 13 - Super PC-Kwik v3.20+ - ???
  7287.     AH = 85h
  7288.     SI = 4358h
  7289.     AL = ???
  7290.     DL = ???
  7291.     ???
  7292. Return: ???
  7293. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7294.       Super PC-Kwik, and thus support this call (PC-Cache v5.1 corresponds
  7295.       to PC-Kwik v3.20)
  7296. SeeAlso: AH=83h
  7297. Index:    PC-Cache|Qualitas Qcache
  7298. --------c-1386--SI4358-----------------------
  7299. INT 13 - Super PC-Kwik v4.00+ - ???
  7300.     AH = 86h
  7301.     SI = 4358h
  7302.     ???
  7303. Return: ???
  7304. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7305.       thus supports this call
  7306. Index:    Qualitas Qcache
  7307. --------c-1387--SI4358-----------------------
  7308. INT 13 - Super PC-Kwik v4.00+ - ???
  7309.     AH = 87h
  7310.     SI = 4358h
  7311.     ???
  7312. Return: AH = status??? (00h)
  7313.     CX = ???
  7314.     DX = ??? (0000h)
  7315. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7316.       thus supports this call
  7317. Index:    Qualitas Qcache
  7318. --------c-1388--SI4358-----------------------
  7319. INT 13 - Super PC-Kwik v4.00+ - ???
  7320.     AH = 88h
  7321.     SI = 4358h
  7322.     ???
  7323. Return: AH = status??? (00h)
  7324.     CX = ???
  7325.     DX = ??? (0000h)
  7326. Note:    Qualitas Qcache v4.00 is an OEM version of Super PC-Kwik v4.00, and
  7327.       thus supports this call
  7328. Index:    Qualitas Qcache
  7329. --------c-1389--SI4358-----------------------
  7330. INT 13 - Super PC-Kwik v5.10+ - ???
  7331.     AH = 89h
  7332.     SI = 4358h
  7333.     ???
  7334. Return: ???
  7335. --------c-138A--SI4358-----------------------
  7336. INT 13 - Super PC-Kwik v5.10+ - ???
  7337.     AH = 8Ah
  7338.     SI = 4358h
  7339.     ???
  7340. Return: ???
  7341. --------c-138EED-----------------------------
  7342. INT 13 - HyperDisk v4.01+ - ???
  7343.     AX = 8EEDh
  7344.     ???
  7345. Return: ???
  7346. Program: HyperDisk is a shareware disk cache by HyperWare (Roger Cross)
  7347. SeeAlso: AX=8EEEh,AX=8EEFh,AH=EEh,INT 2F/AH=DFh
  7348. --------c-138EEE-----------------------------
  7349. INT 13 - HyperDisk v4.01+ - ???
  7350.     AX = 8EEEh
  7351. Return: CF set
  7352.     AX = CS of HyperDisk resident code
  7353.     ???
  7354. Note:    identical to AX=8EEFh in HYPERDKX v4.21-4.30
  7355. SeeAlso: AX=8EEDh,AX=8EEFh,AH=EEh
  7356. --------c-138EEF-----------------------------
  7357. INT 13 - HyperDisk v4.01+ - ???
  7358.     AX = 8EEFh
  7359. Return: CF set
  7360.     AX = CS of HyperDisk resident code
  7361.     ???
  7362. Note:    identical to AX=8EEEh in HYPERDKX v4.21-4.30
  7363. SeeAlso: AX=8EEDh,AX=8EEEh,AH=EEh
  7364. --------c-1392--SI4358-----------------------
  7365. INT 13 - Super PC-Kwik v5.10+ - ???
  7366.     AH = 92h
  7367.     SI = 4358h
  7368.     ???
  7369. Return: AH = status??? (00h)
  7370.     DL = ???
  7371. SeeAlso: AH=93h
  7372. --------c-1393--SI4358-----------------------
  7373. INT 13 - Super PC-Kwik v5.10+ - ???
  7374.     AH = 93h
  7375.     SI = 4358h
  7376.     ???
  7377. Return: AH = status??? (00h)
  7378.     AL = ???
  7379. SeeAlso: AH=92h
  7380. --------c-1394--SI4358-----------------------
  7381. INT 13 - Super PC-Kwik v5.10+ - ???
  7382.     AH = 94h
  7383.     SI = 4358h
  7384.     ???
  7385. Return: ???
  7386. --------c-1395--SI4358-----------------------
  7387. INT 13 - Super PC-Kwik v5.10+ - ???
  7388.     AH = 95h
  7389.     SI = 4358h
  7390.     ???
  7391. Return: AH = status??? (00h)
  7392.     DX = ???
  7393. --------c-1396--SI4358-----------------------
  7394. INT 13 - Super PC-Kwik v5.10+ - ???
  7395.     AH = 96h
  7396.     SI = 4358h
  7397.     AL = ??? (01h)
  7398.     BX = ??? (0790h)
  7399.     DL = ???
  7400. Return: AH = status??? (00h)
  7401.     DX = ???
  7402. --------c-1397--SI4358-----------------------
  7403. INT 13 - Super PC-Kwik v5.10+ - ???
  7404.     AH = 97h
  7405.     SI = 4358h
  7406.     ???
  7407. Return: ???
  7408. --------c-1398--SI4358-----------------------
  7409. INT 13 - Super PC-Kwik v5.10+ - ???
  7410.     AH = 98h
  7411.     SI = 4358h
  7412.     ???
  7413. Return: ???
  7414. --------c-1399--SI4358-----------------------
  7415. INT 13 - Super PC-Kwik v5.10+ - ???
  7416.     AH = 99h
  7417.     SI = 4358h
  7418.     ???
  7419. Return: ???
  7420. --------c-139A--SI4358-----------------------
  7421. INT 13 - Super PC-Kwik v5.10+ - ???
  7422.     AH = 9Ah
  7423.     SI = 4358h
  7424.     ???
  7425. Return: ???
  7426. --------c-139B--SI4358-----------------------
  7427. INT 13 - Super PC-Kwik v5.10+ - ???
  7428.     AH = 9Bh
  7429.     SI = 4358h
  7430.     ???
  7431. Return: ???
  7432. --------c-139C--SI4358-----------------------
  7433. INT 13 - Super PC-Kwik v5.10+ - ???
  7434.     AH = 9Ch
  7435.     SI = 4358h
  7436.     ???
  7437. Return: ???
  7438. Note:    functions 9Ch and 9Dh are the only ones which are fully reentrant; all
  7439.       other PC-Kwik API calls (INT 13/81h-B0h) return AX=0200h and CF clear
  7440.       if a previous call is still in progress
  7441. --------c-139D--SI4358-----------------------
  7442. INT 13 - Super PC-Kwik v5.10+ - ???
  7443.     AH = 9Dh
  7444.     SI = 4358h
  7445.     ???
  7446. Return: ???
  7447. --------c-13A0--SI4358-----------------------
  7448. INT 13 - Super PC-Kwik v3.20+ - GET RESIDENT CODE SEGMENT
  7449.     AH = A0h
  7450.     SI = 4358h
  7451. Return: AX = segment of resident code
  7452. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7453.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.5
  7454.       corresponds to PC-Kwik v3.27)
  7455. SeeAlso: INT 16/AX=FFA5h/CX=1111h
  7456. Index:    PC-Cache|Qualitas Qcache
  7457. --------c-13A1--SI4358-----------------------
  7458. INT 13 - Super PC-Kwik v3.20+ - FLUSH CACHE
  7459.     AH = A1h
  7460.     SI = 4358h
  7461. Return: CF clear
  7462.     AH = 00h (v5.10)
  7463. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7464.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  7465.       corresponds to PC-Kwik v3.20)
  7466. SeeAlso: INT 16/AX=FFA5h/CX=FFFFh
  7467. Index:    PC-Cache|Qualitas Qcache
  7468. --------c-13A2--SI4358-----------------------
  7469. INT 13 - Super PC-Kwik v3.20+ - ???
  7470.     AH = A2h
  7471.     SI = 4358h
  7472.     ???
  7473. Return: ???
  7474. Note:    PC Tools PC-Cache 5.x and Qualitas Qcache 4.00 are OEM versions of
  7475.       Super PC-Kwik, and thus support this call (note that PC-Cache v5.1
  7476.       corresponds to PC-Kwik v3.20)
  7477. Index:    PC-Cache|Qualitas Qcache
  7478. --------c-13A3--SI4358-----------------------
  7479. INT 13 U - Super PC-Kwik v5.10+ - DISABLE CACHE
  7480.     AH = A3h
  7481.     SI = 4358h
  7482. Return: CF clear
  7483. SeeAlso: AH=A4h
  7484. --------c-13A4--SI4358-----------------------
  7485. INT 13 U - Super PC-Kwik v5.10+ - ENABLE CACHE
  7486.     AH = A4h
  7487.     SI = 4358h
  7488. Return: CF clear
  7489. SeeAlso: AH=A3h
  7490. --------c-13A5--SI4358-----------------------
  7491. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM TERMINATION NOTIFICATION
  7492.     AH = A5h
  7493.     SI = 4358h
  7494. Return: AX = ???
  7495.     SI = ???
  7496. Notes:    called and used internally by Super PC-Kwik when a program terminates
  7497.       via INT 21/AH=00h, INT 21/AH=31h, or INT 21/AH=4Ch
  7498.     this call is not supported by Qualitas Qcache 4.00
  7499. Index:    PC-Cache
  7500. SeeAlso: AH=A6h,AH=A9h,INT 21/AH=00h,INT 21/AH=31h,INT 21/AH=4Ch
  7501. --------c-13A6--SI4358-----------------------
  7502. INT 13 CU - Super PC-Kwik v5.10+ - PROGRAM LOAD NOTIFICATION
  7503.     AH = A6h
  7504.     SI = 4358h
  7505.     DS:DX -> ASCIZ program name
  7506.     ES:BX -> EXEC data block (see INT 21/AH=4Bh)
  7507. Return: ???
  7508. Note:    called and used internally by Super PC-Kwik when a program is loaded
  7509.       with INT 21/AX=4B00h
  7510. SeeAlso: AH=A5h,AH=A9h,INT 21/AH=4Bh
  7511. --------c-13A7--SI4358-----------------------
  7512. INT 13 CU - Super PC-Kwik 5.1 - ???
  7513.     AH = A7h
  7514.     SI = 4358h
  7515. Return: ???
  7516. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  7517. SeeAlso: AH=A5h,AH=A6h,AH=A8h
  7518. --------c-13A8--SI4358-----------------------
  7519. INT 13 CU - Super PC-Kwik 5.1 - ???
  7520.     AH = A8h
  7521.     SI = 4358h
  7522. Return: ???
  7523. Note:    called and used internally by Super PC-Kwik on some INT 21 calls
  7524. SeeAlso: AH=A5h,AH=A6h,AH=A7h
  7525. --------c-13A9--SI4358-----------------------
  7526. INT 13 CU - Super PC-Kwik 5.1 - EXITCODE RETRIEVAL NOTIFICATION
  7527.     AH = A9h
  7528.     SI = 4358h
  7529. Return: ???
  7530. Note:    called and used internally by Super PC-Kwik when an application issues
  7531.       INT 21/AH=4Dh
  7532. SeeAlso: AH=A5h,AH=A6h,INT 21/AH=4Dh
  7533. --------c-13AA--SI4358-----------------------
  7534. INT 13 - Super PC-Kwik v4+ - ???
  7535.     AH = AAh
  7536.     SI = 4358h
  7537.     ???
  7538. Return: ???
  7539. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7540.       this call
  7541. --------c-13AB--SI4358-----------------------
  7542. INT 13 - Super PC-Kwik v4+ - ???
  7543.     AH = ABh
  7544.     SI = 4358h
  7545.     ???
  7546. Return: ???
  7547. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7548.       this call
  7549. --------c-13AC--SI4358-----------------------
  7550. INT 13 - Super PC-Kwik v4+ - ???
  7551.     AH = ACh
  7552.     SI = 4358h
  7553.     ???
  7554. Return: ???
  7555. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7556.       this call
  7557. --------d-13AD-------------------------------
  7558. INT 13 - Priam HARD DISK CONTROLLER???
  7559.     AH = ADh
  7560.     ???
  7561. Return: ???
  7562. Note:    this call is made from Priam's EFMT.EXE (low-level formatter), probably
  7563.       to check the ROM type on the controller for their hard disk kits
  7564. SeeAlso: AH=70h
  7565. --------c-13AD--SI4358-----------------------
  7566. INT 13 - Super PC-Kwik v4+ - ???
  7567.     AH = ADh
  7568.     SI = 4358h
  7569.     ???
  7570. Return: ???
  7571. Note:    Qualitas Qcache is an OEM version of Super PC-Kwik, and thus supports
  7572.       this call
  7573. --------c-13AE--SI4358-----------------------
  7574. INT 13 - Super PC-Kwik v5.10+ - ???
  7575.     AH = AEh
  7576.     SI = 4358h
  7577.     ???
  7578. Return: ???
  7579. --------c-13B0--SI4358-----------------------
  7580. INT 13 - Super PC-Kwik v3.20+ - ???
  7581.     AH = B0h
  7582.     SI = 4358h
  7583.     ???
  7584. Return: ???
  7585. Note:    PC Tools PC-Cache 5.x is an OEM version of Super PC-Kwik, and thus
  7586.       supports this call; Qualitas Qcache does not support it
  7587. Index:    PC-Cache
  7588. --------d-13EE-------------------------------
  7589. INT 13 - SWBIOS - SET 1024-CYLINDER FLAG
  7590.     AH = EEh
  7591.     DL = drive number (80h, 81h)
  7592. Return: CF clear
  7593.        AH = 00h
  7594. Program: SWBIOS is a TSR by Ontrack Computer Systems
  7595. Desc:    the following INT 13 call will add 1024 to the specified cylinder
  7596.       number to get the actual cylinder number desired
  7597. Notes:    the flag is cleared by all INT 13 calls except AH=EEh and AH=EFh
  7598.     Disk Manager also supports these calls
  7599.     this function is also supported by HyperDisk v4.01+ and PC-Cache v5.5+,
  7600.       in order to allow caching of drives using SWBIOS to access more than
  7601.       1024 cylinders
  7602.     for software which supports that call, this function is equivalent to
  7603.       calling AH=EFh with CX=0400h
  7604. SeeAlso: AH=F9h,AH=FEh,INT 16/AX=FFA5h/CX=1111h,INT 2F/AH=DFh
  7605. Index:    PC-Cache;huge disks|Disk Manager
  7606. --------c-13EF-------------------------------
  7607. INT 13 - Ontrack Drive Rocket - SET CYLINDER OFFSET
  7608.     AH = EFh
  7609.     CX = cylinder offset for next INT 13 call
  7610.     DL = drive number (80h, 81h)
  7611. Return: CF clear
  7612.         AH = 00h
  7613. Program: Drive Rocket is a drive accelerator by Ontrack Computer Systems for
  7614.       IDE drives supporting the read multiple and write multiple commands
  7615. Desc:    the following INT 13 call will add the number given by this call to
  7616.       the specified cylinder to get the actual cylinder number, then reset
  7617.       the offset to zero
  7618. Note:    this function is also supported by the NOW! disk cache, and presumably
  7619.       newer versions of SWBIOS and Disk Manager
  7620.     for software which supports this call, AH=EEh is equivalent to calling
  7621.       this function with CX=0400h
  7622.     the cylinder offset is reset to 0 by all INT 13 called except AH=EEh
  7623.       and AH=EFh
  7624. SeeAlso: AX=7B00h
  7625. --------d-13F9-------------------------------
  7626. INT 13 - SWBIOS - INSTALLATION CHECK
  7627.     AH = F9h
  7628.     DL = drive number (80h,81h)
  7629. Return: CF clear
  7630.         DX = configuration word
  7631.         bit 15 set if other SWBIOS extensions available
  7632.     CF set on error
  7633. Program: SWBIOS is a TSR by Ontrack Computer Systems
  7634. Note:    Disk Manager also supports these calls
  7635. SeeAlso: AH=EEh
  7636. Index:    Disk Manager
  7637. --------v-13FA--DX5945-----------------------
  7638. INT 13 - PC Tools v8+ VSAFE, VWATCH - API
  7639.     AH = FAh
  7640.     DX = 5945h
  7641.     AL = function (00h-07h)
  7642. Return: varies by function
  7643.     if not installed:
  7644.         CF set
  7645.         AH = 01h
  7646. Note:    this API is identical to the ones on INT 16/AH=FAh and INT 21/AH=FAh,
  7647.       so it is listed in its entirety under INT 16/AX=FA00h and following
  7648. SeeAlso: INT 16/AX=FA00h
  7649. --------d-13FE-------------------------------
  7650. INT 13 - SWBIOS - GET EXTENDED CYLINDER COUNT
  7651.     AH = FEh
  7652.     DL = drive number (80h, 81h)
  7653. Return: CF clear
  7654.     DX = number of cylinders beyond 1024 on drive
  7655. Program: SWBIOS is a TSR by Ontrack Computer Systems
  7656. Notes:    standard INT 13/AH=08h will return a cylinder count truncated to 1024
  7657.     BIOS without this extension would return count modulo 1024
  7658.     Disk Manager also supports these calls
  7659. SeeAlso: AH=EEh
  7660. --------U-13FFFFBHAA-------------------------
  7661. INT 13 - UNIQUE UX Turbo Utility - SET TURBO MODE
  7662.     AX = FFFFh
  7663.     BH = AAh
  7664.     BL = subfunction
  7665.         00h installation check
  7666.         Return: AX = 1234h if installed
  7667.         01h turn on Turbo mode
  7668.         02h turn off Turbo mode
  7669.         03h set Turbo mode according to hardware switch
  7670.         04h set disk access to Turbo mode
  7671.         05h set disk access to Normal mode
  7672. SeeAlso: INT 15/AH=DFh
  7673. Index:    installation check;UNIQUE UX Turbo Utility
  7674. --------S-14---------------------------------
  7675. INT 14 - SERIAL - Digiboard DigiCHANNEL PC/X* Extender INT 14 (XAPCM232.SYS)
  7676. Note:    the installation check for this driver is to determine whether the
  7677.       "~DOSXAM~" character device exists
  7678. Index:    installation check;Digiboard DigiCHANNEL
  7679. --------S-1400-------------------------------
  7680. INT 14 - SERIAL - INITIALIZE PORT
  7681.     AH = 00h
  7682.     AL = port parameters
  7683.         bits 7-5 data rate (110,150,300,600,1200,2400,4800,9600 bps)
  7684.         bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
  7685.         bit 2    stop bits (set = 2, clear = 1)
  7686.         bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
  7687.     DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
  7688. Return: AH = line status (see AH=03h)
  7689.         FFh if error on Digiboard XAPCM232.SYS
  7690.     AL = modem status (see AH=03h)
  7691. Notes:    default handler is at F000h:E739h in IBM PC and 100% compatible BIOSes
  7692.     since the PCjr supports a maximum of 4800 bps, attempting to set 9600
  7693.       bps will result in 4800 bps
  7694.     various network and serial-port drivers support the standard BIOS
  7695.       functions with interrupt-driven I/O instead of the BIOS's polled I/O
  7696.     the 04/08/93 Compaq system ROM uses only the low two bits of DX
  7697. SeeAlso: AH=04h"SERIAL",AH=04h"MultiDOS",AH=05h"SERIAL",AH=57h
  7698. SeeAlso: AX=8000h"ARTICOM",AH=81h"COMM-DRV",AH=82h"COURIERS",AH=8Ch
  7699. --------S-1400-------------------------------
  7700. INT 14 - FOSSIL (Fido/Opus/Seadog Standard Interface Level) - INITIALIZE
  7701.     AH = 00h
  7702.     AL = initializing parameters
  7703.         7 - 6 - 5       4 - 3     2      1 - 0
  7704.         -BAUD RATE-       PARITY   STOP   WORD
  7705.                     BITS  LENGTH
  7706.         000 19200 bd   00 none  0: 1  00: 5
  7707.         001 38400 bd   01 odd   1: 2  01: 6
  7708.         010      300 bd   11 even      10: 7
  7709.         011      600 bd          11: 8
  7710.         100     1200 bd
  7711.         101     2400 bd
  7712.         110     4800 bd
  7713.         111     9600 bd (4800 on PCjr)
  7714.     DX = port number (0-3 or FFh if only performing non-I/O setup)
  7715. Return: AH = RS-232 status code bits
  7716.         bit 0: RDA - input data is available in buffer
  7717.         bit 1: OVRN - data has been lost
  7718.         bit 5: THRE - room is available in output buffer
  7719.         bit 6: TSRE - output buffer empty
  7720.     AL = modem status bits
  7721.         bit 3: always 1
  7722.         bit 7: DCD - carrier detect
  7723. SeeAlso: AH=05h"FOSSIL",AH=81h"COMM-DRV",AH=82h"COURIERS"
  7724. --------S-1400-------------------------------
  7725. INT 14 - MBBIOS - INITIALIZE PORT
  7726.     AH = 00h
  7727.     AL = port parameters
  7728.         bits 7-5 data rate
  7729.             (normally 110,150,300,600,1200,2400,4800,9600 bps;
  7730.             9600,14400,19200,28800,38400,57600,115200,330400 bps
  7731.             if the high-speed option is set)
  7732.         bits 4-3 parity (00 or 10 = none, 01 = odd, 11 = even)
  7733.         bit 2    stop bits (set = 2, clear = 1)
  7734.         bits 1-0 data bits (00 = 5, 01 = 6, 10 = 7, 11 = 8)
  7735.     DX = port number
  7736. Return: AH = line status (see AH=03h)
  7737.     AL = modem status (see AH=03h)
  7738. Note:    MBBIOS was written by H. Roy Engehausen
  7739. SeeAlso: AH=04h"MBBIOS",AH=05h"MBBIOS",AH=09h"MBBIOS"
  7740. --------N-1400--DXFFFF-----------------------
  7741. INT 14 - Connection Manager - MODIFY DEFAULT CONNECTION PARAMETERS
  7742.     AH = 00h
  7743.     DX = FFFFh
  7744.     ES:DI -> vector string specifying new parameters
  7745. Return: AH = return code (00h,03h) (see below)
  7746. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  7747.       serial ports over an IPX or NetBIOS-based network
  7748. Note:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  7749.       function, but redirects the port over the network; if DX is any other
  7750.       value, the call is chained
  7751. SeeAlso: AH=04h/DX=FFFFh,AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFh
  7752.  
  7753. Values for return code:
  7754.  00h    successful
  7755.  01h    no such connection
  7756.  02h    invalid connection ID
  7757.  03h    invalid subvector found
  7758.  04h    communication error (check BH)
  7759.  06h    insufficient resources, retry later
  7760.  FFh    no data available
  7761. --------S-1401-------------------------------
  7762. INT 14 - SERIAL - WRITE CHARACTER TO PORT
  7763.     AH = 01h
  7764.     AL = character to write
  7765.     DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
  7766. Return: AH bit 7 clear if successful
  7767.     AH bit 7 set on error
  7768.     AH bits 6-0 = port status (see AH=03h)
  7769. Notes:    various network and serial-port drivers support the standard BIOS
  7770.       functions with interrupt-driven I/O instead of the BIOS's polled I/O
  7771.     the 04/08/93 Compaq system ROM uses only the low two bits of DX
  7772. SeeAlso: AH=02h,AH=0Bh"FOSSIL",AX=8000h"ARTICOM",AH=89h
  7773. --------N-1401--DXFFFF-----------------------
  7774. INT 14 - Connection Manager - SEND CHARACTER
  7775.     AH = 01h
  7776.     DX = FFFFh
  7777.     BH = character to send
  7778. Return: AH = return code (00h-02h,06h) (see AH=00h/DX=FFFFh)
  7779. Notes:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  7780.       function, but redirects the port over the network; if DX is any other
  7781.       value, the call is chained
  7782.     this function is provided primarily for compatibility; AH=06h/DX=FFFFh
  7783.       is the preferred function because it provides better performance
  7784. SeeAlso: AH=02h/DX=FFFFh,AX=06h/DX=FFFFh,AH=09h/DX=FFFFh
  7785. --------S-1402-------------------------------
  7786. INT 14 - SERIAL - READ CHARACTER FROM PORT
  7787.     AH = 02h
  7788.     AL = 00h (ArtiCom)
  7789.     DX = port number (00h-03h (04h-43h for Digiboard XAPCM232.SYS))
  7790. Return: AH = line status (see AH=03h)
  7791.     AL = received character if AH bit 7 clear
  7792. Notes:    will timeout if DSR is not asserted, even if function 03h returns
  7793.       data ready
  7794.     various network and serial-port drivers support the standard BIOS
  7795.       functions with interrupt-driven I/O instead of the BIOS's polled I/O
  7796.     the 04/08/93 Compaq system ROM uses only the low two bits of DX
  7797. SeeAlso: AH=01h,AH=02h"FOSSIL",AH=84h,AH=FCh
  7798. --------S-1402-------------------------------
  7799. INT 14 - FOSSIL - RECEIVE CHARACTER WITH WAIT
  7800.     AH = 02h
  7801.     DX = port number (0-3)
  7802. Return: AL = character received
  7803.     AH = 00h
  7804. SeeAlso: AH=01h,AH=02h"SERIAL"
  7805. --------N-1402--DXFFFF-----------------------
  7806. INT 14 - Connection Manager - RECEIVE CHARACTER
  7807.     AH = 02h
  7808.     DX = FFFFh
  7809.     BH = character to send
  7810. Return: AH = return code (00h-02h,04h,FFh) (see AH=00h/DX=FFFFh)
  7811.     BH = line status (see AH=03h)
  7812.     AL = received character (if any)
  7813. Notes:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  7814.       function, but redirects the port over the network; if DX is any other
  7815.       value, the call is chained
  7816.     this function is provided primarily for compatibility; AH=07h/DX=FFFFh
  7817.       is the preferred function because it provides better performance
  7818. SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFh,AH=06h/DX=FFFFh
  7819. --------S-1403-------------------------------
  7820. INT 14 - SERIAL - GET PORT STATUS
  7821.     AH = 03h
  7822.     AL = 00h (ArtiCom)
  7823.     DX = port number (00h-03h) (04h-43h for Digiboard XAPCM232.SYS)
  7824. Return: AH = line status (see below)
  7825.     AL = modem status (see below)
  7826.     AX = 9E00h if disconnected (ArtiCom)
  7827. Note:    the 04/08/93 Compaq system ROM uses only the low two bits of DX
  7828. SeeAlso: AH=00h,AH=07h"MultiDOS",AX=8000h"ARTICOM",AH=81h"COURIERS",AX=FD02h
  7829.  
  7830. Bitfields for line status:
  7831.  bit 7    timeout
  7832.  bit 6    transmit shift register empty
  7833.  bit 5    transmit holding register empty
  7834.  bit 4    break detected
  7835.  bit 3    framing error
  7836.  bit 2    parity error
  7837.  bit 1    overrun error
  7838.  bit 0    receive data ready
  7839.  
  7840. Bitfields for modem status:
  7841.  bit 7    carrier detect
  7842.  bit 6    ring indicator
  7843.  bit 5    data set ready
  7844.  bit 4    clear to send
  7845.  bit 3    delta carrier detect
  7846.  bit 2    trailing edge of ring indicator
  7847.  bit 1    delta data set ready
  7848.  bit 0    delta clear to send
  7849. --------N-1403--DXFFFF-----------------------
  7850. INT 14 - Connection Manager - RETURN COMMUNICATION PORT STATUS
  7851.     AH = 03h
  7852.     DX = FFFFh
  7853.     AL = connection ID
  7854. Return: AH = return code (00h-02h) (see AH=00h/DX=FFFFh)
  7855.     BH = line status (see below)
  7856.     BL = modem status (see AH=03h above) (only bits 4,5,7; all others zero)
  7857. Notes:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  7858.       function, but redirects the port over the network; if DX is any other
  7859.       value, the call is chained
  7860. SeeAlso: AH=00h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Ah/DX=FFFFh
  7861.  
  7862. Bitfields for line status:
  7863.  bit 7    CTS changed
  7864.  bit 6    current CTS state
  7865.  bit 5    timeout
  7866.  bit 4    break
  7867.  bit 3    framing error
  7868.  bit 2    parity error
  7869.  bit 1    overrun
  7870.  bit 0    current carrier state (0 active, 1 no carrier)
  7871. --------S-1404-------------------------------
  7872. INT 14 - SERIAL - EXTENDED INITIALIZE (CONVERTIBLE,PS)
  7873.     AH = 04h
  7874.     AL = break status
  7875.         00h if break
  7876.         01h if no break
  7877.     BH = parity (see below)
  7878.     BL = number of stop bits
  7879.         00h one stop bit
  7880.         01h two stop bits (1.5 if 5 bit word length)
  7881.     CH = word length (see below)
  7882.     CL = bps rate (see below)
  7883.     DX = port number
  7884. Return: AX = port status code (see AH=00h)
  7885. SeeAlso: AH=00h,AH=1Eh,AX=8000h"ARTICOM"
  7886.  
  7887. Values for parity:
  7888.  00h    no parity
  7889.  01h    odd parity
  7890.  02h    even parity
  7891.  03h    stick parity odd
  7892.  04h    stick parity even
  7893.  
  7894. Values for word length:
  7895.  00h    5 bits
  7896.  01h    6 bits
  7897.  02h    7 bits
  7898.  03h    8 bits
  7899.  
  7900. Values for bps rate:
  7901.  00h    110
  7902.  01h    150
  7903.  02h    300
  7904.  03h    600
  7905.  04h    1200
  7906.  05h    2400
  7907.  06h    4800
  7908.  07h    9600
  7909.  08h    19200
  7910. --------S-1404-------------------------------
  7911. INT 14 - FOSSIL - INITIALIZE DRIVER
  7912.     AH = 04h
  7913.     DX = port number
  7914.     optionally BX=4F50h
  7915.            ES:CX -> byte to be set upon ^C
  7916. Return: AX = 1954h (if successful)
  7917.     BL = maximum function number supported (excluding 7Eh and above)
  7918.     BH = revision of FOSSIL specification supported
  7919.     DTR is raised
  7920. Note:    the word at offset 6 in the interrupt handler contains 1954h, and the
  7921.       following byte contains the maximum function number supported; this
  7922.       can serve as an installation check
  7923. SeeAlso: AH=05h"FOSSIL",AH=1Ch,INT 11/AH=BCh
  7924. Index:    installation check;FOSSIL
  7925. --------S-1404-------------------------------
  7926. INT 14 - MultiDOS Plus IODRV - INITIALIZE PORT
  7927.     AH = 04h
  7928. Return: port initialized; if Hayes-compatible modem, a connection has been
  7929.       established
  7930. Note:    the port number is stored at offset BEh in the Task Control Block
  7931.       (see INT 15/AH=13h"MultiDOS")
  7932. SeeAlso: AH=00h,AH=05h"MultiDOS",AH=20h"MultiDOS",INT 15/AH=13h"MultiDOS"
  7933. --------S-1404-------------------------------
  7934. INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE BAUD RATE
  7935.     AH = 04h
  7936.     AL = initializing parameters
  7937.         bits 7-5 unused
  7938.         bits 4,3: parity (00 none, 01 odd, 11 even)
  7939.         bit 2: stop bits (0 = one, 1 = two)
  7940.         bits 1,0: data bits (00 = five, 01 = six, 10 = seven, 11 = eight)
  7941.     BX = baud rate
  7942.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  7943. Return: AH = status
  7944.         00h successful
  7945.         FFh error
  7946. SeeAlso: AH=05h"Digiboard"
  7947. --------S-1404-------------------------------
  7948. INT 14 - MBBIOS - INSTALLATION CHECK
  7949.     AH = 04h
  7950.     DX = port number
  7951. Return: AX = AA55h if installed on specified port
  7952. SeeAlso: AH=00h"MBBIOS",AH=09h"MBBIOS"
  7953. --------N-1404--DXFFFF-----------------------
  7954. INT 14 - Connection Manager - OPEN COMMUNICATION
  7955.     AH = 04h
  7956.     DX = FFFFh
  7957.     ES:DI -> Connection Request protocol vector (see below)
  7958. Return: AH = return code
  7959.         00h successful
  7960.         AL = connection ID
  7961.         BH = connection type
  7962.             00h direct connection or no dialing
  7963.             01h Connection Server dialed phone
  7964.         01h no response from Connection Server
  7965.         03h invalid request
  7966. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  7967.       serial ports over an IPX or NetBIOS-based network
  7968. Desc:    initiate a connection to the Connection Server listed in the current
  7969.       Client parameter set
  7970. Notes:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  7971.       function, but redirects the port over the network; if DX is any other
  7972.       value, the call is chained
  7973.     all subvectors of the Connection Request vector are optional; if
  7974.       missing, default values are provided by the default connection
  7975.       parameter set
  7976. SeeAlso: AH=00h/DX=FFFFh,AH=05h/DX=FFFFh,AH=06h/DX=FFFFh,AH=07h/DX=FFFFh
  7977. SeeAlso: AH=0Ah/DX=FFFFh,AH=0Ch/DX=FFFFh
  7978.  
  7979. Format of protocol command vector:
  7980. Offset    Size    Description
  7981.  00h    WORD    (big-endian) total length of command (including this word)
  7982.  02h    WORD    (big-endian) command code
  7983.         EF01h Connection Request
  7984.         EF06h Modify Connection Parameters
  7985.  04h  N BYTEs    list of subvectors (see below)
  7986.         allowable subvector types are 01h-04h,17h,18h for command code
  7987.           EF01h; 03h,04h for command code EF06h
  7988.  
  7989. Values for subvector type code:
  7990.  01h    Connection ID
  7991.  02h    Destination ID
  7992.  03h    Asynchronous line parameters
  7993.  04h    Data transfer parameters
  7994.  09h    Line speed
  7995.  0Ah    Serial coding
  7996.  0Bh    Packet size
  7997.  0Ch    Timers
  7998.  0Dh    Special characters
  7999.  0Eh    Target ID
  8000.  0Fh    Telephone number
  8001.  10h    ASCII destination ID
  8002.  11h    Parity
  8003.  12h    Bits per character
  8004.  13h    Number of stop bits
  8005.  14h    Packet timer
  8006.  15h    Intercharacter timer
  8007.  17h    Flags
  8008.  18h    Parameter ranges
  8009.  19h    Flow control
  8010.  
  8011. Format of subvector:
  8012. Offset    Size    Description
  8013.  00h    BYTE    length of subvector
  8014.  01h    BYTE    type code (see above)
  8015.  02h N-2 BYTEs    data, which may include subvectors
  8016.  
  8017. Format of Connection ID subvector:
  8018. Offset    Size    Description
  8019.  00h    BYTE    03h (length)
  8020.  01h    BYTE    01h (subvector "Connection ID")
  8021.  02h    BYTE    connection ID
  8022.  
  8023. Format of Destination ID subvector:
  8024. Offset    Size    Description
  8025.  00h    BYTE    length
  8026.  01h    BYTE    02h (subvector "Destination ID")
  8027.  02h  N BYTEs    subvector(s) of type 0Eh, 0Fh, or 10h
  8028.  
  8029. Format of Asynchronous line parameters subvector:
  8030. Offset    Size    Description
  8031.  00h    BYTE    length
  8032.  01h    BYTE    03h (subvector "Asynchronous line parameters")
  8033.  02h  N BYTEs    subvector(s) of type 09h, 0Ah, or 19h
  8034.  
  8035. Format of Data transfer parameters subvector:
  8036. Offset    Size    Description
  8037.  00h    BYTE    length
  8038.  01h    BYTE    04h (subvector "Data transfer parameters")
  8039.  02h  N BYTEs    subvector(s) of type 0Bh, 0Ch, or 0Dh
  8040.  
  8041. Format of Line speed subvector:
  8042. Offset    Size    Description
  8043.  00h    BYTE    04h (length)
  8044.  01h    BYTE    09h (subvector "Line speed")
  8045.  02h    WORD    bit map, highest set bit selects speed
  8046.         bit 0: 2400
  8047.         bits 1-7: 1800, 1200, 600, 300, 115200, 150, 110 bps
  8048.         bits 8-15: 57600, 38400, 19200, 14400, 9600, 7200, 4800, 3600
  8049.  
  8050. Format of Serial coding subvector:
  8051. Offset    Size    Description
  8052.  00h    BYTE    length
  8053.  01h    BYTE    0Ah (subvector "Serial coding")
  8054.  02h  N BYTEs    subvector(s) of type 11h, 12h, or 13h
  8055.  
  8056. Format of Packet size subvector:
  8057. Offset    Size    Description
  8058.  00h    BYTE    04h (length)
  8059.  01h    BYTE    0Bh (subvector "Packet size")
  8060.  02h    WORD    (big-endian) packet size, 1 to 1024
  8061.  
  8062. Format of Timers subvector:
  8063. Offset    Size    Description
  8064.  00h    BYTE    length
  8065.  01h    BYTE    0Ch (subvector "Timers")
  8066.  02h  8 BYTEs    subvector of type 14h or 15h
  8067.  
  8068. Format of Special characters subvector:
  8069. Offset    Size    Description
  8070.  00h    BYTE    length
  8071.  01h    BYTE    0Dh (subvector "Special characters")
  8072.  02h  N BYTEs    list of ASCII characters to be used as EOM or EOB
  8073.  
  8074. Format of Target ID:
  8075. Offset    Size    Description
  8076.  00h    BYTE    length
  8077.  01h    BYTE    0Eh (subvector "Target ID")
  8078.  02h  N BYTEs    target ID, 1-16 bytes
  8079.  
  8080. Format of Telephone number subvector:
  8081. Offset    Size    Description
  8082.  00h    BYTE    length
  8083.  01h    BYTE    0Fh (subvector "Telephone number")
  8084.  02h  N BYTEs    telephone number
  8085.  
  8086. Format of ASCII destination ID subvector:
  8087. Offset    Size    Description
  8088.  00h    BYTE    length
  8089.  01h    BYTE    10h (subvector "ASCII destination ID")
  8090.  02h  N BYTEs    destination ID
  8091.  
  8092. Format of Parity subvector:
  8093. Offset    Size    Description
  8094.  00h    BYTE    03h (length)
  8095.  01h    BYTE    11h (subvector "Parity")
  8096.  02h    BYTE    parity type
  8097.         bit 7: odd
  8098.         bit 6: even
  8099.         bit 5: mark
  8100.         bit 4: space
  8101.         bit 3: none
  8102.  
  8103. Format of Bits per character subvector:
  8104. Offset    Size    Description
  8105.  00h    BYTE    03h (length)
  8106.  01h    BYTE    12h (subvector "Bits per character")
  8107.  02h    BYTE    bits per character
  8108.         bit 7: seven
  8109.         bit 6: eight
  8110.  
  8111. Format of Number of stop bits subvector:
  8112. Offset    Size    Description
  8113.  00h    BYTE    03h (length)
  8114.  01h    BYTE    13h (subvector "Number of stop bits")
  8115.  02h    BYTE    stop bits
  8116.         bit 7: one
  8117.         bit 6: 1.5
  8118.         bit 5: two
  8119.  
  8120. Format of Packet timer and Intercharacter timer subvectors:
  8121. Offset    Size    Description
  8122.  00h    BYTE    04h (length)
  8123.  01h    BYTE    subvector type
  8124.         14h Packet timer
  8125.         15h Intercharacter timer
  8126.  02h    WORD    (big-endian) unit of value representing 20ms
  8127.  
  8128. Format of Flags subvector:
  8129. Offset    Size    Description
  8130.  00h    BYTE    03h (length)
  8131.  01h    BYTE    17h (subvector "Flags")
  8132.  02h    BYTE    flags
  8133.         bit 7: queueing requested
  8134.  
  8135. Format of Parameter ranges subvector:
  8136. Offset    Size    Description
  8137.  00h    BYTE    length
  8138.  01h    BYTE    18h (subvector "Parameter ranges")
  8139.  02h  N BYTEs    subvector(s) of type 09h, 11h, 12h, or 13h
  8140.  
  8141. Format of Flow control subvector:
  8142. Offset    Size    Description
  8143.  00h    BYTE    length (02h-04h)
  8144.  01h    BYTE    19h (subvector "Flow control")
  8145.  02h    BYTE    XOFF character
  8146.  03h    BYTE    XON character
  8147. Note:    if length is 02h, flow control is disabled; if length is 03h, any
  8148.       character will be accepted as XON after an XOFF
  8149. --------S-140400-----------------------------
  8150. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INSTALLATION CHECK
  8151.     AX = 0400h
  8152. Return: AX = 0FF0h
  8153. SeeAlso: AX=0401h,AX=0408h
  8154. --------S-140401-----------------------------
  8155. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - INITIALIZE MODE
  8156.     AX = 0401h
  8157.     CX = mode
  8158. SeeAlso: AX=0400h,AX=0402h
  8159. --------S-140402-----------------------------
  8160. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - EXTENDED INITIALIZE
  8161.     AX = 0402h
  8162.     CL = parameters
  8163. SeeAlso: AX=0400h,AX=0401h
  8164. --------S-140403-----------------------------
  8165. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - SET TIMEOUT
  8166.     AX = 0403h
  8167.     CX = timeout
  8168. SeeAlso: AX=0400h
  8169. --------S-140404-----------------------------
  8170. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE RECEIVE BUFFER
  8171.     AX = 0404h
  8172. SeeAlso: AX=0400h,AX=0405h,AX=0406h
  8173. --------S-140405-----------------------------
  8174. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET RECEIVE BUFFER COUNT
  8175.     AX = 0405h
  8176. Return: AX = number of characters in buffer
  8177. SeeAlso: AX=0400h,AX=0404h,AX=0407h
  8178. --------S-140406-----------------------------
  8179. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - CLEAR THE TRANSMIT BUFFER
  8180.     AX = 0406h
  8181. SeeAlso: AX=0400h,AX=0404h,AX=0407h
  8182. --------S-140407-----------------------------
  8183. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - GET TRANSMIT BUFFER COUNT
  8184.     AX = 0407h
  8185. Return: AX = number of characters in the buffer
  8186. SeeAlso: AX=0400h,AX=0405h,AX=0406h
  8187. --------S-140408-----------------------------
  8188. INT 14 - Microsoft Systems Journal TSRCOMM INT14 - UNINSTALL
  8189.     AX = 0408h
  8190. SeeAlso: AX=0400h
  8191. --------S-1405-------------------------------
  8192. INT 14 - SERIAL - EXTENDED COMMUNICATION PORT CONTROL (CONVERTIBLE,PS)
  8193.     AH = 05h
  8194.     AL = function
  8195.         00h read modem control register
  8196.           Return: BL = modem control register (see below)
  8197.               AH = status
  8198.         01h write modem control register
  8199.           BL = modem control register (see below)
  8200.           Return: AX = status
  8201.     DX = port number
  8202. Note:    also supported by ArtiCom
  8203. SeeAlso: AH=00h,AH=1Fh,AX=8000h"ARTICOM",AH=FBh
  8204.  
  8205. Bitfields for modem control register:
  8206.  bit 0    data terminal ready
  8207.  bit 1    request to send
  8208.  bit 2    OUT1
  8209.  bit 3    OUT2
  8210.  bit 4    LOOP
  8211.  bits 5-7 reserved
  8212. --------S-1405-------------------------------
  8213. INT 14 - FOSSIL - DEINITIALIZE DRIVER
  8214.     AH = 05h
  8215.     DX = port number
  8216. Return: none
  8217.     DTR is not affected
  8218. SeeAlso: AH=00h,AH=04h"FOSSIL",AH=1Dh,AH=8Dh
  8219. --------S-1405-------------------------------
  8220. INT 14 - MultiDOS Plus IODRV - READ CHARACTER FROM PORT
  8221.     AH = 05h
  8222.     AL = timeout in seconds (00h = never)
  8223. Return: AL = status
  8224.         00h successful
  8225.         AH = character read
  8226.         01h read error
  8227.         02h timed out
  8228.         other modem status (CTS, DSR) changed
  8229. Note:    the port number is stored at offset BEh in the Task Control Block
  8230. SeeAlso: AH=02h,AH=04h"MultiDOS",AH=06h"MultiDOS",AH=22h"MultiDOS"
  8231. SeeAlso: INT 15/AH=13h"MultiDOS"
  8232. --------S-1405-------------------------------
  8233. INT 14 - Digiboard DigiCHANNEL PC/X* - CHANGE PROTOCOL
  8234.     AH = 05h
  8235.     AL = protocol
  8236.         bits 7-4 unused
  8237.         bit 3: RTS/CTS
  8238.         bit 2: DSR
  8239.         bits 1,0: XON/XOFF
  8240.     BH = new XOFF character (00h = current)
  8241.     BL = new XON character (00h = current)
  8242.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8243. Return: AH = status
  8244.         00h successful
  8245.         FFh error
  8246. SeeAlso: AH=04h"Digiboard"
  8247. --------S-1405-------------------------------
  8248. INT 14 - MBBIOS - DROP DTR AND RTS
  8249.     AH = 05h
  8250.     DX = port number
  8251. Return: none
  8252. SeeAlso: AH=00h"MBBIOS",AH=06h"MBBIOS",AH=06h"FOSSIL"
  8253. --------S-1405-------------------------------
  8254. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHANGE PORT PROTOCOL
  8255.     AH = 05h
  8256.     AL = bit 7: set to enable/disable CD monitoring, clear to set protocol
  8257.          ---bit 7 set---
  8258.          bit 4: CD monitoring enabled
  8259.          bit 5: automatic restart enabled
  8260.          ---bit 7 clear---
  8261.          bit 0: receive XON/XOFF
  8262.          bit 1: transmit XON/XOFF
  8263.          bit 2: DTR/DSR
  8264.          bit 3: RTS/CTS
  8265.     BH = new XOFF character
  8266.     BL = new XON character
  8267.     DX = port number
  8268. Return: AH = FFh if invalid protocol
  8269. SeeAlso: AH=00h,AH=04h"SERIAL",AH=06h"PC-MOS"
  8270. --------N-1405--DXFFFF-----------------------
  8271. INT 14 - Connection Manager - CLOSE COMMUNICATION
  8272.     AH = 05h
  8273.     DX = FFFFh
  8274.     AL = connection ID
  8275. Return: AH = return code
  8276.         00h successful
  8277.         01h no such connection
  8278.         02h invalid connection ID
  8279.         AL = correct connection ID
  8280. Desc:    terminate existing connection to allow another one to be established
  8281. Note:    if DX is 0-3 on entry, Connection Manager emulates the standard BIOS
  8282.       function, but redirects the port over the network; if DX is any other
  8283.       value, the call is chained
  8284. SeeAlso: AH=04h/DX=FFFFh,AH=0Dh/DX=FFFFh
  8285. --------S-1406-------------------------------
  8286. INT 14 - FOSSIL - RAISE/LOWER DTR
  8287.     AH = 06h
  8288.     DX = port
  8289.     AL = DTR state to be set
  8290.         00h = lower
  8291.         01h = raise
  8292. SeeAlso: AH=05h"MBBIOS",AH=1Ah
  8293. --------S-1406-------------------------------
  8294. INT 14 - MultiDOS Plus IODRV - WRITE CHARACTER TO PORT
  8295.     AH = 06h
  8296.     AL = character
  8297. Return: AL = status
  8298.         00h successful
  8299. Notes:    the port number is stored at offset BEh in the Task Control Block
  8300.     if output queue is full, the calling task is blocked until the
  8301.       character can be stored
  8302. SeeAlso: AH=01h,AH=04h"MultiDOS",AH=05h"MultiDOS",AH=21h"MultiDOS"
  8303. SeeAlso: INT 15/AH=13h"MultiDOS"
  8304. --------S-1406-------------------------------
  8305. INT 14 - MBBIOS - RAISE DTR AND RTS
  8306.     AH = 06h
  8307.     DX = port number
  8308. Return: none
  8309. SeeAlso: AH=05h"MBBIOS",AH=07h"MBBIOS"
  8310. --------S-1406-------------------------------
  8311. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DRIVER 'ID' FUNCTION
  8312.     AH = 06h
  8313.     DX = port number
  8314. Return: AH bit 7 set
  8315.     AL = number of highest function supported by driver
  8316. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  8317.       operating system by The Software Link, Inc.
  8318. SeeAlso: AH=18h"PC-MOS"
  8319. --------N-1406-------------------------------
  8320. INT 14 - TelAPI - WRITE???
  8321.     AH = 06h
  8322.     CX = number of characters to write???
  8323.     DX = port number
  8324.     ES:DI -> buffer containing data???
  8325. Return: AX = number of characters actually sent??? (negative on error)
  8326.     CX = ???
  8327. Note:    under Novell TELAPI.EXE v4.01, this function and AH=07h are implemented
  8328.       with identical code
  8329. SeeAlso: AH=07h"TelAPI",AH=E0h"TelAPI"
  8330. --------N-1406--DXFFFF-----------------------
  8331. INT 14 - Connection Manager - SEND CHARACTER BLOCK
  8332.     AH = 06h
  8333.     DX = FFFFh
  8334.     AL = connection ID
  8335.     CX = number of characters to send
  8336.     ES:DI -> buffer containing data to be sent
  8337. Return: AH = return code (see AH=00h/DX=FFFFh)
  8338. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8339.       serial ports over an IPX or NetBIOS-based network
  8340. SeeAlso: AH=04h/DX=FFFFh,AH=07h/DX=FFFFh,AH=09h/DX=FFFFh
  8341. --------S-1407-------------------------------
  8342. INT 14 - FOSSIL - RETURN TIMER TICK PARAMETERS
  8343.     AH = 07h
  8344. Return: AL = timer tick interrupt number
  8345.     AH = ticks per second on interrupt number in AL
  8346.     DX = approximate number of milliseconds per tick
  8347. SeeAlso: AH=16h
  8348. --------S-1407-------------------------------
  8349. INT 14 - MultiDOS Plus IODRV - GET PORT STATUS
  8350.     AH = 07h
  8351. Return: CL = modem status (see AH=03h)
  8352.     CH = character at head of input queue (if any)
  8353.     DX = number of characters in input queue
  8354. Note:    the port number is stored at offset BEh in the Task Control Block
  8355. SeeAlso: AH=03h,AH=05h"MultiDOS",AH=08h"MultiDOS",AH=09h"MultiDOS"
  8356. SeeAlso: AH=23h"MultiDOS",INT 15/AH=13h"MultiDOS"
  8357. --------S-1407-------------------------------
  8358. INT 14 - MBBIOS - SEND BREAK
  8359.     AH = 07h
  8360.     DX = port number
  8361. Return: none
  8362. SeeAlso: AH=06h"MBBIOS"
  8363. --------S-1407-------------------------------
  8364. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SEND RS-232 BREAK
  8365.     AH = 07h
  8366.     BX = duration of break in clock ticks
  8367.     DX = port number
  8368. Return: nothing
  8369. --------N-1407-------------------------------
  8370. INT 14 - TelAPI - WRITE???
  8371.     AH = 07h
  8372.     CX = number of characters to write???
  8373.     DX = port number
  8374.     ES:DI -> buffer containing data???
  8375. Return: AX = number of characters actually sent??? (negative on error)
  8376.     CX = ???
  8377. Note:    under Novell TELAPI.EXE v4.01, this function and AH=06h are implemented
  8378.       with identical code
  8379. SeeAlso: AH=06h"TelAPI",AH=E0h"TelAPI"
  8380. --------N-1407--DXFFFF-----------------------
  8381. INT 14 - Connection Manager - RECEIVE CHARACTER BLOCK
  8382.     AH = 07h
  8383.     DX = FFFFh
  8384.     AL = connection ID
  8385.     BL = flag
  8386.         00h wait for data
  8387.         nonzero do not wait if no data avaiable
  8388.     CX = size of receive buffer
  8389.     ES:DI -> buffer for received characters
  8390. Return: AH = return code (00h-02h,04h,FFh) (see AH=00h/DX=FFFFh)
  8391.     BH = line status (see AH=03h/DX=FFFFh)
  8392.     CX = number of characters received
  8393. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8394.       serial ports over an IPX or NetBIOS-based network
  8395. SeeAlso: AH=01h/DX=FFFFh,AH=04h/DX=FFFFh,AH=06h/DX=FFFFh
  8396. --------S-1408-------------------------------
  8397. INT 14 - FOSSIL - FLUSH OUTPUT BUFFER WAITING TILL ALL OUTPUT IS DONE
  8398.     AH = 08h
  8399.     DX = port number
  8400. SeeAlso: AH=09h"FOSSIL"
  8401. --------S-1408-------------------------------
  8402. INT 14 - MultiDOS Plus 4.0 IODRV - GET AND RESET PORT LINE STATUS
  8403.     AH = 08h
  8404. Return: AL = line status (see AH=03h)
  8405.     AH destroyed
  8406. Notes:    the port number is stored at offset BEh in the Task Control Block
  8407.     on every line status change, the line status is ORed with the line
  8408.       status accumulator; this function returns the accumulator and clears
  8409.       it
  8410. SeeAlso: AH=03h,AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
  8411. --------S-1408-------------------------------
  8412. INT 14 - Digiboard DigiCHANNEL PC/X* - ALTERNATE STATUS CHECK
  8413.     AH = 08h
  8414.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8415. Return: AH = RS232 status bits (see AH=03h)
  8416.     ZF set if no characters queued
  8417.     ZF clear if character available
  8418.         AL = next character
  8419. SeeAlso: AH=03h,AH=08h"PC-MOS",AH=09h"Digiboard"
  8420. --------S-1408-------------------------------
  8421. INT 14 - MBBIOS - NON-DESTRUCTIVE READ
  8422.     AH = 08h
  8423.     DX = port number
  8424. Return: AL = character (if AH bit 0 set)
  8425.     AH = status (see AH=03h)
  8426. SeeAlso: AH=0Bh"MBBIOS",AH=0Ch"FOSSIL"
  8427. --------S-1408-------------------------------
  8428. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STATUS CHECK
  8429.     AH = 08h
  8430.     DX = port number
  8431. Return: CF set if carrier loss detected
  8432.     ZF set if input buffer empty
  8433.     ZF clear if characters available
  8434.         AL = next character dequeued
  8435. --------N-1408--DXFFFF-----------------------
  8436. INT 14 - Connection Manager - RETURN DEFAULT CONNECTION PARAMETERS
  8437.     AH = 08h
  8438.     DX = FFFFh
  8439.     CX = size of buffer for parameters or 0000h to get length
  8440.     ES:DI -> buffer for parameter vector (see AH=04h/DX=FFFFh)
  8441. Return: AH = return code
  8442.         00h successful
  8443.         CX = number of bytes required (if CX=0000h on entry)
  8444.         CX = number of bytes omitted for lack of space (if CX nonzero)
  8445.         nonzero invalid request
  8446. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8447.       serial ports over an IPX or NetBIOS-based network
  8448. SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFh
  8449. --------S-1409-------------------------------
  8450. INT 14 - FOSSIL - PURGE OUTPUT BUFFER THROWING AWAY ALL PENDING OUTPUT
  8451.     AH = 09h
  8452.     DX = port number
  8453. SeeAlso: AH=08h"FOSSIL",AH=0Ah"FOSSIL",AH=88h
  8454. --------S-1409-------------------------------
  8455. INT 14 - MultiDOS Plus IODRV - RESET PORT STATUS
  8456.     AH = 09h
  8457. Return: modem status byte cleared
  8458. Note:    the port number is stored at offset BEh in the Task Control Block
  8459. SeeAlso: AH=04h"MultiDOS",AH=07h"MultiDOS",INT 15/AH=13h"MultiDOS"
  8460. --------S-1409-------------------------------
  8461. INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR BUFFERS
  8462.     AH = 09h
  8463.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8464. Return: AH = status
  8465.         00h successful
  8466.         FFh error
  8467. SeeAlso: AH=08h"Digiboard",AH=0Ah"Digiboard",AH=10h"Digiboard"
  8468. --------S-1409-------------------------------
  8469. INT 14 - MBBIOS - GET/SET OPTIONS
  8470.     AH = 09h
  8471.     AL = option byte (see below)
  8472.     DX = port number???
  8473. Return: AL = old option byte
  8474. SeeAlso: AH=00h"MBBIOS",AH=04h"MBBIOS",AH=10h"FOSSIL"
  8475.  
  8476. Bitfields for option byte:
  8477.  bit 0    transmit buffering enabled
  8478.  bit 2    hardware handshaking enabled
  8479.  bit 5    high-speed option enabled (see AH=00h"MBBIOS")
  8480.  other bits reserved
  8481. --------S-1409-------------------------------
  8482. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RESET I/O BUFFER POINTERS
  8483.     AH = 09h
  8484.     DX = port number
  8485. Return: nothing
  8486. SeeAlso: AH=13h"PC-MOS"
  8487. --------N-1409--DXFFFF-----------------------
  8488. INT 14 - Connection Manager - SEND BREAK
  8489.     AH = 09h
  8490.     DX = FFFFh
  8491.     AL = connection ID
  8492. Return: AH = return code (00h-02h) (see AH=00h/DX=FFFFh)
  8493. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8494.       serial ports over an IPX or NetBIOS-based network
  8495. SeeAlso: AH=02h/DX=FFFFh,AH=03h/DX=FFFFh
  8496. --------S-140A-------------------------------
  8497. INT 14 - FOSSIL - PURGE INPUT BUFFER THROWING AWAY ALL PENDING INPUT
  8498.     AH = 0Ah
  8499.     DX = port number
  8500. SeeAlso: AH=09h"FOSSIL",AH=85h
  8501. --------S-140A-------------------------------
  8502. INT 14 - Digiboard DigiCHANNEL PC/X* - INPUT QUEUE CHECK
  8503.     AH = 0Ah
  8504.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8505. Return: AX = number of characters available in buffer
  8506. Note:    this function is also supported by the PC-MOS/386 v5.01 $serial.sys
  8507. SeeAlso: AH=09h"Digiboard",AH=0Dh"Digiboard"
  8508. --------S-140A-------------------------------
  8509. INT 14 - MBBIOS - WRITE BUFFER
  8510.     AH = 0Ah
  8511.     CX = count
  8512.     ES:DI -> buffer
  8513. Return: AX = status (see AH=03h)
  8514.     CX = unsent character count
  8515.     DI updated
  8516. Note:    the PACCOM version of MBBIOS does not use CX or ES:DI; instead, ES
  8517.       contains the segment of a buffer containing the packet to be sent,
  8518.       which by default will be freed once the packet has been sent.  Use
  8519.       AH=0Ch"MBBIOS" to allocate the buffer.
  8520. SeeAlso: AH=01h,AH=0Bh"MBBIOS",AH=0Ch"MBBIOS",AH=19h"FOSSIL"
  8521.  
  8522. Format of PACCOM buffer:
  8523. Offset    Size    Description
  8524.  00h 504 BYTEs    data area
  8525. 1F8h    WORD    length of data in data area
  8526. 1FAh    BYTE    flags/status
  8527.         bit 7: don't discard buffer after transmitting data
  8528.         bit 6: buffer has been transmitted
  8529. 1FBh    BYTE    reserved (0) for additional flags/status
  8530. 1FCh    WORD    user data
  8531. 1FEh    WORD    MBBIOS-internal pointer to next buffer
  8532. --------N-140A--DXFFFF-----------------------
  8533. INT 14 - Connection Manager - MODIFY ACTIVE CONNECTION PARAMETERS
  8534.     AH = 0Ah
  8535.     DX = FFFFh
  8536.     ES:DI -> vector string containing new parameters (see AH=04h/DX=FFFFh)
  8537. Return: AH = return code (00h-03h,06h) (see AH=00h/DX=FFFFh)
  8538. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8539.       serial ports over an IPX or NetBIOS-based network
  8540. Note:    any subvectors valid for the Change Parameters command replace the
  8541.       existing values in the current set
  8542. SeeAlso: AH=00h/DX=FFFFh,AH=0Fh/DX=FFFFh
  8543. --------S-140B-------------------------------
  8544. INT 14 - FOSSIL - TRANSMIT NO WAIT
  8545.     AH = 0Bh
  8546.     AL = character
  8547.     DX = port number
  8548. Return: AX = 0000h character not accepted
  8549.        = 0001h character accepted
  8550. SeeAlso: AH=01h
  8551. --------S-140B-------------------------------
  8552. INT 14 - MBBIOS - READ BUFFER
  8553.     AH = 0Bh
  8554.     CX = size of buffer
  8555.     ES:DI -> buffer
  8556. Return: AH = composite line status (see AH=03h) formed by ORing all statuses
  8557.           on receive interrupts; bit 0 set if additional characters
  8558.           available
  8559.     AL = composite modem status (see AH=03h) formed by ORing all statuses
  8560.     CX = number of characters actually read
  8561.     DI updated
  8562. Note:    the PACCOM version of MBBIOS does not use CX or ES:DI on call,
  8563.       instead returning ES set to the segment of the buffer containing a
  8564.       received packet, or 0000h if no packets available; the buffer may
  8565.       be freed with AH=0Ch"MBBIOS"
  8566. SeeAlso: AH=02h,AH=08h"MBBIOS",AH=0Ah"MBBIOS",AH=0Ch"MBBIOS",AH=18h"FOSSIL"
  8567. --------N-140B--DXFFFF-----------------------
  8568. INT 14 - Connection Manager - PREPARE FOR INBOUND CONNECTION
  8569.     AH = 0Bh
  8570.     DX = FFFFh
  8571.     AL = service name
  8572.         00h use parameter file or default
  8573.         01h use specified name
  8574.         ES:DI -> 16-byte blank-padded name
  8575.     BH = connection notification
  8576.         00h program awaiting connection, don't notify user
  8577.         01h notify user on connecting
  8578.     BL = connection type
  8579.         00h connection will use Connection Manager API
  8580. Return: AH = return code (00h-02h) (see AH=00h/DX=FFFFh)
  8581.     AL = connection ID if AH=00h
  8582. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8583.       serial ports over an IPX or NetBIOS-based network
  8584. SeeAlso: AH=04h/DX=FFFFh,AH=0Ch/DX=FFFFh,AH=10h/DX=FFFFh
  8585. --------S-140C-------------------------------
  8586. INT 14 - FOSSIL - NON-DESTRUCTIVE READ AHEAD
  8587.     AH = 0Ch
  8588.     DX = port number
  8589. Return: AX = FFFFh character not available
  8590.     AX = 00xxh character xx available
  8591. SeeAlso: AH=08h"MBBIOS",AH=20h"FOSSIL"
  8592. --------S-140C-------------------------------
  8593. INT 14 - MBBIOS PACCOM support - BUFFER MANAGEMENT
  8594.     AH = 0Ch
  8595.     ES = segment of buffer to free, or 0000h to allocate new buffer
  8596. Return: ES = segment of allocated buffer (if ES=0000h on entry)
  8597. Note:    the PACCOM version of MBBIOS uses only ES as buffer address for
  8598.       AH=0Ah and AH=0Bh
  8599. SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"
  8600. --------N-140C--DXFFFF-----------------------
  8601. INT 14 - Connection Manager - TEST FOR INBOUND CONNECTION REQUEST
  8602.     AH = 0Ch
  8603.     DX = FFFFh
  8604.     AL = connection ID from AH=0Bh/DX=FFFFh
  8605. Return: AH = return code (00h-03h) (see also AH=00h/DX=FFFFh)
  8606.         03h not prepared for inbound connection
  8607.     AL = connection ID (if AH=00h) or correct connection ID (if AH=02h)
  8608. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8609.       serial ports over an IPX or NetBIOS-based network
  8610. SeeAlso: AH=03h/DX=FFFFh,AH=04h/DX=FFFFh,AH=0Bh/DX=FFFFh
  8611. --------S-140D-------------------------------
  8612. INT 14 - FOSSIL - KEYBOARD READ WITHOUT WAIT
  8613.     AH = 0Dh
  8614. Return: AX = result
  8615.         FFFFh character not available
  8616.         xxyyh standard IBM-style scan code
  8617. SeeAlso: AH=0Eh
  8618. --------S-140D-------------------------------
  8619. INT 14 - Digiboard DigiCHANNEL PC/X* - GET POINTER TO CH_KEY_RDY FLAG
  8620.     AH = 0Dh
  8621.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8622. Return: ES:BX -> CH_KEY_RDY flag
  8623. SeeAlso: AH=0Ah"Digiboard"
  8624.  
  8625. Values for CH_KEY_RDY flag:
  8626.  00h    receive buffer empty
  8627.  FFh    characters available
  8628. --------S-140D-------------------------------
  8629. INT 14 - MBBIOS PACCOM support - SET TXD
  8630.     AH = 0Dh
  8631.     AL = new setting (FFh = 1.0)
  8632. Desc:    specify the time from RTS to start or packet
  8633. SeeAlso: AX=0D00h,AH=0Eh"MBBIOS",AH=0Fh"MBBIOS"
  8634. --------N-140D--DXFFFF-----------------------
  8635. INT 14 - Connection Manager - TERMINATE CONNECTION CLIENT ACTIVITY
  8636.     AH = 0Dh
  8637.     DX = FFFFh
  8638. Return: AH = return code
  8639.         00h successful
  8640.         nonzero operation not terminated
  8641. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8642.       serial ports over an IPX or NetBIOS-based network
  8643. Desc:    end all Connection Client TSR activity to allow it to be removed from
  8644.       memory
  8645. SeeAlso: AH=05h/DX=FFFFh,AH=6Fh/BX=FFFFh
  8646. --------S-140D00-----------------------------
  8647. INT 14 - MBBIOS - GET AVAILABLE BYTES
  8648.     AX = 0D00h
  8649. Return: AX = bytes in transmit buffer
  8650.     CX = bytes in receive buffer
  8651. SeeAlso: AH=0Ah"MBBIOS",AH=0Bh"MBBIOS"
  8652. --------S-140D01-----------------------------
  8653. INT 14 - MBBIOS - LOWER ALL MODEM CONTROL SIGNALS
  8654.     AX = 0D01h
  8655. Note:    this function lowers DTR, RTS, etc.
  8656. SeeAlso: AX=0D02h
  8657. --------S-140D02-----------------------------
  8658. INT 14 - MBBIOS - RAISE ALL MODEM CONTROL SIGNALS
  8659.     AX = 0D02h
  8660. Note:    this function raises DTR, RTS, etc.
  8661. SeeAlso: AX=0D01h
  8662. --------S-140D03-----------------------------
  8663. INT 14 - MBBIOS - SET HANDSHAKE BYTE
  8664.     AX = 0D03h
  8665.     CL = new handshake byte
  8666. Return: CL = previous handshake byte
  8667. Note:    this function lowers DTR, RTS, etc.
  8668. --------S-140E-------------------------------
  8669. INT 14 - FOSSIL - KEYBOARD READ WITH WAIT
  8670.     AH = 0Eh
  8671. Return: AX = xxyyh standard IBM-style scan code
  8672. SeeAlso: AH=0Dh"FOSSIL"
  8673. --------S-140E-------------------------------
  8674. INT 14 - Digiboard DigiCHANNEL PC/X* - WRITE STRING
  8675.     AH = 0Eh
  8676.     CX = number of characters to write
  8677.     ES:BX -> string
  8678.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8679. Return: AX = number of characters actually written
  8680.     ZF clear if successful
  8681.     ZF set on error
  8682. SeeAlso: AH=0Fh"Digiboard"
  8683. --------S-140E-------------------------------
  8684. INT 14 - MBBIOS PACCOM support - SET PERSISTENCE
  8685.     AH = 0Eh
  8686.     AL = new setting (FFh = 1.0)
  8687. Desc:    specify the time from end of DCD to RTS
  8688. SeeAlso: AH=0Dh"MBBIOS",AH=0Fh"MBBIOS"
  8689. --------N-140E--DXFFFF-----------------------
  8690. INT 14 - Connection Manager - SET HARDWARE FLOW STATE
  8691.     AH = 0Eh
  8692.     DX = FFFFh
  8693.     AL = connection ID from AH=04h/DX=FFFFh
  8694.     BL = RTS state (00h off, 01h on)
  8695. Return: AH = return code (00h-03h) (see also AH=00h/DX=FFFFh)
  8696.         03h invalid request (BL not 00h or 01h)
  8697. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8698.       serial ports over an IPX or NetBIOS-based network
  8699. SeeAlso: AH=03h/DX=FFFFh,AH=0Ah/DX=FFFFh
  8700. --------S-140F-------------------------------
  8701. INT 14 - FOSSIL - ENABLE/DISABLE FLOW CONTROL
  8702.     AH = 0Fh
  8703.     AL = bit mask describing requested flow control (see below)
  8704.     DX = port number
  8705. SeeAlso: AH=09h"MBBIOS",AH=10h"FOSSIL"
  8706.  
  8707. Bitfields for requested flow control:
  8708.  bit 0    XON/XOFF on transmit (watch for XOFF while sending)
  8709.  bit 1    CTS/RTS (CTS on transmit/RTS on receive)
  8710.  bit 2    reserved
  8711.  bit 3    XON/XOFF on receive (send XOFF when buffer near full)
  8712.  bit 4-7 all 1
  8713. --------S-140F-------------------------------
  8714. INT 14 - Digiboard DigiCHANNEL PC/X* - READ STRING
  8715.     AH = 0Fh
  8716.     CX = number of characters to read
  8717.     ES:BX -> buffer
  8718.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8719. Return: AX = number of characters read
  8720.     ZF clear if successful
  8721.     ZF set on error (line status or wrong number of characters)
  8722. SeeAlso: AH=0Eh"Digiboard"
  8723. --------S-140F-------------------------------
  8724. INT 14 - MBBIOS PACCOM support - SET SLOT TIME
  8725.     AH = 0Fh
  8726.     AL = new setting in clock ticks
  8727. Desc:    specify the time from end of DCD to RTS
  8728. SeeAlso: AH=0Dh"MBBIOS",AH=0Eh"MBBIOS",AH=10h"MBBIOS"
  8729. --------N-140F--DXFFFF-----------------------
  8730. INT 14 - Connection Manager - RETURN ACTIVE CONNECTION PARAMETERS
  8731.     AH = 0Fh
  8732.     DX = FFFFh
  8733.     AL = connection ID
  8734.     CX = size of buffer or 0000h to get length of returned vector
  8735.     ES:DI -> buffer for connection parameter vector (see AH=04h/DX=FFFFh)
  8736. Return: AH = return code (00h-02h,06h) (see AH=00h/DX=FFFFh)
  8737.     CX = number of bytes which could not be returned because the given
  8738.           buffer was too small
  8739. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8740.       serial ports over an IPX or NetBIOS-based network
  8741. SeeAlso: AH=08h/DX=FFFFh,AH=0Ah/DX=FFFFh
  8742. --------S-1410-------------------------------
  8743. INT 14 - FOSSIL - EXTENDED ^C/^K CHECKING AND TRANSMIT ON/OFF
  8744.     AH = 10h
  8745.     AL = bit mask
  8746.         bit 0: enable/disable ^C/^K checking
  8747.         bit 1: enable/disable the transmitter
  8748.     DX = port number
  8749. SeeAlso: AH=0Fh"FOSSIL"
  8750. --------S-1410-------------------------------
  8751. INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR RECEIVE BUFFER
  8752.     AH = 10h
  8753.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8754. Return: AH = status
  8755.         00h successful
  8756.         FFh error
  8757. SeeAlso: AH=09h"Digiboard",AH=11h"Digiboard"
  8758. --------S-1410-------------------------------
  8759. INT 14 - MBBIOS PACCOM support - SET CRC WAIT
  8760.     AH = 10h
  8761.     AL = new setting in clock ticks (should be at least 5 character times)
  8762. Desc:    specify the time from start of last character to dropping RTS
  8763. SeeAlso: AH=0Dh"MBBIOS",AH=0Fh"MBBIOS"
  8764. --------N-1410--DXFFFF-----------------------
  8765. INT 14 - Connection Manager - QUERY SERVICE NAMES
  8766.     AH = 10h
  8767.     DX = FFFFh
  8768.     CL = subfunction
  8769.         00h search first
  8770.         01h search next
  8771.     ES:DI -> pattern buffer (see below)
  8772. Return: AH = return code (00h,01h,03h,06h) (see also AH=00h/DX=FFFFh)
  8773.         01h no (more) matching names
  8774.         03h invalid request
  8775.     ES:DI buffer filled with reply buffer (see below) containing matched
  8776.           name if AH=00h
  8777. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  8778.       serial ports over an IPX or NetBIOS-based network
  8779. Desc:    obtain the names of groups and lines available for connection requests,
  8780.       and the names of active Connection Servers
  8781. SeeAlso: AH=04h/DX=FFFFh,AH=0Bh/DX=FFFFh
  8782.  
  8783. Format of pattern/reply buffer:
  8784. Offset    Size    Description
  8785.  00h    WORD    length of pattern (30h or 32h)
  8786.  02h 16 BYTEs    server pattern or name
  8787.  12h 16 BYTEs    group pattern or name
  8788.  22h 16 BYTEs    line pattern or name
  8789.  23h    BYTE    (optional) ???
  8790.  24h    BYTE    (optional, returned) current line status
  8791.         00h available
  8792.         01h out of service
  8793.         02h currently allocated to a connection
  8794. Note:    pattern may include '?' wildcard to match any character
  8795. --------S-1411-------------------------------
  8796. INT 14 - FOSSIL - SET CURRENT CURSOR LOCATION
  8797.     AH = 11h
  8798.     DH = row
  8799.     DL = column
  8800. Note:    this is the same as INT 10/AH=02h
  8801. SeeAlso: AH=12h"FOSSIL"
  8802. --------S-1411-------------------------------
  8803. INT 14 - Digiboard DigiCHANNEL PC/X* - CLEAR TRANSMIT BUFFER
  8804.     AH = 11h
  8805.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8806. Return: AH = status
  8807.         00h successful
  8808.         FFh error
  8809. SeeAlso: AH=09h"Digiboard",AH=10h"Digiboard"
  8810. --------S-1411-------------------------------
  8811. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DISABLE PORT
  8812.     AH = 11h
  8813.     DX = port number
  8814. Return: AL = status
  8815.         00h successful
  8816.         01h IRQ for port is shared
  8817.         02h IRQ was reserved
  8818. SeeAlso: AH=04h,AH=05h,AH=12h"PC-MOS"
  8819. --------S-1412-------------------------------
  8820. INT 14 - FOSSIL - READ CURRENT CURSOR LOCATION
  8821.     AH = 12h
  8822. Return: DH = row
  8823.     DL = column
  8824. Note:    this is the same as INT 10/AH=03h
  8825. SeeAlso: AH=11h"FOSSIL"
  8826. --------S-1412-------------------------------
  8827. INT 14 - Digiboard DigiCHANNEL PC/X* - GET TRANSMIT BUFFER FREE SPACE
  8828.     AH = 12h
  8829.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8830. Return: AX = number of bytes free
  8831. SeeAlso: AH=0Ah"Digiboard"
  8832. --------S-1412-------------------------------
  8833. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET CURRENT PORT PARAMETERS
  8834.     AH = 12h
  8835.     DX = port number
  8836. Return: AH = status
  8837.         FFh port number invalid
  8838.     AL = line parameters (see AH=00h)
  8839.     AH = flow control configuration (see AH=05h"PC-MOS")
  8840.     CX:BX = bps rate
  8841.     DL = XOFF character or 00h for none
  8842.     DH = XON character or 00h for none
  8843. --------S-1413-------------------------------
  8844. INT 14 - FOSSIL - SINGLE CHARACTER ANSI WRITE TO SCREEN
  8845.     AH = 13h
  8846.     AL = character
  8847. Note:    should not be called if it is unsafe to call DOS
  8848. SeeAlso: AH=15h
  8849. --------S-1413-------------------------------
  8850. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - REGISTER A PORT WITH A TERMINAL
  8851.     AH = 13h
  8852.     DX = port number
  8853. Return: AH = status
  8854.         FFh port number invalid
  8855.         else
  8856.         ES:BX -> BYTE flag (00h buffer empty, FFh buffer contains data)
  8857. SeeAlso: AH=17h"PC-MOS"
  8858. --------S-1414-------------------------------
  8859. INT 14 - FOSSIL - ENABLE OR DISABLE WATCHDOG PROCESSING
  8860.     AH = 14h
  8861.     AL = 01h enable watchdog
  8862.          00h disable watchdog
  8863.     DX = port number
  8864. --------S-1414-------------------------------
  8865. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT STRING
  8866.     AH = 14h
  8867.     CX = number of characters in string
  8868.     DX = port number
  8869.     ES:BX -> string to be sent
  8870.     SI = timeout in timer ticks or 0000h for default
  8871. Return: AX = number of bytes actually sent
  8872.     ZF clear if successful
  8873.     ZF set on timeout
  8874. SeeAlso: AH=01h,AH=15h"PC-MOS"
  8875. --------S-1415-------------------------------
  8876. INT 14 - FOSSIL - WRITE CHARACTER TO SCREEN USING BIOS SUPPORT ROUTINES
  8877.     AH = 15h
  8878.     AL = character
  8879. SeeAlso: AH=13h"FOSSIL"
  8880. --------S-1415-------------------------------
  8881. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - INPUT STRING
  8882.     AH = 15h
  8883.     CX = size of buffer
  8884.     DX = port number
  8885.     ES:BX -> buffer for received characters
  8886.     SI = timeout in clock ticks or 0000h for default
  8887. Return: AX = number of characters actually read
  8888.     ZF set on timeout (no data available)
  8889. SeeAlso: AH=02h,AH=14h"PC-MOS",AH=16h"PC-MOS"
  8890. --------S-1416-------------------------------
  8891. INT 14 - FOSSIL - INSERT/DELETE FUNCTION FROM TIMER TICK CHAIN
  8892.     AH = 16h
  8893.     AL = function
  8894.         00h = delete
  8895.         01h = add
  8896.     ES:DX -> routine to call
  8897. Return: AX = status
  8898.         0000h successful
  8899.         0001h unsuccessful
  8900. SeeAlso: AH=07h"FOSSIL"
  8901. --------S-1416-------------------------------
  8902. INT 14 - Digiboard DigiCHANNEL PC/X* - CCB COMMAND
  8903.     AH = 16h
  8904.     AL = CCB command number (see below)
  8905.     BL = byte 2
  8906.     BH = byte 3
  8907.     CL = byte 1 (for all channel functions except 4Eh and 4Fh)
  8908.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8909. Return: AH = status
  8910.         00h successful
  8911.         FFh error
  8912. SeeAlso: AH=18h"Digiboard"
  8913.  
  8914. Values for CCB command number:
  8915.  40h    Set Receive Mid Water Mark
  8916.  41h    Set Receive High Water Mark
  8917.  42h    Flush Receive Buffer
  8918.  43h    Flush Transmit Buffer
  8919.  44h    Transmit Pause
  8920.  45h    Transmit Resume
  8921.  46h    Set Interrupt to Host Mask
  8922.  47h    Set Baud, Data, Stop and Parity
  8923.  48h    Send Break
  8924.  49h    Set Modem Lines
  8925.  4Ah    Set Break Count
  8926.  4Bh    Set Handshake
  8927.  4Ch    Set Xon/Xoff Characters
  8928.  4Dh    Set Transmit Mid Water Mark
  8929.  4Eh    IRQ Polling Timer to Host
  8930.  4Fh    Buffer Set All
  8931.  50h    Port On
  8932.  51h    Port Off
  8933.  52h    Receive Pause
  8934.  53h    Special Character Interrupt
  8935.  54h    RS-422 Enable
  8936. --------S-1416-------------------------------
  8937. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - LINK TO ANOTHER SERIAL DRIVER
  8938.     AH = 16h
  8939.     ES:BX -> calling driver's INT 14 entry point
  8940. Return: nothing
  8941. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  8942.       operating system by The Software Link, Inc.
  8943. --------S-1417-------------------------------
  8944. INT 14 - FOSSIL - REBOOT SYSTEM
  8945.     AH = 17h
  8946.     AL = method
  8947.         00h = cold boot
  8948.         01h = warm boot
  8949. SeeAlso: INT 19
  8950. --------S-1417-------------------------------
  8951. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - WRITE MODEM CONTROL REGISTER
  8952.     AH = 17h
  8953.     AL = new value for UART's modem control register
  8954.     DX = port number
  8955. Return: nothing
  8956. --------S-1418-------------------------------
  8957. INT 14 - FOSSIL - READ BLOCK
  8958.     AH = 18h
  8959.     CX = maximum number of characters to transfer
  8960.     DX = port number
  8961.     ES:DI -> user buffer
  8962. Return: AX = number of characters transferred
  8963. SeeAlso: AH=19h"FOSSIL",AH=83h"COURIERS",AX=FF02h,INT 6B/AX=0100h
  8964. --------S-1418-------------------------------
  8965. INT 14 - Digiboard DigiCHANNEL PC/X* - SEND BIOS COMMAND
  8966.     AH = 18h
  8967.     ES:BX -> 16-byte command string
  8968.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  8969. Return: AH = status
  8970.         00h successful
  8971.         80h timeout
  8972.     AL = mailbox status
  8973.         00h no errors
  8974.         8Xh BIOS error
  8975.     ES:BX buffer filled in with mailbox string
  8976.     ZF clear if no errors
  8977.     ZF set if either status byte contains an error code
  8978. SeeAlso: AH=16h"Digiboard"
  8979. --------S-1418-------------------------------
  8980. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - GET DRIVER DESCRIPTION
  8981.     AH = 18h
  8982.     DX = port number
  8983. Return: DS:BX -> 40-byte buffer containing a string identifying the serial
  8984.         driver
  8985. SeeAlso: AH=06h"PC-MOS"
  8986. --------S-1419-------------------------------
  8987. INT 14 - FOSSIL - WRITE BLOCK
  8988.     AH = 19h
  8989.     CX = maximum number of characters to transfer
  8990.     DX = port number
  8991.     ES:DI -> user buffer
  8992. Return: AX = number of characters transferred
  8993. SeeAlso: AH=18h"FOSSIL",AH=86h,INT 6B/AX=0000h
  8994. --------S-1419-------------------------------
  8995. INT 14 - Digiboard DigiCHANNEL PC/X* - SPECIAL CHARACTER INTERRUPT
  8996.     AH = 19h
  8997.     BL = flag
  8998.         00h disable special character interrupt
  8999.         FFh enable interrupt
  9000.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  9001. Return: AH = status
  9002.         00h successful
  9003.         FFh failed
  9004. SeeAlso: AH=1Ah"Digiboard"
  9005. --------S-1419-------------------------------
  9006. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - SELECTIVE BUFFER FLUSH
  9007.     AH = 19h
  9008.     AL = what to flush
  9009.         bit 0: input buffer
  9010.         bit 1: output buffer
  9011.     DX = port number
  9012. Return: nothing
  9013. SeeAlso: AH=09h"PC-MOS"
  9014. --------S-141A-------------------------------
  9015. INT 14 - FOSSIL - BREAK BEGIN OR END
  9016.     AH = 1Ah
  9017.     AL = 00h stop sending 'break'
  9018.          01h start sending 'break'
  9019.     DX = port number
  9020. SeeAlso: AH=06h"FOSSIL",AH=8Ah,AH=FAh
  9021. --------S-141A-------------------------------
  9022. INT 14 - Digiboard DigiCHANNEL PC/X - SPECIAL CHARACTER FLAG/COUNTER
  9023.     AH = 1Ah
  9024.     BX = subfunction
  9025.         00h return pointer to special character flag byte
  9026.         01h return pointer to special character counter word
  9027.     DX = port number (00h-03h) (04h-43h for XAPCM232.SYS)
  9028. Return: ES:BX -> special character flag or counter
  9029. Notes:    flag is FFh if one or more special characters are in the receive
  9030.       buffer; it is 00h and the counter is invalid if no special characters
  9031.       are in the receive buffer
  9032.     counter (if valid) contains the number of characters in the receive
  9033.       buffer up to and including the last-received special character
  9034. --------S-141B-------------------------------
  9035. INT 14 - FOSSIL - RETURN INFORMATION ABOUT THE DRIVER
  9036.     AH = 1Bh
  9037.     DX = port number
  9038.     CX = size of user buffer
  9039.     ES:DI -> user buffer for driver info (see below)
  9040. Return: AX = number of characters transferred
  9041.     CX = 3058h ("0X") (X00 FOSSIL only)
  9042.     DX = 2030h (" 0") (X00 FOSSIL only)
  9043.  
  9044. Format of driver info:
  9045. Offset    Size    Description
  9046.  00h    WORD    size of structure in bytes
  9047.  02h    BYTE    FOSSIL spec driver conforms to
  9048.  03h    BYTE    revision level of this specific driver
  9049.  04h    DWORD    pointer to ASCIZ identification string
  9050.  08h    WORD    size of the input buffer
  9051.  0Ah    WORD    number of bytes left in buffer
  9052.  0Ch    WORD    size of the output buffer
  9053.  0Eh    WORD    number of bytes left in buffer
  9054.  10h    BYTE    width of screen
  9055.  11h    BYTE    length of screen
  9056.  12h    BYTE    actual baud rate, computer to modem
  9057. --------S-141C-------------------------------
  9058. INT 14 - X00 FOSSIL - ACTIVATE PORT
  9059.     AH = 1Ch
  9060.     DX = port number
  9061. Return: AX = 1954h if successful
  9062.     BL = maximum function number supported (not including 7Eh and above)
  9063.     BH = revision of FOSSIL specification supported
  9064. Note:    this is a duplicate of AH=04h, so that AH=04h may be made compatible
  9065.       with the PS/2 BIOS in a future release
  9066. SeeAlso: AH=04h"FOSSIL",AH=1Dh
  9067. --------S-141D-------------------------------
  9068. INT 14 - X00 FOSSIL - DEACTIVATE PORT
  9069.     AH = 1Dh
  9070.     DX = port number
  9071. Return: none
  9072. Notes:    this is a duplicate of AH=05h, so that AH=05h may be made compatible
  9073.       with the PS/2 BIOS in a future release
  9074.     ignored if the port was never activated with AH=04h or AH=1Ch
  9075. SeeAlso: AH=05h"FOSSIL",AH=1Ch
  9076. --------S-141E-------------------------------
  9077. INT 14 - X00 FOSSIL - EXTENDED LINE CONTROL INITIALIZATION
  9078.     AH = 1Eh
  9079.     AL = break status
  9080.         00h if break
  9081.         01h if no break
  9082.     BH = parity (see below)
  9083.     BL = number of stop bits
  9084.         00h one stop bit
  9085.         01h two stop bits (1.5 if 5 bit word length)
  9086.     CH = word length (see below)
  9087.     CL = bps rate (see below)
  9088.     DX = port number
  9089. Return: AX = port status code (see AH=00h)
  9090. Notes:    this function is intended to exactly emulate the PS/2 BIOS AH=04h call
  9091.     if the port was locked at X00 load time, the appropriate parameters are
  9092.       ignored
  9093. SeeAlso: AH=00h,AH=04h"SERIAL I/O"
  9094.  
  9095. Values for parity:
  9096.  00h    no parity
  9097.  01h    odd parity
  9098.  02h    even parity
  9099.  03h    stick parity odd
  9100.  04h    stick parity even
  9101.  
  9102. Values for word length:
  9103.  00h    5 bits
  9104.  01h    6 bits
  9105.  02h    7 bits
  9106.  03h    8 bits
  9107.  
  9108. Values for bps rate:
  9109.  00h    110
  9110.  01h    150
  9111.  02h    300
  9112.  03h    600
  9113.  04h    1200
  9114.  05h    2400
  9115.  06h    4800
  9116.  07h    9600
  9117.  08h    19200
  9118. --------S-141F-------------------------------
  9119. INT 14 - X00 FOSSIL - EXTENDED SERIAL PORT STATUS/CONTROL
  9120.     AH = 1Fh
  9121.     AL = 00h read modem control register
  9122.           Return: BL = modem control register (see below)
  9123.               AH = status
  9124.     AL = 01h write modem control register
  9125.           BL = modem control register (see below)
  9126.           Return: AX = status
  9127.     DX = port number
  9128. Notes:    this function is intended to exactly emulate the PS/2 BIOS AH=05h call
  9129.     X00 forces BL bit 3 set (interrupts cannot be disabled)
  9130. SeeAlso: AH=00h,AH=05h"SERIAL I/O"
  9131.  
  9132. Bitfields for modem control register:
  9133.  bit 0    data terminal ready
  9134.  bit 1    request to send
  9135.  bit 2    OUT1
  9136.  bit 3    OUT2 (interrupts) enabled
  9137.  bit 4    LOOP
  9138.  bits 5-7 reserved
  9139. --------S-1420-------------------------------
  9140. INT 14 - X00 FOSSIL - DESTRUCTIVE READ WITH NO WAIT
  9141.     AH = 20h
  9142.     DX = port number
  9143. Return: AH = 00h if character was available
  9144.         AL = next character (removed from receive buffer)
  9145.     AX = FFFFh if no character available
  9146. SeeAlso: AH=0Ch,AH=21h"X00"
  9147. --------S-1420-------------------------------
  9148. INT 14 - Alloy MW386 - ATTACH LOGICAL COMMUNICATIONS PORT TO PHYSICAL PORT
  9149.     AH = 20h
  9150.     AL = logical port (01h COM1, 02h COM2)
  9151.     DX = physical port number
  9152. Return: AX = status
  9153.         0000h successful
  9154.         FFFFh failed
  9155. SeeAlso: AH=21h"Alloy",AH=22h"Alloy",AH=23h"Alloy",INT 17/AH=8Bh"Alloy"
  9156. --------S-1420-------------------------------
  9157. INT 14 - MultiDOS Plus - INITIALIZE PORT
  9158.     AH = 20h
  9159.     AL = port parameters (see AH=00h"SERIAL")
  9160.     DX = port number (0-3)
  9161. Return: AH = status
  9162.         00h successful
  9163.         41h no such port
  9164.         64h monitor mode already active
  9165. SeeAlso: AH=00h"SERIAL",AH=04h"MultiDOS",AH=21h"MultiDOS",AH=23h"MultiDOS"
  9166. --------S-1420-------------------------------
  9167. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - CHECK OUTPUT QUEUE
  9168.     AH = 20h
  9169.     DX = port number
  9170. Return: AX = number of bytes in output buffer
  9171. SeeAlso: AH=0Ah"PC-MOS"
  9172. --------S-1421-------------------------------
  9173. INT 14 - X00 FOSSIL - STUFF RECEIVE BUFFER
  9174.     AH = 21h
  9175.     AL = character
  9176.     DX = port number
  9177. Notes:    the given character is inserted at the end of the receive buffer as if
  9178.       it had just arrived from the serial port; all normal receive
  9179.       processing (XON/XOFF, ^C/^K) is performed on the character
  9180.     fully re-entrant
  9181. SeeAlso: AH=20h"X00"
  9182. --------S-1421-------------------------------
  9183. INT 14 - Alloy MW386 v1.x only - RELEASE PHYSICAL COMMUNICATIONS PORT
  9184.     AH = 21h
  9185.     DX = physical port number
  9186. Return: AX = status
  9187.         0000h successful
  9188.         FFFFh failed
  9189. SeeAlso: AH=20h"Alloy",AH=22h"Alloy"
  9190. --------S-1421-------------------------------
  9191. INT 14 - MultiDOS Plus - TRANSMIT CHARACTER
  9192.     AH = 21h
  9193.     AL = character to send
  9194.     DX = port number
  9195. Return: AH = status (see below)
  9196. Note:    monitor mode must have been turned on with AH=24h before calling
  9197. SeeAlso: AH=20h"MultiDOS",AH=22h"MultiDOS",AH=24h"MultiDOS"
  9198.  
  9199. Values for status:
  9200.  00h    successful
  9201.  39h    no DSR or CTS
  9202.  3Ch    no DSR
  9203.  3Bh    no CTS
  9204.  41h    no such port
  9205.  42h    monitor mode not active
  9206.  97h    timed out
  9207. --------S-1421-------------------------------
  9208. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - OUTPUT CHARACTER, WITH TIMEOUT
  9209.     AH = 21h
  9210.     AL = char to send
  9211.     DX = port number
  9212.     SI = timeout in timer ticks (0000h = default)
  9213. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  9214.       operating system by The Software Link, Inc.
  9215. SeeAlso: AH=01h,AH=0Eh"PC/MOS",AH=22h"PC-MOS"
  9216. --------S-1422-------------------------------
  9217. INT 14 - Alloy MW386 v2+ - RELEASE LOGICAL COMMUNICATIONS PORT
  9218.     AH = 22h
  9219.     AL = logical port (01h COM1, 02h COM2)
  9220. Return: AX = status (0000h successful)
  9221. SeeAlso: AH=20h"Alloy",AH=21h"Alloy"
  9222. --------S-1422-------------------------------
  9223. INT 14 - MultiDOS Plus - RECEIVE CHARACTER
  9224.     AH = 22h
  9225.     DX = port number
  9226. Return: AH = status (see also AH=21h"MultiDOS")
  9227.         00h successful
  9228.         AL = character
  9229.         3Dh framing and parity error
  9230.         3Eh overrun error
  9231.         3Fh framing error
  9232.         40h parity error
  9233.         96h ring buffer overflow
  9234. Note:    if no character is available, this function waits until a character
  9235.       arrives or an implementation-dependent timeout elapses
  9236. SeeAlso: AH=20h"MultiDOS",AH=21h"MultiDOS",AH=27h
  9237. --------S-1422-------------------------------
  9238. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - RECEIVE CHARACTER, WITH TIMEOUT
  9239.     AH = 22h
  9240.     DX = port number
  9241.     SI = timeout in timer ticks (0000h = default)
  9242. Return: AH = port status (see AH=03h bits 0..6)
  9243.          bit 7 = 1 indicates time-out
  9244.     AL = character received
  9245. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  9246.       operating system by The Software Link, Inc.
  9247. SeeAlso: AH=02h,AH=0Fh"PC-MOS",AH=21h"PC-MOS"
  9248. --------S-1423-------------------------------
  9249. INT 14 - Alloy MW386 v2+ - GET PORT NUMBER FROM LOGICAL PORT ID
  9250.     AH = 23h
  9251.     AL = logical port (01h COM1, 02h COM2)
  9252.     DH = user ID
  9253.     DL = process ID (DH,DL both FFh for current task)
  9254. Return: AL = MW386 port mode (see below)
  9255.     CX = MW386 port number
  9256.     DH = owner's user ID
  9257.     DL = owner's task ID
  9258. SeeAlso: AH=20h"Alloy",INT 17/AH=8Bh"Alloy"
  9259.  
  9260. Bitfields for MW386 port mode:
  9261.  bit 0    port is shared (spooler only)
  9262.  bit 1    port is spooled instead of direct (spooler only)
  9263.  bit 2    port is assigned as logical COM device, not in spooler
  9264.  bit 3    port is free
  9265. --------S-1423-------------------------------
  9266. INT 14 - MultiDOS Plus - GET PORT STATUS
  9267.     AH = 23h
  9268.     DX = port number
  9269. Return: AH = line status (see AH=03h)
  9270.     AL = modem status (see AH=03h)
  9271. SeeAlso: AH=03h,AH=07h"MultiDOS",AH=20h"MultiDOS"
  9272. --------S-1423-------------------------------
  9273. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - DECLARE PORT OWNERSHIP
  9274.     AH = 23h
  9275.     DX = port number
  9276.     BX = TCB segment/selector address of owner task
  9277. Return: nothing
  9278. SeeAlso: AH=0Dh"PC-MOS"
  9279. --------S-1424-------------------------------
  9280. INT 14 - Alloy MW386 v2+ - CHANGE PHYSICAL PORT PARAMETERS
  9281.     AH = 24h
  9282.     CX = physical I/O port number
  9283.     DS:DX -> configuration table (see below)
  9284. Return: AH = 00h
  9285. Note:    invalid port numbers are merely ignored
  9286. SeeAlso: INT 17/AH=96h
  9287.  
  9288. Format of configuration table:
  9289. Offset    Size    Description
  9290.  00h    BYTE    baud rate (see below)
  9291.  01h    BYTE    data bits (00h=5, 01h=6, 02h=7, 03h=8)
  9292.  02h    BYTE    parity (00h none, 01h odd, 02h even)
  9293.  03h    BYTE    stop bits (00h=1, 01h=2)
  9294.  04h    BYTE    receive flow control
  9295.         00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC, 04h RTS/CTS
  9296.  05h    BYTE    transmit flow control (as for receive)
  9297.  
  9298. Values for baud rate:
  9299.  00h    38400
  9300.  01h    19200
  9301.  02h    9600
  9302.  03h    7200
  9303.  04h    4800
  9304.  05h    3600
  9305.  06h    2400
  9306.  07h    2000
  9307.  08h    1200
  9308.  09h    600
  9309.  0Ah    300
  9310.  0Bh    150
  9311.  0Ch    134.5
  9312. --------S-1424-------------------------------
  9313. INT 14 - MultiDOS Plus - SET MONITOR MODE
  9314.     AH = 24h
  9315.     AL = port status storage
  9316.         00h single status for entire receive buffer
  9317.         01h separate status kept for each byte in receive buffer
  9318.     DX = port number
  9319. Return: AH = status
  9320.         00h successful
  9321.         3Ah invalid status storage specified
  9322.         41h no such port
  9323.         64h monitor mode already active
  9324. Note:    in monitor mode, MultiDOS redirects all BIOS video output to a serial
  9325.       port
  9326. SeeAlso: AH=20h"MultiDOS",AH=25h
  9327. --------S-1424-------------------------------
  9328. INT 14 - PC-MOS/386 v5.01 $serial.sys v5.04 - ???
  9329.     AH = 24h
  9330. Return: ???
  9331. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  9332.       operating system by The Software Link, Inc.
  9333. --------S-1425-------------------------------
  9334. INT 14 - MultiDOS Plus - CLEAR BUFFERS
  9335.     AH = 25h
  9336.     AL = function
  9337.         00h only clear buffers
  9338.         01h clear buffers and deactivate
  9339.     DX = port number
  9340. Return: AH = status
  9341.         00h successful
  9342.         3Ah invalid function
  9343.         41h no such port
  9344.         42h monitor mode not active
  9345. SeeAlso: AH=20h"MultiDOS",AH=24h"MultiDOS"
  9346. --------S-1427-------------------------------
  9347. INT 14 - MultiDOS Plus - GET BUFFER CHARACTER COUNT
  9348.     AH = 27h
  9349.     DX = port number
  9350. Return: AH = status
  9351.         00h successful
  9352.         41h no such port
  9353.         42h monitor mode not active
  9354.     AL = number of characters in receive buffer
  9355. --------S-1456-------------------------------
  9356. INT 14 U - BWCOM14 - INSTALLATION CHECK
  9357.     AH = 56h
  9358. Return: CX = 0001h if installed
  9359. Program: BWCOM14 is a network serial port emulator (simulating a Hayes modem
  9360.       connected to the serial port) distributed as part of the
  9361.       Beame&Whiteside BW-NFS package
  9362. SeeAlso: AH=57h,AH=58h
  9363. --------S-1457-------------------------------
  9364. INT 14 U - BWCOM14 - INITIALIZE
  9365.     AH = 57h
  9366.     DL = port number
  9367. Return: AL = initialization status (00h successful, 01h already initialized)
  9368.     CX = port status (0001h port redirected, 0002h and FFFFh failed)
  9369. Note:    after this call, all invocations of INT 14/AH=00h-03h for the specified
  9370.       port will be handled by BWCOM14 until AH=58h is called
  9371. SeeAlso: AH=00h"SERIAL",AH=56h,AH=58h
  9372. --------S-1458-------------------------------
  9373. INT 14 U - BWCOM14 - SHUTDOWN
  9374.     AH = 58h
  9375. Return: CX = status (0001h successful, 0002h not initialized)
  9376. Note:    after this call, BWCOM14 will no longer redirect the COM port
  9377. SeeAlso: AH=56h,AH=57h
  9378. --------N-146F--BXFFFE-----------------------
  9379. INT 14 U - Connection Manager - ???
  9380.     AH = 6Fh
  9381.     BX = FFFEh
  9382.     ???
  9383. Return: ???
  9384. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  9385.       serial ports over an IPX or NetBIOS-based network
  9386. --------N-146F--BXFFFF-----------------------
  9387. INT 14 - Connection Manager - INSTALLATION CHECK
  9388.     AH = 6Fh
  9389.     BX = FFFFh
  9390. Return: DX:BX -> Connection Manager Communication Table if installed
  9391.     BX = FFFFh if not installed
  9392. SeeAlso: AH=0Dh/DX=FFFFh
  9393. --------S-147E-------------------------------
  9394. INT 14 - FOSSIL - INSTALL AN EXTERNAL APPLICATION FUNCTION
  9395.     AH = 7Eh
  9396.     AL = code assigned to external application (80h-BFh)
  9397.         80h reserved for communications FOSSIL
  9398.         81h video FOSSIL
  9399.         82h reserved for keyboard FOSSIL
  9400.         83h reserved for system FOSSIL
  9401.     ES:DX -> entry point
  9402. Return: AX = 1954h
  9403.     BL = code assigned to application (same as input AL)
  9404.     DH = 00h failed
  9405.          01h successful
  9406. SeeAlso: AH=7Fh,AH=80h"FOSSIL",AX=8100h,AH=82h"FOSSIL",AH=83h"FOSSIL"
  9407. --------S-147F-------------------------------
  9408. INT 14 - FOSSIL - REMOVE AN EXTERNAL APPLICATION FUNCTION
  9409.     AH = 7Fh
  9410.     AL = code assigned to external application
  9411.     ES:DX -> entry point
  9412. Return: AX = 1954h
  9413.     BL = code assigned to application (same as input AL)
  9414.     DH = 00h failed
  9415.          01h successful
  9416. SeeAlso: AH=7Eh
  9417. --------!------------------------------------
  9418.