home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / interrup.p < prev    next >
Text File  |  1997-06-29  |  308KB  |  8,044 lines

  1. Interrupt List, part 16 of 16
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3. --------*-7E---------------------------------
  4. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  5. --------S-7E---------------------------------
  6. INT 7E U - YTERM 1.4 - ???
  7. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  8. --------E-7E---------------------------------
  9. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  10. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  11.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  12. Notes:    this vector is overwritten when GO32 starts but is not restored by
  13.       early versions of the extender
  14.     the newest versions of GO32 dynamically allocate the vectors used
  15.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  16. SeeAlso: INT 0E"IRQ6",INT 7D"GO32",INT 7F"GO32"
  17. --------s-7E00-------------------------------
  18. INT 7E - MaxSBOS v0.21 - GET ???
  19.     AH = 00h
  20. Return: DX:AX -> ???
  21. SeeAlso: AH=01h,AH=02h,AH=03h
  22. --------s-7E0001-----------------------------
  23. INT 7E - IWSBSDRV v1.41 - SEND MIDI BYTE
  24.     AX = 0001h
  25.     DX = game device handle
  26.     BL = MIDI byte to send???
  27.     ???
  28. Return: EAX = status
  29.         00000000h if successful
  30.         FFFFFFFFh on error (function disabled)
  31. Program: IWSBSDRV is the resident portion of the InterWave SBOS sound card
  32.       emulator for the Gravis UltraSound Plug-and-Play
  33. Note:    this function is only supported if the MIDISIMPLE device has been
  34.       opened via the InterWave Game API (see INT 2F/AX=CD21h)
  35. SeeAlso: AX=0002h,INT 2F/AX=CD21h,#2707
  36. --------s-7E0002-----------------------------
  37. INT 7E - IWSBSDRV v1.41 - SEND MIDI STRING
  38.     AX = 0002h
  39.     DX = game device handle
  40.     ES:EDI -> buffer containing MIDI string to be sent
  41.     ECX = length of buffer in bytes
  42. Return: EAX = status
  43.         00000000h if successful
  44.         FFFFFFFFh on error (function disabled)
  45. Note:    this function is only supported if the MIDISIMPLE device has been
  46.       opened via the InterWave Game API (see INT 2F/AX=CD21h)
  47. SeeAlso: AX=0001h,INT 2F/AX=CD21h,#2707
  48. --------s-7E00F6-----------------------------
  49. INT 7E - SBOS v3.82 - SET ???
  50.     AX = 00F6h
  51.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  52. Return: AX=00F9h,AX=00FEh
  53. --------s-7E00F7-----------------------------
  54. INT 7E - SBOS v3.82 - GET ???
  55.     AX = 00F7h
  56. Return: AX = status
  57.         0000h failed
  58.         0001h successful
  59.         BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh)
  60.         CH = ???
  61.         CL = ???
  62. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  63. --------s-7E00F9-----------------------------
  64. INT 7E - SBOS v3.82 - SET ???
  65.     AX = 00F9h
  66.     BX = ???
  67. SeeAlso: AX=00F6h,AX=00FBh,AX=00FDh
  68. --------s-7E00FB-----------------------------
  69. INT 7E - SBOS v3.82 - SET ???
  70.     AX = 00FBh
  71.     BL = ???
  72. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  73. --------s-7E00FD-----------------------------
  74. INT 7E - SBOS v3.82 - SET ???
  75.     AX = 00FDh
  76.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  77. SeeAlso: AX=00F9h,AX=00FEh
  78. --------s-7E00FE-----------------------------
  79. INT 7E - SBOS v3.82 - UNINSTALL
  80.     AX = 00FEh
  81. Return: AX = status
  82.         0000h successful
  83.         00FCh unable to unhook INT 21
  84.         00FDh unable to unhook INT 09
  85.         00FEh unable to release memory
  86. Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound
  87. Range:    SBOS may use INT 78-INT 7F
  88. Notes:    the installation check for SBOS is to test for the ASCII signature
  89.       "SBOS" at offset 0Ah in the interrupt handler's segment (similar
  90.       to one of the possible EMS installation checks)
  91.     this function may not be called if any SBOS vectors have been hooked
  92. SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID"
  93. --------s-7E00FF-----------------------------
  94. INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
  95.     AX = 00FFh
  96.     BL = new interrupt vector to hook
  97. Return: BX = 03CDh if supported
  98. Desc:    unhooks the current interrupt handler for ???, and reconnects it to the
  99.       specified new interrupt number
  100. SeeAlso: AX=00F7h,AX=00F9h,AX=00FEh
  101. --------s-7E01-------------------------------
  102. INT 7E - MaxSBOS v0.21 - ???
  103.     AH = 01h
  104.     ???
  105. Return: ???
  106. Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis
  107.       UltraSound MAX
  108. Range:    INT 78-INT 7F, selected by commandline parameter
  109. Note:    the installation check is the same as for 'regular' SBOS (see AX=00FEh)
  110.       although the API in v0.21 does not provide the functions present in
  111.       the older SBOS
  112. SeeAlso: AX=00FEh,AH=02h,AH=03h
  113. --------s-7E02-------------------------------
  114. INT 7E - MaxSBOS v0.21 - ???
  115.     AH = 02h
  116. Return: AX = FFFFh
  117. SeeAlso: AX=00FEh,AH=01h,AH=03h
  118. --------s-7E03-------------------------------
  119. INT 7E - MaxSBOS v0.21 - NOP
  120.     AH = 03h
  121. Return: nothing
  122. SeeAlso: AX=00FEh,AH=01h,AH=02h
  123. --------m-7E5857BL57-------------------------
  124. INT 7E - XLOAD - INSTALLATION CHECK
  125.     AX = 5857h
  126.     BL = 57h
  127. Return: AX = 0000h if installed
  128. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  129. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  130. --------m-7E5857BL5A-------------------------
  131. INT 7E - XLOAD - GET ???
  132.     AX = 5857h
  133.     BL = 5Ah
  134. Return: AX = 0000h
  135.     CX = ???
  136.     DS:SI -> ???
  137. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  138. --------m-7E5857BL5B-------------------------
  139. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  140.     AX = 5857h
  141.     BL = 5Bh
  142. Return: AX = 0000h
  143.     CX = segment of XLOAD TSR
  144.     DX = size of memory block in which XLOAD TSR is located
  145. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Ah
  146. --------s-7E--80-----------------------------
  147. INT 7E - IWSBSDRV v1.41 - GET ???
  148.     AL = 80h
  149. Return: DX:AX -> ???
  150. SeeAlso: AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  151. --------s-7E--81-----------------------------
  152. INT 7E - IWSBSDRV v1.41 - ???
  153.     AL = 81h
  154.     ???
  155. Return: ???
  156. SeeAlso: AL=80h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  157. --------s-7E--82-----------------------------
  158. INT 7E - IWSBSDRV v1.41 - GET ???
  159.     AL = 82h
  160. Return: AX = ??? (FFFFh)
  161. SeeAlso: AL=80h,AL=81h,AL=83h,AL=84h,AL=85h,AL=86h,AL=87h
  162. --------s-7E--83-----------------------------
  163. INT 7E - IWSBSDRV v1.41 - ??? (CALLS VIWD.VXD)
  164.     AL = 83h
  165.     ???
  166. Return: ???
  167. SeeAlso: AL=80h,AL=81h,AL=82h,AL=84h,AL=85h,AL=86h,AL=87h
  168. SeeAlso: INT 2F/AX=1684h/BX=38DAh"VIWD"
  169. --------s-7E--84-----------------------------
  170. INT 7E - IWSBSDRV v1.41 - WAKE PROGRAM???
  171.     AL = 84h
  172. Return: AL = status
  173.         00h successful
  174.         else failed
  175. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=85h,AL=86h,AL=87h
  176. SeeAlso: INT 2F/AX=CD04h"InterWave"
  177. --------s-7E--85-----------------------------
  178. INT 7E - IWSBSDRV v1.41 - SET ??? FLAG
  179.     AL = 85h
  180. Return: nothing
  181. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=86h,AL=87h
  182. --------s-7E--86-----------------------------
  183. INT 7E - IWSBSDRV v1.41 - HOOK INT 21
  184.     AL = 86h
  185. Return: AX,BX,DX,ES destroyed
  186. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=87h
  187. --------s-7E--87-----------------------------
  188. INT 7E - IWSBSDRV v1.41 - RESTORE INT 21
  189.     AL = 87h
  190. Return: AX,DX destroyed
  191. SeeAlso: AL=80h,AL=81h,AL=82h,AL=83h,AL=84h,AL=85h,AL=86h
  192. --------V-7F---------------------------------
  193. INT 7F - Halo88 - API
  194.     BX = function number (see #3498)
  195.     additional parameters on stack
  196. Return: ???
  197. Program: Halo88 is a suite of graphics routines
  198. Note:    according to Stuart Kemp, the code appears to make no provisions for
  199.        chaining
  200.  
  201. (Table 3498)
  202. Values for Halo88 API function:
  203.  64h    arc
  204.  65h    bar
  205.  66h    box
  206.  67h    circle
  207.  68h    clr
  208.  69h    default hatch style
  209.  6Ah    default line style
  210.  6Bh    delhcur
  211.  6Ch    delln / deltcur
  212.  6Dh    ellipse
  213.  6Eh    fill
  214.  6Fh    flood
  215.  70h    flood2
  216.  71h    init graphics
  217.  72h    init hcur
  218.  73h    init marker
  219.  74h    init tcur
  220.  75h    inqarc
  221.  76h    inqbknd
  222.  77h    inqclr
  223.  78h    inqerr
  224.  79h    inqgcur
  225.  7Ah    inqhcur
  226.  7Bh    inqmarker
  227.  7Dh    inqtcur
  228.  7Eh    inqtext
  229.  7Fh    lnabs
  230.  80h    lnrel
  231.  81h    markerabs
  232.  82h    markerrel
  233.  83h    moveabs
  234.  84h    movehcurabs
  235.  85h    movehcurrel
  236.  86h    moverel
  237.  87h    movetcurabs
  238.  88h    movetcurrel
  239.  89h    movefrom
  240.  8Ah    moveto
  241.  8Bh    pie
  242.  8Ch    polylnabs
  243.  8Dh    polylnrel
  244.  8Eh    ptabs
  245.  8Fh    ptrel
  246.  91h    setasp
  247.  92h    set color
  248.  93h    set font
  249.  94h    set hatch    style
  250.  95h    set line style
  251.  97h    settext
  252.  98h    set text color
  253.  99h    btext
  254.  9Ah    setseg
  255.  9Bh    display
  256.  9Ch    setscreen
  257.  9Eh    close graphics
  258.  9Fh    ftinit
  259.  A0h    ftlocate
  260.  A1h    ftext
  261.  A5h    set viewport
  262.  A6h    set window
  263.  A7h    set world
  264.  AAh    ftcolor
  265.  ACh    initlp
  266.  ADh    inqasp
  267.  AEh    inqdev
  268.  AFh    inqdisplay
  269.  B0h    inqft
  270.  B1h    inqftcolor
  271.  B2h    inqinterlace
  272.  B3h    inqlpa
  273.  B4h    inqlpg
  274.  B5h    inqmode
  275.  B6h    inqscreen
  276.  B7h    inqversion
  277.  B8h    roam
  278.  B9h    scroll
  279.  BAh    setieee
  280.  BBh    set interlace
  281.  BCh    shift
  282.  BDh    start graphics
  283.  BEh    vpan
  284.  CBh    gwrite
  285.  CCh    gread
  286.  CDh    setxor
  287.  CEh    rbox
  288.  CFh    rcir
  289.  D0h    rlnabs
  290.  D1h    rlnrel
  291.  D2h    delbox
  292.  D3h    delcir
  293.  D5h    setseg2
  294.  DCh    worldoff
  295.  DDh    mapwtod
  296.  DEh    mapdtow
  297.  DFh    mapwton
  298.  E0h    mapntow
  299.  E1h    mapdton
  300.  E2h    mapntod
  301.  E3h    inqworld
  302.  E4h    inqviewport
  303.  E5h    set line width
  304.  E6h    lnjoint
  305.  E7h    set locator
  306.  E8h    read locator
  307.  E9h    setdev
  308.  EBh    setstext
  309.  ECh    setstclr
  310.  EDh    setstang
  311.  EEh    stext
  312.  EFh    inqstext
  313.  F0h    setdegree
  314.  F1h    inqstsize
  315.  F2h    polyfabs
  316.  F3h    polyfrel
  317.  F4h    inqdrange
  318.  F5h    inqstang
  319.  F6h    orglocator
  320.  F7h    inqlocator
  321.  F8h    inqarea
  322.  F9h    setipal
  323.  FAh    setborder
  324.  FBh    inqcrange
  325.  FEh    setclip
  326.  FFh    fcir
  327. 100h    setcrange
  328. 101h    setdrange
  329. 102h    setlattr
  330. 103h    polycabs
  331. 104h    polycrel
  332. 108h    memcom
  333. 109h    memexp
  334. 10Ah    memmov
  335. 10Eh    movefx
  336. 10Fh    movetx
  337. 110h    inqrgb
  338. 111h    save image
  339. 112h    restore image
  340. 113h    setapal
  341. 114h    setxpal
  342. 118h    inqtsize
  343. 12Eh    gprint
  344. 130h    setprn
  345. 131h    setpattr
  346. 133h    setbattr
  347. 135h    pexpand
  348. 136h    ptnorm
  349. 137h    pfnorm
  350. 13Bh    inqprn
  351. 13Ch    lopen
  352. 13Dh    lclose
  353. 13Eh    lappend
  354. 13Fh    lrecord
  355. 140h    lswitch
  356. 142h    inqfun
  357. 15Dh    lsetup
  358. 15Eh    lrest
  359. 15Fh    lsave
  360. --------N-7F---------------------------------
  361. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  362.     AL = request ID
  363.         01h "Request"/"RequestDirect"
  364.         ES:BX -> pRq
  365.         DX ignored
  366.         04h "Wait"
  367.         ES:BX -> ppMsgRet
  368.         DX = exchange
  369.         05h "AllocExch"
  370.         ES:BX -> pExchRet
  371.         06h "DeAllocExch"
  372.         DX = exchange
  373.         07h "Check"
  374.         ES:BX -> ppMsgRet
  375.         DX = exchange
  376.     CX = 4354h ('CT')
  377. Return: AX = status
  378.         0000h successful
  379. --------S-7F---------------------------------
  380. INT 7F - Telebit ACS SERIAL I/O
  381.     ES:SI-> parameter block (see #3499)
  382. Return: CF set on error
  383.     CF clear on success
  384. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  385.       handler; this serves as the installation check
  386. Index:    installation check;Telebit ACS Serial I/O
  387.  
  388. Format of Telebit ACS parameter block:
  389. Offset    Size    Description    (Table 3499)
  390.  00h    BYTE    command (see #3500)
  391.  01h    BYTE    gateway number
  392.  02h    BYTE    reserved
  393.  03h    BYTE    port
  394.  04h 17 BYTEs    auxiliary buffer
  395.  15h    BYTE    session
  396.  16h    WORD    count of bytes passed to API
  397.  18h    DWORD    buffer pointer passed to/from API
  398.  1Ch    WORD    count of bytes passed from API
  399.  1Eh    BYTE    return code (see #3501)
  400.  
  401. (Table 3500)
  402. Values for Telebit ACS command:
  403.  3Ch    status
  404.  3Dh    connect
  405.  3Eh    disconnect
  406.  3Fh    read
  407.  40h    data/command write
  408.  41h    clear receive buffer
  409.  42h    get configuration
  410.  43h    get receiver status
  411.  44h    raw write
  412.  45h    search servers
  413.  46h    set transmit buffer size
  414.  
  415. (Table 3501)
  416. Values for Telebit ACS return code:
  417.  00h    success
  418.  01h    invalid session
  419.  05h    servername invalid
  420.  06h    NetWare fileserver bindery is locked
  421.  07h    communication server not active
  422.  08h    general failure in NetWare fileserver
  423.  09h    not logged into a fileserver
  424.  10h    connection table full
  425.  11h    no response from communication server
  426.  12h    connection attempt terminated abnormally
  427.  13h    connection refused - no sessions available
  428.  14h    gateway number/port already in use
  429.  15h    invalid connection response
  430.  16h    port invalid
  431.  17h    incorrect version in server response
  432.  18h    gateway number/port combination not configured
  433.  19h    initialization has not been completed
  434.  20h    no more sockets are available
  435.  21h    no active poolname
  436.  23h    FATAL internal interface error
  437.  24h    registration of host workstation failed - name is already in use
  438.  25h    registration of host workstation failed - workstation name table full
  439.  26h    registration of host workstation failed - only one session may be
  440.       registered for dial-in
  441.  FFh    Telebit ACS API is busy - retry later
  442. --------N-7F---------------------------------
  443. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  444. Notes:    the installation check consists of checking for the signature "Lynn"
  445.       in the four bytes preceding the interrupt handler; if present, the
  446.       current program is running as a DOS task on a non-dedicated NetWare
  447.       2.x file server.
  448.     Before placing the server into "console" mode, it is recommended that
  449.       NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  450. SeeAlso: INT 21/AH=DEh/DL=04h
  451. Index:    installation check;non-dedicated NetWare server
  452. --------S-7F---------------------------------
  453. INT 7F U - YTERM - ???
  454. SeeAlso: INT 7E"YTERM"
  455. --------E-7F---------------------------------
  456. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  457. Notes:    this vector is overwritten when GO32 starts but is not restored by
  458.       early versions of the DOS extender
  459.     the newest versions of GO32 dynamically allocate the vectors used
  460.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  461. SeeAlso: INT 0F"IRQ7",INT 7E"GO32"
  462. ----------7F---------------------------------
  463. INT 7F - Canon IXHND2 Scanner Interface
  464. --------U-7F---------------------------------
  465. INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT
  466.     DS:SI -> WinRun control block (WCB) (see #3502)
  467. Return: WinRun receiver status returned in WCB
  468. Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start
  469.       Windows applications from a virtual DOS machine under Windows
  470. Note:    The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need
  471.       to be up and running
  472.  
  473. Format of the WinRun control block (WCB):
  474. Offset    Size    Description    (Table 3502)
  475.  00h    DWORD    pointer to ASCIZ command string
  476.  04h    WORD    (ret) WinRun receiver status
  477.         0000h-001Fh WinExec() error
  478.         0020h-FFFEh WinExec() instance handle
  479.         FFFFh        Windows not running or WinRun receiver not
  480.                   installed
  481. --------N-7F---------------------------------
  482. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  483. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  484.       MW386 multitasking system is present (i.e. signature "NXNX")
  485.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  486.       load time.  To determine the actual vector used, open the device
  487.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  488.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  489.       be the actual interrupt number being used; the other interrupts may
  490.       be found with INT 7F/AH=09h/CL=03h
  491. --------N-7F---------------------------------
  492. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  493. Note:    a program may determine that it is running on an ANSK Slave by checking
  494.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  495.       address is RAM, and should not be written.  However, the above check
  496.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  497.       device driver
  498. --------N-7F00-------------------------------
  499. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  500.     AH = 00h
  501.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  502. Return: AL = status (see #3503)
  503.     AH = semaphore owner if status=02h
  504. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  505.  
  506. (Table 3503)
  507. Values for Alloy function status:
  508.  00h    successful
  509.  01h    invalid function
  510.  02h    semaphore already locked
  511.  03h    unable to lock/unlock semaphore
  512.  04h    semaphore space exhausted
  513.  05h    host/target PC did not respond (NTNX)
  514. --------T-7F00-------------------------------
  515. INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
  516.     AH = 00h
  517.     BX = resource identifier
  518.     AL = wait flag
  519. Return: AL = status
  520.         00h successful
  521.         01h resource not available
  522.         02h user error
  523. Notes:    the installation check consists of ensuring that the interrupt vector
  524.       is not pointing at segment 0000h, then checking whether the byte
  525.       at offset 0000h in the interrupt handler's segment is E9h
  526.     function will not return until the resource is available if AL is
  527.       nonzero on entry
  528.     a maximum of 100 resources may be enqueued at once
  529. SeeAlso: AH=01h"MultiLink"
  530. --------N-7F00-------------------------------
  531. INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
  532.     AH = 00h
  533.     ES:SI -> buffer for "USERS" text string
  534. Return: AX = 4250h ('BP') if installed
  535.     BX = 5120h ('Q ') if installed
  536.     DX = version number (DH = major, DL = minor)
  537.     CX = length of returned string
  538. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  539.       John Wiseman which allows a PC to act as a node in an AX.25 network
  540. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  541. --------N-7F01-------------------------------
  542. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  543.     AH = 01h
  544.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  545. Return: AL = status (see #3503)
  546.     AH = semaphore owner if status=02h
  547. SeeAlso: AH=00h,AH=02h,AH=41h
  548. --------T-7F01-------------------------------
  549. INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
  550.     AH = 01h
  551.     BX = resource identifier
  552. Return: AL = status
  553.         00h successful
  554.         02h user error
  555. Note:    the indicated resource may be dequeued even if it was enqueued by
  556.       another task
  557. SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"
  558. --------V-7F01-------------------------------
  559. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  560.     AH = 01h
  561. Return: BX = 1234h if installed
  562.         DX:AX -> array of FAR entry points
  563.         CH = driver major version
  564.         CL = driver minor version
  565. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  566. SeeAlso: AX=1234h,AX=4321h
  567. --------N-7F01-------------------------------
  568. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  569.     AH = 01h
  570.     AL = stream number (01h-40h)
  571.     CL = new application flags
  572.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  573.     DL = new application mask
  574. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  575.       John Wiseman which allows a PC to act as a node in an AX.25 network
  576. Range:    INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  577.       (earlier versions were hard-wired for INT 7F)
  578. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  579. --------I-7F0104BX0000-----------------------
  580. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  581.     AX = 0104h (HLLAPI gate ID)
  582.     BX = 0000h
  583.     DS:SI -> parameter control block (see #3504)
  584. Return: parameter control block updated
  585. Note:    the installation check for the Novell HLLAPI TSR is the signature
  586.       string "CXI" (for the company Novell bought) immediately prior to
  587.       the interrupt handler
  588. SeeAlso: AX=0105h,AX=ABCDh
  589.  
  590. Format of HLLAPI parameter control block:
  591. Offset    Size    Description    (Table 3504)
  592.  00h  3 BYTEs    signature = 'PCB'
  593.  03h    BYTE    function number (see #3505,#3506)
  594.  04h    WORD    segment of control string
  595.  06h    WORD    offset of control string
  596.  08h    WORD    length of control string, unless explicit end-of-str char set
  597.  0Ah    BYTE    unused (IBM)
  598.         ControlString[0] (Rabbit)
  599.  0Bh    WORD    return code (see #3508)
  600.  0Dh    WORD    maximum length of control string (IBM)
  601.         unused (Rabbit)
  602.  
  603. (Table 3505)
  604. Values for HLLAPI function number:
  605.  00h    OEM function (Query system for Attachmate implementation)
  606.  01h    Connect presentation space
  607.  02h    Disconnect presentation space
  608.  03h    Send string of keystrokes as if typed from keyboard
  609.  04h    Wait ~60s, returns status of presentation space
  610.  05h    Copy current presentation space into a user-defined buffer
  611.  06h    Search presentation space for first occurrence of a specified string
  612.  07h    Query cursor location in current presentation space
  613.  08h    Copy part or all of current presentation space into user buffer
  614.  09h    Set session parameters; parameters vary by vendor (see #3507)
  615.  0Ah    Get info on sessions currently connected
  616.  0Bh    Lock current presentation space
  617.  0Ch    Unlock previously locked presentation space
  618.  0Dh    Return copy of operator info area (OIA) of current presentation space
  619.  0Eh    get attribute byte for given position in the current presentation space
  620.  0Fh    copy string of characters to the current presentation space
  621.  10h    workstation control functions
  622.  11h    storage manager functions, intended primarily for BASIC applications
  623.     (not implemented by Rabbit)
  624.  12h    set delay period in half-second intervals
  625.  14h    get info on level of workstation support used
  626.  15h    reset session parameters to default values
  627.  16h    get detailed info on the current session
  628.  17h    start host notification to application on presentation sp or OIA update
  629.  18h    check host update when host notification enabled
  630.  19h    stop host notification
  631.  1Eh    search field within current presentation space for string
  632.  1Fh    get first positionof a selected field in the current presentation space
  633.  20h    get length of specified field
  634.  21h    copy string into a specified field
  635.  22h    copy specified field into a user-defined buffer
  636.  23h    create alternate presentation space (IBM only), don't use with BASIC
  637.  24h    switch to alternate presentation space (IBM only), not with BASIC
  638.  25h    display cursor in specified area (IBM only), don't use with BASIC
  639.  26h    display alternate presentation space (IBM only), don't use with BASIC
  640.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  641.  28h    set cursor
  642.  29h    start Close Intercept
  643.  2Ah    query Close Intercept
  644.  2Bh    stop Close Intercept
  645.  32h    start intercepting keystrokes to allow filtering
  646.  33h    get keystrokes after turning on interception
  647.  34h    notify operator when keystroke rejected by filter subroutine
  648.  35h    stop intercepting keystrokes
  649.  5Ah    send file
  650.  5Bh    receive file
  651.  5Ch    run a program (not implemented by Rabbit)
  652.  5Dh    execute DOS command (not implemented by Rabbit)
  653.  63h    change presentation space position to PC display row/col or vice versa
  654.  65h    connect to Window Services
  655.  66h    disconnect from Window Services
  656.  67h    set/query window coordinates
  657.  68h    set/query window status
  658.  69h    change presentation space name
  659.  78h    connect Structured Fields
  660.  79h    disconnect Structured Fields
  661.  7Ah    query size of communications buffer
  662.  7Bh    allocate communications buffer
  663.  7Ch    free communications buffer
  664.  7Dh    get request completion state
  665.  7Eh    read Structured Fields
  666.  7Fh    write Structured Fields
  667.  FFh    Get info on DCA implementation
  668.  
  669. (Table 3506)
  670. Values for LLAPI function number:
  671.  80h    initialize LLAPI (internal call)
  672.  83h    set Session ID (one-character ID)
  673.  84h    read Session ID (one-character ID)
  674.  85h    lock 327x keyboard
  675.  86h    unlock 327x keyboard
  676.  87h    wait for Clear to Send
  677.  88h    type ASCII character
  678.  89h    type 327x key
  679.  8Ah    read keyboard lock state
  680.  8Fh    force screen update
  681.  90h    view session
  682.  91h    relinquish (suspend foreground until background becomes idle)
  683.  92h    poke screen character
  684.  93h    poke translated character
  685.  94h    peek screen character
  686.  95h    peek translated character
  687.  96h    set cursor position
  688.  97h    send scan code (Rabbit only)
  689.  98h    synchronize (returns after keystroke queue empty)
  690.  99h    type PC key (Rabbit only)
  691.  
  692. (Table 3507)
  693. Values for HLLAPI Function 09h Session Parameters:
  694.  ASCII        ??? (Rabbit only)
  695.  ATTRIB        return attributes in hex
  696.  NOATTRIB    return attributes as blanks
  697.  CONPHYS    make physical connection
  698.  CONLOG        only make logical connection
  699.  EAB        copy extended attribute bytes along with data
  700.  NOEAB        copy data only
  701.  ESC=n        set escape character to "n" (default '@')
  702.  EOT=n        set end of string character (default 00h)
  703.  FPAUSE        full-duration pause
  704.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  705.  FTWAIT        wait for file transfer to complete (Rabbit only)
  706.  IPAUSE        interruptable pause
  707.  RABESC        ??? (Rabbit only)
  708.  NORABESC    ??? (Rabbit only)
  709.  SCANCODE    ??? (Rabbit only)
  710.  STRLEN        use explicit string lengths
  711.  STREOT        use terminated strings
  712.  SRCHALL    search entire presentation space
  713.  SRCHFROM    search from specified offset
  714.  SRCHFRWD    search forward from position 1
  715.  SRCHBKWD    search backward from last position in presentation space
  716.  TIMEOUT=n    ??? (Rabbit only)
  717.  TWAIT        wait specified time for keyboard ready
  718.  LWAIT        wait until keyboard ready
  719.  NWAIT        no wait
  720.  TRON        enable tracing
  721.  TROFF        disable tracing
  722.  AUTORESET    send reset before sending keys with function 03h
  723.  NORESET    don't send reset
  724.  QUIET        don't display messages sent with INT 21/AH=09h
  725.  NOQUIET    allow messages to be displayed
  726.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  727.  XLATE        translate extended attribute bytes
  728.  NOXLATE    don't translate
  729.  NEWRET        use HLLAPI v3.0 return code conventions
  730.  OLDRET        use HLLAPI v2.0 return code conventions
  731.  
  732. (Table 3508)
  733. Values for Windows HLLAPI return code:
  734.  00h    successful
  735.  01h    Presentation Space not connected/requested size unavailable
  736.  02h    invalid function or parameter error/invalid block ID
  737.  03h    file transfer complete
  738.  04h    file transfer complete (segmented)/Presentation Space busy
  739.  05h    inhibited or keyboard locked
  740.  06h    data truncated
  741.  07h    invalid Presentation Space position
  742.  08h    operation not available
  743.  09h    system error
  744.  0Ah    blocking error
  745.  0Bh    resource not available
  746.  0Ch    session stopped
  747.  14h    undefined key combination
  748.  15h    OIA updated
  749.  16h    Presentation Space updated
  750.  17h    both Presentation Space and OIA updated
  751.  18h    no such field
  752.  19h    no keystrokes available
  753.  1Ah    Presentation Space or Operator Information Area changed
  754.  1Bh    file transfer aborted
  755.  1Ch    zero-length field
  756.  1Eh    cursor type invalid
  757.  1Fh    keystroke overflow
  758.  20h    another application is already connected
  759.  22h    message sent to host cancelled
  760.  23h    transmission from host cancelled
  761.  24h    lost contact with host
  762.  25h    function successful
  763.  26h    function incomplete
  764.  27h    a DDM session is already connected
  765.  28h    disconnected, but asynchronous requests still pending
  766.  29h    buffer already in use
  767.  2Ah    no matching request found
  768. 12Dh    invalid function number
  769. 12Eh    file not found
  770. 131h    access denied
  771. 134h    out of memory
  772. 136h    environment invalid
  773. 137h    format invalid
  774. 270Eh (9998) invalid Presentation Space ID
  775. 270Fh (9999) invalid row or column code
  776. ---Windows HLLAPI extensions---
  777. F000h    asynchronous call already in progress
  778. F001h    invalid asynchronous task ID
  779. F002h    blocking call cancelled
  780. F003h    underlying subsystem not started
  781. F004h    unsupported application version
  782. --------V-7F0105-----------------------------
  783. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  784.     AX = 0105h
  785. Return: CF set on error
  786.     CF clear if successful
  787.         CX:DX -> array of FAR pointers to entry points (see #3509)
  788. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  789.       and then performing a FAR call via the appropriate vector of the
  790.       entry point array, placing the FAR address of the function's
  791.       parameter block on the top of the stack
  792. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  793.  
  794. (Table 3509)
  795. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  796.  08h    HOPEN    Open Adapter (see #3541)
  797.  09h    HSMX    Set Mix (see #3570)
  798.  10h    HINT    Interrupt (see #3537)
  799.  13h    HLDPAL    Load Palette (see #3538)
  800.  15h    HBBW    BitBLT Write Image Data (see #3524)
  801.  17h    HBBR    BitBLT Read Image Data (see #3525)
  802.  18h    HBBCHN    Chained Data Go (see #3523)
  803.  19h    HBBC    BitBLT Copy Data (see #3522)
  804.  1Dh    HQMODE    Get Current Mode (see #3547)
  805.  20h    HRECT    Fill Rectangle (see #3549)
  806.  22h    HCLOSE    Close Adapter and place in quiescent state (see #3530)
  807.  30h    HINIT    Initialize State (see #3536)
  808.  31h    HSYNC    Synchronize Adapter (see #3575)
  809.  39h    HSPAL    Save Palette (see #3572)
  810.  3Ah    HRPAL    Restore Palette (see #3552)
  811.  ???    HSGQ    Set Graphics Quality (see #3561)
  812.  ???    HSCOORD    Set Coordinate Type (see #3558)
  813.  ???    HESC    Escape, Terminate Processing (see #3535)
  814.  ???    HSBCOL    Set Background Color (see #3553)
  815.  ???    HSBP    Set Bit Plane Controls (see #3554)
  816.  ???    HSCMP    Set Color Comparison Register (see #3556)
  817.  ???    HSCOL    Set Color (see #3557)
  818.  ???    HSHS    Set Scissors (clipping rectangle) (see #3562)
  819.  ???    HXLATE    Assign Text Color (see #3576)
  820.  ???    HQMODES    Get Adapter Modes (see #3548)
  821.  ???    HQDPS    Get Drawing Process State Size (see #3546)
  822.  ???    HQDFPAL    Get Default Palette (see #3545)
  823.  ???    HQCOORD    Get Coordinate Type (see #3543)
  824.  ???    HQCP    Get Current Position (see #3544)
  825.  ???    HSMODE    Change Mode (see #3568)
  826.  ???    HLINE    Draw Line at Given Position (see #3539)
  827.  ???    HCLINE    Draw Line at Current Position (see #3529)
  828.  ???    HRLINE    Draw Line Relative from Given Position (see #3550)
  829.  ???    HCRLINE    Draw Line Relative at Current Position (see #3532)
  830.  ???    HSLT    Set Line Type (see #3565)
  831.  ???    HSLW    Set Line Width (see #3567)
  832.  ???    HSLPC    Save Line Pattern Count (see #3564)
  833.  ???    HRLPC    Restore Line Pattern Count (see #3551)
  834.  ???    HCBBW    BitBLT Write Image Data at Current Position (see #3526)
  835.  ???    HBAR    Begin Area (see #3521)
  836.  ???    HEAR    End Area (see #3533)
  837.  ???    HSPATT    Set Pattern (see #3573)
  838.  ???    HSPATTO    Set Pattern Reference Point (see #3574)
  839.  ???    HEGS    Erase Graphics Screen (see #3534)
  840.  ???    HSCP    Set Current Position (see #3559)
  841.  ???    HMRK    Set Marker (see #3540)
  842.  ???    HCMRK    Set Marker at Current Position (see #3531)
  843.  ???    HSMARK    Set Marker Shape (see #3569)
  844.  ???    HSCS    Set Character Set (see #3560)
  845.  ???    HCHST    Write Character String at Given Position (see #3528)
  846.  ???    HCCHST    Write Character String at Current Position (see #3527)
  847.  ???    HSCELL    Set Cell Size for Alphanumeric Text (see #3555)
  848.  ???    ABLOCKMFI Write Character/Attribute Block MFI (see #3512)
  849.  ???    ABLOCKCGA Write Character Block CGA (see #3510)
  850.  ???    AERASE    Erase Rectangle (see #3515)
  851.  ???    ASCROLL Scroll Rectangle (see #3516)
  852.  ???    ACURSOR    Set Alphanumerics Cursor Position (see #3514)
  853.  ???    ASCUR    Set Alphanumeric Cursor Shape (see #3517)
  854.  ???    ASFONT    Set Font (see #3518)
  855.  ???    AXLATE    Assign Alphanumeric Color (see #3520)
  856.  
  857. Format of ABLOCKCGA parameter block:
  858. Offset    Size    Description    (Table 3510)
  859.  00h    WORD    000Ah (length of following data)
  860.  02h    WORD    top-left coordinate of character block
  861.  04h    WORD    width of block
  862.  06h    DWORD    -> block of WORDs describing characters (see #3511)
  863.  0Ah    BYTE    length of block in characters
  864.  0Bh    BYTE    highlight attribute
  865.         bit 4: transparent background
  866.         bit 5: overstrike
  867.         bit 6: reverse video
  868.         bit 7: underscore
  869. SeeAlso: #3512
  870.  
  871. Bitfields for one character in ABLOCKCGA character block:
  872. Bit(s)    Description    (Table 3511)
  873.  3-0    foreground attribute
  874.  7-4    background attribute
  875.  15-8    character code
  876.  
  877. Format of ABLOCKMFI parameter block:
  878. Offset    Size    Description    (Table 3512)
  879.  00h    WORD    0009h (length of following data)
  880.  02h    WORD    top-left coordinate of character block
  881.  04h    WORD    width of block
  882.  06h    DWORD    -> block of DWORDs describing characters (see #3513)
  883.  0Ah    BYTE    length of block in characters
  884. SeeAlso: #3510
  885.  
  886. Bitfields for one character in ABLOCKMFI character block:
  887. Bit(s)    Description    (Table 3513)
  888.  7-0    reserved
  889.  9-8    low two bits of font number
  890.  12    transparent background
  891.  13    overstrike
  892.  14    reverse video
  893.  15    underscore
  894.  19-16    foreground color attribute
  895.  23-20    background color attribute
  896.  31-24    character code
  897.  
  898. Format of ACURSOR parameter block:
  899. Offset    Size    Description    (Table 3514)
  900.  00h    WORD    0002h (length of following data)
  901.  02h    BYTE    column (0-based)
  902.  03h    BYTE    row (0-based)
  903. SeeAlso: #3517
  904.  
  905. Format of AERASE parameter block:
  906. Offset    Size    Description    (Table 3515)
  907.  00h    WORD    0005h (length of following data)
  908.  02h    BYTE    left-most column (0-based)
  909.  03h    BYTE    top-most row (0-based)
  910.  04h    BYTE    rectangle's width in character cells
  911.  05h    BYTE    rectangle's height in character cells
  912.  06h    BYTE    background color (bits 7-4)
  913. SeeAlso: #3516
  914.  
  915. Format of ASCROLL parameter block:
  916. Offset    Size    Description    (Table 3516)
  917.  00h    WORD    0006h (length of following data)
  918.  02h    BYTE    left-most column (0-based) of source
  919.  03h    BYTE    top-most row (0-based) of source
  920.  04h    BYTE    rectangle's width in character cells
  921.  05h    BYTE    rectangle's height in character cells
  922.  06h    BYTE    left-most column (0-based) of destination
  923.  07h    BYTE    top-most row (0-based) of destination
  924. SeeAlso: #3515
  925.  
  926. Format of ASCUR parameter block:
  927. Offset    Size    Description    (Table 3517)
  928.  00h    WORD    0003h (length of following data)
  929.  02h    BYTE    cursor start line (00h = top of cell, FFh = keep current shape)
  930.  03h    BYTE    cursor stop line
  931.  04h    BYTE    cursor attribute
  932.         00h normal
  933.         01h hidden
  934.         02h left-arrow (requires start = 2 and stop = bottom of cell)
  935.         03h right-arrow (requires start = 2 and stop = bottom of cell)
  936. Notes:    no cursor is shown if the start line is greater than the stop line
  937.     the alphanumeric cursor is hidden after each mode change
  938. SeeAlso: #3514,INT 10/AH=01h
  939.  
  940. Format of ASFONT parameter block:
  941. Offset    Size    Description    (Table 3518)
  942.  00h    WORD    0005h (length of following data)
  943.  02h    BYTE    font number (0-3)
  944.  03h    DWORD    -> character set definition block (see #3519)
  945.  
  946. Format of 8514/A character set definition block:
  947. Offset    Size    Description    (Table 3519)
  948.  00h    BYTE    reserved
  949.  01h    BYTE    type of character set
  950.         00h bitmapped, 01h&02h reserved, 03h short-stroke font
  951.  02h    BYTE    reserved
  952.  03h    DWORD    reserved
  953.  07h    BYTE    cell width in pixels
  954.  08h    BYTE    cell height in pixels
  955.  09h    BYTE    reserved
  956.  0Ah    WORD    cell size in bytes
  957.  0Ch    WORD    flags
  958.         bit 15: reserved (0)
  959.         bit 14: color bitmap
  960.         bit 13: proportional spacing
  961.  0Eh    DWORD    -> index table
  962.  12h    DWORD    -> character width table
  963.  16h    BYTE    initial code point
  964.  17h    BYTE    final code point
  965.  18h    DWORD    -> character definition table
  966.  1Ch    WORD    reserved
  967.  1Eh    DWORD    -> second character definition table
  968.  22h    WORD    reserved
  969.  24h    DWORD    -> third character definition table
  970.  
  971. Format of AXLATE parameter block:
  972. Offset    Size    Description    (Table 3520)
  973.  00h    WORD    0080h (length of following data)
  974.  02h 64 BYTEs    character foreground translation table
  975.  42h 64 BYTEs    character background translation table
  976.  
  977. Format of HBAR parameter block:
  978. Offset    Size    Description    (Table 3521)
  979.  00h    WORD    0000h (no data following)
  980. SeeAlso: #3533
  981.  
  982. Format of HBBC parameter block:
  983. Offset    Size    Description    (Table 3522)
  984.  00h    WORD    0010h (length of following data)
  985.  02h    WORD    data format
  986.         0000h across-the-plane copy (color expansion)
  987.         0008h through-the-plane copy
  988.  04h    WORD    data rectangle's width
  989.  06h    WORD    data rectangle's height
  990.  08h    BYTE    source bit plane number (across-the-plane copies only)
  991.  09h    BYTE    reserved
  992.  0Ah  2 WORDs    X,Y coordinates of source's upper-left corner in display memory
  993.  0Eh  2 WORDs    X,Y coordinates of destination's upper-left corner in
  994.           display memory
  995. Note:    copies data from one location in video memory to another
  996. SeeAlso: #3523
  997.  
  998. Format of HBBCHN parameter block:
  999. Offset    Size    Description    (Table 3523)
  1000.  00h    WORD    0006h (length of following data)
  1001.  02h    DWORD    -> data buffer in system memory
  1002.  06h    WORD    number of bytes to transfer
  1003. Note:    this function performs the actual data transfer for a bitBLT set up
  1004.       with HBBR, HBBW, or HCBBW
  1005. SeeAlso: #3522,#3524,#3525,#3526
  1006.  
  1007. Format of HBBR parameter block:
  1008. Offset    Size    Description    (Table 3524)
  1009.  00h    WORD    000Ch or 0014h (length of following data)
  1010.  02h    WORD    data format
  1011.         0000h across-the-plane copy (color expansion)
  1012.         0008h through-the-plane copy
  1013.  04h    WORD    data rectangle's width
  1014.  06h    WORD    data rectangle's height
  1015.  08h    BYTE    source bit plane number
  1016.  09h    BYTE    reserved
  1017.  0Ah  2 WORDs    X,Y coordinates of destination's upper-left corner in
  1018.           display memory
  1019. ---optional---
  1020.  0Eh    WORD    sub-rectangle left margin in pixels
  1021.  10h    WORD    sub-rectangle top margin in pixels
  1022.  12h    WORD    sub-rectangle width
  1023.  14h    WORD    sub-rectangle height
  1024. SeeAlso: #3523,#3524,#3526
  1025.  
  1026. Format of HBBW parameter block:
  1027. Offset    Size    Description    (Table 3525)
  1028.  00h    WORD    000Ah or 0012h (length of following data)
  1029.  02h    WORD    data format
  1030.         0000h across-the-plane copy (color expansion)
  1031.         0008h through-the-plane copy
  1032.  04h    WORD    data rectangle's width
  1033.  06h    WORD    data rectangle's height
  1034.  08h  2 WORDs    X,Y coordinates of destination in display memory
  1035. ---optional---
  1036.  0Ch    WORD    sub-rectangle left margin in pixels
  1037.  0Eh    WORD    sub-rectangle top margin in pixels
  1038.  10h    WORD    sub-rectangle width
  1039.  12h    WORD    sub-rectangle height
  1040. SeeAlso: #3523,#3525,#3526
  1041.  
  1042. Format of HCBBW parameter block:
  1043. Offset    Size    Description    (Table 3526)
  1044.  00h    WORD    0006h or 000Eh (length of following data)
  1045.  02h    WORD    data format
  1046.         0000h across-the-plane copy (color expansion)
  1047.         0008h through-the-plane copy
  1048.  04h    WORD    data rectangle's width
  1049.  06h    WORD    data rectangle's height
  1050. ---optional---
  1051.  08h    WORD    sub-rectangle left margin in pixels
  1052.  0Ah    WORD    sub-rectangle top margin in pixels
  1053.  0Ch    WORD    sub-rectangle width
  1054.  0Eh    WORD    sub-rectangle height
  1055. SeeAlso: #3523,#3524,#3525
  1056.  
  1057. Format of HCCHST parameter block:
  1058. Offset    Size    Description    (Table 3527)
  1059.  00h    WORD    length of following data
  1060.  02h  N BYTEs    ASCII string to display (length given by 'length' field above)
  1061. SeeAlso: #3528
  1062.  
  1063. Format of HCHST parameter block:
  1064. Offset    Size    Description    (Table 3528)
  1065.  00h    WORD    length of following data
  1066.  02h  2 WORDs    X,Y of left-bottom corner of string on screen
  1067.  06h  N BYTEs    ASCII string to display (length given by 'length' field above)
  1068. SeeAlso: #3527
  1069.  
  1070. Format of HCLINE parameter block:
  1071. Offset    Size    Description    (Table 3529)
  1072.  00h    WORD    length of following data (multiple of 4)
  1073.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  1074. Notes:    the first line segment is drawn beginning at the current position
  1075.     on completion, the current position is set to the last point drawn
  1076. SeeAlso: #3539,#3550,#3532
  1077.  
  1078. Format of HCLOSE parameter block:
  1079. Offset    Size    Description    (Table 3530)
  1080.  00h    WORD    0001h (length of following data)
  1081.  01h    BYTE    (ret) return code
  1082. SeeAlso: #3541
  1083.  
  1084. Format of HCMRK parameter block:
  1085. Offset    Size    Description    (Table 3531)
  1086.  00h    WORD    length of following data
  1087.  02h 2N WORDs    X,Y of N points
  1088. Note:    draws N+1 marker symbols, the first one at the current position
  1089. SeeAlso: #3540
  1090.  
  1091. Format of HCRLINE parameter block:
  1092. Offset    Size    Description    (Table 3532)
  1093.  00h    WORD    length of following data (multiple of 4)
  1094.  02h 2N WORDs    X,Y coordinates relative to the position of the previous point
  1095.           (current position for first point) for each of N points in
  1096.           polyline
  1097. Notes:    the first line segment is drawn beginning at the current position
  1098.     on completion, the current position is set to the last point drawn
  1099. SeeAlso: #3539,#3529,#3550
  1100.  
  1101. Format of HEAR parameter block:
  1102. Offset    Size    Description    (Table 3533)
  1103.  00h    WORD    0001h (length of following data)
  1104.  02h    BYTE    area definition flags
  1105.         bits 7-6: End Area type
  1106.             00 complete, perform fill
  1107.             01 suspend definition
  1108.             10 complete, but don't fill
  1109. SeeAlso: #3521
  1110.  
  1111. Format of HEGS parameter block:
  1112. Offset    Size    Description    (Table 3534)
  1113.  00h    WORD    0000h (no data following)
  1114.  
  1115. Format of HESC parameter block:
  1116. Offset    Size    Description    (Table 3535)
  1117.  00h    WORD    0000h (no data following)
  1118.  
  1119. Format of HINIT parameter block:
  1120. Offset    Size    Description    (Table 3536)
  1121.  00h    WORD    0002h (length of following data)
  1122.  02h    WORD    segment of task buffer
  1123. SeeAlso: #3575
  1124.  
  1125. Format of HINT parameter block:
  1126. Offset    Size    Description    (Table 3537)
  1127.  00h    WORD    0004h (length of following data)
  1128.  02h    DWORD    interrupt/event identifier
  1129.         bit 31: vertical blanking
  1130.  
  1131. Format of HLDPAL parameter block:
  1132. Offset    Size    Description    (Table 3538)
  1133.  00h    WORD    000Ah (length of following data)
  1134.  02h    BYTE    palette ID (00h = user, 01h = default)
  1135.  03h    BYTE    reserved
  1136.  04h    WORD    number of first palette entry
  1137.  06h    WORD    number of entries
  1138.  08h    DWORD    -> palette entries
  1139. SeeAlso: #3572
  1140.  
  1141. Format of HLINE parameter block:
  1142. Offset    Size    Description    (Table 3539)
  1143.  00h    WORD    length of following data (multiple of 4)
  1144.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  1145. Note:    on completion, the current position is set to the last point drawn
  1146. SeeAlso: #3529,#3550,#3532
  1147.  
  1148. Format of HMRK parameter block:
  1149. Offset    Size    Description    (Table 3540)
  1150.  00h    WORD    length of following data (multiple of 4)
  1151.  02h 2N WORDs    X,Y for N points
  1152. SeeAlso: #3531
  1153.  
  1154. Format of HOPEN parameter block:
  1155. Offset    Size    Description    (Table 3541)
  1156.  00h    WORD    0003h (length of following data)
  1157.  01h    BYTE    initialization flags
  1158.         bit 6: don't load default palette
  1159.         bit 7: clear bitplanes
  1160.  02h    BYTE    mode type (see #3542)
  1161.  03h    BYTE    (ret) return code
  1162.         bit 7: no adapter (hardware mismatch)
  1163. SeeAlso: #3530
  1164.  
  1165. (Table 3542)
  1166. Values for 8514/A display mode:
  1167.  0000h    12x20 characters, 1024x768
  1168.  0001h    8x14 characters, 640x480
  1169.  0002h    8x14 characters, 1024x768
  1170.  0003h    7x15 characters, 1024x768
  1171.  
  1172. Format of HQCOORD parameter block:
  1173. Offset    Size    Description    (Table 3543)
  1174.  00h    WORD    0004h (length of following data)
  1175.  02h    BYTE    (ret) coordinate format
  1176.         bits 7-4: bytes per coordinate
  1177.         bits 3-0: fraction bytes in coordinate
  1178.  03h    BYTE    (ret) relative coordinate format
  1179.         bits 7-4: bytes per coordinate
  1180.         bits 3-0: fraction bytes in coordinate
  1181.  04h    BYTE    (ret) number of dimensions (2-4)
  1182.  05h    BYTE    (ret) test results
  1183.         bit 7: coordinate format not supported
  1184.         bit 6: relative coordinate format not supported
  1185.         bit 5: specified dimension not supported
  1186.  
  1187. Format of HQCP parameter block:
  1188. Offset    Size    Description    (Table 3544)
  1189.  00h    WORD    0004h (length of following data)
  1190.  02h    WORD    (ret) current X position
  1191.  04h    WORD    (ret) current Y position
  1192.  
  1193. Format of HQDFPAL parameter block:
  1194. Offset    Size    Description    (Table 3545)
  1195.  00h    WORD    0040h (length of following data)
  1196.  02h 16    DWORDs    (ret) color index values
  1197. Note:    the default palette is set to match the default EGA/VGA 16-color
  1198.       palettes
  1199.  
  1200. Format of HQDPS parameter block:
  1201. Offset    Size    Description    (Table 3546)
  1202.  00h    WORD    0006h (length of following data)
  1203.  02h    WORD    (ret) size of data buffer in bytes
  1204.  04h    WORD    (ret) stack size in bytes
  1205.  06h    WORD    (ret) size of palette save buffer in bytes
  1206.  
  1207. Format of HQMODE parameter block:
  1208. Offset    Size    Description    (Table 3547)
  1209.  00h    WORD    0012h (length of following data)
  1210.  02h    BYTE    current video mode (see #3542)
  1211.  03h    WORD    driver version
  1212.         bit 6: 80286/8086 CPU
  1213.         bit 5: 8 bit planes instead of 4 planes
  1214.         bits 4-0: hardware release number
  1215.  05h    BYTE    adapter type
  1216.         03h 8514/A
  1217.         04h XGA
  1218.  06h    BYTE    reserved (display type)
  1219.  07h    BYTE    character cell width
  1220.  08h    BYTE    character cell height
  1221.  09h    BYTE    number of bit planes
  1222.  0Ah    WORD    screen width (pixels)
  1223.  0Ch    WORD    screen height (pixels)
  1224.  0Eh    WORD    horizontal resolution (pixels/inch)
  1225.  10h    WORD    vertical resolution (pixels/inch)
  1226.  12h    BYTE    flag: 00h = monochrome, FFh = color
  1227.  13h    BYTE    intensity levels
  1228. SeeAlso: #3548
  1229.  
  1230. Format of HQMODES parameter block:
  1231. Offset    Size    Description    (Table 3548)
  1232.  00h    WORD    0021h (length of following data)
  1233.  02h    BYTE    (ret) adapter type
  1234.  03h 32 BYTEs    (ret) available display modes (FFh byte marks end of data)
  1235. SeeAlso: #3547
  1236.  
  1237. Format of HRECT parameter block:
  1238. Offset    Size    Description    (Table 3549)
  1239.  00h    WORD    0008h (legth of following data)
  1240.  02h  2 WORDs    X,Y coordinates of top left corner or rectangle
  1241.  06h    WORD    rectangle's width
  1242.  08h    WORD    rectangle's height
  1243. Note:    the rectangle is filled using the current pattern, color, and mix
  1244.  
  1245. Format of HRLINE parameter block:
  1246. Offset    Size    Description    (Table 3550)
  1247.  00h    WORD    length of following data (multiple of 4)
  1248.  02h  2 WORDs    X,Y coordinates of starting point
  1249.  06h 2N WORDs    X,Y coordinates relative to the position of the previous point
  1250.           for each of N points in polyline
  1251. Note:    on completion, the current position is set to the last point drawn
  1252. SeeAlso: #3539,#3529,#3532
  1253.  
  1254. Format of HRLPC parameter block:
  1255. Offset    Size    Description    (Table 3551)
  1256.  00h    WORD    0000h (no data following)
  1257. Note:    used for continuity of lines crossing scissors boundaries
  1258. SeeAlso: #3564
  1259.  
  1260. Format of HRPAL parameter block:
  1261. Offset    Size    Description    (Table 3552)
  1262.  00h    WORD    0300h (length of following data)
  1263.  02h 768 BYTEs    buffer containing previously-saved palette table
  1264. SeeAlso: #3572
  1265.  
  1266. Format of HSBCOL parameter block:
  1267. Offset    Size    Description    (Table 3553)
  1268.  00h    WORD    0004h (length of following data)
  1269.  02h    DWORD    color index for new background color
  1270. SeeAlso: #3557
  1271.  
  1272. Format of HSBP parameter block:
  1273. Offset    Size    Description    (Table 3554)
  1274.  00h    WORD    000Ch (length of following data)
  1275.  02h    DWORD    bitmask for graphics updates
  1276.  06h    DWORD    bitmask for alphanumeric updates
  1277.  0Ah    DWORD    display bitmask
  1278.  
  1279. Format of HSCELL parameter block:
  1280. Offset    Size    Description    (Table 3555)
  1281.  00h
  1282.  
  1283. Format of HSCMP parameter block:
  1284. Offset    Size    Description    (Table 3556)
  1285.  00h    WORD    0005h (length of following data)
  1286.  02h    DWORD    comparison color
  1287.  06h    BYTE    logical operation
  1288.         00h True
  1289.         01h pel > testcolor
  1290.         02h pel == testcolor
  1291.         03h pel < testcolor
  1292.         04h False
  1293.         05h pel >= testcolor
  1294.         06h pel <> testcolor
  1295.         07h pel <= testcolor
  1296.  
  1297. Format of HSCOL parameter block:
  1298. Offset    Size    Description    (Table 3557)
  1299.  00h    WORD    0004h (length of following data)
  1300.  02h    DWORD    color index for new foreground color
  1301. SeeAlso: #3553
  1302.  
  1303. Format of HSCOORD parameter block:
  1304. Offset    Size    Description    (Table 3558)
  1305.  00h    WORD    0003h (length of following data)
  1306.  02h    BYTE    coordinate format
  1307.         bits 7-4: bytes per coordinate
  1308.         bits 3-0: fraction bytes in coordinate
  1309.  03h    BYTE    relative coordinates format
  1310.         bits 7-4: bytes per coordinate
  1311.         bits 3-0: fraction bytes in coordinate
  1312.  04h    BYTE    number of dimensions (2-4)
  1313.  
  1314. Format of HSCP parameter block:
  1315. Offset    Size    Description    (Table 3559)
  1316.  00h    WORD    0004h (length of following data)
  1317.  02h  2 WORDs    X,Y or coordinate for new current position
  1318.  
  1319. Format of HSCS parameter block:
  1320. Offset    Size    Description    (Table 3560)
  1321.  00h    WORD    0004h (length of following data)
  1322.  02h    DWORD    -> character set definition
  1323.  
  1324. Format of HSGQ parameter block:
  1325. Offset    Size    Description    (Table 3561)
  1326.  00h    WORD    0002h (length of following data)
  1327.  02h    WORD    quality settings (see #3563)
  1328.  
  1329. Format of HSHS parameter block:
  1330. Offset    Size    Description    (Table 3562)
  1331.  00h    WORD    0008h (length of following data)
  1332.  02h    WORD    left edge of clipping rectangle (-2048 to +6143)
  1333.  04h    WORD    right edge
  1334.  06h    WORD    top edge
  1335.  08h    WORD    bottom edget
  1336.  
  1337. Bitfields for 8514/A quality settings:
  1338. Bit(s)    Description    (Table 3563)
  1339.  15    reserved
  1340.  14    high precision
  1341.  13    reserved
  1342.  12-11    pel code
  1343.     00 not drawn
  1344.     01 drawn
  1345.     02 conditional on overpainting/mixes
  1346.  10    don't close areas to be filed
  1347.  9-0    reserved
  1348.  
  1349. Format of HSLPC parameter block:
  1350. Offset    Size    Description    (Table 3564)
  1351.  00h    WORD    0000h (no data following)
  1352. Note:    used for continuity of lines crossing scissors boundaries
  1353. SeeAlso: #3551
  1354.  
  1355. Format of HSLT parameter block:
  1356. Offset    Size    Description    (Table 3565)
  1357.  00h    WORD    0006h (length of following data)
  1358.  02h    BYTE    line type (see #3566)
  1359.  03h    BYTE    reserved
  1360.  04h    DWORD    -> user line-type definition (if user type)
  1361. SeeAlso: #3567
  1362.  
  1363. (Table 3566)
  1364. Values for 8514/A line type:
  1365.  00h    user line type
  1366.  01h    dotted
  1367.  02h    short dashes
  1368.  03h    dash-dot
  1369.  04h    double dotted
  1370.  05h    dashed
  1371.  06h    dash double dot
  1372.  07h    solid
  1373.  08h    invisible
  1374. SeeAlso: #3565
  1375.  
  1376. Format of HSLW parameter block:
  1377. Offset    Size    Description    (Table 3567)
  1378.  00h    WORD    0001h (length of following data)
  1379.  02h    BYTE    width of line in pixels
  1380. SeeAlso: #3565
  1381.  
  1382. Format of HSMODE parameter block:
  1383. Offset    Size    Description    (Table 3568)
  1384.  00h    WORD    0001h (length of following data)
  1385.  02h    BYTE    new display mode number (see #3542)
  1386.  
  1387. Format of HSMRK paramter block:
  1388. Offset    Size    Description    (Table 3569)
  1389.  00h    WORD    000Eh (length of following data)
  1390.  02h    BYTE    cell width
  1391.  03h    BYTE    cell height
  1392.  04h    BYTE    flags
  1393.  05h    BYTE    reserved
  1394.  06h    WORD    length of marker symbol
  1395.  08h    DWORD    -> image definition data
  1396.  0Ch    DWORD    -> color definition data
  1397. SeeAlso: #3573
  1398.  
  1399. Format of HSMX parameter block:
  1400. Offset    Size    Description    (Table 3570)
  1401.  00h    WORD    0002h (length of following data)
  1402.  02h    BYTE    foreground mix (see #3571)
  1403.  03h    BYTE    background mix (see #3571)
  1404.  
  1405. (Table 3571)
  1406. Values for 8514/A mix:
  1407.  00h    retain previous mix
  1408.  01h    source OR destination
  1409.  02h    source
  1410.  04h    source XOR destination
  1411.  05h    leave as-is
  1412.  06h    max(source,destination)
  1413.  07h    min(source,destination)
  1414.  08h    source+destination (clipped)
  1415.  09h    destination-source (clipped to zero)
  1416.  0Ah    source-destination (clipped to zero)
  1417.  0Bh    average source and destination
  1418.  10h    zero destination
  1419.  11h    source AND destination
  1420.  12h    source AND NOT destination
  1421.  13h    source
  1422.  14h    NOT source AND destination
  1423.  15h    leave as-is
  1424.  16h    source XOR destination
  1425.  17h    source OR destination
  1426.  18h    NOT source AND NOT destination
  1427.  19h    NOT (source XOR destination)
  1428.  1Ah    NOT destination
  1429.  1Bh    source OR NOT destination
  1430.  1Ch    NOT source
  1431.  1Dh    NOT source OR destination
  1432.  1Eh    NOT source OR NOT destination
  1433.  1Fh    set all bits of destination
  1434.  
  1435. Format of HSPAL parameter block:
  1436. Offset    Size    Description    (Table 3572)
  1437.  00h    WORD    0300h (length of following data)
  1438.  02h 768 BYTEs    buffer for palette table
  1439. SeeAlso: #3538,#3552
  1440.  
  1441. Format of HSPATT parameter block:
  1442. Offset    Size    Description    (Table 3573)
  1443.  00h    WORD    000Eh (length of following data)
  1444.  02h    BYTE    cell width
  1445.  03h    BYTE    cell height
  1446.  04h    BYTE    flags
  1447.  05h    BYTE    reserved
  1448.  06h    WORD    length of marker symbol
  1449.  08h    DWORD    -> image definition data
  1450.  0Ch    DWORD    -> color definition data
  1451. SeeAlso: #3569,#3574
  1452.  
  1453. Format of HSPATTO parameter block:
  1454. Offset    Size    Description    (Table 3574)
  1455.  00h    WORD    0004h (length of following data)
  1456.  02h  2 WORDs    X,Y of pattern reference point (origin)
  1457. SeeAlso: #3573
  1458.  
  1459. Format of HSYNC parameter block:
  1460. Offset    Size    Description    (Table 3575)
  1461.  00h    WORD    0002h (length of following data)
  1462.  02h    WORD    segment of task state buffer
  1463. SeeAlso: #3536
  1464.  
  1465. Format of HXLATE parameter block:
  1466. Offset    Size    Description    (Table 3576)
  1467.  00h    WORD    0020h (length of following data)
  1468.  02h 32 BYTEs    color index table
  1469. --------V-7F0105-----------------------------
  1470. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  1471.     AX = 0105h
  1472. Return: CF set on error
  1473.     CF clear if successful
  1474.         CX:DX -> array of FAR pointers to entry points (see #3509)
  1475. Note:    this API is a superset of the 8514/A Adapter Interface
  1476.       (see AX=0105h"HDILOAD")
  1477. --------V-7F0106-----------------------------
  1478. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  1479.     AX = 0106h
  1480. Return: AX = 0105h if successfully unloaded
  1481. SeeAlso: AX=0105h
  1482. --------N-7F02-------------------------------
  1483. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  1484.     AH = 02h
  1485.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  1486. Return: AL = status (see #3503)
  1487.     AH = semaphore owner if status=02h
  1488. SeeAlso: AH=00h,AH=01h,AH=42h
  1489. --------T-7F02-------------------------------
  1490. INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
  1491.     AH = 02h
  1492. Return: ???
  1493. Desc:    yields CPU to other tasks
  1494. SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h
  1495. --------N-7F02-------------------------------
  1496. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  1497.     AH = 02h
  1498.     AL = stream number (01h-40h)
  1499.     CX = length of frame
  1500.     ES:SI -> frame to be sent
  1501. SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  1502. --------f-7F0200-----------------------------
  1503. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  1504.     AX = 0200h
  1505. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  1506. --------N-7F03-------------------------------
  1507. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  1508.     AH = 03h
  1509. Return: AL = user number
  1510.     AH = machine number (MW386)
  1511. Note:    this function call is the recommended method for a CPU-bound process to
  1512.       prevent its priority from being lowered
  1513. SeeAlso: AH=04h,AH=05h,AH=A1h
  1514. --------N-7F03-------------------------------
  1515. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  1516.     AH = 03h
  1517.     AL = stream number (01h-40h)
  1518.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  1519.           bytes is usually sufficient)
  1520. Return: BX = number of pending frames (0000h if returned frame was last avail)
  1521.     CX = length of received frame
  1522. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  1523. --------N-7F04-------------------------------
  1524. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  1525.     AH = 04h
  1526. Return: AL = total number of users on currrent machine (MW386)
  1527.     AL = number of slaves on system (NTNX)
  1528. SeeAlso: AH=03h
  1529. --------N-7F04-------------------------------
  1530. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  1531.     AH = 04h
  1532.     AL = stream number (01h-40h)
  1533. Return: CX = state (0000h disconnected, 0001h connected)
  1534.     DX = delta state (0000h no change, 0001h changed since last check)
  1535. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"
  1536. --------N-7F05-------------------------------
  1537. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  1538.     AH = 05h
  1539.     AL = function
  1540.         00h lock system (disable slave services)
  1541.         01h unlock system
  1542.         02h enable spooler
  1543.         03h disable spooler
  1544.         04h enable slave timer update
  1545.         05h disable slave timer update
  1546.         06h enable form feeds
  1547.         07h disable form feeds
  1548. SeeAlso: INT 17/AH=A4h
  1549. --------N-7F05-------------------------------
  1550. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  1551.     AH = 05h
  1552.     DX:DI -> buffer for user information record (see #3577)
  1553. Notes:    MW386 provides this function for backward compatibility only, and sets
  1554.       many of the fields to zero because they are meaningless under MW386
  1555.     this function has no effect when called by the host (user 0)
  1556. SeeAlso: AH=03h
  1557.  
  1558. Format of Alloy user information record:
  1559. Offset    Size    Description    (Table 3577)
  1560.  00h    WORD    segment of video RAM
  1561.  02h    WORD    segment of secondary copy of video RAM
  1562.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  1563.         flag nonzero if update needed
  1564.  06h    WORD    video NMI enable port
  1565.         (not used by MW386, set to 0000h)
  1566.  08h    WORD    video NMI disable port
  1567.         (not used by MW386, set to 0000h)
  1568.  0Ah    BYTE    processor type
  1569.         00h 8088
  1570.         01h V20
  1571.         02h 8086
  1572.         03h V30
  1573.         06h 80386
  1574.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  1575.         (not used by MW386, set to 0000h)
  1576.  0Dh    WORD    offset of terminal driver
  1577.         (not used by MW386, set to 0000h)
  1578.  0Fh    BYTE    port for console I/O
  1579.         (not used by MW386, set to 0000h)
  1580.  10h    WORD    offset of processor communication busy flag
  1581.         bit 7 set when slave communicating with host
  1582.  12h    WORD    pointer to FAR NX system call
  1583.         (not used by MW386, set to 0000h)
  1584.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  1585.  16h    WORD    offset of command/status word
  1586.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  1587.         nonzero if screen must be repainted
  1588.  1Ah    WORD    offset of screen repaint flag
  1589.  1Ch    WORD    pointer to NEAR NX system call
  1590.         (not used by MW386, set to 0000h)
  1591.  1Eh    WORD    offset for intercept flags
  1592.         (not used by MW386, set to 0000h)
  1593.         intercept flag = FFh if MS-DOS intercepts should be disabled
  1594.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  1595.         lock flag = FFh if backgrnd screen updates should be suspended
  1596.  22h 26 BYTEs    reserved
  1597. --------N-7F05-------------------------------
  1598. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  1599.     AH = 05h
  1600.     AL = stream number (01h-40h)
  1601. Note:    this function must be called in order to receive a report of another
  1602.       status change
  1603. SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"
  1604. --------N-7F06-------------------------------
  1605. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  1606.     AH = 06h
  1607.     AL = drive number (1=A:, 2=B:, etc)
  1608.     ES:DI -> drive info record (see #3578)
  1609. Return: AX = status
  1610.         0000h successful
  1611.         ES:DI buffer filled
  1612.         0001h not shared drive
  1613.  
  1614. Format of Alloy drive info record:
  1615. Offset    Size    Description    (Table 3578)
  1616.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  1617.  02h    WORD    segment of allocation map (owner table)
  1618.         one byte per FAT entry, containing user ID owning that entry
  1619.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  1620.  06h    WORD    pointer to configuration file
  1621.  08h    WORD    total number of clusters
  1622.  0Ah    WORD    bytes per sector
  1623.  0Ch    WORD    sectors per cluster
  1624.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  1625. --------N-7F06-------------------------------
  1626. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  1627.     AH = 06h
  1628.     DL = drive number (1=A:,2=B:,etc)
  1629.     CX = number of clusters to allocate
  1630. Return: AH = status
  1631.         00h successful
  1632.         CX = number of clusters still free
  1633.         10h invalid shared drive request
  1634.         CL = first and second shared drives
  1635.         11h invalid cluster count (must be 01h-FFh)
  1636. --------N-7F06-------------------------------
  1637. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  1638.     AH = 06h
  1639.     AL = stream number (01h-40h)
  1640.     CX = subfunction
  1641.         0000h connect to node
  1642.         DL bit 0: use BBS callsign instead of Node Call
  1643.         0001h connect to node
  1644.         use BBS Call if APPLMASK=1
  1645.         0002h disconnect
  1646.         0003h return user to node
  1647. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  1648. --------N-7F07-------------------------------
  1649. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  1650.     AH = 07h
  1651. Return: ES:DI -> shared drive list (see #3579)
  1652. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  1653.       be returned as shared
  1654.  
  1655. Format of Alloy shared drive list:
  1656. Offset    Size    Description    (Table 3579)
  1657.  00h    BYTE    string length
  1658.  01h    BYTE    number of shared drives
  1659.  02h  N BYTEs    one byte per shared drive
  1660. --------N-7F07-------------------------------
  1661. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  1662.     AH = 07h
  1663.     AL = stream number (01h-40h)
  1664. Return: BX = number of pending receive frames
  1665.     CX = number of unacknowledged sent frames
  1666.     DX = number of buffers available
  1667. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  1668. --------N-7F08-------------------------------
  1669. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  1670.     AH = 08h
  1671.     CL = function
  1672.         00h get original interrupt vector
  1673.         01h get Network Executive interrrupt
  1674.     AL = interrupt number
  1675.     DX:SI -> DWORD to hold interrupt vector
  1676. Return: AL = status
  1677.         00h successful
  1678.         01h interrupt vector not used by network executive
  1679.         02h invalid subfunction
  1680. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  1681.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  1682. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  1683. --------N-7F08--CL02-------------------------
  1684. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  1685.     AH = 08h
  1686.     CL = 02h
  1687.     DX = timeout in seconds
  1688. Return: AL = status
  1689.         00h successful
  1690.         02h invalid subfunction
  1691. --------N-7F08-------------------------------
  1692. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  1693.     AH = 08h
  1694.     AL = stream number (01h-40h)
  1695. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  1696.     ---v4.05+ ---
  1697.     AL = radio port to which channel is connected (level 2)
  1698.     AH = session type (see #3580)
  1699.     BX = L2 paclen for session
  1700.     CX = maximum frame size
  1701.     DX = L4 window size or 0000h if not L4 circuit
  1702. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  1703.       John Wiseman which allows a PC to act as a node in an AX.25 network
  1704. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  1705.  
  1706. Bitfields for G8BPQ session type:
  1707. Bit(s)    Description    (Table 3580)
  1708.  0    L2LINK
  1709.  1    SESSION
  1710.  2    UPLINK
  1711.  3    DOWNLIND
  1712.  5    BPQHOST
  1713. --------T-7F09-------------------------------
  1714. INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
  1715.     AH = 09h
  1716.     AL = priority (0-7)
  1717. Note:    the installation check consists of ensuring that the interrupt vector
  1718.       is not pointing at segment 0000h, then checking whether the byte
  1719.       at offset 0000h in the interrupt handler's segment is E9h
  1720. Index:    installation check;MultiLink Advanced
  1721. SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"
  1722. --------N-7F09-------------------------------
  1723. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  1724.     AH = 09h
  1725.     AL = application
  1726.         00h node
  1727.         01h BBS
  1728.         02h HOST
  1729.         03h SYSOP
  1730.     BL = what to get (00h callsign, 01h application name)
  1731.     ES:SI -> buffer for callsign/name string
  1732. Return: CX = length of returned string
  1733. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  1734. --------N-7F09-------------------------------
  1735. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  1736.     AH = 09h
  1737.     CL = function
  1738.         00h enable checking of RTNX.MUD file
  1739.         01h disable RTNX.MUD checking
  1740. --------N-7F09--CL02-------------------------
  1741. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  1742.     AH = 09h
  1743.     CL = 02h
  1744. Note:    in dedicated mode, the host will only poll for I/O requests from the
  1745.       slave processors, and not provide workstation services
  1746. --------N-7F09--CL03-------------------------
  1747. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  1748.     AH = 09h
  1749.     CL = 03h
  1750.     AL = default interrupt number (67h,7Fh,etc)
  1751. Return: CL = actual interrupt which handles specified interrupt's calls
  1752. SeeAlso: AH=08h
  1753. --------N-7F0A--CL00-------------------------
  1754. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  1755.     AH = 0Ah
  1756.     CL = 00h
  1757.     ES:DI -> buffer for system flags (see #3581)
  1758. Return: ES:DI buffer filled
  1759. Notes:    on a slave, only the NX_Busy flag is returned
  1760.     all three flags are at fixed positions, so this function only needs to
  1761.       be called once
  1762.     an interrupt handler should only perform DOS or device accesses when
  1763.       all three flags are 00h
  1764.  
  1765. Format of Alloy system flags:
  1766. Offset    Size    Description    (Table 3581)
  1767.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  1768.  04h    DWORD    pointer to device driver busy flag
  1769.  08h    DWORD    pointer to InTimer flag
  1770. --------N-7F0A-------------------------------
  1771. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  1772.     AH = 0Ah
  1773.     AL = radio port
  1774.     ES:SI -> buffer containing data to be sent
  1775.     CX = number of bytes to send
  1776. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  1777. --------T-7F0A-------------------------------
  1778. INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
  1779.     AH = 0Ah
  1780.     AL = task-switch status
  1781.         00h normal (disable task when it repeatedly polls keyboard)
  1782.         01h disable task until keyboard input available
  1783.         FFh never disable task
  1784. Return: ???
  1785. SeeAlso: AH=09h"MultiLink"
  1786. --------N-7F0B--CL02-------------------------
  1787. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  1788.     AH = 0Bh
  1789.     CL = 02h
  1790.     AL = slave ID number
  1791.     CH = DOS to activate
  1792.         00h graphics DOS
  1793.         01h character DOS
  1794. Return: AL = status
  1795.         00h successful
  1796.         01h nothing done, proper DOS type already loaded
  1797. --------N-7F0B-------------------------------
  1798. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  1799.     AH = 0Bh
  1800.     ES:DI -> buffer for received data (see #3582)
  1801. Return: CX = number of bytes received
  1802. Note:    the specified buffer must be large enough to receive a full frame
  1803. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  1804.  
  1805. Format of G8BPQ received data:
  1806. Offset    Size    Description    (Table 3582)
  1807.  00h    WORD    internal control information
  1808.  02h    BYTE    port number (bit 7 set if transmitted frame)
  1809.  03h    WORD    frame length including this header
  1810.  05h    var    user data
  1811. --------N-7F0C-------------------------------
  1812. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  1813.     AH = 0Ch
  1814.     DX = function
  1815.         0001h update beacon text
  1816.         CX = length of data
  1817.         ES:SI -> data to be sent in beacons
  1818.         0002h (v4.07+) initiate NODES broadcast
  1819. SeeAlso: AH=09h"G8BPQ"
  1820. --------N-7F0D00-----------------------------
  1821. INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
  1822.     AX = 0D00h
  1823. Return: AL = first available stream number, or FFh if none free
  1824. SeeAlso: AH=00h"G8BPQ",AH=0Dh
  1825. --------N-7F0D-------------------------------
  1826. INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
  1827.     AH = 0Dh
  1828.     AL = stream number (01h-FFh)
  1829.     CL = function
  1830.         01h allocate stream
  1831.         Return: CX = status (0000h successful, else already in use)
  1832.         02h deallocate stream
  1833. SeeAlso: AX=0D00h
  1834. --------N-7F0F-------------------------------
  1835. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  1836.     AH = 0Fh
  1837. Return: AX = time marker (clock ticks modulo 64K)
  1838. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  1839.       John Wiseman which allows a PC to act as a node in an AX.25 network
  1840. SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h
  1841. --------N-7F10--CL00-------------------------
  1842. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  1843.     AH = 10h
  1844.     CL = 00h
  1845.     AL = channel number
  1846.     DX:DI -> channel buffer
  1847. Return: AL = status (00h-03h,0Dh) (see #3583)
  1848. Note:    may not be invoked from within a hardware interrupt handler
  1849. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  1850.  
  1851. (Table 3583)
  1852. Values for Alloy function status:
  1853.  00h    successful
  1854.  01h    busy
  1855.  02h    channel range error (not 00h-3Fh)
  1856.  03h    invalid subfunction
  1857.  0Ah    channel not open
  1858.  0Ch    channel already locked
  1859.  0Dh    unable to open
  1860. --------N-7F10--CL01-------------------------
  1861. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  1862.     AH = 10h
  1863.     CL = 01h
  1864.     AL = channel number
  1865. Return: AL = status (00h-03h,0Ah) (see #3583)
  1866. Note:    may not be invoked from within a hardware interrupt handler
  1867. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  1868. --------N-7F10--CL02-------------------------
  1869. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  1870.     AH = 10h
  1871.     CL = 02h
  1872.     AL = channel number
  1873. Return: AL = status (00h-03h,0Ah,0Ch) (see #3583)
  1874. Note:    may not be invoked from within a hardware interrupt handler
  1875. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  1876. --------N-7F10--CL03-------------------------
  1877. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  1878.     AH = 10h
  1879.     CL = 03h
  1880.     AL = channel number
  1881. Return: AL = status (00h-03h,0Ah) (see #3583)
  1882. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  1883.       locked by receipt of a datagram
  1884.     may not be invoked from within a hardware interrupt handler
  1885. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  1886. --------N-7F10--CL04-------------------------
  1887. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  1888.     AH = 10h
  1889.     CL = 04h
  1890.     AL = channel number
  1891. Return: AL = status (00h-03h) (see #3583)
  1892. Notes:    unlocks buffer after received datagram has been processed
  1893.     may not be invoked from within a hardware interrupt handler
  1894. SeeAlso: AH=10h/CL=00h
  1895. --------N-7F10--CL05-------------------------
  1896. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  1897.     AH = 10h
  1898.     CL = 05h
  1899. Return: AL = status (00h-03h) (see #3583)
  1900. Notes:    clears all pending datagrams and clears buffer pointers before closing
  1901.       the channels
  1902.     may not be invoked from within a hardware interrupt handler
  1903. SeeAlso: AH=10h/CL=01h
  1904. --------N-7F10--CL06-------------------------
  1905. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  1906.     AH = 10h
  1907.     CL = 06h
  1908. Return: AL = status (00h-03h) (see #3583)
  1909. Note:    may not be invoked from within a hardware interrupt handler
  1910. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  1911. --------N-7F10--CL07-------------------------
  1912. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  1913.     AH = 10h
  1914.     CL = 07h
  1915. Return: AL = status (00h-03h) (see #3583)
  1916. Notes:    unlocks all locked channels which have no pending datagrams
  1917.     may not be invoked from within a hardware interrupt handler
  1918. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  1919. --------N-7F10--CL08-------------------------
  1920. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  1921.     AH = 10h
  1922.     CL = 08h
  1923.     DX = maximum channel number to lock
  1924. Return: AL = status (00h-03h) (see #3583)
  1925. Notes:    locks channels numbered 00h through the value in DX
  1926.     may not be invoked from within a hardware interrupt handler
  1927. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  1928. --------N-7F10--CL09-------------------------
  1929. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  1930.     AH = 10h
  1931.     CL = 09h
  1932.     DX = maximum channel number to unlock
  1933. Return: AL = status (00h-03h) (see #3583)
  1934. Notes:    unlocks channels numbered 00h through the value in DX
  1935.     may not be invoked from within a hardware interrupt handler
  1936. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  1937. --------N-7F11-------------------------------
  1938. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  1939.     AH = 11h
  1940.     DX:SI -> request block (see #3585)
  1941. Return: AL = status (see #3584)
  1942. Note:    if wildcard channel FFh used, actual channel number will be filled in
  1943. SeeAlso: AH=12h
  1944.  
  1945. (Table 3584)
  1946. Values for Alloy function status:
  1947.  00h    successful
  1948.  01h    busy
  1949.  02h    channel range error (not 00h-3Fh)
  1950.  03h    invalid subfunction
  1951.  0Ah    packet too large (or <2 bytes if NTNX)
  1952.  0Bh    can't send packet to itself
  1953.  0Ch    invalid number of destinations
  1954.  0Dh    destination channel number out of range
  1955.  0Eh    destination user is busy
  1956.  0Fh    destination user has locked channel
  1957.  10h    channel not open
  1958.  11h    no datagram server on destination (NTNX)
  1959.  
  1960. Format of Alloy request block:
  1961. Offset    Size    Description    (Table 3585)
  1962.  00h    DWORD    pointer to packet to send
  1963.  04h    WORD    packet size in bytes (1-4096)
  1964.  06h    BYTE    number of destinations for packet (max 1Fh)
  1965.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  1966.  26h 31 BYTEs    destination channels (FFh = first available channel)
  1967.  45h 31 BYTEs    return destination statuses
  1968. --------N-7F12-------------------------------
  1969. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  1970.     AH = 12h
  1971.     AL = channel number being acknowledged
  1972.     DI:DX = 32-bit status to return to sender
  1973. Return: AL = status (see #3586)
  1974. Note:    also unlocks the channel, allowing the next datagram to be received
  1975. SeeAlso: AH=11h,AH=15h/CL=04h
  1976.  
  1977. (Table 3586)
  1978. Values for Alloy function status:
  1979.  00h    successful
  1980.  01h    busy
  1981.  02h    channel range error (not 00h-3Fh)
  1982.  03h    invalid subfunction
  1983.  0Ah    channel not open
  1984.  0Bh    no message in channel
  1985.  0Ch    destination slave busy--retry (NTNX)
  1986.  0Dh    destination user not active
  1987.  0Eh    destination slave not active (NTNX)
  1988.  0Fh    destination disabled datagram service
  1989. --------V-7F1234-----------------------------
  1990. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  1991.     AX = 1234h
  1992. SeeAlso: AX=4321h
  1993. --------N-7F13--CL00-------------------------
  1994. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  1995.     AH = 13h
  1996.     CL = 00h
  1997. Note:    clears all pending datagrams and removes all channels opened in NTNX
  1998.       compatibility mode
  1999. --------N-7F14--CL00-------------------------
  2000. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  2001.     AH = 14h
  2002.     CL = 00h
  2003.     DX:DI -> application FAR receive service routine (see #3587)
  2004. Return: AL = status (00h-03h) (see #3586)
  2005. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  2006.  
  2007. (Table 3587)
  2008. Values Alloy receive service routine is called with:
  2009.     DH = sender ID
  2010.     DL = channel with datagram
  2011.     interrupts disabled
  2012. Return: AL = response code
  2013.         00h leave buffer locked, set channel status, and repeat call later
  2014.         01h release channel buffer
  2015.         02h change buffer pointer to DX:DI
  2016.     AH,CX,DX,DI,SI may be destroyed
  2017. --------N-7F14--CL01-------------------------
  2018. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  2019.     AH = 14h
  2020.     CL = 01h
  2021.     DX:DI -> application FAR acknowledge service routine (see #3588)
  2022. Return: AL = status (00h-03h) (see #3586)
  2023. Note:    the service routine will be called as soon as an acknowledgment arrives
  2024. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  2025.  
  2026. (Table 3588)
  2027. Values Alloy acknowledge service routine is called with:
  2028.     DS:SI -> acknowledge structure (see #3592)
  2029. Return: AL = response code
  2030.         00h application busy, network executive should call again later
  2031.         01h acknowledge accepted
  2032.     AH,DX,SI may be destroyed
  2033. --------N-7F14--CL02-------------------------
  2034. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  2035.     AH = 14h
  2036.     CL = 02h
  2037.     AL = channel number
  2038.     DX:DI -> receive buffer
  2039. Return: AL = status (00h-03h) (see #3586)
  2040. Note:    may be called from within a receive ISR or when a datagram is pending
  2041. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  2042. --------N-7F14--CL03-------------------------
  2043. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  2044.     AH = 14h
  2045.     CL = 03h
  2046. Return: DX:DI -> current receive ISR
  2047. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  2048. --------N-7F14--CL04-------------------------
  2049. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  2050.     AH = 14h
  2051.     CL = 04h
  2052. Return: DX:DI -> current acknowledge ISR
  2053. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  2054. --------N-7F14--CL05-------------------------
  2055. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  2056.     AH = 14h
  2057.     CL = 05h
  2058.     DX:DI -> buffer for busy structure (see #3589)
  2059. Return: DX:DI buffer filled
  2060.  
  2061. Format of Alloy busy structure:
  2062. Offset    Size    Description    (Table 3589)
  2063.  00h    DWORD    pointer to busy flag byte
  2064.  04h    WORD    fixed port address (FF00h)
  2065. --------N-7F15--CL00-------------------------
  2066. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  2067.     AH = 15h
  2068.     CL = 00h
  2069.     AL = channel number
  2070.     DX:DI -> status structure (see #3590)
  2071. Return: AL = status (00h-03h) (see #3586)
  2072. SeeAlso: AH=15h/CL=01h
  2073.  
  2074. Format of Alloy channel status structure:
  2075. Offset    Size    Description    (Table 3590)
  2076.  00h    BYTE    channel status
  2077.         bit 0: channel open
  2078.         bit 1: channel buffer contains received data
  2079.         bit 7: channel locked
  2080.  01h    BYTE    sender ID
  2081. --------N-7F15--CL01-------------------------
  2082. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  2083.     AH = 15h
  2084.     CL = 01h
  2085.     DX:DI -> full-channel structure (see #3591)
  2086. Return: AL = status
  2087.         00h successful
  2088.         01h busy
  2089.         0Ah no datagrams available
  2090. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  2091.       and NTNX return the oldest datagram
  2092. SeeAlso: AH=15h/CL=00h
  2093.  
  2094. Format of Alloy full-channel structure:
  2095. Offset    Size    Description    (Table 3591)
  2096.  00h    BYTE    number of channel with oldest datagram
  2097.  01h    BYTE    sender ID
  2098. --------N-7F15--CL02-------------------------
  2099. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  2100.     AH = 15h
  2101.     CL = 02h
  2102. Return: AH = number of channels available (40h for MW386)
  2103. Note:    the application may always assume at least 32 channels available
  2104. SeeAlso: AH=15h/CL=03h
  2105. --------N-7F15--CL03-------------------------
  2106. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  2107.     AH = 15h
  2108.     CL = 03h
  2109.     DX:DI -> WORD for return value
  2110. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  2111. SeeAlso: AH=15h/CL=02h
  2112. --------N-7F15--CL04-------------------------
  2113. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  2114.     AH = 15h
  2115.     CL = 04h
  2116.     DX:DI -> status structure (see #3592)
  2117. Return: AL = status
  2118.         00h successful
  2119.         DX:DI structure filled
  2120.         01h busy
  2121.         0Ah no acknowledgement has arrived
  2122. SeeAlso: AH=12h,AH=14h/CL=01h
  2123.  
  2124. Format of Alloy status structure:
  2125. Offset    Size    Description    (Table 3592)
  2126.  00h    BYTE    sender ID
  2127.  01h    BYTE    channel number
  2128.  02h  4 BYTEs    receiver status (see #3586)
  2129. --------N-7F16-------------------------------
  2130. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  2131.     AH = 16h
  2132.     DX:SI -> transfer structure (see #3593)
  2133. Return: AL = status
  2134.         00h successful
  2135.         0Ah source or destination out of range
  2136.         0Bh transfer kernel busy--try again
  2137. Notes:    this call transfers memory contents directly between users; both source
  2138.       and destination user IDs may differ from the caller's ID
  2139.     no segment wrap is allowed
  2140.  
  2141. Format of Alloy transfer structure:
  2142. Offset    Size    Description    (Table 3593)
  2143.  00h    WORD    bytes to transfer
  2144.  02h    BYTE    source ID
  2145.         FEh = caller
  2146.  03h    DWORD    source address
  2147.  07h    BYTE    destination ID
  2148.         FFh = all slaves except caller
  2149.         FEh = caller
  2150.  08h    DWORD    destination address
  2151. --------N-7F21-------------------------------
  2152. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  2153.     AH = 21h
  2154.     AL = sender's user ID
  2155.     DS:DX -> control packet (see #3594)
  2156. Note:    messages or commands are ignored if disabled by the destination user
  2157. SeeAlso: AH=22h
  2158.  
  2159. Format of Alloy control packet:
  2160. Offset    Size    Description    (Table 3594)
  2161.  00h    BYTE    packet type
  2162.         00h message
  2163.         01h NTNX command
  2164.         02h MW386 command
  2165.  01h    BYTE    destination user ID or 'A' for all users
  2166.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  2167.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  2168. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  2169. --------N-7F22-------------------------------
  2170. INT 7F - Alloy NTNX - GET MESSAGE
  2171.     AH = 22h
  2172. Return: pending messages displayed on user's screen
  2173. SeeAlso: AH=21h
  2174. --------N-7F24-------------------------------
  2175. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  2176.     AH = 24h
  2177.     CL = function
  2178.         00h attach
  2179.         01h release
  2180.     CH = drive (0=A:,1=B:,etc)
  2181. Return: AX = status (see #3595)
  2182. Note:    only drives on the current machine may be attached
  2183.  
  2184. (Table 3595)
  2185. Values for Alloy function status:
  2186.  00h    successful
  2187.  01h    invalid request
  2188.  02h    already attached
  2189.  03h    not attached
  2190.  04h    lock table full
  2191. --------N-7F24-------------------------------
  2192. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  2193.     AH = 24h
  2194.     CL = function
  2195.         02h attach host
  2196.         03h release host
  2197. Return: AX = status (see #3595)
  2198. Note:    the host processor may be attached in order to perform I/O via the host
  2199. --------N-7F25--CL00-------------------------
  2200. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  2201.     AH = 25h
  2202.     CL = 00h
  2203. Return: AH = version suffix letter
  2204.     CH = major version number
  2205.     CL = minor version number
  2206. SeeAlso: AH=25h/CL=01h
  2207. --------N-7F25--CL01-------------------------
  2208. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  2209.     AH = 25h
  2210.     CL = 01h
  2211. Return: CL = executive type (see #3596)
  2212. SeeAlso: AH=25h/CL=00h
  2213.  
  2214. (Table 3596)
  2215. Values for Alloy network executive type:
  2216.  00h    RTNX
  2217.  01h    ATNX
  2218.  02h    NTNX
  2219.  03h    BTNX
  2220.  04h    MW386
  2221.  05h    ANSK
  2222. --------V-7F2525-----------------------------
  2223. INT 7F - TIGA Communications Driver v2.05 - ???
  2224.     AX = 2525h
  2225.     BX = ???
  2226. Return: ???
  2227. SeeAlso: AX=4321h,AX=5555h
  2228. --------N-7F26--CL00-------------------------
  2229. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  2230.     AH = 26h
  2231.     CL = 00h
  2232. Return: AX = file mode bits (see #3597)
  2233. Note:    MW386 does not support file modes, and always returns AX=001Fh
  2234. SeeAlso: AH=26h,AH=26h/CL=06h
  2235.  
  2236. Bitfields for Alloy file mode bits:
  2237. Bit(s)    Description    (Table 3597)
  2238.  0    directory protection enabled
  2239.  1    extended open enabled
  2240.  2    flush on every disk write
  2241.  3    flush on every disk write in locked interval
  2242.  4    flush on reads from simultaneously opened file
  2243. --------N-7F26-------------------------------
  2244. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  2245.     AH = 26h
  2246.     CL = check type to set/reset
  2247.         01h directory protection
  2248.         02h extended open
  2249.         03h flush on every disk write
  2250.         04h flush on disk write if any lock set during write
  2251.         05h flush on all reads if file written
  2252.     AL = new state (00h off, 01h on)
  2253. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  2254. --------N-7F26--CL06-------------------------
  2255. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  2256.     AH = 26h
  2257.     CL = 06h
  2258. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  2259. SeeAlso: AH=26h/CL=00h
  2260. --------N-7F30-------------------------------
  2261. INT 7F - Alloy MW386 - GET PORT INFORMATION
  2262.     AH = 30h
  2263.     CX = MW386 port number
  2264. Return: AL = result
  2265.         FFh if port not found
  2266.         else driver unit number
  2267.         BL = port mode
  2268.         BH = port type
  2269.             02h remote
  2270.         DH = owner's machine ID
  2271.         DL = owner's user ID
  2272. SeeAlso: INT 17/AH=8Bh
  2273. --------N-7F31-------------------------------
  2274. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  2275.     AH = 31h
  2276.     ???
  2277. Return: ???
  2278. --------N-7F37-------------------------------
  2279. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  2280.     AH = 37h
  2281. Return: ES:AX -> semaphore table
  2282. --------N-7F37-------------------------------
  2283. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  2284.     AH = 37h
  2285.     DS:DX -> ASCIZ string to display
  2286. Note:    if the string is empty, a terminal update will be forced
  2287. --------N-7F38-------------------------------
  2288. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  2289.     AH = 38h
  2290.     AL = new terminal driver number
  2291.         FFh dummy driver
  2292.         FEh current driver
  2293.         FDh load new driver
  2294.         DS:SI -> new driver
  2295. SeeAlso: AH=39h
  2296. --------N-7F39-------------------------------
  2297. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  2298.     AH = 39h
  2299.     AL = new terminal driver number
  2300.         FFh dummy driver
  2301.         FEh current driver
  2302.         FDh load new driver
  2303.         DS:SI -> new driver
  2304.     DL = user number (FFh = caller)
  2305.     DH = machine number if DL <> FFh
  2306. Return: CF set if invalid user number
  2307.     CF clear if successful
  2308. Notes:    only available to supervisors
  2309.     the new driver number will not take effect until the user is rebooted
  2310. SeeAlso: AH=38h
  2311. --------N-7F3A-------------------------------
  2312. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  2313.     AH = 3Ah
  2314.     DL = user number (FFh = caller)
  2315.     DH = machine number
  2316. Return: CF clear if successful
  2317.         AH = terminal driver number
  2318.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  2319.         CL = parity (00h none, 01h even, 02h odd)
  2320.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  2321.     CF set if invalid user number
  2322. SeeAlso: AH=3Bh
  2323. --------N-7F3B-------------------------------
  2324. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  2325.     AH = 3Bh
  2326.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  2327.     CL = parity (00h none, 01h even, 02h odd)
  2328.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  2329.     DL = user number (FFh = caller)
  2330.     DH = machine number for user
  2331. Return: CF set if invalid user number
  2332. Notes:    only available to supervisors
  2333.     the new parameters will take effect immediately if the user's terminal
  2334.       has not been started, else AH=3Dh must be called to post the changes
  2335. SeeAlso: AH=3Ah,AH=3Dh
  2336. --------N-7F3C-------------------------------
  2337. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  2338.     AH = 3Ch
  2339.     AL = new state (00h disabled, 01h enabled)
  2340.     DL = user number (FFh = caller)
  2341.     DH = machine number for user
  2342. Return: CF set if invalid user number
  2343. Note:    only available to supervisors
  2344. SeeAlso: AH=3Dh
  2345. --------N-7F3D-------------------------------
  2346. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  2347.     AH = 3Dh
  2348. Note:    should be called whenever a program changes the terminal type or its
  2349.       parameters
  2350. SeeAlso: AH=3Bh
  2351. --------N-7F41-------------------------------
  2352. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  2353.     AH = 41h
  2354.     AL = user ID
  2355.     DS:DX -> ASCIZ filename
  2356. Return: AL = status (see #3598)
  2357. Note:    requests exclusive read/write access to file
  2358. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  2359.  
  2360. (Table 3598)
  2361. Values for Alloy function status:
  2362.  00h    successful
  2363.  01h    invalid function
  2364.  02h    already locked
  2365.  03h    unable to lock
  2366.  04h    lock table full or semaphore space exhausted
  2367. --------N-7F41-------------------------------
  2368. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  2369.     AH = 41h
  2370.     AL = user ID
  2371.     DS:DX -> ASCIZ semaphore name
  2372. Return: AL = status (see #3598)
  2373. SeeAlso: AH=00h,AH=42h"MW386"
  2374. --------s-7F4150BHC1-------------------------
  2375. INT 7F U - Voyetra - AAPISG - API
  2376.     AX = 4150h ('AP')
  2377.     BH = C1h
  2378.     BL = function (00h-13h)
  2379.         00h initialize (fails except first time called)
  2380.     ???
  2381. Return: AX = status???
  2382.         0000h successful
  2383.         0001h failed
  2384. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  2385. BUG:    the function range check uses JL instead of JB, so it will cause a
  2386.       crash if BL >= 80h on entry
  2387. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  2388. --------N-7F42-------------------------------
  2389. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  2390.     AH = 42h
  2391.     AL = user ID
  2392.     DS:DX -> ASCIZ filename
  2393. Return: AL = status (see #3598)
  2394. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  2395. --------N-7F42-------------------------------
  2396. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  2397.     AH = 42h
  2398.     AL = user ID
  2399.     DS:DX -> ASCIZ semaphore name
  2400. Return: AL = status
  2401.         00h successful
  2402.         01h invalid function
  2403.         03h unable to unlock semaphore
  2404. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  2405. --------V-7F4321-----------------------------
  2406. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  2407.     AX = 4321h
  2408. Return: AX = 0000h if installed
  2409. Note:    INT 7F is the default, but may be overridden
  2410. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  2411. --------s-7F4331BHC1-------------------------
  2412. INT 7F U - Voyetra - VAPISG - API
  2413.     AX = 4331h ('C1')
  2414.     BH = C1h
  2415.     BL = function (00h-7Ah)
  2416.     ???
  2417. Return: ???
  2418. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  2419.       sound board
  2420. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  2421. --------N-7F4E-------------------------------
  2422. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  2423.     AH = 4Eh
  2424.     AL = error mode flags
  2425.         bit 0: display critical disk errors
  2426.         bit 1: display sharing errors
  2427.     DX = 4E58h ("NX")
  2428. Return: AL = status
  2429.         00h successful
  2430. SeeAlso: AH=4Fh
  2431. --------N-7F4F-------------------------------
  2432. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  2433.     AH = 4Fh
  2434.     AL = FCB mode
  2435.         02h read/write compatibility
  2436.         42h read/write shared
  2437.     DX = 4E58h ("NX")
  2438. Return: AL = status
  2439.         00h successful
  2440. --------V-7F5555-----------------------------
  2441. INT 7F - TIGA Communications Driver v2.05 - ???
  2442.     AX = 5555h
  2443.     BX = ???
  2444. Return: ???
  2445. SeeAlso: AX=4321h
  2446. --------s-7F564DBHC1-------------------------
  2447. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  2448.     AX = 564Dh ('VM')
  2449.     BH = C1h
  2450.     BL = function (00h-1Bh)
  2451.         00h ???
  2452.         Return: CF clear
  2453.             AX = 0000h
  2454.     ???
  2455. Return: AX = FFFFh if invalid function
  2456.     ???
  2457. SeeAlso: AX=4331h,AX=5658h
  2458. --------s-7F5658BHC1-------------------------
  2459. INT 7F U - Voyetra - VAPISG - API
  2460.     AX = 5658h ('VX')
  2461.     BH = C1h
  2462.     BL = function (00h-1Bh)
  2463.     ???
  2464. Return: ???
  2465. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  2466.       sound board
  2467. SeeAlso: AX=4331h,AX=564Dh
  2468. --------N-7F81-------------------------------
  2469. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  2470.     AH = 81h
  2471.     AL = user ID
  2472.     DS:DX -> ASCIZ device name
  2473. SeeAlso: AH=82h
  2474. --------N-7F82-------------------------------
  2475. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  2476.     AH = 82h
  2477.     AL = user ID
  2478.     DS:DX -> ASCIZ device name
  2479. SeeAlso: AH=81h
  2480. --------N-7FA0-------------------------------
  2481. INT 7F - Alloy MW386 - GET USER NAME
  2482.     AH = A0h
  2483.     DL = user number (FFh = caller)
  2484.     DH = machine number for user
  2485.     ES:DI -> 17-byte buffer for ASCIZ user name
  2486. Return: CF set if invalid user number
  2487. SeeAlso: AH=03h,AH=A1h
  2488. --------N-7FA1-------------------------------
  2489. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  2490.     AH = A1h
  2491. Return: AL = process number
  2492.     DL = user number
  2493.     DH = machine number
  2494. SeeAlso: AH=03h,AH=A0h,AH=A2h
  2495. --------N-7FA2-------------------------------
  2496. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  2497.     AH = A2h
  2498.     DL = user number (FFh = caller)
  2499.     DH = machine number for user
  2500. Return: CF clear if successful
  2501.         AL = privilege level
  2502.         00h supervisor
  2503.         01h high
  2504.         02h medium
  2505.         03h low
  2506.     CF set if invalid user number
  2507. SeeAlso: AH=A1h,AH=A3h
  2508. --------N-7FA3-------------------------------
  2509. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  2510.     AH = A3h
  2511.     DL = user number
  2512.     DH = machine number for user
  2513. Return: CF clear if successful
  2514.         AL = login state
  2515.         00h never logged in
  2516.         01h currently logged out
  2517.         03h currently logged in
  2518.     CF set if invalid user number or user not active
  2519. SeeAlso: AH=A2h
  2520. --------N-7FA4-------------------------------
  2521. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  2522.     AH = A4h
  2523.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  2524. Return: AL = status
  2525.         00h     accepted
  2526.         else invalid password
  2527. --------N-7FA500-----------------------------
  2528. INT 7F - Alloy MW386 - GET USER STATUS
  2529.     AX = A500h
  2530.     DI = machine number and user number
  2531. Return: CF clear if successful
  2532.         BX = user flags
  2533.         bit 5: allow messages
  2534.         CL = scan code for task manager hotkey
  2535.         CH = scan code for spooler hotkey
  2536.         DL = scan code for task swapper hotkey
  2537.         DH = modifier key status
  2538.     CF set if invalid user number
  2539. SeeAlso: AX=A501h
  2540. Index:    hotkeys;Alloy MW386
  2541. --------N-7FA501-----------------------------
  2542. INT 7F - Alloy MW386 - SET USER STATUS
  2543.     AX = A501h
  2544.     BX = user flags (see AX=A500h)
  2545.     CL = scan code for task manager hotkey
  2546.     CH = scan code for spooler hotkey
  2547.     DL = scan code for task swapper hotkey
  2548.     DH = modifier key status
  2549.     DI = machine number and user number
  2550. Return: CF set if invalid user number
  2551. Note:    must have supervisor privilege to set another user's status
  2552. SeeAlso: AX=A500h
  2553. Index:    hotkeys;Alloy MW386
  2554. --------V-7FABCDBX0000-----------------------
  2555. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  2556.     AX = ABCDh
  2557.     BX = 0000h
  2558. Return: AX = total number of functions available
  2559.     ES:BX -> entry point array (see #3599)
  2560. SeeAlso: AX=0104h,AX=0105h
  2561.  
  2562. (Table 3599)
  2563. Values for 8516 Touch Screen function number:
  2564.  00h    check initialization and reset (see #3600)
  2565.  14h    set user-defined subroutine (see #3601)
  2566. Notes:    each driver function takes two stack parameters using Pascal calling
  2567.       conventions: address of parameter block and address of results buffer
  2568.     all pointers are FAR pointers
  2569.     on return, AX contains the status of the call:
  2570.         AX = 0000h successful
  2571.          0001h invalid input
  2572.          0002h interface error
  2573.          0003h unable to perform function
  2574.  
  2575. Format of 8516 Touch Screen Function 00h parameter block:
  2576. Offset    Size    Description    (Table 3600)
  2577.  00h    WORD    0000h (function number)
  2578. Note:    this function should be called before any other device driver functions
  2579.  
  2580. Format of 8516 Touch Screen Function 00h results buffer:
  2581. Offset    Size    Description    (Table 3601)
  2582.  00h    WORD    touch screen status
  2583.         0000h unavailable
  2584.         0001h uncalibrated
  2585.         FFFFh available
  2586.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  2587. Notes:    the following driver parameters will have been reset to zero:
  2588.       touchdown counter, liftoff counter, position at last touch, position
  2589.       at last lift, int call mask, select on count, select off count,
  2590.       pos select on count, pos select off count.
  2591.     the following driver parameters will have been reset as listed:
  2592.       mouse emulation mode: left on
  2593.       thresholds: 46 on screen, 96 push harder, 80 push release
  2594.       x, y hysteresis: 400
  2595.       data repeat rate: 40/sec
  2596.       select mechanism: push-harder - first-touch
  2597.       coordinate origin: upper left corner
  2598.       filter frequency: medium
  2599.       data block mask: all enabled
  2600.       click lock: on
  2601. --------N-7FB0-------------------------------
  2602. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  2603.     AH = B0h
  2604.     AL = user number
  2605.     DS = code segment
  2606. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  2607.       or INT 7F locking functions
  2608. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  2609. --------N-7FB1--SF00-------------------------
  2610. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  2611.     AH = B1h subfn 00h
  2612.     AL = (bits 7-5) 000
  2613.          (bits 4-0) user ID
  2614. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  2615.       INT 7F locking functions
  2616. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  2617. --------N-7FB2--SF01-------------------------
  2618. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  2619.     AH = B2h subfn 01h
  2620.     AL = (bits 7-5) 001
  2621.          (bits 4-0) user ID
  2622. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  2623. --------N-7FB3--SF02-------------------------
  2624. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  2625.     AH = B3h subfn 02h
  2626.     AL = (bits 7-5) 010
  2627.          (bits 4-0) user ID
  2628. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  2629. --------N-7FB4-------------------------------
  2630. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  2631.     AH = B4h
  2632.     AL = user ID
  2633. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  2634. --------N-7FC3-------------------------------
  2635. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  2636.     AH = C3h
  2637.     AL = byte to write
  2638. Return: CF clear if successful
  2639.     CF set on error
  2640. SeeAlso: AH=C6h
  2641. --------N-7FC5-------------------------------
  2642. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  2643.     AH = C5h
  2644.     AL = new console mode
  2645.         00h keyboard indirect
  2646.         01h keyboard direct
  2647.         02h data handshake enforced
  2648.         03h no data handshake
  2649. Return: CF clear if successful
  2650.         AL = prior console mode
  2651.     CF set on error (caller is not remote user)
  2652. Note:    modes 2 and 3 may be used for input through the console port; no video
  2653.       output should be performed in these modes
  2654. --------N-7FC6-------------------------------
  2655. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  2656.     AH = C6h
  2657.     AL = byte to write
  2658. Return: CF clear if successful
  2659.     CF set on error (caller is not remote user)
  2660. Note:    any terminal driver data translation will be bypassed
  2661. SeeAlso: AH=C3h,AH=C7h
  2662. --------N-7FC7-------------------------------
  2663. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  2664.     AH = C7h
  2665. Return: CF clear if successful
  2666.         AL = byte read
  2667.     CF set on error (no data available or caller is not remote user)
  2668. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  2669. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  2670. --------N-7FC8-------------------------------
  2671. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  2672.     AH = C8h
  2673.     AL = maximum bytes to read
  2674.     ES:DI -> buffer for console data
  2675. Return: CF clear if successful
  2676.         CX = number of bytes read
  2677.     CF set on error (caller is not remote user)
  2678. SeeAlso: AH=C7h
  2679. --------N-7FCF-------------------------------
  2680. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  2681.     AH = CFh
  2682.     DS:DX -> ASCIZ string containing user number to be reset
  2683. SeeAlso: AH=D6h
  2684. --------N-7FD6-------------------------------
  2685. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  2686.     AH = D6h
  2687.     DS:DX -> reset packet (see #3602)
  2688. Return: never if successful
  2689. Note:    all users will be shut down immediately if successful
  2690. SeeAlso: AH=CFh
  2691.  
  2692. Format of Alloy MW386 reset packet:
  2693. Offset    Size    Description    (Table 3602)
  2694.  00h    DWORD    reset code (60606060h)
  2695.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  2696. --------N-7FD7-------------------------------
  2697. INT 7F - Alloy MW386 - POST EVENT
  2698.     AH = D7h
  2699.     AL = user number (if local event)
  2700.     DX = event number
  2701. --------N-7FD8-------------------------------
  2702. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  2703.     AH = D8h
  2704. Return: CF set on error
  2705. Note:    forces all disk buffers to be written out immediately
  2706. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  2707. --------N-7FDB-------------------------------
  2708. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  2709.     AH = DBh
  2710. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  2711. --------N-7FE0-------------------------------
  2712. INT 7F - Alloy MW386 - CREATE DOS TASK
  2713.     AH = E0h
  2714.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2715.     DS:DX -> ASCIZ task name (max 16 bytes)
  2716. Return: CF clear if successful
  2717.         AL = task create ID
  2718.     CF set on error
  2719. Note:    only foreground DOS tasks can use this function
  2720. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  2721. --------N-7FE1-------------------------------
  2722. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  2723.     AH = E1h
  2724.     AL = create ID (from AH=E0h)
  2725. Return: AL = DOS process number
  2726.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2727. Note:    this function should not be called immediately after creating a new
  2728.       DOS task, since the new task is being initialized by a concurrent
  2729.       process
  2730. SeeAlso: AH=E0h,AH=E2h
  2731. --------N-7FE2-------------------------------
  2732. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  2733.     AH = E2h
  2734.     AL = DOS process number (from AH=E1h)
  2735. Return: CF set on error (invalid process number or caller not foreground task)
  2736. Notes:    specified task becomes the foreground task and current task is placed
  2737.       in the background
  2738.     may only be called by a foreground task
  2739. SeeAlso: AH=E0h,AH=E1h
  2740. --------N-7FE3-------------------------------
  2741. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  2742.     AH = E3h
  2743.     DS:DX -> ASCIZ task name
  2744. ---v1.x---
  2745.     AL = user number
  2746. ---v2+---
  2747.     BH = user number
  2748.     BL = task number
  2749. Return: CF clear if successful
  2750.     CF set on error (invalid process number)
  2751. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  2752. --------N-7FE4-------------------------------
  2753. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  2754.     AH = E4h
  2755.     ES:DI -> buffer for task name
  2756. ---v1.x---
  2757.     AL = user number
  2758. ---v2+---
  2759.     BH = user number
  2760.     BL = task number
  2761. Return: CF clear if successful
  2762.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2763.         DX = task flags
  2764.         bit 7: MS-DOS process
  2765.         ES:DI buffer filled
  2766.     CF set on error (invalid process number)
  2767. SeeAlso: AH=E3h,AH=E5h
  2768. --------N-7FE5-------------------------------
  2769. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  2770.     AH = E5h
  2771.     DS:DX -> ASCIZ task name
  2772.     BH = user number
  2773. Return: CF clear if successful
  2774.         AL = DOS process number
  2775.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2776.     CF set on error (no match for name)
  2777. SeeAlso: AH=E3h,AH=E4h
  2778. --------N-7FE6-------------------------------
  2779. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  2780.     AH = E6h
  2781. Return: AX = number of processes available to current user
  2782. SeeAlso: AH=E0h
  2783. --------N-7FE7-------------------------------
  2784. INT 7F - Alloy MW386 - REMOVE DOS TASK
  2785.     AH = E7h
  2786.     AL = DOS process number
  2787. Return: CF clear if successful
  2788.     CF set on error (invalid process number or first process)
  2789. Note:    can only be called by a foreground task
  2790. SeeAlso: AH=E0h
  2791. --------N-7FE8-------------------------------
  2792. INT 7F - Alloy MW386 - DOS TASK DELAY
  2793.     AH = E8h
  2794.     CX = delay time in milliseconds
  2795. Note:    a delay of 0 may be used to surrender the current time slice
  2796. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  2797. SeeAlso: INT 2F/AX=1680h
  2798. --------N-7FF0-------------------------------
  2799. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  2800.     AH = F0h
  2801.     AL = group number
  2802.     DS:DX -> ASCIZ directory name
  2803. Return: CF clear if successful
  2804.         AX = status
  2805.         0002h directory not found
  2806.         0003h directory not found
  2807.         0005h directory in use, cannot be restricted
  2808.         02xxh restricted to group xxh
  2809.     CF set on error
  2810. Note:    the restriction on the directory may be removed by calling this
  2811.       function with group 0, then using AH=F1h to assign the directory to
  2812.       group 0
  2813. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  2814. --------N-7FF1-------------------------------
  2815. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  2816.     AH = F1h
  2817.     AL = group number
  2818.     DS:DX -> ASCIZ directory name
  2819. Notes:    performs permanent assignment to a group; no immediate action is taken
  2820.       unless the directory has been restricted with AH=F0h
  2821.     may be used to restrict a nonexistent directory
  2822. SeeAlso: AH=F0h
  2823. --------N-7FF2-------------------------------
  2824. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  2825.     AH = F2h
  2826.     CX = entry number
  2827.     ES:DI -> 64-byte buffer
  2828. Return: CF clear if successful
  2829.         buffer filled with 63-byte directory info and 1-byte group number
  2830.     CF set on error (invalid entry)
  2831. SeeAlso: AH=F0h,AH=F3h
  2832. --------N-7FF3-------------------------------
  2833. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  2834.     AH = F3h
  2835.     AL = group number
  2836.     CX = entry number
  2837.     ES:DI -> 64-byte buffer
  2838. Return: CF clear if successful
  2839.         CX = next entry number
  2840.         buffer filled with 63-byte directory info and 1-byte group number
  2841.     CF set on error (no more matching entries)
  2842. Note:    like AH=F2h, but only returns directories belonging to the specified
  2843.       group
  2844. SeeAlso: AH=F2h
  2845. --------N-7FF8-------------------------------
  2846. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  2847.     AH = F8h
  2848.     AL = group number
  2849.     DL = user number
  2850.     DH = machine number (currently 00h)
  2851. Return: CF clear if successful
  2852.     CF set on error (user already in maximum number of groups)
  2853. Note:    each user is allowed eight group assignments
  2854. SeeAlso: AH=F9h,AH=FAh
  2855. --------N-7FF9-------------------------------
  2856. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  2857.     AH = F9h
  2858.     AL = group number
  2859.     DL = user number
  2860.     DH = machine number (currently 00h)
  2861. Return: CF clear if successful
  2862.     CF set if failed
  2863. SeeAlso: AH=F8h,AH=FAh
  2864. --------N-7FFA-------------------------------
  2865. INT 7F - Alloy MW386 - GET USER GROUP LIST
  2866.     AH = FAh
  2867.     DL = user number
  2868.     DH = machine number (currently 00h)
  2869.     ES:DI -> 16-byte buffer for group list
  2870. Return: CX = number of groups
  2871.     ES:DI buffer filled with group numbers
  2872. SeeAlso: AH=F8h,AH=F9h
  2873. --------N-7FFB-------------------------------
  2874. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  2875.     AH = FBh
  2876.     CL = group number
  2877.     ES:DI -> ASCIZ group name (max 17 bytes)
  2878. SeeAlso: AH=FCh
  2879. --------N-7FFC-------------------------------
  2880. INT 7F - Alloy MW386 - GET GROUP NAME
  2881.     AH = FCh
  2882.     CL = group number
  2883.     ES:DI -> 17-byte buffer for ASCIZ name
  2884. Return: ES:DI buffer filled
  2885. Note:    if the group has not been named, "(unnamed)" is returned
  2886. SeeAlso: AH=FBh
  2887. ----------80---------------------------------
  2888. INT 80 - Q-PRO4 - ???
  2889. --------r-80---------------------------------
  2890. INT 80 - reserved for BASIC
  2891. Note:    this vector and INT 81 through INT ED are modified but not restored by
  2892.       Direct Access v4.0, and may be left dangling by other programs
  2893.       written with the same version of compiled BASIC
  2894. SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC"
  2895. --------E-80---------------------------------
  2896. INT 80 - Phar Lap 386|DOS-Extender - RELOCATED PRINT-SCREEN
  2897. Note:    the extender relocates INT 05 to here by default, but can be told to
  2898.       leave INT 05 alone with the commandline (or DOSX= environment
  2899.       variable) flag -PRIVEC 5
  2900. SeeAlso: INT 05"PRINT SCREEN"
  2901. --------d-80---------------------------------
  2902. INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  2903. Note:    the factory-default location for the eight bytes of scratchpad RAM
  2904.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  2905.       vectors 80h and 81h
  2906. SeeAlso: INT 81"BusLogic"
  2907. --------b-80---------------------------------
  2908. INT 80 U - AMI BIOS v1.00.12.AX1T - internal - BIOS SUBSYSTEM SELECTION
  2909.     AH = function
  2910.         00h install and initialize BIOS subsystem
  2911.         AL = ??? (00h,01h,03h)
  2912.         CX:BX = subsystem ID (see #3603)
  2913.         ESI = address from which to load, or 00000000h for default for
  2914.             subsystem
  2915.         EDI = physical address at which to install, or 0 for default
  2916.         Note:    if CX=0000h on entry, this call is applied to all
  2917.               subsystems whose ID has low word BX
  2918.         01h get BIOS subsystem information
  2919.         CX:BX = subsystem ID (see #3603)
  2920.         Return: AL = ???
  2921.             AH = ???
  2922.             EDX = uncompressed size of subsystem in bytes
  2923.             SI = offset within subsystem of initialization
  2924.                 routine, or FFFFh if none
  2925.             EDI = physical address of default location or 0
  2926.         02h get matching subsystem identifier
  2927.         AL = index into subsystem list (return ALth occurrence
  2928.               matching BX)
  2929.         BX = low word of subsystem identifier
  2930.             (0001h,0002h,0004h,0005h,000Bh,FFFFh)
  2931.         Return: CF clear if successful
  2932.                 CX = high word of ALth matching subsystem
  2933.             CF set on error
  2934.         Note:    the system is halted if AL=00h on entry
  2935.         03h set up "big real" mode (4G segment limits)
  2936.         04h turn off "big real" mode (restore 64K segment limits)
  2937.         05h remove BIOS subsystem
  2938.         CX:BX = subsystem ID to leave out
  2939.         Note:    the system is halted if an invalid (not installed)
  2940.               subsystem ID is specified
  2941.         06h get installed subsystem info
  2942.         CX:BX = subsystem ID (see #3603)
  2943.         Return:    CF clear
  2944.             EDX = length of ???
  2945.             EDI = linear address of start of ???
  2946.         Note:    the system is halted if an invalid (not installed)
  2947.               subsystem ID is specified
  2948. Return: CF clear if successful
  2949.     CF set on non-fatal error
  2950. Note:    this interrupt vector is cleared to 0000h:0000h near the end of the
  2951.       BIOS startup sequence
  2952.  
  2953. (Table 3603)
  2954. Values for AMI BIOS subsystem ID:
  2955.  00010001h    ROM BIOS @F000-FFFF
  2956.  00010002h    setup??? (loaded @6000-68FF)
  2957.  00010005h    APM code
  2958.  0001000Bh    language-specific error message set (English)
  2959.  00020002h    PnP/PCI ACFG code (loaded @F000-F1FF)
  2960.  0001FFFFh
  2961.  0002FFFFh    recovery code
  2962.  00030004h
  2963.  0003FFFFh    BIOS decompression code
  2964.  0004000Bh
  2965.  00060004h
  2966.  0100FFFFh    ACFG data
  2967.  10000000h    ROM @C000 (64K)
  2968.  10000001h    HMA (48K)
  2969.  10000002h    RAM @7A00 (24K)
  2970.  10000003h    RAM @8000-BFFF
  2971.  10000004h
  2972.  10000005h    real-mode address space (0-1M)
  2973.  1000000Bh    installed language-specific message set???
  2974. --------s-80----BL00-------------------------
  2975. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  2976.     BL = 00h
  2977.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2978. Return: AX = initialization result (see #3604)
  2979. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  2980.       which provides access to multiple drivers for the SoundBlaster
  2981.       board through a single interface
  2982. Range:    INT 80h to INT BFh, selected automatically
  2983. Note:    the SBSIM installation check consists of testing for the signature
  2984.       "SBSIM" at offset 103h in the interrupt handler's segment.
  2985. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  2986. SeeAlso: INT 80/BX=0000h"SBSIM"
  2987.  
  2988. (Table 3604)
  2989. Values for SBSIM error code:
  2990.  01h    busy--currently in use
  2991.  02h    bad driver specified
  2992.  03h    invalid function
  2993.  04h    voice process already active
  2994.  05h    couldn't start CT-VOICE
  2995.  06h    couldn't start CTVDSK
  2996.  07h    invalid SBSIM handle
  2997.  08h    buffer not initialized yet
  2998.  09h    bad filename
  2999.  0Ah    bad file handle
  3000.  0Bh    driver not started yet
  3001.  0Ch    XMS driver not installed
  3002.  0Dh    no free SBSIM handles
  3003.  0Eh    bad file type
  3004.  0Fh    couldn't free XMS block
  3005.  10h    invalid source selected
  3006.  11h    get pan position failed
  3007.  12h    set pan position failed
  3008.  13h    set volume failed
  3009.  14h    couldn't start fade/pan
  3010.  15h    couldn't stop fade/pan
  3011.  16h    couldn't pause fade/pan
  3012.  17h    not a fade/pan operation
  3013.  18h    bad mode for fade/pan
  3014.  19h    couldn't start fade/pan
  3015.  1Ah    source not fading/panning
  3016.  1Bh    FM or MIDI already playing
  3017.  1Ch    bad MIDI mapper format
  3018. --------s-80----BL01-------------------------
  3019. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  3020.     BL = 01h
  3021.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3022. Return: AX = result (see #3604)
  3023. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  3024. --------s-80----BL02-------------------------
  3025. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  3026.     BL = 02h
  3027.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3028. Return: nothing
  3029. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  3030. --------s-80----BL03-------------------------
  3031. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  3032.     BL = 03h
  3033.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3034. Return: nothing
  3035. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  3036. SeeAlso: INT 80/BL=05h
  3037. --------s-80----BL04-------------------------
  3038. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  3039.     BL = 04h
  3040.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3041. Return: nothing
  3042. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  3043. --------s-80----BL05-------------------------
  3044. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  3045.     BL = 05h
  3046.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3047. Return: AX = status
  3048. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  3049. --------s-80----BX0000-----------------------
  3050. INT 80 - SoundBlaster SBFM driver - GET VERSION
  3051.     BX = 0000h
  3052. Return: ???
  3053. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  3054. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh/ES=0000h
  3055. --------s-80----BX0000-----------------------
  3056. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  3057.     BX = 0000h
  3058. Return: AX = version (AH = major, AL = minor)
  3059. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  3060.       which provides access to multiple drivers for the SoundBlaster
  3061.       board through a single interface
  3062. Range:    INT 80h to INT BFh, selected automatically
  3063. Note:    the SBSIM installation check consists of testing for the signature
  3064.       "SBSIM" at offset 103h in the interrupt handler's segment.
  3065. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 21/AX=4402h"CTMMSYS"
  3066. SeeAlso: INT 80/BL=00h"SBSIM"
  3067. Index:    installation check;SBSIM|installation check;SoundBlaster
  3068. --------s-80----BX0001-----------------------
  3069. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  3070.     BX = 0001h
  3071.     DX:AX -> music status byte
  3072. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  3073. --------s-80----BX0001-----------------------
  3074. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  3075.     BX = 0001h
  3076. Return: AX = bit flags for loaded drivers (see #3605)
  3077. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  3078.  
  3079. Bitfields for SBSIM loaded drivers:
  3080. Bit(s)    Description    (Table 3605)
  3081.  0    FM
  3082.  1    double disk-buffered voice driver (DDBV)
  3083.  2    memory voice driver
  3084.  3    auxiliary driver (mixer)
  3085.  4    MIDI
  3086. --------s-80----BX0002-----------------------
  3087. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  3088.     BX = 0002h
  3089.     CX = number of instruments
  3090.     DX:AX -> instrument table
  3091. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  3092. --------s-80----BX0002-----------------------
  3093. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  3094.     BX = 0002h
  3095.     AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  3096. Return: CF clear if successful
  3097.         DX:AX -> entry point
  3098.     CF set on error
  3099. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  3100. --------s-80----BX0003-----------------------
  3101. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  3102.     BX = 0003h
  3103.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  3104.         FFFFh to restore to 18.2 Hz
  3105. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  3106. --------s-80----BX0004-----------------------
  3107. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  3108.     BX = 0004h
  3109.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  3110. Note:    default frequency is 96 Hz
  3111. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  3112. --------s-80----BX0005-----------------------
  3113. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  3114.     BX = 0005h
  3115.     AX = semi-tone offset
  3116. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  3117. --------s-80----BX0005-----------------------
  3118. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  3119.     BX = 0005h
  3120.     AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  3121. Return: CF clear if successful
  3122.         DX:AX -> buffer
  3123.         CX = buffer size in K
  3124.     CF set on error
  3125. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  3126.       which provides access to multiple drivers for the SoundBlaster
  3127.       board through a single interface
  3128. Range:    INT 80h to INT BFh, selected automatically
  3129. Note:    the SBSIM installation check consists of testing for the signature
  3130.       "SBSIM" at offset 103h in the interrupt handler's segment.
  3131. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  3132. --------s-80----BX0006-----------------------
  3133. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  3134.     BX = 0006h
  3135.     DX:AX -> music block
  3136. Return: AX = status
  3137.         0000h successful
  3138.         0001h music already active
  3139. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  3140. --------s-80----BX0007-----------------------
  3141. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  3142.     BX = 0007h
  3143. Return: AX = status
  3144.         0000h successful
  3145.         0001h music not active
  3146. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  3147. --------s-80----BX0008-----------------------
  3148. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  3149.     BX = 0008h
  3150. Return: AX = status
  3151.         0000h successful
  3152.         0001h music is active
  3153. SeeAlso: BX=0000h"SBFM"
  3154. --------s-80----BX0009-----------------------
  3155. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  3156.     BX = 0009h
  3157. Return: AX = status
  3158.         0000h successful
  3159.         0001h no music active
  3160. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  3161. --------s-80----BX000A-----------------------
  3162. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  3163.     BX = 000Ah
  3164. Return: AX = status
  3165.         0000h successful
  3166.         0001h no music paused
  3167. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  3168. --------s-80----BX000B-----------------------
  3169. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  3170.     BX = 000Bh
  3171.     DX:AX -> trap routine
  3172. SeeAlso: BX=0000h"SBFM"
  3173. --------s-80----BX0400-----------------------
  3174. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  3175.     BX = 0400h
  3176.     AX = sound source (see #3606)
  3177. Return: CF clear if successful
  3178.         AX = volume
  3179.     CF set on error
  3180.         AX = error code (see #3604 at INT 80/BL=00h)
  3181. SeeAlso: BX=0401h"SBSIM"
  3182.  
  3183. (Table 3606)
  3184. Values for SBSIM sound source:
  3185.  00h    master volume
  3186.  01h    voice
  3187.  02h    FM
  3188.  03h    CD
  3189.  04h    line in
  3190.  05h    microphone
  3191. --------s-80----BX0401-----------------------
  3192. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  3193.     BX = 0401h
  3194.     AX = sound source (see #3606)
  3195.     DX = new volume
  3196. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  3197. SeeAlso: BX=0400h"SBSIM"
  3198. --------N-8001-------------------------------
  3199. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  3200.     AH = 01h
  3201. Return: AX = 0000h
  3202.     CX = FFFFh
  3203.     DX = FFFFh
  3204. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  3205.     all buffer pointers are reset back to 0
  3206. --------N-8002-------------------------------
  3207. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  3208.     AH = 02h
  3209.     BX = extra bytes to allocate per packet
  3210. Return: AX = segment address of 10K buffer (for receives???)
  3211.     BX = segment address of 2K buffer (for sends???)
  3212. SeeAlso: AH=05h
  3213. --------N-8003-------------------------------
  3214. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  3215.     AH = 03h
  3216. Return: CX:DX -> receive call address
  3217. Note:    the returned address can be used in the packet driver calls since it
  3218.       will be a valid address in all DOS boxes
  3219. SeeAlso: AH=06h
  3220. --------N-8004-------------------------------
  3221. INT 80 - QPC Software PKTINT.COM - ENABLE???
  3222.     AH = 04h
  3223.     BX = ???
  3224. Return: ???
  3225. SeeAlso: AH=01h
  3226. --------N-8005-------------------------------
  3227. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  3228.     AH = 05h
  3229. Return: AX = amount of buffer currently in use
  3230.     BX = current offset in buffer
  3231.     CX = number of times receive has been called
  3232. SeeAlso: AH=02h
  3233. --------N-8006-------------------------------
  3234. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  3235.     AH = 06h
  3236. Return: BX = next packet offset
  3237.     CX = number of bytes still buffered
  3238.     DX = size of packet released back into buffer pool
  3239. SeeAlso: AH=03h
  3240. --------r-81---------------------------------
  3241. INT 81 - reserved for BASIC
  3242. Note:    this vector is modified but not restored by Direct Access v4.0, and
  3243.       may be left dangling by other programs written with the same version
  3244.       of compiled BASIC
  3245. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  3246. --------N-81---------------------------------
  3247. INT 81 - IBM TOKEN RING ADAPTER - ???
  3248. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  3249. --------d-81---------------------------------
  3250. INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  3251. Note:    the factory-default location for the eight bytes of scratchpad RAM
  3252.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  3253.       vectors 80h and 81h
  3254. SeeAlso: INT 80"BusLogic"
  3255. --------b-81---------------------------------
  3256. INT 81 - AMI WinBIOS - SECOND HARD DRIVE AUTODETECTION
  3257. Notes:    used by WinBIOS with core version of July 1994 or later
  3258.     QEMM 7.5 began using this interrupt internally after the QPAT3
  3259.       maintenance release when searching for "ROM holes", causing a
  3260.       lengthy delay during bootup.    Adding the QEMM parameter RH:N will
  3261.       avoid the QEMM call to INT 81 and speed up the boot process
  3262. --------s-810200---------------------------
  3263. INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
  3264.     AX = 0200h
  3265.     BX = PSP segment
  3266.     SI = ??? (data area)
  3267. Return: AX = status (see #3607)
  3268.     BL = emulation state
  3269.         bit 1   Emulation is on
  3270.         bit 2   Emulation is off
  3271. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  3272.       emulator for the Gravis UltraSound
  3273. Range:    INT 81 to INT FF (see INT 21/AX=FD12h), selected by scanning for an
  3274.       interrupt with vector 0000h:0000h
  3275. SeeAlso: AX=0202h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  3276.  
  3277. (Table 3607)
  3278. Values for MegaEm status:
  3279.  0000h    successful
  3280.  0001h    invalid command line optie
  3281.  0002h    display options
  3282.  0003h    ???
  3283.  0004h    invalid number of voices specified
  3284.  0005h    could not load enough patches to provide acceptable emulation
  3285.  0006h    to many warnings on patch loading
  3286.  0007h    ??? (not used anymore)
  3287.  0008h    /CO and SCSI don't work together
  3288.  0009h    invalid music volume
  3289.  000Ah    invalid master volume
  3290.  000Bh    /SC switch is no longer valid
  3291.  0100h    ??? (some error on patch loading)
  3292. --------s-810202---------------------------
  3293. INT 81 - Gravis UltraSound - MegaEm - ???
  3294.     AX = 0202h
  3295. Return: AX = ???
  3296. SeeAlso: AX=0200h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  3297. --------s-810300---------------------------
  3298. INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
  3299.     AX = 0300h
  3300. Return: AX = ???
  3301. SeeAlso: AX=0200h,AX=0202h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  3302. --------s-810400---------------------------
  3303. INT 81 - Gravis UltraSound - MegaEm - ???
  3304.     AX = 0400h
  3305.     BX = ??? (segment)
  3306. Return: AX = ???
  3307.     BX = ???
  3308. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  3309.       emulator for the Gravis UltraSound
  3310. SeeAlso: AX=0200h,AX=0202h,AX=0300h,INT 21/AX=FD12h/BX=3457h
  3311. --------s-812010------------------------
  3312. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT
  3313.     AX = 2010h
  3314.     ???
  3315. Return: ???
  3316. Note:    MegaEm calls this function from its INT 78 handler, and then
  3317.       immediately returns (via RETF in v3.10, thus leaving the flags on
  3318.       the stack); this permits it to operate while hooking only one
  3319.       interrupt through the memory manager in protected mode
  3320. SeeAlso: AX=2011h,AX=2012h
  3321. --------s-812011------------------------
  3322. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT
  3323.     AX = 2011h
  3324.     ???
  3325. Return: ???
  3326. Note:    MegaEm calls this function from its NMI (INT 02) handler, and then
  3327.       immediately returns; this permits it to operate while hooking only
  3328.       one interrupt through the memory manager in protected mode
  3329. SeeAlso: AX=2010h,AX=2012h
  3330. --------s-812012------------------------
  3331. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT
  3332.     AX = 2012h
  3333.     ???
  3334. Return: ???
  3335. Note:    MegaEm calls this function from its GUS IRQ handler, and then
  3336.       immediately returns; this permits it to operate while hooking only
  3337.       one interrupt through the memory manager in protected mode
  3338. SeeAlso: AX=2010h,AX=2011h
  3339. --------s-812015------------------------
  3340. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
  3341.     AX = 2015h
  3342.     ???
  3343. Return: ???
  3344. --------r-82---------------------------------
  3345. INT 82 - reserved for BASIC
  3346. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  3347. --------N-82---------------------------------
  3348. INT 82 - IBM TOKEN RING ADAPTER - ???
  3349.     AH = function
  3350.         00h display message???
  3351.         DS:BX -> string
  3352.     ???
  3353. Return: ???
  3354. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  3355. --------r-83---------------------------------
  3356. INT 83 - reserved for BASIC
  3357. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  3358. --------s-8300-------------------------------
  3359. INT 83 - JM Pro Tracker v5.0 - ???
  3360.     AH = 00h
  3361.     ???
  3362. Return: CF clear (successful)
  3363.     AX = ??? (0302h)
  3364. Program: JM Pro Tracker is a public-domain resident .MOD (digital music)
  3365.       player by Josha Munnik
  3366.  
  3367. (Table 3608)
  3368. Values for JM Pro Tracker error code:
  3369.  000Ah    ???
  3370.  000Bh    ???
  3371.  0014h    ???
  3372.  001Eh    some required parameters have not yet been set
  3373.  001Fh    already playing???
  3374.  FExxh    busy (API call already in progress)
  3375.  FFxxh    invalid function number
  3376. --------s-8301-------------------------------
  3377. INT 83 - JM Pro Tracker v5.0 - ???
  3378.     AH = 01h
  3379.     DX = ??? or FFFFh
  3380.     ???
  3381. Return: CF clear if successful
  3382.     CF set on error
  3383.         AX = error code (see #3608)
  3384. --------s-8302-------------------------------
  3385. INT 83 - JM Pro Tracker v5.0 - ???
  3386.     AH = 02h
  3387.     BX = ???
  3388.     ???
  3389. Return: CF clear if successful
  3390.         AX = ???
  3391.         BX = ???
  3392.         CX = ???
  3393.         DX = ???
  3394.         SI = ???
  3395.     CF set on error
  3396.         AX = error code (000Ah,000Bh,other) (see #3608)
  3397. --------s-8303-------------------------------
  3398. INT 83 - JM Pro Tracker v5.0 - ???
  3399.     AH = 03h
  3400.     BX = ??? (only low four bits, must be nonzero)
  3401.     CX = ???
  3402.     ???
  3403. Return: CF clear if successful
  3404.     CF set on error
  3405.         AX = error code (0014h) (see #3608)
  3406. --------s-8304-------------------------------
  3407. INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
  3408.     AH = 04h
  3409.     CX = number of bytes in suggested buffer
  3410.     ES:DI -> suggested buffer for DMA transfers???
  3411. Return: CF clear if successful
  3412.         ES:AX -> actual buffer (filled with bytes of 80h)
  3413.         CX = actual length (multiple of 4)
  3414.     CF set on error
  3415.         AX = error code (see #3608)
  3416. Note:    the buffer must not cross a 64K DMA page boundary
  3417. --------s-8305-------------------------------
  3418. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  3419.     AH = 05h
  3420.     CX = length of buffer
  3421.     ES:DI -> buffer for/containing ???
  3422. Return: CF clear (successful)
  3423. SeeAlso: AH=06h,AH=07h,AH=18h
  3424. --------s-8306-------------------------------
  3425. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  3426.     AH = 06h
  3427.     CX = length of buffer
  3428.     ES:DI -> buffer for/containing ???
  3429. Return: CF clear (successful)
  3430. SeeAlso: AH=05h,AH=07h,AH=18h
  3431. --------s-8307-------------------------------
  3432. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  3433.     AH = 07h
  3434.     BX = ???
  3435.     CX = length of buffer
  3436.     ES:DI -> buffer for/containing ???
  3437. Return: CF clear (successful)
  3438. SeeAlso: AH=05h,AH=06h,AH=18h
  3439. --------s-8308-------------------------------
  3440. INT 83 - JM Pro Tracker v5.0 - START PLAYING???
  3441.     AH = 08h
  3442.     ???
  3443. Return: CF clear if successful
  3444.        ???
  3445.     CF set on error
  3446.         AX = error code (001Eh,001Fh) (see #3608)
  3447. SeeAlso: AH=09h,AH=0Ah
  3448. --------s-8309-------------------------------
  3449. INT 83 - JM Pro Tracker v5.0 - PAUSE???
  3450.     AH = 09h
  3451.     ???
  3452. Return: CF clear if successful
  3453.     CF set on error
  3454.         AX = error code (see #3608)
  3455. SeeAlso: AH=08h,AH=0Ah
  3456. --------s-830A-------------------------------
  3457. INT 83 - JM Pro Tracker v5.0 - RESUME???
  3458.     AH = 0Ah
  3459.     ???
  3460. Return: CF clear if successful
  3461.     CF set on error
  3462.         AX = error code (001Fh) (see #3608)
  3463. SeeAlso: AH=08h,AH=09h
  3464. --------s-830B-------------------------------
  3465. INT 83 - JM Pro Tracker v5.0 - ???
  3466.     AH = 0Bh
  3467.     BX = ???
  3468.     ???
  3469. Return: CF clear if successful
  3470.     CF set on error
  3471. --------s-830C-------------------------------
  3472. INT 83 - JM Pro Tracker v5.0 - ???
  3473.     AH = 0Ch
  3474.     DX bit 5 = ???
  3475.     ???
  3476. Return: CF clear if successful
  3477.         BX = ??? (FFFFh)
  3478.         CX = ??? (0000h)
  3479.         DX = ???
  3480.     CF set on error
  3481.         AX = error code (see #3608)
  3482. --------s-830D-------------------------------
  3483. INT 83 - JM Pro Tracker v5.0 - ???
  3484.     AH = 0Dh
  3485.     BX = ???
  3486.     ???
  3487. Return: CF clear (successful)
  3488. --------s-830E-------------------------------
  3489. INT 83 - JM Pro Tracker v5.0 - ???
  3490.     AH = 0Eh
  3491.     BX = ??? (ignored if ES:DI = 0000h:0000h)
  3492.     ES:DI -> ??? or 0000h:0000h
  3493. Return: CF clear (successful)
  3494. --------s-830F-------------------------------
  3495. INT 83 - JM Pro Tracker v5.0 - ???
  3496.     AH = 0Fh
  3497.     ???
  3498. Return: CF clear if successful
  3499.         AX = ???
  3500.     CF set on error
  3501.         AX = error code (see #3608)
  3502. --------s-8310-------------------------------
  3503. INT 83 - JM Pro Tracker v5.0 - ???
  3504.     AH = 10h
  3505.     BL = subfunction???
  3506.     CX = ???
  3507.     DX = ???
  3508.     ???
  3509. Return: CF clear if successful
  3510.         CX = DX = ???
  3511.     CF set on error
  3512.         AX = error code (see #3608)
  3513. SeeAlso: AH=18h
  3514. --------s-8311-------------------------------
  3515. INT 83 - JM Pro Tracker v5.0 - ???
  3516.     AH = 11h
  3517.     BL = ???
  3518.     CX = ???
  3519. Return: CF clear (successful)
  3520. --------s-8312-------------------------------
  3521. INT 83 - JM Pro Tracker v5.0 - CLEAR ???
  3522.     AH = 12h
  3523. Return: nothing
  3524. --------s-8313-------------------------------
  3525. INT 83 - JM Pro Tracker v5.0 - ???
  3526.     AH = 13h
  3527.     BX = ???
  3528. Return: CF clear (successful)
  3529. --------s-8314-------------------------------
  3530. INT 83 - JM Pro Tracker v5.0 - ???
  3531.     AH = 14h
  3532.     ???
  3533. Return: CF clear (successful)
  3534.     BX = ???
  3535. --------s-8315-------------------------------
  3536. INT 83 - JM Pro Tracker v5.0 - GET ???
  3537.     AH = 15h
  3538.     BX = what to get (zero/nonzero)
  3539. Return: CF clear if successful
  3540.         BX = ???
  3541.         DX = ???
  3542.     CF set on error
  3543.         AX = error code (see #3608)
  3544. --------s-8316-------------------------------
  3545. INT 83 - JM Pro Tracker v5.0 - ???
  3546.     AH = 16h
  3547.     AL = subfunction
  3548.         00h ???
  3549.         Return: BX = ???
  3550.             CX = ???
  3551.             DX = ???
  3552.             ES:DI -> ???
  3553.             CF indicates ???
  3554.         01h ???
  3555.         Return: BX = ???
  3556.             CX = ???
  3557.             DX = ???
  3558. Return: CF clear if successful
  3559.     CF set on error
  3560.         AX = error code (FFxxh) (see #3608)
  3561. --------s-8317-------------------------------
  3562. INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
  3563.     AH = 17h
  3564. Return: CF clear if successful
  3565.     CF set on error (hooked by another program)
  3566. --------s-8318-------------------------------
  3567. INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
  3568.     AH = 18h
  3569.     ES:DI -> buffer-pointer structure (see #3609)
  3570. Return: nothing
  3571. SeeAlso: AH=05h,AH=06h,AH=07h,AH=10h
  3572.  
  3573. Format of JM Pro Tracker buffer-pointer structure:
  3574. Offset    Size    Description    (Table 3609)
  3575.  00h    WORD    length of ??? buffer (see AH=05h)
  3576.  02h    DWORD    -> ??? buffer (see AH=05h)
  3577.  06h    WORD    length of ??? buffer (see AH=06h)
  3578.  08h    DWORD    -> ??? buffer (see AH=06h)
  3579.  0Ch    WORD    length of ??? buffer (see AH=07h)
  3580.  0Eh    DWORD    -> ??? buffer (see AH=07h)
  3581.  12h    WORD    ??? (see AH=07h)
  3582.  14h    WORD    ??? (see AH=10h) (subfunction 01h)
  3583.  16h    WORD    ??? (see AH=10h) (subfunction 01h)
  3584.  18h    WORD    ??? (see AH=10h) (subfunction 00h)
  3585.  1Ah    WORD    ??? (see AH=10h) (subfunction 01h)
  3586. --------r-84---------------------------------
  3587. INT 84 - reserved for BASIC
  3588. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  3589. --------r-85---------------------------------
  3590. INT 85 - reserved for BASIC
  3591. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  3592.       v4.0, and may be left dangling by other programs written with the
  3593.       same version of compiled BASIC
  3594. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  3595. --------N-86---------------------------------
  3596. INT 86 - NetBIOS - ORIGINAL INT 18
  3597. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  3598. SeeAlso: INT 18"BOOT HOOK"
  3599. --------r-86---------------------------------
  3600. INT 86 - IBM ROM BASIC - used while in interpreter
  3601. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3602.     BASIC.COM/BASICA.COM do not restore vector on termination
  3603. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  3604. --------r-86---------------------------------
  3605. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  3606. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  3607. --------r-87---------------------------------
  3608. INT 87 - IBM ROM BASIC - used while in interpreter
  3609. Notes:    called by ROM BASIC
  3610.     BASIC.COM/BASICA.COM do not restore vector on termination
  3611. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  3612. --------r-87---------------------------------
  3613. INT 87 - APL*PLUS/PC - ???
  3614. SeeAlso: INT 86"APL",INT 88/AL=00h
  3615. --------v-87---------------------------------
  3616. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  3617. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  3618.       following
  3619. SeeAlso: INT 8B"VIRUS"
  3620. --------r-88---------------------------------
  3621. INT 88 - IBM ROM BASIC - used while in interpreter
  3622. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3623.     BASIC.COM/BASICA.COM do not restore vector on termination
  3624. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  3625. --------r-88--00-----------------------------
  3626. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  3627.     AL = 00h
  3628.     BX = STPTR of the variable to be assigned
  3629.     ES:SI -> model of type, rank, and shape (see #3610)
  3630. Return: ES:DI -> first data byte of object
  3631.     DX:CX = number of elements in the object
  3632. SeeAlso: INT 88/AL=01h,INT 88/AL=08h,INT C8"APL"
  3633.  
  3634. Format of APL*PLUS/PC shape model:
  3635. Offset    Size    Description    (Table 3610)
  3636.  00h    BYTE    type
  3637.         01h character (2-byte dimension sizes)
  3638.         02h integer (2-byte dimension sizes)
  3639.         08h floating point (2-byte dimension sizes)
  3640.         11h character (4-byte dimension sizes)
  3641.         12h integer (4-byte dimension sizes)
  3642.         18h floating point (4-byte dimension sizes)
  3643.  01h    BYTE    rank
  3644.  02h    (D)WORD first dimension of shape
  3645.  N    (D)WORD second dimension of shape
  3646.     ...
  3647. --------r-88--01-----------------------------
  3648. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  3649.     AL = 01h
  3650.     AH = rank
  3651.     BX = STPTR of the variable to be assigned
  3652.     CX = first dimension (if any)
  3653.     DX = second dimension (if any)
  3654. Return: ES:DI -> object
  3655.     CX = number of elements in the object
  3656. Note:    each dimension must be 32767 or smaller
  3657. SeeAlso: AL=00h,AL=02h,AL=08h,INT C8"APL"
  3658. --------r-88--02-----------------------------
  3659. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  3660.     AL = 02h
  3661.     AH = rank
  3662.     BX = STPTR of the variable to be assigned
  3663.     CX = first dimension (if any)
  3664.     DX = second dimension (if any)
  3665. Return: ES:DI -> object
  3666.     CX = number of elements in the object
  3667. Note:    each dimension must be 32767 or smaller
  3668. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  3669. --------r-88--08-----------------------------
  3670. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  3671.     AL = 08h
  3672.     AH = rank
  3673.     BX = STPTR of the variable to be assigned
  3674.     CX = first dimension (if any)
  3675.     DX = second dimension (if any)
  3676. Return: ES:DI -> object
  3677.     CX = number of elements in the object
  3678. Note:    each dimension must be 32767 or smaller
  3679. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  3680. --------r-88--F5-----------------------------
  3681. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  3682.     AL = F5h
  3683.     BX = STPTR of object
  3684. SeeAlso: INT C8"APL"
  3685. --------r-88--F6-----------------------------
  3686. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  3687.     AL = F6h
  3688.     BX = STPTR of object
  3689. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  3690. --------r-88--F7-----------------------------
  3691. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  3692.     AL = F7h
  3693.     BX = STPTR of object
  3694. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  3695. --------r-88--F8-----------------------------
  3696. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  3697.     AL = F8h
  3698.     BX = STPTR of object
  3699. Return: BX = name's outswapping status
  3700.         0000h eligible
  3701.         0001h not eligible
  3702. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  3703. --------r-88--F9-----------------------------
  3704. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  3705.     AL = F9h
  3706.     ES:SI -> name
  3707.     CX = length of name
  3708. Return: CF set if name ill-formed or already in use
  3709.         BX = STPTR if already in symbol table
  3710.     CF clear if name is available for use
  3711.         BX = 0000h
  3712. Note:    does not force the name into the workspace
  3713. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  3714. --------r-88--FC-----------------------------
  3715. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  3716.     AL = FCh
  3717.     BX = amount of memory needed (paragraphs)
  3718. Return: CF clear if memory available
  3719.     CF set if a workspace compaction is required
  3720. SeeAlso: AL=FDh,INT C8"APL"
  3721. --------r-88--FD-----------------------------
  3722. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  3723.     AL = FDh
  3724. Return: BX = number of paragraphs available in workspace
  3725. SeeAlso: AL=FCh,INT C8"APL"
  3726. --------r-88--FE-----------------------------
  3727. INT 88 - APL*PLUS/PC - CREATE NAME
  3728.     AL = FEh
  3729.     ES:SI -> name
  3730.     CX = length of name
  3731. Return: BX = STPTR of name
  3732.     DX = interpreter's data segment
  3733. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  3734. --------r-88--FF-----------------------------
  3735. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  3736.     AL = FFh
  3737.     ES:SI -> name
  3738.     CX = length of name
  3739. Return: CF set if name ill-formed or already in use
  3740.         BX = STPTR if already in symbol table
  3741.     CF clear if name is available for use
  3742.         BX = 0000h
  3743. Note:    forces the name into the workspace and makes it immune from outswapping
  3744. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  3745. --------r-89---------------------------------
  3746. INT 89 - IBM ROM BASIC - used while in interpreter
  3747. Notes:    called by ROM BASIC
  3748.     BASIC.COM/BASICA.COM do not restore vector on termination
  3749. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  3750. --------r-89---------------------------------
  3751. INT 89 - APL*PLUS/PC - ???
  3752. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  3753.       the older interrupts
  3754. SeeAlso: INT C9"APL"
  3755. --------r-8A---------------------------------
  3756. INT 8A - IBM ROM BASIC - used while in interpreter
  3757. Notes:    called by ROM BASIC
  3758.     BASIC.COM/BASICA.COM do not restore vector on termination
  3759. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  3760. --------r-8A---------------------------------
  3761. INT 8A - APL*PLUS/PC - PRINT SCREEN
  3762. Note:    same as INT 05
  3763. SeeAlso: INT 05"PRINT SCREEN",INT 8C"APL",INT CA"APL"
  3764. --------r-8B---------------------------------
  3765. INT 8B - IBM ROM BASIC - used while in interpreter
  3766. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3767.     BASIC.COM/BASICA.COM do not restore vector on termination
  3768. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  3769. --------r-8B---------------------------------
  3770. INT 8B - APL*PLUS/PC - BEEP
  3771. Note:    same as printing a ^G via INT 21/AH=02h
  3772. SeeAlso: INT 21/AH=02h,INT CB"APL"
  3773. --------v-8B---------------------------------
  3774. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  3775. Note:    if the ZeroHunt virus is resident, this vector will contain either
  3776.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  3777. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  3778. --------r-8C---------------------------------
  3779. INT 8C - IBM ROM BASIC - used while in interpreter
  3780. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3781.     BASIC.COM/BASICA.COM do not restore vector on termination
  3782. --------r-8C---------------------------------
  3783. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  3784.     AX = flag
  3785.         0000h do not save display attributes
  3786.         0001h save attributes
  3787. SeeAlso: INT CC"APL"
  3788. --------r-8D---------------------------------
  3789. INT 8D - IBM ROM BASIC - used while in interpreter
  3790. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3791.     BASIC.COM/BASICA.COM do not restore vector on termination
  3792. --------r-8E---------------------------------
  3793. INT 8E - IBM ROM BASIC - used while in interpreter
  3794. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3795.     BASIC.COM/BASICA.COM do not restore vector on termination
  3796. --------r-8F---------------------------------
  3797. INT 8F - IBM ROM BASIC - used while in interpreter
  3798. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3799.     BASIC.COM/BASICA.COM do not restore vector on termination
  3800. --------r-90---------------------------------
  3801. INT 90 - IBM ROM BASIC - used while in interpreter
  3802. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3803.     BASIC.COM/BASICA.COM do not restore vector on termination
  3804. --------r-90---------------------------------
  3805. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  3806. --------r-91---------------------------------
  3807. INT 91 - IBM ROM BASIC - used while in interpreter
  3808. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3809.     BASIC.COM/BASICA.COM do not restore vector on termination
  3810. --------N-91---------------------------------
  3811. INT 91 - IBM TOKEN RING ADAPTER - ???
  3812. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  3813. --------r-92---------------------------------
  3814. INT 92 - IBM ROM BASIC - used while in interpreter
  3815. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3816.     BASIC.COM/BASICA.COM do not restore vector on termination
  3817. --------N-92---------------------------------
  3818. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  3819.     BX:DX -> control block
  3820. SeeAlso: INT 68"Sangoma"
  3821. --------e-92E1-------------------------------
  3822. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  3823.     AH = E1h
  3824.     AL = function
  3825.     BX = stack count (number of words to push)
  3826.     CX:DX -> stack data (in word-reversed order ready to push)
  3827. Return: AX = status (see #3611)
  3828. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  3829.  
  3830. (Table 3611)
  3831. Values for Da Vinci eMail function status:
  3832.  0001h    success
  3833.  FF97h    "ERS_NOT_AVAILABLE"
  3834.  FF99h    "ERS_TOO_MANY_NAMES"
  3835.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  3836.  FFE3h    "ERS_NAME_NOT_FOUND"
  3837.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  3838.  FFFFh    "ERS_NO_SUCH_FILE"
  3839. --------e-92E100-----------------------------
  3840. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  3841.     AX = E100h
  3842.     BX = size of parameter block in words (000Ah)
  3843.     CX:DX -> parameter block (see #3612)
  3844. Return: AX = 0001h success
  3845. Desc:    this function is used to initialize the dispatcher
  3846. SeeAlso: AX=E101h,AX=E103h
  3847.  
  3848. Format of Da Vinci eMail "NetInitStart" parameter block:
  3849. Offset    Size    Description    (Table 3612)
  3850.  00h    WORD    segment of ???
  3851.  02h    WORD    offset of ???
  3852.  04h    WORD    high part of long ???
  3853.  06h    WORD    low part of long ???
  3854.  08h    WORD    high part of long ???
  3855.  0Ah    WORD    low part of long ???
  3856.  0Ch    WORD    high part of long ???
  3857.  0Eh    WORD    low part of long ???
  3858.  10h    WORD    high part of long ???
  3859.  12h    WORD    low part of long ???
  3860. --------e-92E101BX0000-----------------------
  3861. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  3862.     AX = E101h
  3863.     BX = 0000h
  3864.     CX:DX ignored
  3865. Return: AX = 0001h success
  3866. SeeAlso: AX=E100h,AX=E180h
  3867. --------e-92E102BX0000-----------------------
  3868. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  3869.     AX = E102h
  3870.     BX = 0000h
  3871.     CX:DX ignored
  3872. Return: AX = 0001h success
  3873. Desc:    this function is used to determine if the dispatcher is loaded
  3874. SeeAlso: AX=E10Bh,AX=E180h
  3875. --------e-92E103BX0000-----------------------
  3876. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  3877.     AX = E103h
  3878.     BX = 0000h
  3879.     CX:DX ignored
  3880. Return: AX = status (see #3611)
  3881. SeeAlso: AX=E100h
  3882. --------e-92E104-----------------------------
  3883. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  3884.     AX = E104h
  3885.     BX = size of parameter block in words (0006h)
  3886.     CX:DX -> parameter block (see #3613)
  3887. Return: AX = status (see #3611)
  3888. Desc:    this function is used to verify node address for usernames
  3889. SeeAlso: AX=E180h
  3890.  
  3891. Format of Da Vinci eMail "NetWhereIs" parameter block:
  3892. Offset    Size    Description    (Table 3613)
  3893.  00h    WORD    segment of node address buffer
  3894.  02h    WORD    offset of node address buffer
  3895.  04h    WORD    segment of uppercase username
  3896.  06h    WORD    offset of uppercase username
  3897.  08h    WORD    segment of "DVSEMAIL"
  3898.  0Ah    WORD    offset of "DVSEMAIL"
  3899. --------e-92E105-----------------------------
  3900. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  3901.     AX = E105h
  3902.     BX = size of parameter block in words (0007h)
  3903.     CX:DX -> parameter block (see #3614)
  3904. Return: AX = 0000h Error
  3905.     AX = handle
  3906. Desc:    this function is used to open a submission channel
  3907. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  3908.  
  3909. Format of Da Vinci eMail "NetOpen" parameter block:
  3910. Offset    Size    Description    (Table 3614)
  3911.  00h    WORD    operation (1 = read, 2 = write)
  3912.  02h    WORD    segment of uppercase To: username
  3913.  04h    WORD    offset of uppercase To: username
  3914.  06h    WORD    segment of "DVSEMAIL"
  3915.  08h    WORD    offset of "DVSEMAIL"
  3916.  0Ah    WORD    segment of node address
  3917.  0Ch    WORD    offset of node address
  3918. --------e-92E106BX0004-----------------------
  3919. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  3920.     AX = E106h
  3921.     BX = 0004h
  3922.     CX:DX -> parameter block
  3923. Return: AX = 0001h
  3924. SeeAlso: AX=E108h
  3925. --------e-92E107BX0002-----------------------
  3926. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  3927.     AX = E107h
  3928.     BX = 0002h
  3929.     CX:DX -> parameter block
  3930. Return: AX = 0001h
  3931. SeeAlso: AX=E109h,AX=E180h
  3932. --------e-92E108-----------------------------
  3933. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  3934.     AX = E108h
  3935.     BX = size of parameter block in words (0004h)
  3936.     CX:DX -> parameter block (see #3615)
  3937. Return: AX = amount written
  3938. Desc:    This function is used to write transactions to the dispatcher.
  3939.       The command block is written first and then another call is used
  3940.       to write the associated data.
  3941. SeeAlso: AX=E106h
  3942.  
  3943. Format of Da Vinci eMail "NetWrite" parameter block:
  3944. Offset    Size    Description    (Table 3615)
  3945.  00h    WORD    buffer count (see #3617)
  3946.  02h    WORD    segment of command buffer (see #3616)
  3947.  04h    WORD    offset of command buffer
  3948.  06h    WORD    handle from NetOpen
  3949.  
  3950. Format of Da Vinci eMail command buffer:
  3951. Offset    Size    Description    (Table 3616)
  3952.  00h    BYTE    command
  3953.         21h '!' Protocol commands for remote control
  3954.         41h 'A' Authorization protocol element
  3955.         42h 'B' Return(back) routing information
  3956.             Associated data is the From: username
  3957.         43h 'C' Carbon Copy list
  3958.             Associated data is a comma delimitted list of usernames
  3959.         44h 'D' Distribution list
  3960.             Associated data is a comma delimitted list of usernames
  3961.         45h 'E' Mail end marker
  3962.             No associated data
  3963.         48h 'H' Mail message header
  3964.             Associated data is a message header buffer
  3965.         4Dh 'M' Mail message
  3966.             Associated data is the body of the message
  3967.         4Fh 'O' Object
  3968.         50h 'P' Paperclip attachment
  3969.         52h 'R' Routing information
  3970.             Associated data is the To: username
  3971.         53h 'S' Subject
  3972.             Associated data is the subject of the message
  3973.         54h 'T' Trail of Reply/Forwards
  3974.  01h    BYTE    subcommand
  3975.  02h    DWORD    length of associated data
  3976.  
  3977. Format of Da Vinci eMail message header buffer:
  3978. Offset    Size    Description    (Table 3617)
  3979.  00h 30 BYTEs    subject line
  3980.  1Eh 24 BYTEs    To
  3981.  36h 24 BYTEs    From
  3982.  4Eh    DWORD    Time
  3983.         BYTE    00h
  3984.         BYTE    hour
  3985.         BYTE    minute
  3986.         BYTE    second
  3987.  52h    DWORD    Date
  3988.         BYTE    00h
  3989.         BYTE    year
  3990.         BYTE    month
  3991.         BYTE    day
  3992.  56h    DWORD    serial number (00000000h)
  3993.  5Ah    WORD    mail types (see #3618)
  3994.  5Ch    WORD    special types (0)
  3995.  
  3996. Bitfields for Da Vinci eMail mail types:
  3997. Bit(s)    Description    (Table 3618)
  3998.  7    blind carbon copy
  3999.  6    carbon copy
  4000.  5    priority
  4001.  4    confidential
  4002.  3    certified
  4003.  2    bulk
  4004.  1-0    class (first, second, third, bulk)
  4005. --------e-92E109-----------------------------
  4006. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  4007.     AX = E109h
  4008.     BX = size of parameter block in words (0001h)
  4009.     CX:DX -> parameter block (see #3619)
  4010. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  4011. SeeAlso: AX=E107h,AX=E180h
  4012.  
  4013. Format of Da Vinci eMail "NetErrorFix" parameter block:
  4014. Offset    Size    Description    (Table 3619)
  4015.  00h    WORD    ???
  4016. --------e-92E10A-----------------------------
  4017. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  4018.     AX = E10Ah
  4019.     BX = size of parameter block in words (0001h)
  4020.     CX:DX -> parameter block (see #3620)
  4021. Return: AX = 0001h
  4022. Desc:    this function is used to close a dispatcher handle
  4023. SeeAlso: AX=E105h
  4024.  
  4025. Format of Da Vinci eMail "NetClose" parameter block:
  4026. Offset    Size    Description    (Table 3620)
  4027.  00h    WORD    handle from NetOpen
  4028. --------e-92E10B-----------------------------
  4029. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  4030.     AX = E10Bh
  4031.     BX = size of parameter block in words (0004h)
  4032.     CX:DX -> parameter block (see #3621)
  4033. Return: AX = 0001h
  4034. SeeAlso: AX=E102h,AX=E10Ch
  4035.  
  4036. Format of Da Vinci eMail "NetCheckQueue" parameter block:
  4037. Offset    Size    Description    (Table 3621)
  4038.  00h    WORD    segment of 24-byte username buffer
  4039.  02h    WORD    offset of 24-byte username buffer
  4040.  04h    WORD    segment of 24-byte protocol buffer
  4041.  06h    WORD    offset of 24-byte protocol buffer
  4042. --------e-92E10C-----------------------------
  4043. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  4044.     AX = E10Ch
  4045.     BX = size of parameter block in words (0002h)
  4046.     CX:DX -> parameter block (see #3622)
  4047. Return: AX = 0001h
  4048. SeeAlso: AX=E10Bh
  4049.  
  4050. Format of Da Vinci eMail "NetReadQueue" parameter block:
  4051. Offset    Size    Description    (Table 3622)
  4052.  00h    WORD    Segment of 128 byte node address buffer
  4053.  02h    WORD    Offset of 128 byte node address buffer
  4054. --------e-92E10D-----------------------------
  4055. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  4056.     AX = E10Dh
  4057.     BX = size of parameter block in words (0006h)
  4058.     CX:DX -> parameter block (see #3623)
  4059. Return: AX = status (see #3611)
  4060. Desc:    this function is used to verify username/password
  4061. SeeAlso: AX=E10Eh
  4062.  
  4063. Format of Da Vinci eMail "NetSubmitName" parameter block:
  4064. Offset    Size    Description    (Table 3623)
  4065.  00h    WORD    segment of uppercase password string
  4066.  02h    WORD    offset of uppercase password string
  4067.  04h    WORD    segment of uppercase username string
  4068.  06h    WORD    offset of uppercase username string
  4069.  08h    WORD    segment of "DVSEMAIL"
  4070.  0Ah    WORD    offset of "DVSEMAIL"
  4071. --------e-92E10E-----------------------------
  4072. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  4073.     AX = E10Eh
  4074.     BX = size of parameter block in words (0004h)
  4075.     CX:DX -> parameter block (see #3624)
  4076. Return: AX = 0001h
  4077. Desc:    this function is used to remove a username
  4078. SeeAlso: AX=E10Dh
  4079.  
  4080. Format of Da Vinci eMail "NetRemoveName" parameter block:
  4081. Offset    Type    Description    (Table 3624)
  4082.  00h    WORD    segment of uppercase username
  4083.  02h    WORD    offset of uppercase username
  4084.  04h    WORD    segment of "DVSEMAIL"
  4085.  06h    WORD    offset of "DVSEMAIL"
  4086. --------e-92E10FBX0000-----------------------
  4087. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  4088.     AX = E10Fh
  4089.     BX = 0000h
  4090.     CX:DX ignored
  4091. Return: AX = 0001h
  4092. SeeAlso: AX=E180h
  4093. --------e-92E110-----------------------------
  4094. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  4095.     AX = E110h
  4096.     BX = size of parameter block in words (0006h)
  4097.     CX:DX -> parameter block (see #3625)
  4098. Return: AX = 0001h
  4099. SeeAlso: AX=E111h,AX=E113h
  4100.  
  4101. Format of Da Vinci eMail "NetGetAltRoute" parameter block:
  4102. Offset    Size    Description    (Table 3625)
  4103.  00h  6 WORDs    ???
  4104. --------e-92E111-----------------------------
  4105. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  4106.     AX = E111h
  4107.     BX = size of parameter block in words (0004h)
  4108.     CX:DX -> parameter block (see #3626)
  4109. Return: AX = 0001h
  4110. SeeAlso: AX=E110h,AX=E113h
  4111.  
  4112. Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block:
  4113. Offset    Size    Description    (Table 3626)
  4114.  00h  4 WORDs    ???
  4115. --------e-92E112-----------------------------
  4116. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  4117.     AX = E112h
  4118.     BX = size of parameter block in words (0008h)
  4119.     CX:DX -> parameter block (see #3627)
  4120. Return: AX = 0001h
  4121. SeeAlso: AX=E180h
  4122.  
  4123. Format of Da Vinci eMail "NetChangePassword" parameter block:
  4124. Offset    Size    Description    (Table 3627)
  4125.  00h  8 WORDs    ???
  4126. --------e-92E113-----------------------------
  4127. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  4128.     AX = E113h
  4129.     BX = size of parameter block in words (0008h)
  4130.     CX:DX -> parameter block (see #3628)
  4131. Return: AX = 0001h
  4132. SeeAlso: AX=E110h,AX=E111h
  4133.  
  4134. Format of Da Vinci eMail "NetSetAltRoute" parameter block:
  4135. Offset    Size    Description    (Table 3628)
  4136.  00h  8 WORDs    ???
  4137. --------e-92E175-----------------------------
  4138. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  4139.     AX = E175h
  4140. Return: AX = 0012h
  4141.     BX = PSP
  4142. SeeAlso: AX=E180h
  4143. --------e-92E180-----------------------------
  4144. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  4145.     AX = E180h
  4146. Return: AX = 0012h if installed
  4147.     ES:DX -> '$'-terminated driver information string
  4148. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  4149. --------r-93---------------------------------
  4150. INT 93 - IBM ROM BASIC - used while in interpreter
  4151. Notes:    called by ROM BASIC
  4152.     BASIC.COM/BASICA.COM do not restore vector on termination
  4153. --------N-93---------------------------------
  4154. INT 93 - IBM TOKEN RING ADAPTER - ???
  4155. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  4156. --------r-94---------------------------------
  4157. INT 94 - IBM ROM BASIC - used while in interpreter
  4158. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4159.     BASIC.COM/BASICA.COM do not restore vector on termination
  4160. --------s-94----SI0000-----------------------
  4161. INT 94 u - PCM driver - INITIALIZE SOUND
  4162.     SI = 0000h
  4163.     ES:BX -> parameters
  4164. Return: ???
  4165. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  4166.       sound boards
  4167. Note:    the installation check consists of testing for the signature string
  4168.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  4169.       preceding the signature gives the PCM driver's version
  4170. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  4171. Index:    installation check;PCM driver|PCM.COM;installation check
  4172. Index:    PCM driver;installation check
  4173. --------s-94----SI0001-----------------------
  4174. INT 94 u - PCM driver - INITIALIZE PCM
  4175.     SI = 0001h
  4176.     ES:BX -> parameters
  4177. Return: ???
  4178. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  4179. --------s-94----SI0002-----------------------
  4180. INT 94 u - PCM driver - INITIALIZE PCM INFO
  4181.     SI = 0002h
  4182.     ES:BX -> parameters (see #3629)
  4183. Return: ???
  4184. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  4185.  
  4186. Format of PCM driver function 0002h parameters:
  4187. Offset    Size    Description    (Table 3629)
  4188.  00h    DWORD    rate
  4189.  04h    WORD    channel number
  4190.  06h    WORD    "comp"
  4191.  08h    WORD    "dsize"
  4192. --------s-94----SI0003-----------------------
  4193. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  4194.     SI = 0003h
  4195.     ES:BX -> parameters (see #3630)
  4196. Return: ???
  4197. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  4198.  
  4199. Format of PCM driver function 0003h parameters:
  4200. Offset    Size    Description    (Table 3630)
  4201.  00h    DWORD    -> DMA buffer
  4202.  04h    WORD    size of DMA buffer
  4203.  06h    WORD    number of divisions
  4204. --------s-94----SI0004-----------------------
  4205. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  4206.     SI = 0004h
  4207.     ES:BX -> parameters (see #3631)
  4208. Return: ???
  4209. SeeAlso: SI=0000h,SI=0001h
  4210.  
  4211. Format of PCM driver function 0004h parameters:
  4212. Offset    Size    Description    (Table 3631)
  4213.  00h    DWORD    -> user function
  4214. --------s-94----SI0005-----------------------
  4215. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  4216.     SI = 0005h
  4217. Return: ???
  4218. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  4219. --------s-94----SI0006-----------------------
  4220. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  4221.     SI = 0006h
  4222. Return: ???
  4223. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  4224. --------s-94----SI0007-----------------------
  4225. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  4226.     SI = 0007h
  4227. Return: ???
  4228. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  4229. --------s-94----SI0008-----------------------
  4230. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  4231.     SI = 0008h
  4232. Return: ???
  4233. SeeAlso: SI=0007h
  4234. --------s-94----SI0009-----------------------
  4235. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  4236.     SI = 0009h
  4237. Return: ???
  4238. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  4239. --------s-94----SI000A-----------------------
  4240. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  4241.     SI = 000Ah
  4242. Return: ???
  4243. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  4244. Index:    uninstall;PCM driver
  4245. --------s-94----SI000B-----------------------
  4246. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  4247.     SI = 000Bh
  4248.     ES:BX -> parameters (see #3632)
  4249. Return: ???
  4250. SeeAlso: SI=0003h
  4251.  
  4252. Format of PCM driver functio 000Bh parameters:
  4253. Offset    Size    Description    (Table 3632)
  4254.  00h    DWORD    -> memory block to contain DMA buffer
  4255.  04h    WORD    desired size of DMA buffer
  4256. --------s-94----SI000D-----------------------
  4257. INT 94 u - Media Vision PCM.COM - GET STATUS
  4258.     SI = 000Dh
  4259. Return: AX = status (0000h = waiting) (see #3633)
  4260.  
  4261. Bitfields for PCM.COM status:
  4262. Bit(s)    Description    (Table 3633)
  4263.  0    playing
  4264.  1    recording
  4265.  2    SBplaying
  4266.  3    SBrecording
  4267.  14    SBpaused
  4268.  15    paused
  4269. --------s-94----SI8000-----------------------
  4270. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  4271.     SI = 8000h
  4272. Return: DX:AX -> DMA buffer
  4273. Program: PCM.COM is a superset of the standard PCM driver which provides
  4274.       additional functions for fine control of the driver
  4275. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  4276.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  4277.       the INT 94 handler's segment
  4278. SeeAlso: SI=8001h,SI=8004h
  4279. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  4280. Index:    Media Vision PCM.COM;"shark" functions
  4281. --------s-94----SI8001-----------------------
  4282. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  4283.     SI = 8001h
  4284. Return: AX = DMA buffer size
  4285.     DX = divisions
  4286. SeeAlso: SI=8000h
  4287. --------s-94----SI8002-----------------------
  4288. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  4289.     SI = 8002h
  4290. Return: AX = status
  4291.         0000h if board not at specified I/O address
  4292.         other if board found
  4293. Note:    the I/O address is specified by ORing the base I/O port shifted left
  4294.       four bits into SI before calling INT 94
  4295. SeeAlso: SI=8000h
  4296. --------s-94----SI8004-----------------------
  4297. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  4298.     SI = 8004h
  4299. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  4300.     DX = size of buffer in note structures
  4301. SeeAlso: SI=8000h
  4302. --------s-94----SI8005-----------------------
  4303. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  4304.     SI = 8005h
  4305. Return: ???
  4306. --------s-94----SI8011-----------------------
  4307. INT 94 u - Media Vision PCM.COM - INITIALIZE
  4308.     SI = 8011h
  4309.     ES:BX -> "iobf91" structure
  4310. Return: ???
  4311. --------s-94----SI8012-----------------------
  4312. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  4313.     SI = 8012h
  4314.     ES:BX -> "i94f92buf" structure
  4315. Return: ???
  4316. SeeAlso: SI=8013h,SI=8014h
  4317. --------s-94----SI8013-----------------------
  4318. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  4319.     SI = 8013h
  4320. Return: AX = number of sounds used
  4321.     DX = maximum handles
  4322. --------s-94----SI8014-----------------------
  4323. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  4324.     SI = 8014h
  4325.     ES:BX -> "i94f92buf" structure to be filled in
  4326.         sound number field set to desired sound
  4327. Return: AX = status
  4328.         0000h successful
  4329.         FFFFh sound number out of range
  4330. SeeAlso: SI=8012h,SI=8013h
  4331. --------s-94----SI8015-----------------------
  4332. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  4333.     SI = 8015h
  4334.     ES:BX -> DMA info structure (see #3634)
  4335. Return: ???
  4336.  
  4337. Format of PCM.COM DMA info structure:
  4338. Offset    Size    Description    (Table 3634)
  4339.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  4340.  04h    WORD    DMA buffer size
  4341.  06h    WORD    divisions
  4342. --------s-94----SI8016-----------------------
  4343. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  4344.     SI = 8016h
  4345.     AX = hotkey number (01h-08h)
  4346. Return: ???
  4347. SeeAlso: AL=02h/SI=8017h
  4348. --------s-94--01SI8017-----------------------
  4349. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  4350.     AL = 01h
  4351.     SI = 8017h
  4352.     AH = new state (00h off, 01h on)
  4353. Return: ???
  4354. SeeAlso: AL=02h/SI=8017h
  4355. --------s-94--02SI8017-----------------------
  4356. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  4357.     AL = 02h
  4358.     SI = 8017h
  4359.     AH = new state (00h off, 01h on)
  4360. Return: ???
  4361. --------s-94--04SI8017-----------------------
  4362. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  4363.     AL = 04h
  4364.     SI = 8017h
  4365.     AH = new state
  4366.         00h off
  4367.         01h on
  4368.         CX = minimum delay
  4369.         DX = maximum delay
  4370. Return: ???
  4371. --------s-94--08SI8017-----------------------
  4372. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  4373.     AL = 08h
  4374.     SI = 8017h
  4375.     AH = new state
  4376.         00h off
  4377.         01h on
  4378.         DX:CX = delay
  4379. Return: ???
  4380. SeeAlso: AL=10h/SI=8017h
  4381. --------s-94--10SI8017-----------------------
  4382. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  4383.     AL = 10h
  4384.     SI = 8017h
  4385.     AH = timer options (see #3635)
  4386.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  4387. Return: ???
  4388. SeeAlso: AL=08h/SI=8017h
  4389.  
  4390. Bitfields for PCM.COM timer options:
  4391. Bit(s)    Description    (Table 3635)
  4392.  7    set timer
  4393.  6    timer active (timer turned off if clear)
  4394.  5-0    timer number
  4395. --------s-94----SI8018-----------------------
  4396. INT 94 u - Media Vision PCM.COM - GET INFO
  4397.     SI = 8018h
  4398.     AL = what to get
  4399.         00h "F92state"
  4400.         01h "F92bkgd"
  4401.         02h "I10timer"
  4402.         03h "I08state"
  4403. Return: DX:AX -> desired information
  4404. --------r-95---------------------------------
  4405. INT 95 - IBM ROM BASIC - used while in interpreter
  4406. Notes:    called by ROM BASIC
  4407.     BASIC.COM/BASICA.COM do not restore vector on termination
  4408. --------r-95---------------------------------
  4409. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  4410. Note:    use only when the R= option is invoked on entering APL
  4411. --------r-96---------------------------------
  4412. INT 96 - IBM ROM BASIC - used while in interpreter
  4413. Notes:    called by ROM BASIC
  4414.     BASIC.COM/BASICA.COM do not restore vector on termination
  4415. --------U-96---------------------------------
  4416. INT 96 U - KILL.COM, QKILL.COM - POP UP
  4417. Program: KILL.COM is a TSR utility that allows you to terminate programs
  4418.      by calling INT 21/AH=4Ch or reboot the computer (author unknown);
  4419.      QKILL.COM is a modification of KILL.COM by Solar Designer that
  4420.      supports QEMM's Quick Boot feature
  4421. Notes:    This interrupt is intercepted but not chained by KILL.COM; it is never
  4422.       called by KILL.COM itself. It points into the middle of KILL.COM's
  4423.       INT 09 handler and assumes specific values have been placed on the
  4424.       stack (thus it can't be called as an interrupt).
  4425.     To invoke KILL, use the following code:
  4426.         pushf
  4427.         push cs
  4428.         push offset $+0Dh
  4429.         push ax
  4430.         push es
  4431.         push 0
  4432.         pop  es
  4433.         jmp  dword ptr es:[96h*4]
  4434. --------r-97---------------------------------
  4435. INT 97 - IBM ROM BASIC - used while in interpreter
  4436. Notes:    called by ROM BASIC
  4437.     BASIC.COM/BASICA.COM do not restore vector on termination
  4438. --------r-98---------------------------------
  4439. INT 98 - IBM ROM BASIC - used while in interpreter
  4440. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4441.     BASIC.COM/BASICA.COM do not restore vector on termination
  4442. --------r-99---------------------------------
  4443. INT 99 - IBM ROM BASIC - used while in interpreter
  4444. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4445.     BASIC.COM/BASICA.COM do not restore vector on termination
  4446. --------r-9A---------------------------------
  4447. INT 9A - IBM ROM BASIC - used while in interpreter
  4448. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4449.     BASIC.COM/BASICA.COM do not restore vector on termination
  4450. SeeAlso: INT 80"BASIC",INT 99,INT 9B
  4451. --------r-9B---------------------------------
  4452. INT 9B - IBM ROM BASIC - used while in interpreter
  4453. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4454.     BASIC.COM/BASICA.COM do not restore vector on termination
  4455. SeeAlso: INT 80"BASIC",INT 9A,INT 9C"BASIC"
  4456. --------r-9C---------------------------------
  4457. INT 9C - IBM ROM BASIC - used while in interpreter
  4458. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4459.     BASIC.COM/BASICA.COM do not restore vector on termination
  4460. SeeAlso: INT 80"BASIC",INT 9B,INT 9D"BASIC"
  4461. --------v-9C---------------------------------
  4462. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  4463. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  4464. --------r-9D---------------------------------
  4465. INT 9D - IBM ROM BASIC - used while in interpreter
  4466. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4467.     BASIC.COM/BASICA.COM do not restore vector on termination
  4468. SeeAlso: INT 80"BASIC",INT 9C"BASIC",INT 9E"BASIC"
  4469. --------v-9D---------------------------------
  4470. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  4471. Note:    this vector is used by the virus to store the result of a call to
  4472.       INT 2F/AH=13h
  4473. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  4474. --------r-9E---------------------------------
  4475. INT 9E - IBM ROM BASIC - used while in interpreter
  4476. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4477.     BASIC.COM/BASICA.COM do not restore vector on termination
  4478. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT 9F"BASIC"
  4479. --------v-9E---------------------------------
  4480. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  4481. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  4482. --------r-9F---------------------------------
  4483. INT 9F - IBM ROM BASIC - used while in interpreter
  4484. Notes:    called by ROM BASIC
  4485.     BASIC.COM/BASICA.COM do not restore vector on termination
  4486. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT A0"BASIC"
  4487. --------v-9F---------------------------------
  4488. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  4489. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  4490.       this interrupt to store the existing INT 13 vector for later
  4491.       restoration
  4492. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS",INT D3"VIRUS"
  4493. --------r-A0---------------------------------
  4494. INT A0 - IBM ROM BASIC - used while in interpreter
  4495. Notes:    called by ROM BASIC
  4496.     BASIC.COM/BASICA.COM do not restore vector on termination
  4497. SeeAlso: INT 80"BASIC",INT 9F"BASIC",INT A1"BASIC"
  4498. --------r-A0---------------------------------
  4499. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  4500. SeeAlso: INT 59"GSS"
  4501. --------r-A1---------------------------------
  4502. INT A1 - IBM ROM BASIC - used while in interpreter
  4503. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4504.     BASIC.COM/BASICA.COM do not restore vector on termination
  4505. SeeAlso: INT 80"BASIC",INT A0"BASIC",INT A2"BASIC"
  4506. --------r-A2---------------------------------
  4507. INT A2 - IBM ROM BASIC - used while in interpreter
  4508. Notes:    called by ROM BASIC
  4509.     BASIC.COM/BASICA.COM do not restore vector on termination
  4510. SeeAlso: INT 80"BASIC",INT A1"BASIC",INT A3"BASIC"
  4511. --------r-A3---------------------------------
  4512. INT A3 - IBM ROM BASIC - used while in interpreter
  4513. Notes:    called by ROM BASIC
  4514.     BASIC.COM/BASICA.COM do not restore vector on termination
  4515. SeeAlso: INT 80"BASIC",INT A2"BASIC",INT A4"BASIC"
  4516. --------r-A4---------------------------------
  4517. INT A4 - IBM ROM BASIC - used while in interpreter
  4518. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4519.     BASIC.COM/BASICA.COM do not restore vector on termination
  4520. SeeAlso: INT 80"BASIC",INT A3"BASIC",INT A5"BASIC"
  4521. --------U-A4---------------------------------
  4522. INT A4 U - Right Hand Man - API
  4523.     AH = function number (v3.3 supports functions 00h-52h)
  4524. Return: CF set on error
  4525.     CF clear if successful
  4526. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  4527.       which has evolved into Futurus Team
  4528. Note:    this interrupt is only hooked while popped up
  4529. SeeAlso: INT 2F/AX=A4E0h
  4530. --------r-A5---------------------------------
  4531. INT A5 - IBM ROM BASIC - used while in interpreter
  4532. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4533.     BASIC.COM/BASICA.COM do not restore vector on termination
  4534. SeeAlso: INT 80"BASIC",INT A4"BASIC",INT A6"BASIC"
  4535. --------r-A6---------------------------------
  4536. INT A6 - IBM ROM BASIC - used while in interpreter
  4537. Notes:    called by ROM BASIC
  4538.     BASIC.COM/BASICA.COM do not restore vector on termination
  4539. SeeAlso: INT 80"BASIC",INT A5"BASIC",INT A7"BASIC"
  4540. --------r-A7---------------------------------
  4541. INT A7 - IBM ROM BASIC - used while in interpreter
  4542. Notes:    called by ROM BASIC
  4543.     BASIC.COM/BASICA.COM do not restore vector on termination
  4544. --------r-A8---------------------------------
  4545. INT A8 - IBM ROM BASIC - used while in interpreter
  4546. Notes:    called by ROM BASIC
  4547.     BASIC.COM/BASICA.COM do not restore vector on termination
  4548. --------r-A9---------------------------------
  4549. INT A9 - IBM ROM BASIC - used while in interpreter
  4550. Notes:    called by ROM BASIC
  4551.     BASIC.COM/BASICA.COM do not restore vector on termination
  4552. --------r-AA---------------------------------
  4553. INT AA - IBM ROM BASIC - used while in interpreter
  4554. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4555.     BASIC.COM/BASICA.COM do not restore vector on termination
  4556. --------r-AB---------------------------------
  4557. INT AB - IBM ROM BASIC - used while in interpreter
  4558. Notes:    called by ROM BASIC
  4559.     BASIC.COM/BASICA.COM do not restore vector on termination
  4560. --------r-AC---------------------------------
  4561. INT AC - IBM ROM BASIC - used while in interpreter
  4562. Notes:    called by ROM BASIC
  4563.     BASIC.COM/BASICA.COM do not restore vector on termination
  4564. --------r-AD---------------------------------
  4565. INT AD - IBM ROM BASIC - used while in interpreter
  4566. Notes:    called by ROM BASIC
  4567.     BASIC.COM/BASICA.COM do not restore vector on termination
  4568. --------r-AE---------------------------------
  4569. INT AE - IBM ROM BASIC - used while in interpreter
  4570. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4571.     BASIC.COM/BASICA.COM do not restore vector on termination
  4572. --------r-AF---------------------------------
  4573. INT AF - IBM ROM BASIC - used while in interpreter
  4574. Notes:    called by ROM BASIC
  4575.     BASIC.COM/BASICA.COM do not restore vector on termination
  4576. --------r-B0---------------------------------
  4577. INT B0 - IBM ROM BASIC - used while in interpreter
  4578. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4579.     BASIC.COM/BASICA.COM do not restore vector on termination
  4580. --------r-B1---------------------------------
  4581. INT B1 - IBM ROM BASIC - used while in interpreter
  4582. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4583.     BASIC.COM/BASICA.COM do not restore vector on termination
  4584. --------r-B2---------------------------------
  4585. INT B2 - IBM ROM BASIC - used while in interpreter
  4586. Notes:    called by ROM BASIC
  4587.     BASIC.COM/BASICA.COM do not restore vector on termination
  4588. --------r-B3---------------------------------
  4589. INT B3 - IBM ROM BASIC - used while in interpreter
  4590. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4591.     BASIC.COM/BASICA.COM do not restore vector on termination
  4592. --------U-B370-------------------------------
  4593. INT B3 - ZIPKEY - GET VERSION
  4594.     AH = 70h
  4595. Return: AH = major version
  4596.     AL = minor version
  4597.     CL = number of states and territories in current database
  4598.     DH = year of current database - 1900
  4599.     DL = month of current database's file date
  4600. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  4601. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  4602.       interrupt handler's segment, and the byte at 7Bh contains the API
  4603.       version number (00h for v1.x, 01h for v2.0)
  4604. --------U-B371-------------------------------
  4605. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  4606.     AH = 71h
  4607.     BX = abbreviation, in either case (first letter in BL)
  4608. Return: CF set on error
  4609.         AL = FFh
  4610.     CF clear if successful
  4611.         AL = ZIPKEY state code
  4612. SeeAlso: AH=72h
  4613. --------U-B372-------------------------------
  4614. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  4615.     AH = 72h
  4616.     BL = ZIPKEY state code
  4617. Return: CF set on error
  4618.         AX destroyed
  4619.     CF clear if successful
  4620.         AX = abbreviation, in upper case
  4621. SeeAlso: AH=71h,AH=73h
  4622. --------U-B373-------------------------------
  4623. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  4624.     AH = 73h
  4625.     BL = ZIPKEY state code
  4626.     ES:DI -> buffer for name
  4627. Return: CF set on error
  4628.         AX destroyed
  4629.     CF clear if successful
  4630.         ES:DI points one byte beyond end of name
  4631. SeeAlso: AH=72h
  4632. --------U-B374-------------------------------
  4633. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  4634.     AH = 74h
  4635.     DX = zipcode region (0-999)
  4636.     CH = last two digits of zipcode (0-99)
  4637.     ES:DI -> buffer
  4638. Return: CF set on error
  4639.         AX destroyed
  4640.     CF clear if successful
  4641.         ES:DI points one byte beyond end of digit string
  4642. --------U-B375-------------------------------
  4643. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  4644.     AH = 75h
  4645.     DX = zipcode region (0-999)
  4646.     CH = last two digits of zipcode (0-99)
  4647. Return: CF set on error (zipcode not found)
  4648.         AL = suggested state code, FFh if none
  4649.     CF clear if successful
  4650.         AL = ZIPKEY state code
  4651.         BX = area code (v2.0+)
  4652. SeeAlso: AH=76h,AH=79h
  4653. --------U-B376-------------------------------
  4654. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  4655.     AH = 76h
  4656.     DX = zipcode region (0-999)
  4657.     CH = last two digits of zipcode (0-99)
  4658.     ES:DI -> buffer for name
  4659. Return: CF set on error
  4660.         AL = suggested state code, FFh if none
  4661.         ES:DI buffer filled with suggested city name
  4662.     CF clear if successful
  4663.         AL = ZIPKEY state code
  4664.         BX = area code (v2.0+)
  4665.         ES:DI points one byte beyond end of name
  4666. SeeAlso: AH=75h,AH=78h,AH=7Eh
  4667. --------U-B377-------------------------------
  4668. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  4669.     AH = 77h
  4670.     DX = zipcode region (0-999)
  4671.     CH = last two digits of zipcode (0-99)
  4672.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  4673. Return: CF set on error
  4674.         AX destroyed
  4675.     CF clear if successful
  4676.         zipcode specification as defined by the BX keystroke is placed in
  4677.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  4678.           by pressing the key specified by BX
  4679. --------U-B378-------------------------------
  4680. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  4681.     AH = 78h
  4682.     BL = ZIPKEY state code
  4683.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  4684. Return: BH = number of matching entries (set to 51 if more than 50)
  4685.     DX = zipcode region of first match (0-999)
  4686.     CL = last two digits of first zipcode in the range (0-99)
  4687.     CH = last two digits of last zipcode in the range (0-99)
  4688.     AX destroyed
  4689. SeeAlso: AH=79h,AH=7Ah
  4690. --------U-B379-------------------------------
  4691. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  4692.     AH = 79h
  4693.     BL = ZIPKEY state code of first state to search
  4694.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  4695. Return: AL = ZIPKEY state code of first matching state
  4696.     BH = number of matching entries (set to 51 if more than 50)
  4697.     DX = zipcode region of first match (0-999)
  4698.     CL = last two digits of first zipcode in first range (0-99)
  4699.     CH = last two digits of last zipcode in first range (0-99)
  4700. Note:    to find all matching cities, repeat search with BL set to one more than
  4701.       the returned AL
  4702. SeeAlso: AH=78h,AH=7Ah
  4703. --------U-B37A-------------------------------
  4704. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  4705.     AH = 7Ah
  4706.     BL = case number (0 to one less than value returned in BH by lookup)
  4707. Return: AL = ZIPKEY state code
  4708.     DX = zipcode region (0-999)
  4709.     CL = last two digits of first zipcode in the range (0-99)
  4710.     CH = last two digits of last zipcode in the range (0-99)
  4711. SeeAlso: AH=78h,AH=79h
  4712. --------U-B37B-------------------------------
  4713. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  4714.     AH = 7Bh
  4715. Return: BL = maximum number of characters for a city name
  4716.     BH = ZIPKEY state code for last city-name search, or FFh if none
  4717.     CX:DX = internal code identifying last city search
  4718.     AX destroyed
  4719. SeeAlso: AH=7Ch
  4720. --------U-B37C-------------------------------
  4721. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  4722.     AH = 7Ch
  4723.     BL = maximum number of characters for a city name
  4724.     BH = ZIPKEY state code for last city-name search, or FFh if none
  4725.     CX:DX = internal code returned by AH=7Bh
  4726. Return: CF set on error
  4727.     CF clear if successful
  4728.     AX destroyed
  4729. SeeAlso: AH=7Bh
  4730. --------U-B37D-------------------------------
  4731. INT B3 - ZIPKEY - REQUEST POP UP
  4732.     AH = 7Dh
  4733.     BL = index number to simulate pressing a hotkey
  4734.         FFh for immediate popup with no playback on return
  4735. Return: CF set on error
  4736.         AL = error code
  4737.         FDh already busy with another request
  4738.         FEh illegal function
  4739.     CF clear if successful
  4740.         AX destroyed
  4741.         window popped up and was closed by the user
  4742. SeeAlso: AH=70h
  4743. --------U-B37E-------------------------------
  4744. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  4745.     AH = 7Eh
  4746.     DX = zipcode region (0-999)
  4747.     ES:DI -> buffer for name
  4748. Return: CF set on error
  4749.         AL = FFh region does not exist
  4750.     CF clear if successful
  4751.         AL = ZIPKEY state code
  4752.         ES:DI points one byte beyond end of name
  4753. SeeAlso: AH=76h
  4754. --------U-B37F-------------------------------
  4755. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  4756.     AH = 7Fh
  4757.     BL = function
  4758.         00h turn off hotkeys
  4759.         01h turn on hotkeys
  4760.         02h return hotkey status
  4761.         03h toggle hotkey status
  4762. Return: AL = hotkey status
  4763.         00h off
  4764.         01h on
  4765. --------U-B380-------------------------------
  4766. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  4767.     AH = 80h
  4768.     BX = telephone area code (decimal)
  4769. Return: CF clear if successful
  4770.         AL = ZIPKEY state code
  4771.         DX = first ZIP region for state (03E8h if Canada)
  4772.         CX = number of ZIP regions in state
  4773.     CF set on error
  4774.         AL = FFh
  4775.         DX = 03E9h
  4776. --------r-B4---------------------------------
  4777. INT B4 - IBM ROM BASIC - used while in interpreter
  4778. Notes:    called by ROM BASIC
  4779.     BASIC.COM/BASICA.COM do not restore vector on termination
  4780. --------r-B4---------------------------------
  4781. INT B4 - StackMan - REQUEST NEW STACK
  4782. Return: SS:SP -> new stack
  4783. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  4784.       which functions as a replacement for the DOS STACK= command as well
  4785.       as permitting multiple TSRs to share a pool of stack space
  4786. Note:    the installation check consists of testing for the string "STACKXXX" at
  4787.       offset 0Ah from the interrupt handler
  4788. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  4789. Index:    installation check;STACKMAN
  4790. --------r-B5---------------------------------
  4791. INT B5 - IBM ROM BASIC - used while in interpreter
  4792. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4793.     BASIC.COM/BASICA.COM do not restore vector on termination
  4794. SeeAlso: INT 80"BASIC",INT B4"BASIC",INT B6"BASIC"
  4795. --------r-B5---------------------------------
  4796. INT B5 - StackMan - RESTORE ORIGINAL STACK
  4797.     SS:SP -> stack returned by INT B4
  4798. Return: SS:SP restored to value before INT B4
  4799. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  4800. --------m-B5---------------------------------
  4801. INT B5 U - Netroom NETSWAP4 - ???
  4802.     ???
  4803. Return: ???
  4804. SeeAlso: INT 31/AH=57h
  4805. --------r-B6---------------------------------
  4806. INT B6 - IBM ROM BASIC - used while in interpreter
  4807. Notes:    called by ROM BASIC
  4808.     BASIC.COM/BASICA.COM do not restore vector on termination
  4809. SeeAlso: INT 80"BASIC",INT B5"BASIC",INT B7"BASIC"
  4810. --------y-B6---------------------------------
  4811. INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
  4812. Program: TBFence is a security program by ESaSS B.V. which transparently
  4813.       encrypts floppies and optionally allows only encrypted diskettes to
  4814.       be accessed
  4815. Note:    the low word of this vector (0000h:02D8h) contains the segment of the
  4816.       TBFence INT 13h code, which starts with the signature word E487h;
  4817.       this forms the installation check
  4818.     the highest byte of this vector contains the start of a FAR JMP
  4819.       instruction to ???
  4820. SeeAlso: INT B7"TBFENCE"
  4821. Index:    installation check;TBFence
  4822. --------r-B7---------------------------------
  4823. INT B7 - IBM ROM BASIC - used while in interpreter
  4824. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4825.     BASIC.COM/BASICA.COM do not restore vector on termination
  4826. SeeAlso: INT 80"BASIC",INT B6"BASIC",INT B8"BASIC"
  4827. --------y-B7---------------------------------
  4828. INT B7 - TBFENCE - ???
  4829. SeeAlso: INT B6"TBFENCE"
  4830. --------r-B8---------------------------------
  4831. INT B8 - IBM ROM BASIC - used while in interpreter
  4832. Notes:    called by ROM BASIC
  4833.     BASIC.COM/BASICA.COM do not restore vector on termination
  4834. SeeAlso: INT 80"BASIC",INT B7"BASIC",INT B9"BASIC"
  4835. --------r-B9---------------------------------
  4836. INT B9 - IBM ROM BASIC - used while in interpreter
  4837. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4838.     BASIC.COM/BASICA.COM do not restore vector on termination
  4839. --------r-BA---------------------------------
  4840. INT BA - IBM ROM BASIC - used while in interpreter
  4841. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4842.     BASIC.COM/BASICA.COM do not restore vector on termination
  4843. --------r-BB---------------------------------
  4844. INT BB - IBM ROM BASIC - used while in interpreter
  4845. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4846.     BASIC.COM/BASICA.COM do not restore vector on termination
  4847. --------r-BC---------------------------------
  4848. INT BC - IBM ROM BASIC - used while in interpreter
  4849. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4850.     BASIC.COM/BASICA.COM do not restore vector on termination
  4851. --------r-BD---------------------------------
  4852. INT BD - IBM ROM BASIC - used while in interpreter
  4853. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4854.     BASIC.COM/BASICA.COM do not restore vector on termination
  4855. --------r-BE---------------------------------
  4856. INT BE - IBM ROM BASIC - used while in interpreter
  4857. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4858.     BASIC.COM/BASICA.COM do not restore vector on termination
  4859. SeeAlso: INT 80"BASIC",INT BD"BASIC",INT BF"BASIC"
  4860. --------Q-BE---------------------------------
  4861. INT BE - DESQview/X - ???
  4862. Note:    points at an IRET
  4863. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  4864. --------r-BF---------------------------------
  4865. INT BF - IBM ROM BASIC - used while in interpreter
  4866. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4867.     BASIC.COM/BASICA.COM do not restore vector on termination
  4868. SeeAlso: INT 80"BASIC",INT BE"BASIC",INT C0"BASIC"
  4869. --------r-C0---------------------------------
  4870. INT C0 - IBM ROM BASIC - used while in interpreter
  4871. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4872.     BASIC.COM/BASICA.COM do not restore vector on termination
  4873. SeeAlso: INT 80"BASIC",INT BF"BASIC",INT C1"BASIC"
  4874. --------d-C0---------------------------------
  4875. INT C0 - AMI BIOS - DRIVE 0 DATA
  4876. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  4877.       of the hard disk parameter table
  4878. SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C1"AMI",INT C2"AMI"
  4879. SeeAlso: INT C3"AMI",INT C4"AMI"
  4880. --------r-C1---------------------------------
  4881. INT C1 - IBM ROM BASIC - used while in interpreter
  4882. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4883.     BASIC.COM/BASICA.COM do not restore vector on termination
  4884. SeeAlso: INT 80"BASIC",INT C0"BASIC",INT C2"BASIC"
  4885. --------d-C1---------------------------------
  4886. INT C1 - AMI BIOS - DRIVE 0 DATA
  4887. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  4888.       of the hard disk parameter table
  4889. SeeAlso: INT 41"HARD DISK 0",INT 60"Adaptec",INT C0"AMI",INT C2"AMI"
  4890. SeeAlso: INT C3"AMI"
  4891. --------r-C2---------------------------------
  4892. INT C2 - IBM ROM BASIC - used while in interpreter
  4893. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4894.     BASIC.COM/BASICA.COM do not restore vector on termination
  4895. SeeAlso: INT 80"BASIC",INT C1"BASIC",INT C3"BASIC"
  4896. --------d-C2---------------------------------
  4897. INT C2 - AMI BIOS - DRIVE 0 DATA
  4898. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  4899.       of the hard disk parameter table
  4900. SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI"
  4901. --------r-C3---------------------------------
  4902. INT C3 - IBM ROM BASIC - used while in interpreter
  4903. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4904.     BASIC.COM/BASICA.COM do not restore vector on termination
  4905. SeeAlso: INT 80"BASIC",INT C2"BASIC",INT C4"BASIC"
  4906. --------d-C3---------------------------------
  4907. INT C3 - AMI BIOS - DRIVE 0 DATA
  4908. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  4909.       of the hard disk parameter table
  4910. SeeAlso: INT 41"DISK 0",INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI"
  4911. --------r-C4---------------------------------
  4912. INT C4 - IBM ROM BASIC - used while in interpreter
  4913. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4914.     BASIC.COM/BASICA.COM do not restore vector on termination
  4915. SeeAlso: INT 80"BASIC",INT C3"BASIC",INT C5"BASIC"
  4916. --------d-C4---------------------------------
  4917. INT C4 - AMI BIOS - DRIVE 1 DATA
  4918. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  4919.       of the second hard disk's parameter table
  4920. SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C5"AMI"
  4921. SeeAlso: INT C6"AMI",INT C7"AMI"
  4922. --------r-C5---------------------------------
  4923. INT C5 - IBM ROM BASIC - used while in interpreter
  4924. Notes:    called by ROM BASIC
  4925.     BASIC.COM/BASICA.COM do not restore vector on termination
  4926. SeeAlso: INT 80"BASIC",INT C4"BASIC",INT C6"BASIC"
  4927. --------d-C5---------------------------------
  4928. INT C5 - AMI BIOS - DRIVE 1 DATA
  4929. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  4930.       of the second hard disk's parameter table
  4931. SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI"
  4932. SeeAlso: INT C6"AMI",INT C7"AMI"
  4933. --------r-C6---------------------------------
  4934. INT C6 - IBM ROM BASIC - used while in interpreter
  4935. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4936.     BASIC.COM/BASICA.COM do not restore vector on termination
  4937. SeeAlso: INT 80"BASIC",INT C5"BASIC",INT C7"BASIC"
  4938. --------r-C6---------------------------------
  4939. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  4940. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4941.       the older interrupts
  4942. SeeAlso: INT 86"APL"
  4943. --------d-C6---------------------------------
  4944. INT C6 - AMI BIOS - DRIVE 1 DATA
  4945. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  4946.       of the second hard disk's parameter table
  4947. SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI"
  4948. SeeAlso: INT C5"AMI",INT C7"AMI"
  4949. --------r-C7---------------------------------
  4950. INT C7 - IBM ROM BASIC - used while in interpreter
  4951. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4952.     BASIC.COM/BASICA.COM do not restore vector on termination
  4953. SeeAlso: INT 80"BASIC",INT C6"BASIC",INT C8"BASIC"
  4954. --------r-C7---------------------------------
  4955. INT C7 - APL*PLUS/PC - ???
  4956. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4957.       the older interrupts
  4958. SeeAlso: INT 87"APL"
  4959. --------d-C7---------------------------------
  4960. INT C7 - AMI BIOS - DRIVE 1 DATA
  4961. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  4962.       of the second hard disk's parameter table
  4963. SeeAlso: INT 46"HARD DISK 1",INT 64"Adaptec",INT C0"AMI",INT C4"AMI"
  4964. SeeAlso: INT C5"AMI",INT C6"AMI"
  4965. --------r-C8---------------------------------
  4966. INT C8 - IBM ROM BASIC - used while in interpreter
  4967. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4968.     BASIC.COM/BASICA.COM do not restore vector on termination
  4969. SeeAlso: INT 80"BASIC",INT C7"BASIC",INT C9"BASIC"
  4970. --------r-C8---------------------------------
  4971. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  4972. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4973.       the older interrupts
  4974. SeeAlso: INT 88/AL=00h"APL",INT 88/AL=08h"APL"
  4975. --------r-C9---------------------------------
  4976. INT C9 - IBM ROM BASIC - used while in interpreter
  4977. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4978.     BASIC.COM/BASICA.COM do not restore vector on termination
  4979. SeeAlso: INT 80"BASIC",INT C8"BASIC",INT CA"BASIC"
  4980. --------r-C9---------------------------------
  4981. INT C9 - APL*PLUS/PC - ???
  4982. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4983.       the older interrupts
  4984. SeeAlso: INT 89"APL"
  4985. --------r-CA---------------------------------
  4986. INT CA - IBM ROM BASIC - used while in interpreter
  4987. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4988.     BASIC.COM/BASICA.COM do not restore vector on termination
  4989. SeeAlso: INT 80"BASIC",INT C9"BASIC",INT CB"BASIC"
  4990. --------r-CA---------------------------------
  4991. INT CA - APL*PLUS/PC - PRINT SCREEN
  4992. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  4993.       the older interrupts
  4994. SeeAlso: INT 8A"APL"
  4995. --------r-CB---------------------------------
  4996. INT CB - IBM ROM BASIC - used while in interpreter
  4997. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4998.     BASIC.COM/BASICA.COM do not restore vector on termination
  4999. SeeAlso: INT 80"BASIC",INT CA"BASIC",INT CC"BASIC"
  5000. --------r-CB---------------------------------
  5001. INT CB - APL*PLUS/PC - BEEP
  5002. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5003.       the older interrupts
  5004.     same as printing a ^G via INT 21/AH=02h
  5005. SeeAlso: INT 8B"APL"
  5006. --------r-CC---------------------------------
  5007. INT CC - IBM ROM BASIC - used while in interpreter
  5008. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5009.     BASIC.COM/BASICA.COM do not restore vector on termination
  5010. SeeAlso: INT 80"BASIC",INT CB"BASIC",INT CD"BASIC"
  5011. --------r-CC---------------------------------
  5012. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  5013.     AX = flag
  5014.         0000h do not save display attributes
  5015.         0001h save attributes
  5016. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  5017.       the older interrupts
  5018. SeeAlso: INT 8C"APL"
  5019. --------r-CD---------------------------------
  5020. INT CD - IBM ROM BASIC - used while in interpreter
  5021. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5022.     BASIC.COM/BASICA.COM do not restore vector on termination
  5023. SeeAlso: INT 80"BASIC",INT CC"BASIC",INT CE"BASIC"
  5024. --------r-CD---------------------------------
  5025. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5026. --------r-CE---------------------------------
  5027. INT CE - IBM ROM BASIC - used while in interpreter
  5028. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5029.     BASIC.COM/BASICA.COM do not restore vector on termination
  5030. SeeAlso: INT 80"BASIC",INT CD"BASIC",INT CF"BASIC"
  5031. --------r-CE---------------------------------
  5032. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5033. --------r-CF---------------------------------
  5034. INT CF - IBM ROM BASIC - used while in interpreter
  5035. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5036.     BASIC.COM/BASICA.COM do not restore vector on termination
  5037. SeeAlso: INT 80"BASIC",INT CE"BASIC",INT D0"BASIC"
  5038. --------r-CF---------------------------------
  5039. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  5040. SeeAlso: INT E0"APL"
  5041. --------r-D0---------------------------------
  5042. INT D0 - IBM ROM BASIC - used while in interpreter
  5043. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5044.     BASIC.COM/BASICA.COM do not restore vector on termination
  5045. SeeAlso: INT 80"BASIC",INT CF"BASIC",INT D1"BASIC"
  5046. --------r-D0---------------------------------
  5047. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5048. --------U-D0---------------------------------
  5049. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  5050. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  5051.       James" Blaszczak
  5052. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  5053. Index:    installation check;NJFRERAM
  5054. --------r-D1---------------------------------
  5055. INT D1 - IBM ROM BASIC - used while in interpreter
  5056. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5057.     BASIC.COM/BASICA.COM do not restore vector on termination
  5058. SeeAlso: INT 80"BASIC",INT D0"BASIC",INT D2"BASIC"
  5059. --------r-D1---------------------------------
  5060. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5061. --------r-D2---------------------------------
  5062. INT D2 - IBM ROM BASIC - used while in interpreter
  5063. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5064.     BASIC.COM/BASICA.COM do not restore vector on termination
  5065. SeeAlso: INT 80"BASIC",INT D1"BASIC",INT D3"BASIC"
  5066. --------r-D2---------------------------------
  5067. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5068. --------r-D3---------------------------------
  5069. INT D3 - IBM ROM BASIC - used while in interpreter
  5070. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5071.     BASIC.COM/BASICA.COM do not restore vector on termination
  5072. SeeAlso: INT 80"BASIC",INT D2"BASIC",INT D4"BASIC"
  5073. --------r-D3---------------------------------
  5074. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5075. --------v-D3---------------------------------
  5076. INT D3 - VIRUS - "Antiexe" - RELOCATED INT 13
  5077. SeeAlso: INT 9F"VIRUS"
  5078. --------r-D4---------------------------------
  5079. INT D4 - IBM ROM BASIC - used while in interpreter
  5080. Notes:    called by ROM BASIC
  5081.     BASIC.COM/BASICA.COM do not restore vector on termination
  5082. SeeAlso: INT 80"BASIC",INT D3"BASIC",INT D5"BASIC"
  5083. --------r-D4---------------------------------
  5084. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5085. --------O-D400-------------------------------
  5086. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  5087.     AH = 00h and 01h
  5088. Return: nothing
  5089. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  5090.       and enters an endless loop
  5091. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5092.       system by The Software Link, Inc.
  5093. --------O-D402-------------------------------
  5094. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  5095.     AH = 02h
  5096. Return: AX = 0000h
  5097.     ES:BX -> System Control Block in V86 mode (see #3636)
  5098.     ES:EBX -> System Control Block in native mode (see #3636)
  5099. Note:    superseded by AH=26h
  5100. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  5101.  
  5102. Format of PC-MOS/386 System Control Block:
  5103. Offset    Size    Description    (Table 3636)
  5104.  00h    WORD    pointer to first TCB in chain
  5105.  02h 17 BYTEs    reserved
  5106.  13h    WORD    pointer to current task's TCB
  5107.  15h    WORD    pointer to TCB of visible (console) task
  5108. --------O-D403-------------------------------
  5109. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  5110.     AH = 03h
  5111.     AL = subfunction (00h get, 01h set)
  5112.     DS:(E)DX -> pathname
  5113.     ES:(E)BX -> 10-byte buffer for directory information (see #3637)
  5114. Return: CF clear if successful
  5115.         AL = permitted access level for file (00h-03h)
  5116.         ES:(E)BX -> modified buffer (AL=01h on entry)
  5117.     CF set on error
  5118.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5119. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  5120.     the file class cannot be changed for files because it affects the
  5121.       encryption method, but directories can have their classes changed
  5122.  
  5123. Format of PC-MOS/386 directory information:
  5124. Offset    Size    Description    (Table 3637)
  5125.  00h    BYTE    reserved (0)
  5126.  01h    BYTE    file class ('A'-'Z' or 00h)
  5127.  02h    DWORD    user ID of file creator
  5128.  06h    WORD    file creation time (see #1317 at INT 21/AX=5700h)
  5129.  08h    WORD    file creation date (see #1318 at INT 21/AX=5700h)
  5130. --------O-D404-------------------------------
  5131. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  5132.     AH = 04h
  5133.     BX = task ID or FFFFh for calling task
  5134. Return: CF clear if successful
  5135.         ES = segment of Task Control Block (TCB) (see #3638)
  5136.     CF set on error
  5137.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5138. Note:    superseded by AH=27h
  5139. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  5140.  
  5141. Format of PC-MOS/386 Task Control Block:
  5142. Offset    Size    Description    (Table 3638)
  5143.  00h    BYTE    signature byte "H" if allocated from system memory pool
  5144.  01h    BYTE    header block ID, "T" = TCB
  5145.  02h    WORD    length of block in paragraphs
  5146.  04h    WORD    segment address of next header block (0000h if last)
  5147.  06h    WORD    segment address of previous header block (0000h if first)
  5148.  08h    WORD    pointer to next TCB
  5149.  0Ah    WORD    pointer to previous TCB
  5150.  0Ch    WORD    pointer to associated TCB (if applicable)
  5151.  0Eh    WORD    reserved
  5152. ---TCB---
  5153.  10h    WORD    TCB task ID
  5154.  12h    WORD    native context save area
  5155.  14h    WORD    start address of task
  5156.  16h    WORD    end address of task
  5157.  18h    BYTE    task priority
  5158.  19h    BYTE    task time slice
  5159.  1Ah    BYTE    "TCBWAIT" run status of task
  5160.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  5161.  1Ch    DWORD    address of polling routine
  5162.  20h    BYTE    error code from last function call
  5163.  21h 11 BYTEs    name of currently executing task
  5164.  2Ch  4 BYTEs    ???
  5165.  30h    BYTE    keyboard disabled if bit 1 set
  5166.  31h    BYTE    current shift state and toggles
  5167.  32h  2 BYTEs    ???
  5168.  34h    BYTE    current video mode
  5169.  35h    BYTE    current video page
  5170.  36h    BYTE    number of text columns per screen
  5171.  37h    BYTE    number of text rows per screen
  5172.  38h    WORD    length of video buffer
  5173.  3Ah    WORD    video page length
  5174.  3Ch    WORD    apge start address in video RAM
  5175.  3Eh  4 WORDs    current cursor positions for four screen pages
  5176.  46h  8 BYTEs    ???
  5177.  4Eh    WORD    current cursor type
  5178.  50h    BYTE    current palette setting
  5179.  51h    BYTE    original video mode
  5180.  52h    BYTE    start CRT row (00h or 01h)
  5181.  53h    BYTE    video RAM in task active
  5182.  54h    WORD    handle of video save area
  5183.  56h    WORD    page count of video save area
  5184.  58h    WORD    segment address of video save area
  5185.  5Ah    WORD    poitner to first Task File Block (see #3641)
  5186.  5Ch    WORD    pointer to first Current Directory Block (see #3644)
  5187.  5Eh    WORD    pointer to active Current Directory Block (see #3644)
  5188.  60h    BYTE    number of drives
  5189.  61h    BYTE    current drive (0=A:, etc.)
  5190.  62h    DWORD    disk transfer address
  5191.  66h  4 BYTEs    ???
  5192.  6Ah    BYTE    verify flag (nonzero = on)
  5193.  6Bh    BYTE    break flag (nonzero = on)
  5194.  6Ch    WORD    share/lock retry count
  5195.  6Eh    WORD    ticks between share/lock retries
  5196.  70h    BYTE    remote printer flags (see #3639)
  5197.  71h    BYTE    ETX/ACK delay count
  5198.  72h    WORD    spooler segment address
  5199.  74h  2 BYTEs    ???
  5200.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see #3640)
  5201.  79h  2 BYTEs    ???
  5202.  7Bh    DWORD    offset of username in TCB
  5203.  7Fh    BYTE    current output class
  5204.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  5205.  87h 122 BYTEs    ???
  5206. 101h    BYTE    TCB sleep downcounter value
  5207. 102h 20 BYTEs    ???
  5208. 116h    BYTE    last scan code
  5209.     ...
  5210. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  5211. 5D4h    WORD    offset of logical screen
  5212. 5D6h    WORD    segment of logical screen
  5213. 5D8h    WORD    cursor offset within page
  5214. 5DAh    BYTE    screen columns
  5215. 5DBh    WORD    async port number (0000h = none)
  5216. 5DDh    DWORD    physical baudrate
  5217. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  5218.     ...
  5219. 7A6h    DWORD    far pointer to unregister calling chain
  5220.  
  5221. Bitfields for PC-MOS/386 remote printer flags:
  5222. Bit(s)    Description    (Table 3639)
  5223.  0    LPT1 to terminal
  5224.  1    LPT2 to terminal
  5225.  2    LPT3 to terminal
  5226.  3    escape to printer pending
  5227.  4    use XON/XOFF
  5228.  5    use ETX/ACK
  5229.  6    waiting for ACK or XON
  5230.  7    transparent printing on
  5231.  
  5232. (Table 3640)
  5233. Values for PC-MOS/386 remote printer redirection:
  5234.  00h    not redirected
  5235.  01h    redirected to COM1
  5236.  ...
  5237.  18h    redirected to COM24
  5238.  51h    redirected to LPT1
  5239.  52h    redirected to LPT2
  5240.  53h    redirected to LPT3
  5241.  
  5242. Format of PC-MOS/386 Task File Block:
  5243. Offset    Size    Description    (Table 3641)
  5244.  00h    BYTE    signature byte "H" if allocated from system memory pool
  5245.  01h    BYTE    header block ID, "F" = task file block
  5246.  02h    WORD    length of block in paragraphs
  5247.  04h    WORD    segment address of next header block (0000h if last)
  5248.  06h    WORD    segment address of previous header block (0000h if first)
  5249.  08h    WORD    pointer to next TCB
  5250.  0Ah    WORD    pointer to previous TCB
  5251.  0Ch    WORD    pointer to associated TCB (if applicable)
  5252.  0Eh    WORD    reserved
  5253. ---TFB---
  5254.  10h    WORD    segment address of next TFB
  5255.  12h    WORD    segment address of previous TFB
  5256.  14h    WORD    segment address of TFB's Global File Block (see #3643)
  5257.  16h    WORD    segment address of owner's PSP
  5258.  18h    WORD    file handle
  5259.  1Ah  3 BYTEs    ???
  5260.  1Dh    DWORD    file position
  5261.  21h  4 BYTEs    ???
  5262.  25h    BYTE    IOCTL flags (see #3642)
  5263.  26h  2 BYTEs    ???
  5264.  
  5265. Bitfields for PC-MOS/386 IOCTL flags:
  5266. Bit(s)    Description    (Table 3642)
  5267.  0    stdin
  5268.  1    stdout
  5269.  2    null device
  5270.  3    clock device
  5271.  4    reserved
  5272.  5    ASCII mode instead of binary
  5273.  6    EOF encountered on input
  5274.  7    device rather than file
  5275.  
  5276. Format of PC-MOS/386 Global File Block:
  5277. Offset    Size    Description    (Table 3643)
  5278.  00h    BYTE    signature byte "H" if allocated from system memory pool
  5279.  01h    BYTE    header block ID, "G" = global file block
  5280.  02h    WORD    length of block in paragraphs
  5281.  04h    WORD    segment address of next header block (0000h if last)
  5282.  06h    WORD    segment address of previous header block (0000h if first)
  5283.  08h    WORD    pointer to next TCB
  5284.  0Ah    WORD    pointer to previous TCB
  5285.  0Ch    WORD    pointer to associated TCB (if applicable)
  5286.  0Eh    WORD    reserved
  5287. ---GFB---
  5288.  10h 10 BYTEs    ???
  5289.  1Ah    WORD    file attribute
  5290.  1Ch    BYTE    ???
  5291.  1Dh    DWORD    address of device driver
  5292.  21h    WORD    first cluster
  5293.  23h    WORD    time of last modification
  5294.  25h    WORD    date of last modification
  5295.  27h    DWORD    size of file in bytes
  5296.  2Bh 11 BYTEs    ???
  5297.  36h 11 BYTEs    device name or FCB-format filename
  5298.  41h    WORD    segment address of TFB list
  5299.  43h    WORD    segment address of first RLB (see #3646) (0000h = none)
  5300.  45h    BYTE    flag: nonzero if GFB refers to character device
  5301.  46h    WORD    address of Block Device Block (see #3645)
  5302.  48h    WORD    sector of file's directory entry (see #1007)
  5303.  4Ah    WORD    high word of file's directory entry
  5304.  4Ch    WORD    ofsset of directory entry within sector
  5305.  
  5306. Format of PC-MOS/386 Current Directory Block:
  5307. Offset    Size    Description    (Table 3644)
  5308.  00h    BYTE    signature byte "H" if allocated from system memory pool
  5309.  01h    BYTE    header block ID, "C" = current directory block
  5310.  02h    WORD    length of block in paragraphs
  5311.  04h    WORD    segment address of next header block (0000h if last)
  5312.  06h    WORD    segment address of previous header block (0000h if first)
  5313.  08h    WORD    pointer to next TCB
  5314.  0Ah    WORD    pointer to previous TCB
  5315.  0Ch    WORD    pointer to associated TCB (if applicable)
  5316.  0Eh    WORD    reserved
  5317. ---CDB---
  5318.  10h    BYTE    drive number
  5319.  11h    BYTE    ???
  5320.  12h 64 BYTEs    directory name
  5321.  52h    WORD    first directory cluster (0000h = root)
  5322.  
  5323. Format of PC-MOS/386 Block Device Block:
  5324. Offset    Size    Description    (Table 3645)
  5325.  00h    BYTE    signature byte "H" if allocated from system memory pool
  5326.  01h    BYTE    header block ID, "B" = block device block
  5327.  02h    WORD    length of block in paragraphs
  5328.  04h    WORD    segment address of next header block (0000h if last)
  5329.  06h    WORD    segment address of previous header block (0000h if first)
  5330.  08h    WORD    pointer to next TCB
  5331.  0Ah    WORD    pointer to previous TCB
  5332.  0Ch    WORD    pointer to associated TCB (if applicable)
  5333.  0Eh    WORD    reserved
  5334. ---BDB---
  5335.  10h    BYTE    logical drive
  5336.  11h    BYTE    unit passed to driver
  5337.  12h    WORD    sector size
  5338.  14h    BYTE    cluster mask
  5339.  15h    BYTE    cluster shift count
  5340.  16h    WORD    starting sector of first FAT
  5341.  18h    BYTE    number of FATs
  5342.  19h    WORD    number of root directories
  5343.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  5344.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  5345.  1Fh    BYTE    number of sectors in FAT
  5346.  20h    WORD    beginning root directory sector number
  5347.  22h    DWORD    device driver address
  5348.  26h    BYTE    media descriptor byte
  5349.  27h  5 BYTEs    ???
  5350.  2Ch    BYTE    flag: volume > 32MB
  5351.  2Dh    BYTE    ???
  5352.  2Eh    BYTE    number of sectors per cluster
  5353.  2Fh    WORD    number of clusters on device
  5354.  31h    WORD    number of free clusters (FFFFh = unknown)
  5355.  33h    WORD    root directory cluster number
  5356.  35h    WORD    pointer to alias/subst string
  5357.  37h    WORD    TCB segment address of owner (0000h = none)
  5358.  
  5359. Format of PC-MOS/386 Record Lock Block:
  5360. Offset    Size    Description    (Table 3646)
  5361.  00h    BYTE    signature byte "H" if allocated from system memory pool
  5362.  01h    BYTE    header block ID, "R" = record lock block
  5363.  02h    WORD    length of block in paragraphs
  5364.  04h    WORD    segment address of next header block (0000h if last)
  5365.  06h    WORD    segment address of previous header block (0000h if first)
  5366.  08h    WORD    pointer to next TCB
  5367.  0Ah    WORD    pointer to previous TCB
  5368.  0Ch    WORD    pointer to associated TCB (if applicable)
  5369.  0Eh    WORD    reserved
  5370. ---RLB---
  5371.  10h    WORD    segment address of owner's PSP
  5372.  12h    WORD    segment address of Global File Block (see #3643)
  5373.  14h    WORD    segment address of owner's Task File Block (see #3641)
  5374.  16h    DWORD    file offset of locked region start
  5375.  1Ah    DWORD    length of locked region
  5376.  1Eh    WORD    owner's handle for file
  5377. --------O-D407-------------------------------
  5378. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  5379.     AH = 07h
  5380.     AL = events to monitor (see #3647)
  5381.     BX = number of timer ticks until timeout if AL bit 1 set
  5382.     CX = bitmap of IRQs to monitor if AL bit 2 set
  5383.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  5384.     DX = port to monitor if AL bit 3 set
  5385. Return: CF clear if successful
  5386.         AL = type of event which woke up task (see #3647)
  5387.         CX = IRQ (if any) which awakened task
  5388.         DX = port (if any) which awakened task
  5389.     CF set on error
  5390.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5391. Note:    a device driver may make this call with AL=00h, which indicates that
  5392.       the driver is responsible for setting and clearing the TCBWAIT field
  5393.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  5394.       reawaken it, set bit 1 (leaving other bits unchanged)
  5395. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  5396.  
  5397. Bitfields for PC-MOS/386 events to monitor:
  5398. Bit(s)    Description    (Table 3647)
  5399.  0    keystroke
  5400.  1    timeout
  5401.  2    IRQ
  5402.  3    port access
  5403.  7    return status of user poll routine (other ignored if set)
  5404. --------O-D410-------------------------------
  5405. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  5406.     AH = 10h
  5407.     AL = direction (00h return to V86 mode, 01h enter native mode)
  5408.     CX = length in bytes of Native Context Area ( >=1024 )
  5409.     DX = segment of Native Context Area
  5410. Return: CF clear if successful
  5411.         running in desired mode at instruction following INT D4 call
  5412.         all segment registers converted to appropriate selectors/segments
  5413.     CF set on error
  5414.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5415. Note:    MS-DOS calls are available in protected mode
  5416. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  5417. --------O-D411-------------------------------
  5418. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  5419.     AH = 11h
  5420.     EBX = block length in bytes
  5421. Return: CF clear if successful
  5422.         EBX = number of bytes actually allocated
  5423.         ES = selector for allocated block
  5424.     CF set on error
  5425.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5426. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5427.       system by The Software Link, Inc.
  5428. Note:    the memory must be released before the program terminates
  5429. SeeAlso: AH=10h,AH=12h,INT 38
  5430. --------O-D412-------------------------------
  5431. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  5432.     AH = 12h
  5433.     ES = selector for block to free
  5434. Return: CF clear if successful
  5435.     CF set on error
  5436.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5437. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  5438. --------O-D413-------------------------------
  5439. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  5440.     AH = 13h
  5441.     AL = type of alias selector (00h data, 01h stack, 02h code)
  5442.     BX = selector
  5443. Return: CF clear if successful
  5444.         AX = new selector or 0000h if BX selector not found
  5445.     CF set on error
  5446.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5447. SeeAlso: AH=11h,AH=12h
  5448. --------O-D416-------------------------------
  5449. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  5450.     AH = 16h
  5451.     AL = function (00h clear, 01h set reservation)
  5452.     CX = IRQ number
  5453. Return: AX = status
  5454.         (0000h successful, 0001h currently reserved by another task)
  5455. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  5456. --------O-D419-------------------------------
  5457. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  5458.     AH = 19h
  5459. Return: BX = caller's task ID
  5460. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5461.       system by The Software Link, Inc.
  5462. SeeAlso: AH=1Dh,AH=1Eh
  5463. --------O-D41A-------------------------------
  5464. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  5465.     AH = 1Ah
  5466.     AL = subfunction (00h read, 01h set, 02h get and set)
  5467.     BX = task ID (FFFFh for current task)
  5468.     CL = new priority value
  5469. Return: CF clear if successful
  5470.         CL = current priority value
  5471.     CF set on error
  5472.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5473. SeeAlso: AH=1Bh,AH=1Ch
  5474. --------O-D41B-------------------------------
  5475. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  5476.     AH = 1Bh
  5477.     AL = subfunction (00h read, 01h set, 02h get and set)
  5478.     BX = task ID (FFFFh for current task) (see AH=19h)
  5479.     CL = new time slice value
  5480. Return: CF clear if successful
  5481.         CL = current time slice value
  5482.     CF set on error
  5483.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5484. SeeAlso: AH=1Ah,AH=1Ch
  5485. --------O-D41C-------------------------------
  5486. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  5487.     AH = 1Ch
  5488.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  5489.     BX = task ID (FFFFh for current task)
  5490. Return: CF clear if successful
  5491.         CL = current keyboard state
  5492.     CF set on error
  5493.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5494. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5495.       system by The Software Link, Inc.
  5496. SeeAlso: AH=1Ah,AH=1Bh
  5497. --------O-D41D-------------------------------
  5498. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  5499.     AH = 1Dh
  5500.     BX = task ID (FFFFh for current task) (see AH=19h)
  5501.     ES:DI -> buffer for program name (see #3648)
  5502. Return: CF clear if successful
  5503.         ES:DI buffer filled
  5504.     CF set on error
  5505.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5506. SeeAlso: AH=19h,AH=1Eh
  5507.  
  5508. Format of PC-MOS/386 program name buffer:
  5509. Offset    Size    Description    (Table 3648)
  5510.  00h  8 BYTEs    filename
  5511.  08h  3 BYTEs    extension
  5512. --------O-D41E-------------------------------
  5513. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  5514.     AH = 1Eh
  5515.     BX = task ID (FFFFh for current task)
  5516.     ES:DI -> 4-byte buffer for username
  5517. Return: CF clear if successful
  5518.         CL = security class
  5519.         20h (' ') none
  5520.         41h-5Ah ('A'-'Z') security level
  5521.         ES:DI buffer filled
  5522.     CF set on error
  5523.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5524. SeeAlso: AH=19h,AH=1Dh
  5525. --------O-D41F-------------------------------
  5526. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  5527.     AH = 1Fh
  5528.     BX = task ID (FFFFh for current task) (see AH=19h)
  5529. Return: CF clear if successful
  5530.         CX = start segment of task
  5531.         DX = ending segment of task
  5532.     CF set on error
  5533.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5534. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5535.       system by The Software Link, Inc.
  5536. SeeAlso: AH=2Dh
  5537. --------O-D420-------------------------------
  5538. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  5539.     AH = 20h
  5540.     BX = task ID (FFFFh for current task) (see AH=19h)
  5541. Return: CF clear if successful
  5542.         CX = port number (0000h if none)
  5543.         DI:SI = baudrate (if CX nonzero)
  5544.     CF set on error
  5545.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5546. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  5547. --------O-D421-------------------------------
  5548. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  5549.     AH = 21h
  5550.     BX = task ID (FFFFh for current task) (see AH=19h)
  5551. Return: CF clear if successful
  5552.         AX = ASCII percentage of System Memory Pool used
  5553.         (AH = tens digit, AL = ones digit)
  5554.         DS,SI destroyed
  5555.     CF set on error
  5556.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5557. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5558.       system by The Software Link, Inc.
  5559. SeeAlso: AH=22h
  5560. --------O-D422-------------------------------
  5561. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  5562.     AH = 22h
  5563.     DS:SI -> addtask data structure (see #3650)
  5564. Return: CF clear if successful
  5565.         ES = segment address of the new task's TCB data structure
  5566.     CF set on error
  5567.         AX = error code (see #3649)
  5568. SeeAlso: AH=21h
  5569.  
  5570. (Table 3649)
  5571. Values for PC-MOS/386 error code:
  5572.  08h    insufficient memory
  5573.  0Bh    invalid addtask structure format
  5574.  12h    insufficient available space in system memory pool
  5575.  1Fh    general failure
  5576.  55h    already allocated
  5577.  57h    if task already in use or invalid parameter
  5578.  
  5579. Format of PC-MOS/386 addtask data structure:
  5580. Offset    Size    Description    (Table 3650)
  5581.  00h    WORD    task size in KB (min 16KB)
  5582.  02h    WORD    task ID (0000h for automatic selection)
  5583.  04h    BYTE    task class (' ' or 'A'-'Z')
  5584.  05h    DWORD    -> ASCIZ name of task startup batchfile
  5585.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  5586.  0Dh    WORD    task port
  5587.  0Fh    DWORD    task baud rate
  5588.  13h    DWORD    (ret) total extended memory
  5589.  17h    DWORD    (ret) number of 4K extended memory pages allocated
  5590.  1Bh    WORD    (ret) paragraphs of system memory pool allocated
  5591.  1Dh    WORD    (ret) system memory pool size in paragraphs
  5592.  1Fh    WORD    (ret) ASCII task percentage of system memory pool
  5593.  21h  3 BYTEs    reserved
  5594. --------O-D423-------------------------------
  5595. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  5596.     AH = 23h
  5597.     BX = task ID (FFFFh for current task)
  5598.     DS:SI -> entry point of the new Device Driver Terminal
  5599. Return: CF clear if successful
  5600.     CF set on error
  5601.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5602. --------O-D424-------------------------------
  5603. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  5604.     AH = 24h
  5605. Return: DS:DX -> '$'-terminated string containing the serial number
  5606. --------O-D425-------------------------------
  5607. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  5608.     AH = 25h
  5609.     DX = driver's CS value
  5610. Return: AX = segment address of driver in system memory pool
  5611.         (0000h if the driver is not within the system memory pool)
  5612. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5613.       system by The Software Link, Inc.
  5614. --------O-D426-------------------------------
  5615. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  5616.     AH = 26h
  5617. Return: DX = segment/selector of the System Control Block (see #3636)
  5618. Note:    this function supersedes AH=02h
  5619. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  5620. --------O-D427-------------------------------
  5621. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  5622.     AH = 27h
  5623.     BX = task ID (FFFFh if current task) (see AH=19h)
  5624. Return: CF clear if successful
  5625.         DX = segment/selector for the Task Control Block (see #3638)
  5626.     CF set on error
  5627.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5628. Note:    this function supersedes AH=04h
  5629. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  5630. --------O-D428-------------------------------
  5631. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  5632.     AH = 28h
  5633.     BX = offset into control block at which to start reading
  5634.     CX = number of bytes to read
  5635.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  5636.     ES:DI -> buffer for data
  5637. Return: CF clear if successful
  5638.     CF set on error
  5639.         AX = error code (see also #1332 at INT 21/AH=59h/BX=0000h)
  5640.         05h access denied due to an invalid segment/selector
  5641. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  5642. --------O-D429-------------------------------
  5643. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  5644.     AH = 29h
  5645.     BX = offset into control block at which to start writing
  5646.     CX = number of bytes to write
  5647.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  5648.     DS:SI -> buffer containing data to be written
  5649. Return: CF clear if successful
  5650.     CF set on errro
  5651.         AX = error code (see also #1332 at INT 21/AH=59h/BX=0000h)
  5652.         05h access denied due to an invalid segment/selector
  5653. Note:     this function performs no bounds checking
  5654. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5655.       system by The Software Link, Inc.
  5656. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  5657. --------O-D42A-------------------------------
  5658. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  5659.     AH = 2Ah
  5660.     BX = offset into control block at which to start swap
  5661.     CX = number of bytes to swap
  5662.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  5663.     DS:SI -> buffer containing new data and to receive current data
  5664. Return: CF clear if successful
  5665.     CF set on error
  5666.         AX = error code (see also #1332 at INT 21/AH=59h/BX=0000h)
  5667.         05h access denied due to an invalid segment/selector
  5668. Note:    the interrupts are disabled during the swap to prevent corruption
  5669. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  5670. --------O-D42C-------------------------------
  5671. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  5672.     AH = 2Ch
  5673.     AL = function
  5674.         00h set spooler timeout
  5675.         CX = timout value in seconds
  5676.         01h get spooler timeout
  5677.         Return: CX = current timeout in seconds
  5678.         02h get spooler parameters
  5679.         Return: CH = priority (00h-09h)
  5680.             CL = disposition (d, h, i, n, s)
  5681.             SI = class (a - z)
  5682.         03h set spooler parameters
  5683.         CH = priority (00h-09h)
  5684.         CL = disposition (d, h, i, n, s)
  5685.         SI = class (a - z)
  5686.         BX = task ID (FFFFh for current task)
  5687.         DX = LPT number
  5688. Return: CF clear if successful
  5689.     CF set on error
  5690.         AX = error code (see #1332 at INT 21/AH=59h/BX=0000h)
  5691. SeeAlso: AH=00h,AH=02h,AH=03h
  5692. --------O-D42D-------------------------------
  5693. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  5694.     AH = 2Dh
  5695. Return: DX = maximum task size in paragraphs
  5696.     BX = start address of task space
  5697. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  5698.       system by The Software Link, Inc.
  5699. SeeAlso: AH=1Fh,AH=22h
  5700. --------r-D5---------------------------------
  5701. INT D5 - IBM ROM BASIC - used while in interpreter
  5702. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5703.     BASIC.COM/BASICA.COM do not restore vector on termination
  5704. SeeAlso: INT 80"BASIC",INT D4"BASIC",INT D6"BASIC"
  5705. --------r-D5---------------------------------
  5706. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5707. --------r-D6---------------------------------
  5708. INT D6 - IBM ROM BASIC - used while in interpreter
  5709. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5710.     BASIC.COM/BASICA.COM do not restore vector on termination
  5711. SeeAlso: INT 80"BASIC",INT D5"BASIC",INT D7"BASIC"
  5712. --------r-D6---------------------------------
  5713. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5714. --------r-D7---------------------------------
  5715. INT D7 - IBM ROM BASIC - used while in interpreter
  5716. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5717.     BASIC.COM/BASICA.COM do not restore vector on termination
  5718. SeeAlso: INT 80"BASIC",INT D6"BASIC",INT D8"BASIC"
  5719. --------r-D7---------------------------------
  5720. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5721. --------r-D8---------------------------------
  5722. INT D8 - IBM ROM BASIC - used while in interpreter
  5723. Notes:    called by ROM BASIC
  5724.     BASIC.COM/BASICA.COM do not restore vector on termination
  5725. SeeAlso: INT 80"BASIC",INT D7"BASIC",INT D9"BASIC"
  5726. --------r-D8---------------------------------
  5727. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5728. --------H-D8---------------------------------
  5729. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  5730. Range:    INT 78h to INT E0h, selected by commandline switch
  5731. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  5732.       but may be directed via a commandline switch to use any range
  5733.       starting at a multiple of 8 between 78h and E0h
  5734. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  5735. SeeAlso: INT D9"Screen Thief"
  5736. --------r-D9---------------------------------
  5737. INT D9 - IBM ROM BASIC - used while in interpreter
  5738. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5739.     BASIC.COM/BASICA.COM do not restore vector on termination
  5740. SeeAlso: INT 80"BASIC",INT D8"BASIC",INT DA"BASIC"
  5741. --------r-D9---------------------------------
  5742. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5743. --------H-D9---------------------------------
  5744. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  5745. Range:    INT 79h to INT E1h, selected by commandline switch
  5746. Note:    (see INT D8"Screen Thief")
  5747. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  5748. --------r-DA---------------------------------
  5749. INT DA - IBM ROM BASIC - used while in interpreter
  5750. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  5751.     BASIC.COM/BASICA.COM do not restore vector on termination
  5752. SeeAlso: INT 80"BASIC",INT D9"BASIC",INT DB"BASIC"
  5753. --------r-DA---------------------------------
  5754. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5755. --------H-DA---------------------------------
  5756. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  5757. Range:    INT 7Ah to INT E2h, selected by commandline switch
  5758. Note:    (see INT D8"Screen Thief")
  5759. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  5760. --------r-DB---------------------------------
  5761. INT DB - IBM ROM BASIC - used while in interpreter
  5762. Notes:    called by ROM BASIC
  5763.     BASIC.COM/BASICA.COM do not restore vector on termination
  5764. SeeAlso: INT 80"BASIC",INT DA"BASIC",INT DC"BASIC"
  5765. --------r-DB---------------------------------
  5766. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5767. --------H-DB---------------------------------
  5768. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  5769. Range:    INT 7Bh to INT E3h, selected by commandline switch
  5770. Note:    (see INT D8"Screen Thief")
  5771. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  5772. --------u-DC---------------------------------
  5773. INT DC - PC/370 v4.1- - API
  5774. SeeAlso: INT 60"PC/370"
  5775. --------r-DC---------------------------------
  5776. INT DC - IBM ROM BASIC - used while in interpreter
  5777. Notes:    called by ROM BASIC
  5778.     BASIC.COM/BASICA.COM do not restore vector on termination
  5779. SeeAlso: INT 80"BASIC",INT DB"BASIC",INT DD"BASIC"
  5780. --------r-DC---------------------------------
  5781. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  5782. --------H-DC---------------------------------
  5783. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  5784. Range:    INT 7Ch to INT E4h, selected by commandline switch
  5785. Note:    (see INT D8"Screen Thief")
  5786. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  5787. --------r-DD---------------------------------
  5788. INT DD - IBM ROM BASIC - used while in interpreter
  5789. Notes:    called by ROM BASIC
  5790.     BASIC.COM/BASICA.COM do not restore vector on termination
  5791. SeeAlso: INT 80"BASIC",INT DC"BASIC",INT DE"BASIC"
  5792. --------r-DD---------------------------------
  5793. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  5794.     BX = where to place keystrokes
  5795.         FFFFh insert before current buffer contents
  5796.         0000h replace current contents
  5797.         0001h insert after current contents
  5798.     CX = number of keystroke events to insert
  5799.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  5800.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  5801.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  5802. Return: nothing
  5803. SeeAlso: INT 16/AH=05h
  5804. --------H-DD---------------------------------
  5805. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  5806. Range:    INT 7Dh to INT E5h, selected by commandline switch
  5807. Note:    (see INT D8"Screen Thief")
  5808. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  5809. --------r-DE---------------------------------
  5810. INT DE - IBM ROM BASIC - used while in interpreter
  5811. Notes:    called by ROM BASIC
  5812.     BASIC.COM/BASICA.COM do not restore vector on termination
  5813. SeeAlso: INT 80"BASIC",INT DD"BASIC",INT DF"BASIC"
  5814. --------r-DE---------------------------------
  5815. INT DE - APL*PLUS/PC - ???
  5816. Note:    appears to be the same as INT 16
  5817. --------H-DE---------------------------------
  5818. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  5819. Range:    INT 7Eh to INT E6h, selected by commandline switch
  5820. Note:    (see INT D8"Screen Thief")
  5821. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  5822. --------b-DF---------------------------------
  5823. INT DF - Victor 9000/Sirius 1 - SuperBIOS
  5824. SeeAlso: INT 21/AH=EAh"NetWare"
  5825. --------r-DF---------------------------------
  5826. INT DF - IBM ROM BASIC - used while in interpreter
  5827. Notes:    called by ROM BASIC
  5828.     BASIC.COM/BASICA.COM do not restore vector on termination
  5829. SeeAlso: INT 80"BASIC",INT DE"BASIC",INT E0"BASIC"
  5830. --------r-DF---------------------------------
  5831. INT DF - APL*PLUS/PC - SAME AS INT 10
  5832. SeeAlso: INT 10/AH=00h,INT 10/AH=0Eh
  5833. --------H-DF---------------------------------
  5834. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  5835. Range:    INT 7Fh to INT E7h, selected by commandline switch
  5836. Note:    (see INT D8"Screen Thief")
  5837. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  5838. --------r-E0---------------------------------
  5839. INT E0 - IBM ROM BASIC - used while in interpreter
  5840. Notes:    called by ROM BASIC
  5841.     BASIC.COM/BASICA.COM do not restore vector on termination
  5842. SeeAlso: INT 80"BASIC",INT DF"BASIC",INT E1"BASIC"
  5843. --------r-E0---------------------------------
  5844. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  5845. SeeAlso: INT CF"APL"
  5846. --------v-E0---------------------------------
  5847. INT E0 - VIRUS - "Micro-128" - ???
  5848. Note:    Micro-128 also overwrites the upper half of the interrupt table
  5849. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  5850. ----------E0---------------------------------
  5851. INT E0 - DeskMate (Tandy) - DESK EXECUTIVE API
  5852.     AX = function code (numerous)
  5853.     parameters passed in BX, DX, ES, DI, and/or BP
  5854. Return: AX = return from function
  5855. Program: DeskMate is a proprietary GUI from Tandy distributed with several
  5856.       models of the Tandy 1000's, 2500's, 3000's, and laptops.  Retail
  5857.       and runtime versions also exist.  Some Tandy's are designed to
  5858.       boot directly into DeskMate.
  5859. SeeAlso: INT 15/AX=7002h,INT E1"DeskMate"
  5860. --------O-E0---------------------------------
  5861. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  5862.     CL = function number (see #3651,#3652)
  5863.     DS,DX contain parameter(s):
  5864.         DL = byte parameter
  5865.         DX = word parameter
  5866.         DS:DX -> structure
  5867. Return: as appropriate for function:
  5868.         AL = byte result
  5869.         AX = word
  5870.         ES:AX -> structure (and BX=ES)
  5871.     CX is often the error code (see #3653)
  5872. Notes:    several functions are covered in more detail in following entries
  5873.     most of these calls are also supported by Digital Research's DOS Plus
  5874.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  5875.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  5876. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  5877.  
  5878. (Table 3651)
  5879. Values for CP/M-86,DR Multiuser DOS function number:
  5880.  00h    terminate calling process (see INT E0/CL=00h,INT 21/AH=00h)
  5881.  01h    read a character (see INT E0/CL=01h,INT 21/AH=01h)
  5882.  02h    write character to default console (see INT E0/CL=02h,INT 21/AH=02h)
  5883.  03h    read character from default AUX (see INT E0/CL=03h,INT 21/AH=03h)
  5884.  04h    write character to default AUX (see INT E0/CL=04h,INT 21/AH=04h)
  5885.  05h    write character to default list device
  5886.     (see INT E0/CL=05h,INT 21/AH=05h)
  5887.  06h    perform raw I/O on default console (see INT E0/CL=06h,INT 21/AH=06h)
  5888.  07h    return default AUX input status (see INT E0/CL=07h)
  5889.  08h    return default AUX output status (see INT E0/CL=08h)
  5890.  09h    write string to default console (see INT E0/CL=09h,INT 21/AH=09h)
  5891.  0Ah    read string from default console (see INT E0/CL=0Ah,INT 21/AH=0Ah)
  5892.  0Bh    return default console input status (see INT E0/CL=0Bh,INT 21/AH=0Bh)
  5893.  0Ch    get BDOS release ID (see INT E0/CL=0Ch)
  5894.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  5895.  0Eh    set default drive (see also INT 21/AH=0Eh"DOS 1+")
  5896.  0Fh    open file via FCB (see also INT 21/AH=0Fh,#1000)
  5897.  10h    close file via FCB (see also INT 21/AH=10h)
  5898.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  5899.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  5900.  13h    delete file via FCB (see also INT 21/AH=13h)
  5901.  14h    sequential read via FCB (see also INT 21/AH=14h)
  5902.  15h    sequential write via FCB (see also INT 21/AH=15h)
  5903.  16h    create file via FCB (see also INT 21/AH=16h)
  5904.  17h    rename file via FCB (see also INT 21/AH=17h)
  5905.  18h    get bit map of logged drives
  5906.  19h    get default drive (see also INT 21/AH=19h)
  5907.  1Ah    set DMA address offset
  5908.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  5909.  1Ch    set default drive to read-only
  5910.  1Dh    get bit map of read-only drives
  5911.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  5912.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  5913.  20h    get/set default user number
  5914.  21h    read random record via FCB (see also INT 21/AH=21h)
  5915.  22h    write random record via FCB (see also INT 21/AH=22h)
  5916.  23h    compute file size with FCB (see also INT 21/AH=23h)
  5917.  24h    get FCB random record number (see also INT 21/AH=24h)
  5918.  25h    reset specified drives
  5919.  26h    access specified drives (not in DR DOS Plus v2.1)
  5920.  27h    free specified drives
  5921.  28h    write random with FCB, zero fill (see also INT 21/AH=28h)
  5922.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  5923.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  5924.  2Ch    set BDOS multisector count
  5925.  2Dh    set BDOS error mode
  5926.  2Eh    get free space on disk
  5927.  2Fh    load, initialize, and jump to process ("chain process")
  5928.     (see INT E0/CL=2Fh,INT 21/AH=4Bh)
  5929.  30h    flush write-deferred buffers
  5930.  31h    get/set system variable (DOS Plus v2.1)
  5931.  32h    call BIOS (XIOS) character routine (see #3652)
  5932.  33h    set DMA address segment
  5933.  34h    get DMA buffer address
  5934.  35h    CP/M-86 allocate maximum memory (see INT E0/CL=35h)
  5935.  36h    allocate maximum memory at specified segment (see INT E0/CL=36h)
  5936.  37h    CP/M-86 allocate memory segment (see INT E0/CL=37h,INT 21/AH=48h)
  5937.  38h    allocate memory at specified segment (see INT E0/CL=38h)
  5938.  39h    CP/M-86 free specified memory segment (see INT E0/CL=39h,INT 21/AH=49h)
  5939.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1) (see INT E0/CL=3Ah)
  5940.  3Bh    load .CMD file into memory (see INT E0/CL=3Bh)
  5941.  3Ch    (DOS Plus v2.1) call RSX program
  5942.  40h    (DR-NET, REAL/32) log on a server (see INT E0/CL=40h)
  5943.  41h    (DR-NET, REAL/32) log off a server (see INT E0/CL=41h)
  5944.  42h    (DR-NET) send a message
  5945.  43h    (DR-NET) receive a message
  5946.  44h    (DR-NET, REAL/32) get network status (see INT E0/CL=44h)
  5947.  45h    (DR-NET, REAL/32) get requestor configuration table (see INT E0/CL=45h)
  5948.  46h    (DR-NET) set compatibility attributes
  5949.  47h    (DR-NET, REAL/32) get server configuration table (see INT E0/CL=47h)
  5950.  48h    (DR-NET, REAL/32) set network error mode (see INT E0/CL=48h)
  5951.  49h    (DR-NET, REAL/32) attach network
  5952.  4Ah    (DR-NET, REAL/32) detach network
  5953.  4Bh    (DR-NET, REAL/32) set default password
  5954.  4Ch    (DR-NET, REAL/32) get-set long timeout
  5955.  4Dh    (DR-NET, REAL/32) get parameter table
  5956.  4Fh    (REAL/32) get extended network error
  5957.  50h    (DR-NET, REAL/32) get network information
  5958.  53h    get current time (see also INT 21/AH=2Ch)
  5959.  54h    set current time (see also INT 21/AH=2Dh)
  5960.  55h    get binary system date (see also INT 21/AH=2Ah)
  5961.  56h    set system date (see also INT 21/AH=2Bh"DATE")
  5962.  57h    allocate system flag
  5963.  58h    deallocate system flag
  5964.  59h    reserve memory in global area (see INT E0/CL=59h)
  5965.  5Ah    lock physical drive
  5966.  5Bh    unlock physical drive
  5967.  5Ch    search path for executable file
  5968.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  5969.  5Eh    get/set process exit code
  5970.  5Fh    set country information
  5971.  60h    get country information
  5972.  63h    truncate FCB file (see also INT 21/AH=28h)
  5973.  64h    create/update directory label
  5974.  65h    get directory label
  5975.  66h    get FCB date stamp and password mode
  5976.  67h    write extended FCB
  5977.  68h    set system date and time
  5978.  69h    get system date and time in binary
  5979.  6Ah    establish password for file access
  5980.  6Bh    get OS serial number
  5981.  6Ch    (DOS Plus v2.1) get/set program return code
  5982.  6Dh    get/set console mode
  5983.  6Eh    get/set string delimiter
  5984.  6Fh    write block to default console
  5985.  70h    write block to default list device
  5986.  71h    execute DOS-compatible function (see INT E0/CL=71h)
  5987.  74h    set FCB time and date stamps
  5988.  80h    allocate memory
  5989.  82h    deallocate memory
  5990.  83h    poll I/O device
  5991.  84h    wait on system flag
  5992.  85h    set system flag
  5993.  86h    create message queue (see INT E0/CL=86h)
  5994.  87h    open message queue (see INT E0/CL=87h)
  5995.  88h    delete message queue
  5996.  89h    read from message queue (see INT E0/CL=89h)
  5997.  8Ah    conditionally read from message queue (see INT E0/CL=8Ah)
  5998.  8Bh    write to message queue (see INT E0/CL=8Bh)
  5999.  8Ch    conditionally write to message queue (see INT E0/CL=8Ch)
  6000.  8Dh    delay calling process
  6001.  8Eh    call process dispatcher (yield CPU) (see INT E0/CL=8Eh)
  6002.  8Fh    terminate calling process (same as function 00h)
  6003.  90h    create a process
  6004.  91h    set calling process' priority (see INT E0/CL=91h)
  6005.  92h    attach to default console
  6006.  93h    detach from default console (see INT E0/CL=93h)
  6007.  94h    (REAL/32) set the process' default console
  6008.  95h    assign default console to process
  6009.  96h    interpret and execute commandline
  6010.  97h    resident procedure library
  6011.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  6012.  99h    return default console
  6013.  9Ah    get address of system data (SYSDAT)
  6014.  9Bh    get system time and date
  6015.  9Ch    return calling process' descriptor
  6016.  9Dh    terminate process by name or PD address
  6017.  9Eh    attach to default list device
  6018.  9Fh    detach from default list device
  6019.  A0h    select default list device
  6020.  A1h    conditionally attach to default list device
  6021.  A2h    conditionally attach to default console
  6022.  A3h    get OS version number
  6023.  A4h    get default list device
  6024.  A5h    attach to default AUX (see INT E0/CL=A5h)
  6025.  A6h    detach from default AUX (see INT E0/CL=A6h)
  6026.  A7h    conditionally attach to default AUX (see INT E0/CL=A7h)
  6027.  A8h    set default AUX (see INT E0/CL=A8h)
  6028.  A9h    return default AUX (see INT E0/CL=A9h)
  6029.  ACh    read block from default AUX (see INT E0/CL=ACh)
  6030.  ADh    (DOS Plus v2.1) write block to default AUX (see INT E0/CL=ADh)
  6031.  B0h    configure default AUX (see INT E0/CL=B0h)
  6032.  B1h    get/set device control parameters (see INT E0/CL=B1h)
  6033.  B2h    send Break through default AUX (see INT E0/CL=B2h)
  6034.  B3h    allocate physical memory
  6035.  B4h    free physical memory
  6036.  B5h    map physical memory
  6037.  B6h    nondestructive message queue read
  6038.  B7h    timed wait on system flag
  6039.  B8h    get/set I/O port mapping
  6040.  B9h    set list device timeout
  6041.  BAh    set AUX timeout value
  6042.  BBh    execute XIOS service
  6043.  BDh    (DR Multiuser DOS) delay (see INT E0/CL=BDh)
  6044.  FFh    return 80386 to native mode
  6045. SeeAlso: #3652,#3653
  6046.  
  6047. (Table 3652)
  6048. Values for DOS Plus v2.1 XIOS functions:
  6049.  00h    terminate program
  6050.  01h    ???
  6051.  02h    check for console input status
  6052.  03h    read character from console
  6053.  04h    write character to console
  6054.  05h    write character to list device
  6055.  06h    write character to auxiliary device
  6056.  07h    read character from auxiliary device
  6057.  0Fh    get list device status
  6058.  10h-14h reserved
  6059.  15h    device initialization
  6060.  16h    check console output status
  6061.  17h-7Fh reserved
  6062. ---BBC Acorn---
  6063.  80h    get XIOS version
  6064.  81h    get Tube semaphore
  6065.  82h    release Tube semaphore
  6066.  83h    select text/graphics
  6067.  84h    update B&W graphics rectangle
  6068.  85h    update color graphics rectangle
  6069.  86h    get/release/update mouse
  6070.  87h    get system error info
  6071.  88h    entry in CLOCK called by WatchDog RSP
  6072.  89h    BBC OSBYTE function
  6073.  8Ah    BBC OSWORD function
  6074. SeeAlso: #3651
  6075.  
  6076. (Table 3653)
  6077. Values for DR Multiuser DOS Error Return Code:
  6078.  00h    no error
  6079.  01h    system call not implemented
  6080.  02h    illegal system call number
  6081.  03h    cannot find memory
  6082.  04h    illegal flag number
  6083.  05h    flag overrun
  6084.  06h    flag underrun
  6085.  07h    no unused Queue Descriptors
  6086.  08h    no free queue buffer
  6087.  09h    cannot find queue
  6088.  0Ah    queue in use
  6089.  0Ch    no free Process Descriptors
  6090.  0Dh    no queue access
  6091.  0Eh    empty queue
  6092.  0Fh    full queue
  6093.  10h    CLI queue missing
  6094.  11h    no 8087 in system
  6095.  12h    no unused Memory Descriptors
  6096.  13h    illegal console number
  6097.  14h    no Process Descriptor match
  6098.  15h    no console match
  6099.  16h    no CLI process
  6100.  17h    illegal disk number
  6101.  18h    illegal filename
  6102.  19h    illegal filetype
  6103.  1Ah    character not ready
  6104.  1Bh    illegal Memory Descriptor
  6105.  1Ch    bad return from BDOS load
  6106.  1Dh    bad return from BDOS read
  6107.  1Eh    bad return from BDOS open
  6108.  1Fh    null command
  6109.  20h    not owner of resource
  6110.  21h    no CSEG in load file
  6111.  22h    process Descriptor exists on Thread Root
  6112.  23h    could not terminate process
  6113.  24h    cannot attach to process
  6114.  25h    illegal list device number
  6115.  26h    illegal password
  6116.  28h    external termination occurred
  6117.  29h    fixup error upon load
  6118.  2Ah    flag set ignored
  6119.  2Bh    illegal auxilliary device number
  6120. SeeAlso: #3651
  6121. --------O-E0----CL00-------------------------
  6122. INT E0 - REAL/32 - "P_TERMCPM" - TERMINATE CALLING PROCESS
  6123.     CL = 00h
  6124. Return: AX = error code
  6125.         FFFFh on failure
  6126.     may destroy SI,DI???
  6127. Program: REAL/32 is the descendant of IMS Multiuser DOS, which in turn is
  6128.       derived from DR Multiuser DOS and its predecessors (Concurrent DOS,
  6129.       etc.)
  6130. Note:    sets the exit code (ERRORLEVEL) to 00h
  6131. SeeAlso: INT 21/AH=00h
  6132. --------O-E0----CL01-------------------------
  6133. INT E0 - REAL/32 - "C_READ" - FETCH CHARACTER FROM THE DEFAULT CONSOLE
  6134.     CL = 01h
  6135. Return: AX = character
  6136.     may destroy SI,DI???
  6137. Notes:    this function echos the character to the screen, expanding Tab
  6138.       characters to the next multiple of eight columns; Ctrl-C is
  6139.       ignored if the calling process can not terminate
  6140.     the calling process is suspended until a character is available; if
  6141.       the caller does not own the console, it is suspended until it
  6142.       can attach to the console
  6143. SeeAlso: INT E0/CL=02h,INT E0/CL=06h,INT 21/AH=01h
  6144. --------O-E0----CL02-------------------------
  6145. INT E0 - REAL/32 - "C_WRITE" - WRITE CHARACTER TO DEFAULT CONSOLE
  6146.     CL = 02h
  6147.     DX = character
  6148. Return: nothing
  6149.     may destroy SI,DI???
  6150. Note:    Tab characters are expanded to blanks up to the next multiple of
  6151.       eight columns
  6152. SeeAlso: INT E0/CL=01h,INT E0/CL=06h,INT 21/AH=02h
  6153. --------O-E0----CL03-------------------------
  6154. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM DEFAULT AUX DEVICE
  6155.     CL = 03h
  6156. Return: AL = ASCII character
  6157.     may destroy SI,DI???
  6158. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  6159.       input device (AUXn:); control is not returned to the calling
  6160.       process until a character has been read.
  6161.     if another process owns AUX, this call blocks until the device becomes
  6162.       available
  6163.     this function is also supported by REAL/32
  6164. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  6165. --------O-E0----CL04-------------------------
  6166. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO DEFAULT AUX DEVICE
  6167.     CL = 04h
  6168.     DL = BYTE to write
  6169. Return: nothing
  6170.     may destroy SI,DI,DH???
  6171. Note:    if another process owns AUX, this call blocks until the device becomes
  6172.       available
  6173. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  6174. --------O-E0----CL05-------------------------
  6175. INT E0 - REAL/32 - "L_WRITE" - WRITE CHARACTER TO DEFAULT LIST DEVICE
  6176.     CL = 05h
  6177.     DL = char to write
  6178. Return: nothing
  6179.     may destroy SI,DI???
  6180. Note:    if another process owns the list device, this call blocks until the
  6181.       device becomes available
  6182. SeeAlso: INT 21/AH=05h
  6183. --------O-E0----CL06-------------------------
  6184. INT E0 - REAL/32 - "C_RAWIO" - PERFORM RAW I/O WITH DEFAULT CONSOLE
  6185.     CL = 06h
  6186.     DL = mode describing the operation to be performed
  6187.         FFh get console input/status
  6188.         FEh get console status
  6189.         FDh get console input (blocking)
  6190.         else output DL to the console as a character
  6191. Return: AX = returned value
  6192.         for DL = FFh, the character or 00h if none available
  6193.         for DL = FEh, 00h if no characters available, FFh if any available
  6194.         for DL = FDh, the character read from the console
  6195.         else AX = 0000h
  6196.     may destroy SI,DI???
  6197. Notes:    during raw I/O, the special characters ^C, ^O, ^P, and ^S are not
  6198.       interpreted, but are passed through
  6199.     if the virtual console is in ^S mode and the owning process calls
  6200.       this function, the ^S state is cleared
  6201. SeeAlso: INT E0/CL=01h,INT E0/CL=02h,INT 21/AH=06h
  6202. --------O-E0----CL07-------------------------
  6203. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  6204.     CL = 07h
  6205. Return: AL = status
  6206.         00h not ready
  6207.         FFh character available
  6208. Desc:    determine whether the current AUX device has input available
  6209. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  6210. --------O-E0----CL08-------------------------
  6211. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  6212.     CL = 08h
  6213. Return: AL = status
  6214.         00h not ready
  6215.         FFh ready for output
  6216. Desc:    determine whether the current AUX device is able to accept more output
  6217. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  6218. --------O-E0----CL09-------------------------
  6219. INT E0 - REAL/32 - "C_WRITESTR" - WRITE STRING TO DEFAULT CONSOLE
  6220.     CL = 09h
  6221.     DS:DX -> string
  6222. Return: nothing
  6223.     may destroy SI,DI,DS???
  6224. Note:    the string terminated with a '$' character (24h) by default; the
  6225.       terminator may be changed with C_DELIMIT
  6226.     tabs are expanded to the next multiple of eight columns
  6227. --------O-E0----CL0A-------------------------
  6228. INT E0 - REAL/32 - "C_READSTR" - READ STRING FROM DEFAULT CONSOLE
  6229.     CL = 0Ah
  6230.     DS:DX -> buffer for string (see #3654)
  6231. Return: nothing
  6232.  
  6233. Format of REAL/32 "C_READSTR" buffer:
  6234. Offset    Size    Description    (Table 3654)
  6235.  00h    BYTE    maximum number of characters buffer can hold
  6236.  01h    BYTE    actual number of buffers read
  6237.  02h  N BYTEs    input line
  6238. --------O-E0----CL0B-------------------------
  6239. INT E0 - REAL/32 - "C_STAT" - RETURN DEFAULT CONSOLE INPUT STATUS
  6240.     CL = 0Bh
  6241. Return: AX = status
  6242.         0000h no characters ready
  6243.         0001h character available
  6244.     may destroy SI,DI???
  6245. Note:    after setting bit 0 of the console mode word with C_MODE, this function
  6246.       will only return AX=0001h when the user presses Ctrl-C.
  6247. --------O-E0----CL0C-------------------------
  6248. INT E0 - REAL/32 - "S_BDOSVER" - GET BDOS VERSION
  6249.     CL = 0Ch
  6250. Return: AX = version (see #3655)
  6251.     may destroy SI,DI???
  6252.  
  6253. (Table 3655)
  6254. Values for REAL/32 BDOS version:
  6255.  1432h    - DR Concurrent PC DOS Version 3.2
  6256.  1441h    - DR Concurrent DOS Version 4.1
  6257.  1450h    - DR Concurrent DOS/XM Version 5.0
  6258.  1463h    - DR Multiuser DOS Release 5.0
  6259.  1465h    - DR Multiuser DOS Release 5.01
  6260.  1466h    - DR Multiuser DOS Release 5.1, IMS Multiuser DOS Enhanced Release 5.1
  6261.  1467h    - IMS Multiuser DOS Version 7.0, 7.1
  6262.  1468h    - IMS REAL/32 Version 7.50, 7.51
  6263.  1469h    - IMS REAL/32 Version 7.52, 7.53
  6264.  14??h    - IMS REAL/32 Version 7.6
  6265. --------O-E0----CL2F-------------------------
  6266. INT E0 - REAL/32 - "P_CHAIN" - CHAIN PROCESS
  6267.     CL = 2Fh
  6268.     [DTA] = ASCIZ command line for process to start
  6269. Return: AX = return code
  6270.         0000h successful
  6271.         FFFFh failed
  6272.     may destroy SI,DI???
  6273. --------O-E0----CL35-------------------------
  6274. INT E0 R - REAL/32 - "MC_MAX" - CP-M/86 ALLOCATE MAXIMUM MEMORY
  6275.     CL = 35h
  6276.     DS:DX -> MCB (see #3656)
  6277. Return: AX = status
  6278.     may destroy SI,DI,DS???
  6279. SeeAlso: INT E0/CL=39h
  6280.  
  6281. Format of REAL/32 MCB (Memory Control Block):
  6282. Offset    Size    Description    (Table 3656)
  6283.  00h    WORD    segment address of memory block
  6284.  02h    WORD    length of block in paragraphs
  6285.  04h    BYTE    reserved (0)
  6286. --------O-E0----CL36-------------------------
  6287. INT E0 R - REAL/32 - "MC_ABSMAX" - ALLOCATE MAXIMUM MEMORY SEGMENT ABSOLUTE
  6288.     CL = 36h
  6289.     DS:DX -> MCB (see #3656)
  6290. Return: AX = status
  6291.     may destroy SI,DI,DS???
  6292. SeeAlso: INT E0/CL=39h
  6293. --------O-E0----CL37-------------------------
  6294. INT E0 R - REAL/32 - "MC_ALLOC" - CP-M/86 ALLOCATE MEMORY SEGMENT
  6295.     CL = 37h
  6296.     DS:DX -> MCB (see #3656)
  6297. Return: AX = status
  6298.     may destroy SI,DI,DS???
  6299. SeeAlso: INT E0/CL=39h
  6300. --------O-E0----CL38-------------------------
  6301. INT E0 R - REAL/32 - "MC_ABSALLOC" - ALLOCATE MEMORY SEGMENT ABSOLUTE
  6302.     CL = 38h
  6303.     DS:DX -> MCB (see #3656)
  6304. Return: AX = status
  6305.     may destroy SI,DI,DS???
  6306. SeeAlso: INT E0/CL=39h
  6307. --------O-E0----CL39-------------------------
  6308. INT E0 R - REAL/32 - "MC_FREE" - CP-M/86 FREE SPECIFIED MEMORY SEGMENT
  6309.     CL = 39h
  6310.     DS:DX -> MCB (see #3656)
  6311. Return: AX = status
  6312.     may destroy SI,DI,DS???
  6313. SeeAlso: INT E0/CL=3Ah
  6314. --------O-E0----CL3A-------------------------
  6315. INT E0 R - REAL/32 - "MC_ALLFREE" - CP-M/86 FREE ALL MEMORY
  6316.     CL = 3Ah
  6317. Return: nothing???
  6318. Desc:    release all of the calling process's memory except the User Data Area
  6319. SeeAlso: INT E0/CL=39h
  6320. --------O-E0----CL3B-------------------------
  6321. INT E0 u - REAL/32 - "P_LOAD" - LOAD .CMD FILE INTO MEMORY
  6322.     CL = 3Bh
  6323.     ???
  6324. Return: ???
  6325. Note:    IMS does not document the details of this call because .CMD files are
  6326.       supported for backward compatibility only
  6327. --------O-E0----CL40-------------------------
  6328. INT E0 - REAL/32 - "N_LOGON" - LOG ONTO A SERVER
  6329.     CL = 40h
  6330.     DS:DX -> LPB !!!
  6331. Return: AX = status (0000h,00FFh,07FFh,0DFFh,0EFFh,FFFFh) (see #3657)
  6332.     may destroy SI,DI,DS???
  6333.  
  6334. (Table 3657)
  6335. Values for REAL/32 "N_LOGON" status:
  6336.  0000h    successful
  6337.  00FFh    server could not create shadow process
  6338.  07FFh    incorrect password
  6339.  0CFFh    not logged into specified server
  6340.  0DFFh    process already logged onto 16 servers,
  6341.     LPB process not attached to network
  6342.  0EFFh    physical transmission prevented message or response from getting thru
  6343.     network error during logoff
  6344.  FFFFh    calling process not attached to network
  6345. --------O-E0----CL41-------------------------
  6346. INT E0 - REAL/32 - "N_LOGON" - LOG OFF A SERVER
  6347.     CL = 41h
  6348.     DS:DX -> LPB !!!
  6349. Return: AX = status (0000h,0CFFh,0DFFh,0EFFh,FFFFh) (see #3657)
  6350.     may destroy SI,DI,DS???
  6351. --------O-E0----CL44-------------------------
  6352. INT E0 - REAL/32 - "N_STAT" - GET NETWORK STATUS
  6353.     CL = 44h
  6354. Return: AX = network status or 0FFFh on error
  6355.         bit 8: calling process is attached to network
  6356.     may destroy SI,DI???
  6357. --------O-E0----CL45-------------------------
  6358. INT E0 - REAL/32 - "N_RCT" - GET REQUESTOR CONFIGURATION TABLE
  6359.     CL = 45h
  6360.     DS:DX -> RCT Control Block !!!
  6361. Return: AX = status or error code (see #3658,#3657)
  6362.     may destroy SI,DI,DS???
  6363. SeeAlso: INT E0/CL=47h
  6364.  
  6365. (Table 3658)
  6366. Values for REAL/32 "N_RCT" status:
  6367.  0000h    successful
  6368.  0001h    invalid local device
  6369.  0002h    invalid remote device
  6370.  0003h    no queue entry space
  6371. --------O-E0----CL47-------------------------
  6372. INT E0 - REAL/32 - "N_SCT" - GET SERVER CONFIGURATION TABLE
  6373.     CL = 47h
  6374.     DS:DX -> 112-byte buffer for Server Configuration Table !!!
  6375. Return: AX = status (0000h successful, else error code)
  6376.     may destroy SI,DI,DS???
  6377. Note:    the first byte of the SCT buffer is set to the desired server number
  6378.       prior to calling this function
  6379. SeeAlso: INT E0/CL=45h
  6380. --------O-E0----CL48-------------------------
  6381. INT E0 - REAL/32 - "N_ERRMODE" - SET NETWORK ERROR MODE
  6382.     CL = 48h
  6383.     DL = new error mode
  6384.         FFh return error in registers AX,BX,CX
  6385.         FEh display message and return error
  6386.         FDh display message and abort (default)
  6387. Return: CX = error code (0000h successful, FFFFh failed)
  6388.     may destroy SI,DI???    
  6389. Desc:    specify how the REAL/32 Net Server responds to error numbers 0CFFh,
  6390.       0DFFh, and 0EFFh (see #3657)
  6391. --------O-E0----CL59-------------------------
  6392. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  6393.     CL = 59h
  6394.     DX = size in bytes
  6395. Return: AX = status
  6396.         FFFFh failed
  6397.         other successful
  6398.         ES:BX -> reserved memory
  6399. --------O-E0----CL71-------------------------
  6400. INT E0 - ConcCP/M,DR Multiuser DOS - EXECUTE DOS-COMPATIBLE FUNCTIONS
  6401.     CL = 71h
  6402.     DS:DX -> parameter block (see !!!)
  6403. Return: AX = status
  6404. --------O-E0----CL86-------------------------
  6405. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  6406.     CL = 86h
  6407.     DS:DX -> queue descriptor (see #3659)
  6408. Return: AX = status (0000h success, FFFFh failure)
  6409.     CX = error code (see #3653)
  6410. SeeAlso: INT E0/CL=87h
  6411.  
  6412. Format of DR Multiuser DOS queue descriptor:
  6413. Offset    Size    Description    (Table 3659)
  6414.  00h  2 WORDs    internal use, initialize to zeros
  6415.  04h    WORD    flags
  6416.  06h  8 BYTEs    queue name
  6417.  0Eh    WORD    length of message
  6418.  10h    WORD    number of messages
  6419.  12h  4 WORDs    internal use, initialize to zeros
  6420.  1Ah    WORD    offset in system area of buffer for messages
  6421. --------O-E0----CL87-------------------------
  6422. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  6423.     CL = 87h
  6424.     DS:DX -> queue parameter block (see #3660)
  6425. Return: AX = status (0000h success, FFFFh failure)
  6426.     CX = error code (see #3653)
  6427. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  6428.  
  6429. Format of DR Multiuser DOS queue parameter block:
  6430. Offset    Size    Description    (Table 3660)
  6431.  00h    WORD    internal use, initialize to zero
  6432.  02h    WORD    queue ID (set by INT E0/CL=87h)
  6433.  04h    WORD    internal use, initialize to zero
  6434.  06h    WORD    offset of queue message buffer
  6435.  08h  8 BYTEs    queue name
  6436. --------O-E0----CL89-------------------------
  6437. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  6438.     CL = 89h
  6439.     DS:DX -> queue parameter block (see #3660)
  6440. Return: AX = status (0000h success, FFFFh failure)
  6441.     CX = error code (see #3653)
  6442. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  6443. --------O-E0----CL8A-------------------------
  6444. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  6445.     CL = 8Ah
  6446.     DS:DX -> queue parameter block (see #3660)
  6447. Return: AX = status (0000h success, FFFFh failure)
  6448.     CX = error code (see #3653)
  6449. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  6450. --------O-E0----CL8B-------------------------
  6451. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  6452.     CL = 8Bh
  6453.     DS:DX -> queue parameter block (see #3660)
  6454. Return: AX = status (0000h success, FFFFh failure)
  6455.     CX = error code (see #3653)
  6456. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  6457. --------O-E0----CL8C-------------------------
  6458. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  6459.     CL = 8Ch
  6460.     DS:DX -> queue parameter block (see #3660)
  6461. Return: AX = status (0000h success, FFFFh failure)
  6462.     CX = error code (see #3653)
  6463. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  6464. --------O-E0----CL8E-------------------------
  6465. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  6466.     CL = 8Eh
  6467.     DX = FFFFh (optional) to force dispatch
  6468. Return: nothing
  6469. Desc:    allow other processes of the same or higher priority to run if they
  6470.       are ready
  6471. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  6472. SeeAlso: INT E0/CL=91h,INT 15/AX=1000h,INT 2F/AX=1680h
  6473. --------O-E0----CL91-------------------------
  6474. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  6475.     CL = 91h
  6476.     DL = new priority (00h highest to FFh lowest)
  6477. Return: nothing
  6478. Note:    sets priority of calling process; transient processes are initialized
  6479.       to priority C8h
  6480. SeeAlso: INT E0/CL=8Eh
  6481. --------O-E0----CL93-------------------------
  6482. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  6483.     CL = 93h
  6484. Return: AX = status
  6485.         0000h successfully detached
  6486.         FFFFh detach failed
  6487. SeeAlso: INT E0/CL=A6h
  6488. --------O-E0----CLA5-------------------------
  6489. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  6490.     CL = A5h
  6491. Return: nothing
  6492. Desc:    attaches the default auxiliary device to the calling process unless
  6493.       it is already attached to another process, in which case the call
  6494.       blocks until the device becomes available
  6495. Note:    this call should be used before attempting to read or write from
  6496.       the AUX device; however, the I/O calls internally call this function
  6497.       to ensure device ownership
  6498. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  6499. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  6500. --------O-E0----CLA6-------------------------
  6501. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  6502.     CL = A6h
  6503. Return: AX = status
  6504.         0000h successfully detached
  6505.         FFFFh detach failed
  6506.     CX = error code
  6507. SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7h
  6508. --------O-E0----CLA7-------------------------
  6509. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  6510.     CL = A7h
  6511. Return: AX = status
  6512.         0000h attached
  6513.         FFFFh unable to attach
  6514. Desc:    attaches the default auxiliary device to the calling process if it is
  6515.       available
  6516. Note:    does not block if the device is already in use
  6517. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  6518. --------O-E0----CLA8-------------------------
  6519. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  6520.     CL = A8h
  6521.     DL = auxiliary device number
  6522. Return: AX = status
  6523.         0000h successful
  6524.         FFFFh failed
  6525.     CX = error code
  6526. Desc:    specify which physical device will become AUX
  6527. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  6528. --------O-E0----CLA9-------------------------
  6529. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  6530.     CL = A9h
  6531. Return: AL = current default auxiliary device number
  6532. Desc:    determine which physical device is currently AUX
  6533. SeeAlso: INT E0/CL=A8h
  6534. --------O-E0----CLAC-------------------------
  6535. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  6536.     CL = ACh
  6537.     DS:DX -> character control block (CHCB) (see #3661)
  6538. Return: AX = number of characters read
  6539. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  6540.       until the buffer is full or the device is no longer ready
  6541. Notes:    if the device is initially not ready, blocks until at least one
  6542.       character has been read
  6543.     if another process owns AUX, this call blocks until the device becomes
  6544.       available
  6545. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  6546.  
  6547. Format of DR Multiuser DOS character control block (CHCB):
  6548. Offset    Size    Description    (Table 3661)
  6549.  00h    DWORD    pointer to character buffer
  6550.  04h    WORD    length of character buffer
  6551. --------O-E0----CLAD-------------------------
  6552. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  6553.     CL = ADh
  6554.     DS:DX -> character control block (see #3661)
  6555. Return: AX = number of characters written
  6556. Note:    does not return until at least one character has been written
  6557. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  6558. --------O-E0----CLB0-------------------------
  6559. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  6560.     CL = B0h
  6561.     DX:DX -> AUX device parameter block (see #3662)
  6562. Return: AX = status
  6563.         0000h successful
  6564.         parameter block updated
  6565.         FFFFh failed
  6566.         CX = error code
  6567. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  6568.  
  6569. Format of DR Multiuser DOS AUX device parameter block:
  6570. Offset    Size    Description    (Table 3662)
  6571.  00h    BYTE    function (00h get, 01h set)
  6572.  01h    BYTE    baud rate (see #3664) FFh = don't change/unknown
  6573.  02h    BYTE    parity (see #3663)
  6574.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  6575.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  6576.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  6577.         FFh unknown/don't change)
  6578.  06h    BYTE    XON character, FFh unknown/don't change
  6579.  07h    BYTE    XOFF character, FFh unknown/don't change
  6580.  
  6581. (Table 3663)
  6582. Values for DR Multiuser DOS AUX parity:
  6583.  00h    none
  6584.  01h    odd
  6585.  02h    none
  6586.  03h    even
  6587.  04h    stick parity bit
  6588.  FFh    don't change/unknown
  6589. SeeAlso: #3662,#3664
  6590.  
  6591. (Table 3664)
  6592. Values for DR Multiuser DOS AUX baud rate:
  6593.  00h    50 baud
  6594.  01h    62.5 baud
  6595.  02h    75 baud
  6596.  03h    110 baud
  6597.  04h    134.5 baud
  6598.  05h    150 baud
  6599.  06h    200 baud
  6600.  07h    300 baud
  6601.  08h    600 baud
  6602.  09h    1200 baud
  6603.  0Ah    1800 baud
  6604.  0Bh    2000 baud
  6605.  0Ch    2400 baud
  6606.  0Dh    3600 baud
  6607.  0Eh    4800 baud
  6608.  0Fh    7200 baud
  6609.  10h    9600 baud
  6610.  11h    19200 baud
  6611.  12h    38400 baud
  6612.  13h    56000 baud
  6613.  14h    76800 baud
  6614.  15h    115200 baud
  6615. SeeAlso: #3662,#3663
  6616. --------O-E0----CLB1-------------------------
  6617. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  6618.     CL = B1h
  6619.     DS:DX -> AUX device control block (see #3665)
  6620. Return: AX = status
  6621.         0000h successful
  6622.         control block updated
  6623.         FFFFh failed
  6624.         CX = error code
  6625. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  6626.  
  6627. Format of DR Multiuser DOS AUX device control block:
  6628. Offset    Size    Description    (Table 3665)
  6629.  00h    BYTE    function (00h get, 01h set)
  6630.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  6631.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  6632.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  6633.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  6634.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  6635.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  6636. --------O-E0----CLB2-------------------------
  6637. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  6638.     CL = B2h
  6639.     DX = duration of break in system ticks (0001h-FFFFh)
  6640. Return: AX = status
  6641.         0000h successful
  6642.         break signal completed
  6643.         FFFFh failed
  6644.         CX = error code
  6645. Note:    if the AUX device is currently owned by another process, this call will
  6646.       block until the device becomes available
  6647. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  6648. --------O-E0----CLBD-------------------------
  6649. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  6650.     CL = BDh
  6651.     DX = delay in system ticks
  6652. Return: after the delay elapses
  6653. Notes:    the length of a system tick is installation-dependent (typically
  6654.       1/50 or 1/60 second); the length may be determined by reading the
  6655.       TICKSPERSEC value from the system data segment
  6656.     the actual delay before the process is rescheduled to run may be up to
  6657.       one tick longer than requested; the delay between rescheduling and
  6658.       actual execution cannot be predicted if higher-priority processes
  6659.       are awaiting a turn at the CPU
  6660. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  6661. --------g-E00000-----------------------------
  6662. INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
  6663.     AX = 0000h
  6664. Return: nothing
  6665. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  6666.       which specially-written .COM or .EXE programs form robots battling
  6667.       each other in a user-defined arena
  6668. --------g-E00001-----------------------------
  6669. INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
  6670.     AX = 0001h
  6671.     BX = speed (0-maximum for robot)
  6672.     CX = direction (0-359 degrees)
  6673. Return: nothing
  6674. Notes:    the speed will change to the specified value at the maximum
  6675.       acceleration the robot is capable of; if the robot is already moving
  6676.       faster than its maximum maneuverability speed, it will not be able
  6677.       to change direction
  6678.     this call also terminates the current robot's turn
  6679. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  6680. --------g-E00002-----------------------------
  6681. INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
  6682.     AX = 0002h
  6683.     BX = direction (0-359 degrees)
  6684.     CX = resolution (0-45 degrees)
  6685. Return: AX = status
  6686.         FFFFh if nothing detected
  6687.         else robot ID (0-19)
  6688.         BX = range to detected robot
  6689. Notes:    the scan searches within CX degrees to either side of the specified
  6690.       direction
  6691.     the scanner will see right through walls, but shells will not pass
  6692.       through walls
  6693.     this call also terminates the current robot's turn
  6694. SeeAlso: AX=0000h,AX=0001h,AX=0003h
  6695. --------g-E00003-----------------------------
  6696. INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
  6697.     AX = 0003h
  6698.     BX = direction (0-359 degrees)
  6699.     CX = range (0-700)
  6700. Return: AX = status (0000h not fired, else ID of shell fired)
  6701. Notes:    up to seven shells may be in flight for a robot at one time; the cannon
  6702.       takes 50 ticks to reload
  6703.     this call also terminates the current robot's turn
  6704. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch
  6705. --------g-E00010-----------------------------
  6706. INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
  6707.     AX = 0010h
  6708. Return: BX = current X coordinate (0-999)
  6709.     CX = current Y coordinate (0-999)
  6710. --------g-E00011-----------------------------
  6711. INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
  6712.     AX = 0011h
  6713.     BX = target robot ID
  6714.     CX = data to be sent
  6715. Return: AX = status (0000h data could not be sent, 0001h data sent)
  6716. Note:    this call costs one unit of battery power
  6717. --------g-E00012-----------------------------
  6718. INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
  6719.     AX = 0012h
  6720. Return: AX = status
  6721.         0000h no data available
  6722.         0001h data retrieved
  6723.         BX = sender's ID
  6724.         CX = data
  6725. Note:    each robot has a 20-word receive FIFO; if the FIFO is full, other
  6726.       robots will be unable to send more data until some is read
  6727. --------g-E00013-----------------------------
  6728. INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
  6729.     AX = 0013h
  6730. Return: BX = damage status
  6731. Note:    the initial value depends on configuration, but is typically 100; as
  6732.       the robot is damaged, it decreases
  6733. --------g-E00014-----------------------------
  6734. INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
  6735.     AX = 0014h
  6736. Return: BX = current speed
  6737. --------g-E00015-----------------------------
  6738. INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
  6739.     AX = 0015h
  6740. Return: BX = current battery charge
  6741. Note:    the battery starts off with 1000 units of charge, and is constantly
  6742.       being charged by solar panels and constantly discharged by motion;
  6743.       the battery is charged at 4 units per turn and discharged at
  6744.       0.1*speed units per turn.
  6745. --------g-E00016-----------------------------
  6746. INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
  6747.     AX = 0016h
  6748. Return: BX:CX = number of game ticks elapsed (not related to real time)
  6749. --------g-E00017-----------------------------
  6750. INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
  6751.     AX = 0017h
  6752.     BX = angle (0-359 degrees)
  6753. Return: BX:CX = 100000*sine of angle
  6754. SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh
  6755. --------g-E00018-----------------------------
  6756. INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
  6757.     AX = 0018h
  6758.     BX = angle (0-359 degrees)
  6759. Return: BX:CX = 100000*cosine of angle
  6760. SeeAlso: AX=0017h,AX=0019h,AX=001Ah
  6761. --------g-E00019-----------------------------
  6762. INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
  6763.     AX = 0019h
  6764.     BX = angle (0-359 degrees)
  6765. Return: BX:CX = 100000*tangent of angle
  6766. SeeAlso: AX=0017h,AX=0018h,AX=001Ah
  6767. --------g-E0001A-----------------------------
  6768. INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
  6769.     AX = 001Ah
  6770.     BX:CX = 100000*tangent of an angle
  6771. Return: AX = angle (-90 to +90 degrees)
  6772. SeeAlso: AX=0017h,AX=0018h,AX=0019h
  6773. --------g-E0001B-----------------------------
  6774. INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER
  6775.     AX = 001Bh
  6776.     BX:CX = value
  6777. Return: BX:CX = square root
  6778. SeeAlso: AX=0017h
  6779. --------g-E0001C-----------------------------
  6780. INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
  6781.     AX = 001Ch
  6782.     BX:CX -> pattern array
  6783. Return: nothing
  6784. Note:    the pattern array consists of five bytes, the low five bits of each
  6785.       specifying the bit pattern for one line of the robot's screen display
  6786. --------g-E0001D-----------------------------
  6787. INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
  6788.     AX = 001Dh
  6789.     BX = flag number (0 or 1)
  6790.     CX = new value (0 reset, 1 set)
  6791. Return: nothing
  6792. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  6793.       which specially-written .COM or .EXE programs form robots battling
  6794.       each other in a user-defined arena
  6795. Note:    the two flag markers may be used for any purpose, typically for
  6796.       debugging to provide a visual display of progress
  6797. --------g-E0001E-----------------------------
  6798. INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
  6799.     AX = 001Eh
  6800.     BX = number of armor units to buy (negative to sell)
  6801. Return: nothing
  6802. Note:    each armor unit is worth 50 battery units; the robot's armor rating
  6803.       will not go above its initial rating, so attempts to purchase more
  6804.       will waste battery units
  6805. SeeAlso: AX=001Fh
  6806. --------g-E0001F-----------------------------
  6807. INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
  6808.     AX = 001Fh
  6809.     BX = number of shells to buy
  6810. Return: nothing
  6811. Note:    each shell costs ten battery units
  6812. SeeAlso: AX=001Eh,AX=0020h
  6813. --------g-E00020-----------------------------
  6814. INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
  6815.     AX = 0020h
  6816. Return: BX = number of shells remaining
  6817. SeeAlso: AX=001Fh
  6818. --------g-E00021-----------------------------
  6819. INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
  6820.     AX = 0021h
  6821.     BX:CX -> 81-byte buffer for map (see #3666)
  6822. Return: buffer filled with 9x9 area of map centered on robot's position
  6823.  
  6824. (Table 3666)
  6825. Values for PCROBOTS map squares:
  6826.  2Eh '.' empty square
  6827.  44h 'D' damaging trap
  6828.  52h 'R' refueling point
  6829.  58h 'X' wall
  6830. --------g-E00022-----------------------------
  6831. INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
  6832.     AX = 0022h
  6833.     BX = new state (0000h become visible, 0001h become invisible)
  6834. Return: nothing
  6835. Notes:    this function has no effect if the robot is not capable of invisibility
  6836.     the robot can only stay invisible for 100 turns, after which it will
  6837.       automatically become visible; it must also be remain visible for
  6838.       as many turns as it was invisible before it can turn invisible
  6839.       again
  6840. SeeAlso: AX=0024h,AX=0080h
  6841. --------g-E00023-----------------------------
  6842. INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  6843.     AX = 0023h
  6844. Return: BX = status of last shell to land
  6845.         0000h missed completely
  6846.         0001h hit a wall
  6847.         0002h hit a robot within 50-square radius
  6848.         0003h hit a robot within 25-square radius
  6849.         0004h hit a robot within 5-square radius
  6850. --------g-E00024-----------------------------
  6851. INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
  6852.     AX = 0024h
  6853. Return: BX = visibility (0000h visible, 0001h invisible)
  6854. SeeAlso: AX=0022h,AX=0080h
  6855. --------g-E00025-----------------------------
  6856. INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
  6857.     AX = 0025h
  6858.     BX = Y
  6859.     CX = X
  6860. Return: AX = angle (arctangent of Y/X)
  6861. --------g-E00026-----------------------------
  6862. INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
  6863.     AX = 0026h
  6864. Return: AX = robot ID
  6865. --------g-E00027-----------------------------
  6866. INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
  6867.     AX = 0027h
  6868.     BX:CX = ASCIZ IFF string
  6869. Return: nothing
  6870. Note:    the IFF string may only be set once
  6871. SeeAlso: AX=0028h,AX=0029h
  6872. --------g-E00028-----------------------------
  6873. INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
  6874.     AX = 0028h
  6875.     BX = robot ID to test
  6876. Return: AX = status
  6877.         0000h IFF strings match
  6878.         0001h IFF strings differ or invalid robot ID
  6879. SeeAlso: AX=0027h
  6880. --------g-E00029-----------------------------
  6881. INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
  6882.     AX = 0029h
  6883.     BX:CX -> ASCIZ name string
  6884. Return: nothing
  6885. Note:    the name may only be set once
  6886. SeeAlso: AX=0027h,AX=002Ah
  6887. --------g-E0002A-----------------------------
  6888. INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
  6889.     AX = 002Ah
  6890.     BX:CX -> ASCIZ name string
  6891.     DX = first ID to check
  6892. Return: AX = robot ID or FFFFh if no robot with specified name
  6893. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  6894. --------g-E0002B-----------------------------
  6895. INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
  6896.     AX = 002Bh
  6897. Return: AX = team ID (0-2) or FFFFh if 'loner'
  6898. SeeAlso: AX=0029h
  6899. --------g-E0002C-----------------------------
  6900. INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  6901.     AX = 002Ch
  6902.     BX = shell ID
  6903. Return: AX = status
  6904.         0000h missed completely
  6905.         0001h hit a wall
  6906.         0002h hit a robot within a 50-square radius
  6907.         0003h hit a robot within a 25-square radius
  6908.         0004h hit a robot within a 5-square radius
  6909.         0005h shell not known (too old or not yet fired)
  6910.         0006h shell still in flight
  6911. SeeAlso: AX=0003h
  6912. --------g-E0002D-----------------------------
  6913. INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
  6914.     AX = 002Dh
  6915.     BX:CX -> X word variable
  6916. Return: AX = status (0001h OK, 0000h problem with address)
  6917. Note:    after this call, PCROBOTS will automatically update the specified
  6918.       word whenever the robot moves
  6919. SeeAlso: AX=002Eh
  6920. --------g-E0002E-----------------------------
  6921. INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
  6922.     AX = 002Eh
  6923.     BX:CX -> Y word variable
  6924. Return: AX = status (0001h OK, 0000h problem with address)
  6925. Note:    after this call, PCROBOTS will automatically update the specified
  6926.       word whenever the robot moves
  6927. SeeAlso: AX=002Dh
  6928. --------g-E00080-----------------------------
  6929. INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
  6930.     AX = 0080h
  6931.     BX = basic configuration (see #3667)
  6932.     CX = advanced configuration (see #3668)
  6933. Return: AX = status (0001h OK, 0000h not first call in program)
  6934. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  6935.       which specially-written .COM or .EXE programs form robots battling
  6936.       each other in a user-defined arena
  6937. Notes:    a maximum of ten points may be allocated to the robot; if you attempt
  6938.       to allocate more, some items will be given a value of zero.  If this
  6939.       function is not called, each attribute is set to the default value
  6940.       of 2.
  6941.     if the invisibility option is chosen, the robot will start with only
  6942.       900 cannon shells instead of the default 1000
  6943.  
  6944. Bitfields for PCROBOTS basic configuration:
  6945. Bit(s)    Description    (Table 3667)
  6946.  0-3    maximum speed (0-4 = 50,75,100,150,200)
  6947.  4-7    maneuverability (0-4 = 20%,35%,50%,75%,100%)
  6948.  8-11    cannon range (0-4 = 300,500,700,1000,1500)
  6949.  12-15    robot armor (0-4 = 50,75,100,150,200)
  6950.  
  6951. Bitfields for PCROBOTS advanced configuration:
  6952. Bit(s)    Description    (Table 3668)
  6953.  0-2    robot acceleration (0-4 = 5,7,10,15,20)
  6954.  3    capable of invisibility
  6955. --------r-E1---------------------------------
  6956. INT E1 - IBM ROM BASIC - used while in interpreter
  6957. Notes:    called by ROM BASIC
  6958.     BASIC.COM/BASICA.COM do not restore vector on termination
  6959. --------N-E1---------------------------------
  6960. INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!)
  6961. Desc:    points at a data table
  6962. SeeAlso: INT E2
  6963. --------O-E1---------------------------------
  6964. INT E1 - MP/M-86, - ALTERNATE CP/M-86 FUNCTION CALLS
  6965.     CL = function number (see #3651,#3652)
  6966.     DS,DX = parameters
  6967. Return: as appropriate for function
  6968.     CX is often the error code (see #3653)
  6969. Desc:    used by some applications which alter CP/M functions while running a
  6970.       child program, to store the original INT E0 vector before
  6971.       intercepting INT E0
  6972. SeeAlso: #3651 at INT E0"CP/M"
  6973. ----------E1---------------------------------
  6974. INT E1 - DeskMate (Tandy) - TASK DATA SEGMENTS (NOT A VECTOR!)
  6975. Desc:    used to store data; the    low word of the vector is the data segment for
  6976.       the first task; the high word is the data segment of the second task
  6977.       (DeskMate supports 2-way task switching between small- or
  6978.       medium-model applications)
  6979. Program: DeskMate is a proprietary GUI from Tandy distributed with several
  6980.       models of the Tandy 1000's, 2500's, 3000's, and laptops.  Retail
  6981.       and runtime versions also exist.  Some Tandy's are designed to
  6982.       boot directly into DeskMate.
  6983. SeeAlso: INT E0"DeskMate"
  6984. --------r-E2---------------------------------
  6985. INT E2 - IBM ROM BASIC - used while in interpreter
  6986. Notes:    called by ROM BASIC
  6987.     BASIC.COM/BASICA.COM do not restore vector on termination
  6988. --------N-E2---------------------------------
  6989. INT E2 - PC Cluster Program - RELOCATED INT 1C
  6990. SeeAlso: INT 1C
  6991. --------r-E3---------------------------------
  6992. INT E3 - IBM ROM BASIC - used while in interpreter
  6993. Notes:    called by ROM BASIC
  6994.     BASIC.COM/BASICA.COM do not restore vector on termination
  6995. --------r-E40005-----------------------------
  6996. INT E4 - Logitech Modula v2.0 - MonitorEntry
  6997.     AX = 0005h
  6998.     BX = priority
  6999. Return: nothing
  7000. SeeAlso: AX=0006h
  7001. --------r-E40006-----------------------------
  7002. INT E4 - Logitech Modula v2.0 - MonitorExit
  7003.     AX = 0006h
  7004. Return: nothing
  7005. SeeAlso: AX=0005h
  7006. --------r-E4---------------------------------
  7007. INT E4 - IBM ROM BASIC - used while in interpreter
  7008. Notes:    called by ROM BASIC
  7009.     BASIC.COM/BASICA.COM do not restore vector on termination
  7010. --------r-E5---------------------------------
  7011. INT E5 - IBM ROM BASIC - used while in interpreter
  7012. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7013.     BASIC.COM/BASICA.COM do not restore vector on termination
  7014. --------r-E6---------------------------------
  7015. INT E6 - IBM ROM BASIC - used while in interpreter
  7016. Notes:    called by ROM BASIC
  7017.     BASIC.COM/BASICA.COM do not restore vector on termination
  7018. --------O-E600-------------------------------
  7019. INT E6 - Linux DOSEMU - INSTALLATION CHECK
  7020.     AH = 00h
  7021. Return: AX = AA55h if installed
  7022.         BH = major version number
  7023.         BL = minor version number
  7024.         CX = patchlevel
  7025. Notes:    check for the BIOS date string "02/25/93" at F000:FFF5 before
  7026.       calling this function.  In addition, the segment address of this
  7027.       vector should be F000h (for existing versions of DOSemu, the
  7028.       vector is F000h:0E60h)
  7029. SeeAlso: AH=FFh
  7030. --------O-E601-------------------------------
  7031. INT E6 - Linux DOSEMU - REGISTER DUMP
  7032.     AH = 01h
  7033. Return: nothing
  7034. SeeAlso: AH=00h
  7035. --------O-E602-------------------------------
  7036. INT E6 - Linux DOSEMU - SET I/O PORT PERMISSIONS
  7037.     AH = 02h
  7038.     BX = base I/O port address
  7039.     CX = number of consecutive I/O ports
  7040.     CF set to allow DOS to use ports
  7041.     CF clear if DOS should not be allowed to use ports
  7042. Return: nothing
  7043. SeeAlso: AH=00h
  7044. --------O-E605-------------------------------
  7045. INT E6 - Linux DOSEMU - STARTUP BANNER
  7046.     AH = 05h
  7047. Return: nothing
  7048. SeeAlso: AH=00h
  7049. --------O-E612-------------------------------
  7050. INT E6 - Linux DOSEMU - SET "HOGTHRESHOLD"
  7051.     AH = 12h
  7052.     BX = new "hogthreshold" (00h-99h)
  7053. Return: nothing
  7054. Desc:    specify how much CPU time DOSEMU may use
  7055. SeeAlso: AH=00h
  7056. --------O-E622-------------------------------
  7057. INT E6 - Linux DOSEMU - GET EMS STATUS
  7058.     AH = 22h
  7059. Return: ???
  7060. SeeAlso: AH=00h
  7061. --------O-E630-------------------------------
  7062. INT E6 - Linux DOSEMU - SET BOOTDISK FLAG
  7063.     AH = 30h
  7064.     BX = new flag state (0 = false, 1 = true)
  7065. Return: nothing
  7066. SeeAlso: AH=00h
  7067. --------O-E650-------------------------------
  7068. INT E6 - Linux DOSEMU - EXECUTE UNIX COMMAND
  7069.     AH = 50h
  7070.     ES:DX -> ASCIZ Unix command
  7071. SeeAlso: AH=00h,AH=51h
  7072. --------O-E651-------------------------------
  7073. INT E6 - Linux DOSEMU - EXECUTE DOS COMMAND FROM UNIX
  7074.     AH = 51h
  7075.     ES:DX -> ASCIZ DOS command
  7076. SeeAlso: AH=00h,AH=50h
  7077. --------O-E680-------------------------------
  7078. INT E6 - Linux DOSEMU - GET CURRENT UNIX DIRECTORY
  7079.     AH = 80h
  7080. Return: ES:DX -> current Unix directory
  7081.     AX = length of current directory name
  7082. SeeAlso: AH=00h,AH=81h
  7083. --------O-E681-------------------------------
  7084. INT E6 - Linux DOSEMU - CHANGE CURRENT UNIX DIRECTORY
  7085.     AH = 81h
  7086.     ES:DX -> ASCIZ directory name
  7087. Return: nothing
  7088. SeeAlso: AH=00h,AH=80h
  7089. --------O-E6FF-------------------------------
  7090. INT E6 - Linux DOSEMU - TERMINATE
  7091.     AH = FFh
  7092. SeeAlso: AH=00h
  7093. --------r-E7---------------------------------
  7094. INT E7 - IBM ROM BASIC - used while in interpreter
  7095. Notes:    called by ROM BASIC
  7096.     BASIC.COM/BASICA.COM do not restore vector on termination
  7097. --------r-E8---------------------------------
  7098. INT E8 - IBM ROM BASIC - used while in interpreter
  7099. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7100.     BASIC.COM/BASICA.COM do not restore vector on termination
  7101. --------r-E9---------------------------------
  7102. INT E9 - IBM ROM BASIC - used while in interpreter
  7103. Notes:    called by ROM BASIC
  7104.     BASIC.COM/BASICA.COM do not restore vector on termination
  7105. --------r-EA---------------------------------
  7106. INT EA - IBM ROM BASIC - used while in interpreter
  7107. Notes:    called by ROM BASIC
  7108.     BASIC.COM/BASICA.COM do not restore vector on termination
  7109. --------r-EB---------------------------------
  7110. INT EB - IBM ROM BASIC - used while in interpreter
  7111. Notes:    called by ROM BASIC
  7112.     BASIC.COM/BASICA.COM do not restore vector on termination
  7113. --------r-EC---------------------------------
  7114. INT EC - IBM ROM BASIC - used while in interpreter
  7115. Notes:    called by ROM BASIC
  7116.     BASIC.COM/BASICA.COM do not restore vector on termination
  7117. --------N-EC---------------------------------
  7118. INT EC - used by Alloy NTNX
  7119. --------r-EC---------------------------------
  7120. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  7121.     AX = function number (0000h to 0140h)
  7122.     STACK:    DWORD address to return to
  7123.         any arguments required by function
  7124. Return: STACK:    return address popped, but otherwise unchanged
  7125. Desc:    this is the interface from applications to the runtime system by Exact
  7126.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  7127.       it can provide DLL-style capabilities under MS-DOS.
  7128. Note:    the interrupt handler removes the return address and flags placed on
  7129.       the stack by the INT EC, then jumps to the appropriate function
  7130. --------r-ED---------------------------------
  7131. INT ED - IBM ROM BASIC - used while in interpreter
  7132. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7133.     BASIC.COM/BASICA.COM do not restore vector on termination
  7134.     INT 80 through INT ED are modified but not restored by Direct Access
  7135.       v4.0, and may be left dangling by other programs written with the
  7136.       same version of compiled BASIC
  7137. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  7138. --------r-EE---------------------------------
  7139. INT EE - IBM ROM BASIC - used while in interpreter
  7140. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7141.     BASIC.COM/BASICA.COM do not restore vector on termination
  7142. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  7143. --------r-EF---------------------------------
  7144. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  7145. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  7146. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  7147. --------O-EF----CX0473-----------------------
  7148. INT EF - GEM - INTERFACE
  7149.     CX = 0473h
  7150.     DS:DX -> GEM parameter block
  7151. --------r-F0---------------------------------
  7152. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  7153. Note:    BASICA.COM does not restore vector on termination
  7154. SeeAlso: INT EF"BASIC"
  7155. --------*-F1---------------------------------
  7156. INT F1 - reserved for user interrupt
  7157. --------s-F1---------------------------------
  7158. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  7159.     DS:BX -> '$'-terminated text string
  7160. Return: nothing
  7161. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  7162. --------s-F1---------------------------------
  7163. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  7164. SeeAlso: INT F2"SPEECH"
  7165. --------U-F1---------------------------------
  7166. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  7167. Return: AX:BX -> data area
  7168. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  7169.       and COM2 in software
  7170. Note:    The installation check consists of testing for the following signature
  7171.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  7172.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  7173.       version number
  7174. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  7175. --------N-F1---------------------------------
  7176. INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
  7177. Note:    if this vector contains the value 5774654Eh ("NetW"), the remote boot
  7178.       BIOS extension is active, and access to the floppy disk is redirected
  7179.       to an image file in the server's SYS:LOGIN directory
  7180. SeeAlso: INT F2"NetWare",INT F3"NetWare",INT F4"NetWare"
  7181. --------v-F1---------------------------------
  7182. INT F1 - VIRUS - "Violetta" - ???
  7183. Note:    used but not chained by virus
  7184. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  7185. ----------F101-------------------------------
  7186. INT F1 - Common ISDN API (CAPI) v1.1 - "API-REGISTER" - INITIALIZE CAPI
  7187.     AH = 01h
  7188.     ES:BX -> buffer for CAPI's use (refer to note below)
  7189.     CX = minimum number of pending messages
  7190.     DX = maximum simultaneous Level 3 connections
  7191.     SI = maximum concurrent received B3 data blocks
  7192.     DI = maximum B3 data block size
  7193. Return: AX = CAPI-assigned application ID
  7194.         0000h on error
  7195.         BX = error number
  7196.             1001h registration error
  7197. Range:    INT 00 to INT FF, selectable by program parameter
  7198. Notes:    the caller is required to provide at least 512 bytes of stack space
  7199.     the CAPI interrupt handler begins with a header which is nearly
  7200.       identical to the IBM Interrupt Sharing Protocol header
  7201.       (see #2223 at INT 2D"AMIS"), except that the short jump instruction
  7202.       to a hardware reset handler at offset 09h is replaced by the
  7203.       signature bytes "IA"
  7204.     the maximum length of a message is fixed at 180 bytes; the standard
  7205.       document suggests using CX=10, DI=1, SI=7, and DI=130 for
  7206.       applications which use only a single connection and standard
  7207.       protocols
  7208.     the total size of the application-provided buffer must be at least
  7209.       180*CX + DX*SI*DI bytes
  7210. SeeAlso: AH=02h,INT F1/AL=01h
  7211. Index:    installation check;Common ISDN API
  7212. ----------F1--01-----------------------------
  7213. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_REGISTER" - INITIALIZE CAPI
  7214.     AL = 01h
  7215.     AH = CAPI version number * 10 (14h for v2.0)
  7216.     ES:BX -> buffer for CAPI's use (refer to note below)
  7217.     CX = number of bytes for message buffer
  7218.     DX = maximum simultaneous logical (Level 3) connections
  7219.     SI = maximum concurrent received B3 data blocks (min. 2)
  7220.     DI = maximum B3 data block size (up to 2048 bytes)
  7221. Return: AX = CAPI-assigned application ID
  7222.         0000h on error
  7223.         BX = error number
  7224.             1001h registration error
  7225. Range:    INT 00 to INT FF, selectable by program parameter
  7226. Notes:    the caller is required to provide at least 512 bytes of stack space
  7227.     the CAPI interrupt handler begins with a header (see #3669) which is
  7228.       nearly identical to the IBM Interrupt Sharing Protocol header
  7229.       (see #2223 at INT 2D"AMIS"), except that the short jump instruction
  7230.       to a hardware reset handler at offset 09h is zeroed out and the
  7231.       entire header is inexplicably shortened by one byte
  7232.     the standard document suggests using 1024 + (1024*DX) bytes for the
  7233.       message buffer for typical applications
  7234.     the total size of the application-provided buffer must be at least
  7235.       CX + DX*SI*DI bytes
  7236. SeeAlso: AH=01h,INT F1/AL=02h
  7237. Index:    installation check;Common ISDN API
  7238.  
  7239. Format of CAPI v2.0 interrupt handler entry point:
  7240. Offset    Size    Description    (Table 3669)
  7241.  00h  2 BYTEs    short jump to actual start of interrupt handler, immediately
  7242.           following this data block (EBh 0Fh)
  7243.  02h    DWORD    address of next handler in chain
  7244.  06h    WORD    signature 424Bh
  7245.  08h    BYTE    EOI flag (80h)
  7246.         80h primary hardware interrupt handler (will issue EOI)
  7247.  09h  2 BYTEs    reserved (0)
  7248.         (is short jump to hardware reset routine in ISP header)
  7249.  0Bh  4 BYTEs    signature "CAPI"
  7250.  0Fh  2 BYTEs    two-digit CAPI version number in ASCII ('20')
  7251. SeeAlso: #2223 at INT 2D
  7252. ----------F102-------------------------------
  7253. INT F1 - Common ISDN API (CAPI) v1.1 - "API-RELEASE" - UNREGISTER FROM CAPI
  7254.     AH = 02h
  7255.     DX = application ID (see AH=01h)
  7256. Return: AX = status (0000h,1002h) (see #3670)
  7257. Notes:    the caller is required to provide at least 512 bytes of stack space
  7258. SeeAlso: AH=01h,INT F1/AL=02h
  7259.  
  7260. (Table 3670)
  7261. Values for CAPI v1.1 error code:
  7262.  0000h    successful
  7263.  1001h    registration error
  7264.  1002h    invalid application ID
  7265.  1003h    message too small or incorrectly coded message number
  7266.  1004h    invalid command or subcommand
  7267.  1005h    message queue full
  7268.  1006h    message queue empty
  7269.  1007h    message(s) lost due to queue overflow
  7270.  1008h    error uninstalling
  7271. SeeAlso: #3671
  7272. ----------F1--02-----------------------------
  7273. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_RELEASE" - UNREGISTER FROM CAPI
  7274.     AL = 02h
  7275.     AH = CAPI version number * 10 (14h for v2.0)
  7276.     DX = application ID (see INT F1/AL=01h)
  7277. Return: AX = status (0000h,11xxh) (see #3671)
  7278. Notes:    the caller is required to provide at least 512 bytes of stack space
  7279. SeeAlso: AH=02h,INT F1/AL=01h,INT F1/AL=03h
  7280.  
  7281. (Table 3671)
  7282. Values for CAPI v2.0 error code:
  7283.  0000h    successful
  7284.  1001h    too many applications
  7285.  1002h    logical block size too small (must be at least 128 bytes)
  7286.  1003h    buffer > 64K
  7287.  1004h    message buffer too small (minimum 1024 bytes)
  7288.  1005h    too many logical connections requested
  7289.  1006h    reserved
  7290.  1007h    could not register because CAPI busy, try again
  7291.  1008h    OS resource unavailable (out of memory, etc.)
  7292.  1009h    COMMON-ISDN-API not installed
  7293.  100Ah    controller does not support external equipment
  7294.  100Bh    controller supports only external equipment
  7295.  1101h    invalid application ID
  7296.  1102h    illegal command or subcommand, or message too short
  7297.  1103h    message queue full
  7298.  1104h    queue empty
  7299.  1105h    queue overflowed (message lost)
  7300.  1106h    unknown notification parameter
  7301.  1107h    could not accept message because CAPI busy, try again
  7302.  1108h    OS resource unavailable (out of memory, etc.)
  7303.  1109h    COMMON-ISDN-API not installed
  7304.  110Ah    controller does not support external equipment
  7305.  110Bh    controller supports only external equipment
  7306.  2001h    message not supported in current state
  7307.  2002h    illegal controller/PLCI/NCCI
  7308.  2003h    out of PLCI
  7309.  2004h    out of NCCI
  7310.  2005h    out of LISTEN
  7311.  2006h    out of FAX resources (T.30 protocol)
  7312.  2007h    illegal message parameter coding
  7313.  3001h    unsupported B1 protocol
  7314.  3002h    unsupported B2 protocol
  7315.  3003h    unsupported B3 protocol
  7316.  3004h    unsupported B1 protocol parameter
  7317.  3005h    unsupported B2 protocol parameter
  7318.  3006h    unsupported B3 protocol parameter
  7319.  3007h    unsupported B protocol combination
  7320.  3008h    NCPI not supported
  7321.  3009h    unknown CIP value
  7322.  300Ah    unsupported flags (reserved bits set)
  7323.  300Bh    unsupported facility
  7324.  300Ch    data length not supported by current protocol
  7325.  300Dh    reset procedure not supported by current protocol
  7326. SeeAlso: #3670
  7327. ----------F103-------------------------------
  7328. INT F1 - Common ISDN API (CAPI) v1.1 - "API-PUT-MESSAGE"
  7329.     AH = 03h
  7330.     DX = application ID (see AH=01h)
  7331.     ES:BX -> message to be sent (see #3672)
  7332. Return: AX = status (0000h,1002h,1003h,1004h,1005h) (see #3670)
  7333. Notes:    the caller is required to provide at least 512 bytes of stack space
  7334.     the message buffer may be reused as soon as this call returns
  7335. SeeAlso: AH=01h,AH=04h,INT F1/AL=03h
  7336.  
  7337. Format of CAPI message:
  7338. Offset    Size    Description    (Table 3672)
  7339.  00h    WORD    total message length, including header
  7340.  02h    WORD    application ID (see AH=01h)
  7341.  04h    BYTE    command (see #3673,#3674)
  7342.  05h    BYTE    subcommand (see #3673,#3674)
  7343.  06h    WORD    message sequence number
  7344.         0000h-7FFFh messages from application to CAPI (and replies)
  7345.         8000h-FFFFh messages from CAPI to application (and replies)
  7346.  08h    var    message data (max 172 bytes for v1.1 only)
  7347.  
  7348. (Table 3673)
  7349. Values for CAPI v1.1 message command/subcommand:
  7350. Cmd/SubCmd    Name            Description
  7351.  01h/00h    RESET-B3-REQ    request resetting of a Level 3 connection
  7352.  01h/01h    RESET-B3-CONF    confirm Level 3 connection reset
  7353.  01h/02h    RESET-B3-IND    indication from CAPI that Level 3 conn. reset
  7354.  01h/03h    RESET-B3-RESP    confirm receipt of RESET-B3-IND
  7355.  02h/00h    CONNECT-REQ        establish B-channel connection
  7356.  02h/01h    CONNECT-CONF    confirm start of connection establishment
  7357.  02h/02h    CONNECT-IND        indication from CAPI of incoming connection
  7358.  02h/03h    CONNECT-RESP    accept incoming connection
  7359.  03h/02h    CONNECT-ACTIVE-IND    indication that B-channel connection complete
  7360.  03h/03h    CONNECT-ACTIVE-RESP    confirm connection-complete indication
  7361.  04h/00h    DISCONNECT-REQ    request shutdown of B-channel connection
  7362.  04h/01h    DISCONNECT-CONF    confirm shutdown of B-channel connection
  7363.  04h/02h    DISCONNECT-IND    indication that B-channel is shutting down
  7364.  04h/03h    DISCONNECT-RESP    confirm that application knows of shutdown
  7365.  05h/00h    LISTEN-REQ        enable indication of incoming connections
  7366.  05h/01h    LISTEN-CONF        confirm enabling of incoming conn. indication
  7367.  06h/00h    GET-PARAMS-REQ    request B-channel parameters
  7368.  06h/01h    GET-PARAMS-CONF    return B-channel parameters
  7369.  07h/00h    INFO-REQ        set B-channel info to be signalled to app
  7370.  07h/01h    INFO-CONF        confirm B-channel info signalling
  7371.  07h/02h    INFO-IND        signal B-channel events to application
  7372.  07h/03h    INFO-CONF        confirm receipt of INFO-IND
  7373.  08h/00h    DATA-REQ        send D-channel data
  7374.  08h/01h    DATA-CONF        confirm receipt of DATA-REQ
  7375.  08h/02h    DATA-IND        receive D-channel data
  7376.  08h/03h    DATA-RESP        confirm receipt fo DATA-IND
  7377.  09h/00h    CONNECT-INFO-REQ    request connection information
  7378.  09h/01h    CONNECT-INFO-CONF    return connection information
  7379.  40h/00h    SELECT-B2-PROTOCOL-REQ  select Level 2 protocol
  7380.  40h/01h    SELECT-B2-PROTOCOL-CONF confirm receipt of SELECT-B2-PROTOCOL-REQ
  7381.  80h/00h    SELECT-B3-PROTOCOL-REQ  select Level 3 protocol
  7382.  80h/01h    SELECT-B3-PROTOCOL-CONF confirm receipt of SELECT-B3-PROTOCOL-REQ
  7383.  81h/00h    LISTEN-B3-REQ    enable notification of incoming Level 3 calls
  7384.  81h/01h    LISTEN-B3-CONF    confirm receipt of LISTEN-B3-REQ
  7385.  82h/00h    CONNECT-B3-REQ    establish Level 3 connection
  7386.  82h/01h    CONNECT-B3-CONF    confirm start of connection establishment
  7387.  82h/02h    CONNECT-B3-IND    indication of incoming Level 3 connection
  7388.  82h/03h    CONNECT-B3-RESP    accept incoming connection
  7389.  83h/02h    CONNECT-B3-ACTIVE-IND  indication that Level 3 connection complete
  7390.  83h/03h    CONNECT-B3-ACTIVE-RESP confirm connection-complete indication
  7391.  84h/00h    DISCONNECT-B3-REQ    request shutdown of Level 3 connection
  7392.  84h/01h    DISCONNECT-B3-CONF    confirm shutdown of Level 3 connection
  7393.  84h/02h    DISCONNECT-B3-IND    indication that Level 3 is shutting down
  7394.  84h/03h    DISCONNECT-B3-RESP    confirm that application knows of shutdown
  7395.  85h/00h    GET-B3-PARAMS-REQ    request Level 3 parameters
  7396.  85h/01h    GET-B3-PARAMS-CONF    return Level 3 parameters
  7397.  86h/00h    DATA-B3-REQ        send data on Level 3
  7398.  86h/01h    DATA-B3-CONF    confirm sending of Level 3 data
  7399.  86h/02h    DATA-B3-IND        indication of incoming Level 3 data
  7400.  86h/03h    DATA-B3-RESP    confirm receipt of Level 3 data
  7401.  87h/02h    HANDSET-IND        indication of Handset events
  7402.  87h/03h    HANDSET-RESP    confirm receipt of Handset event
  7403.  FFh/00h    MANUFACTURER-REQ    vendor-specific request
  7404.  FFh/01h    MANUFACTURER-CONF    vendor-specific request confirmation
  7405.  FFh/02h    MANUFACTURER-IND    vendor-specific notification
  7406.  FFh/03h    MANUFACTURER-RESP    vendor-specific notification confirmation
  7407. SeeAlso: #3672,#3674
  7408. ----------F1--03-----------------------------
  7409. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_PUT_MESSAGE"
  7410.     AL = 03h
  7411.     AH = CAPI version number * 10 (14h for v2.0)
  7412.     DX = application ID (see INT F1/AL=01h)
  7413.     ES:BX -> message to be sent (see #3672)
  7414. Return: AX = status (0000h,11xxh) (see #3671)
  7415. Notes:    the caller is required to provide at least 512 bytes of stack space
  7416.     the message buffer may be reused as soon as this call returns
  7417. SeeAlso: AH=03h,INT F1/AL=01h,INT F1/AL=04h
  7418.  
  7419. (Table 3674)
  7420. Values for CAPI v2.0 message command/subcommand:
  7421. Cmd/SubCmd    Name            Description
  7422.  01h/80h    ALERT_REQ        indicate compatibility with incoming calls
  7423.  01h/81h    ALERT_CONF        confirm receipt of ALERT_REQ
  7424.  02h/80h    CONNECT_REQ        establish B-channel connection
  7425.  02h/81h    CONNECT_CONF    confirm start of connection establishment
  7426.  02h/82h    CONNECT_IND        indication from CAPI of incoming connection
  7427.  02h/83h    CONNECT_RESP    accept incoming connection
  7428.  03h/82h    CONNECT_ACTIVE_IND    indication that B-channel connection complete
  7429.  03h/83h    CONNECT_ACTIVE_RESP    confirm connection-complete indication
  7430.  04h/80h    DISCONNECT_REQ    request shutdown of B-channel connection
  7431.  04h/81h    DISCONNECT_CONF    confirm shutdown of B-channel connection
  7432.  04h/82h    DISCONNECT_IND    indication that B-channel is shutting down
  7433.  04h/83h    DISCONNECT_RESP    confirm that application knows of shutdown
  7434.  05h/80h    LISTEN_REQ        enable signalling on incoming events
  7435.  05h/81h    LISTEN_CONF        confirm enabling of incoming event signalling
  7436.  08h/80h    INFO_REQ        send protocol information for physical connect
  7437.  08h/81h    INFO_CONF        confirm INFO_REQ
  7438.  08h/82h    INFO_IND        indicate event for physical connection
  7439.  08h/83h    INFO_CONF        confirm receipt of INFO_IND
  7440.  41h/80h    SELECT_B_PROTOCOL_REQ   change protocol on already-active connect
  7441.  41h/81h    SELECT_B_PROTOCOL_CONF  confirm receipt of SELECT_B_PROTOCOL_REQ
  7442.  80h/80h    FACILITY_REQ    control optional facilities
  7443.  80h/81h    FACILITY_CONF    confirm acceptance of FACILITY_REQ
  7444.  80h/82h    FACILITY_IND    indicate facility-dependent event
  7445.  80h/83h    FACILITY_RESP    confirm receipt of FACILITY_IND
  7446.  82h/80h    CONNECT_B3_REQ    establish Level 3 connection
  7447.  82h/81h    CONNECT_B3_CONF    confirm start of connection establishment
  7448.  82h/82h    CONNECT_B3_IND    indication of incoming Level 3 connection
  7449.  82h/83h    CONNECT_B3_RESP    accept incoming connection
  7450.  83h/82h    CONNECT_B3_ACTIVE_IND  indication that Level 3 connection complete
  7451.  83h/83h    CONNECT_B3_ACTIVE_RESP confirm connection-complete indication
  7452.  84h/80h    DISCONNECT_B3_REQ    request shutdown of Level 3 connection
  7453.  84h/81h    DISCONNECT_B3_CONF    confirm shutdown of Level 3 connection
  7454.  84h/82h    DISCONNECT_B3_IND    indication that Level 3 is shutting down
  7455.  84h/83h    DISCONNECT_B3_RESP    confirm that application knows of shutdown
  7456.  85h/80h    GET_B3_PARAMS_REQ    request Level 3 parameters
  7457.  85h/81h    GET_B3_PARAMS_CONF    return Level 3 parameters
  7458.  86h/80h    DATA_B3_REQ        send data on Level 3
  7459.  86h/81h    DATA_B3_CONF    confirm sending of Level 3 data
  7460.  86h/82h    DATA_B3_IND        indication of incoming Level 3 data
  7461.  86h/83h    DATA_B3_RESP    confirm receipt of Level 3 data
  7462.  87h/80h    RESET_B3_REQ    request resetting of a logical connection
  7463.  87h/81h    RESET_B3_CONF    confirm logical connection reset
  7464.  87h/82h    RESET_B3_IND    indication from CAPI that logical conn. reset
  7465.  87h/83h    RESET_B3_RESP    confirm receipt of RESET_B3_IND
  7466.  88h/82h    CONNECT_B3_T90_ACTIVE_IND  indicate switch from T.70 to T.90
  7467.  88h/83h    CONNECT_B3_T90_ACTIVE_RESP confirm receipt of T90_ACTIVE_IND
  7468.  FFh/80h    MANUFACTURER_REQ    vendor-specific request
  7469.  FFh/81h    MANUFACTURER_CONF    vendor-specific request confirmation
  7470.  FFh/82h    MANUFACTURER_IND    vendor-specific notification
  7471.  FFh/83h    MANUFACTURER_RESP    vendor-specific notification confirmation
  7472. SeeAlso: #3672,#3673
  7473. ----------F104-------------------------------
  7474. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MESSAGE"
  7475.     AH = 04h
  7476.     DX = application ID (see AH=01h)
  7477. Return: AX = status (0000h,1002h,1006h,1007h) (see #3670)
  7478.     ES:BX -> message if successful (see #3672)
  7479. Range:    INT 00 to INT FF, selectable by program parameter
  7480. Notes:    the caller is required to provide at least 512 bytes of stack space
  7481.     the returned message may be overwritten by the next call to this
  7482.       function
  7483. SeeAlso: AH=03h
  7484. ----------F1--04-----------------------------
  7485. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MESSAGE"
  7486.     AL = 04h
  7487.     AH = CAPI version number * 10 (14h for v2.0)
  7488.     DX = application ID (see AH=01h)
  7489. Return: AX = status (0000h,11xxh) (see #3671)
  7490.     ES:BX -> message if successful (see #3672)
  7491. Range:    INT 00 to INT FF, selectable by program parameter
  7492. Notes:    the caller is required to provide at least 512 bytes of stack space
  7493.     the returned message may be overwritten by the next call to this
  7494.       function
  7495. SeeAlso: AH=04h,INT F1/AL=03h
  7496. ----------F105-------------------------------
  7497. INT F1 - Common ISDN API (CAPI) v1.1 - "API-SET-SIGNAL" - SIGNAL HANDLING
  7498.     AH = 05h
  7499.     DX = application ID (see AH=01h)
  7500.     ES:BX -> signal handler or 0000h:0000h to disable
  7501. Return: AX = status (0000h,1002h) (see #3670)
  7502. Notes:    the caller is required to provide at least 512 bytes of stack space
  7503.     the signal handler is called as though it were an interrupt, with
  7504.       interrupts disabled; the handler must preserve all registers and
  7505.       return with an IRET
  7506. SeeAlso: AH=01h
  7507. ----------F1--05-----------------------------
  7508. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_SET_SIGNAL" - SIGNAL HANDLING
  7509.     AL = 05h
  7510.     AH = CAPI version number * 10 (14h for v2.0)
  7511.     DX = application ID (see AH=01h)
  7512.     ES:BX -> signal handler or 0000h:0000h to disable
  7513.     SI:DI = parameter to pass to signal handler
  7514. Return: AX = status (0000h,11xxh) (see #3671)
  7515. Notes:    the caller is required to provide at least 512 bytes of stack space
  7516.     the signal handler is called as though it were an interrupt, with
  7517.       interrupts disabled and DX,SI,DI set as they were when this function
  7518.       was called; the handler must preserve all registers and return with
  7519.       an IRET
  7520.     the signal handler may call CAPI_PUT_MESSAGE, CAPI_GET_MESSAGE, and
  7521.       CAPI_SET_SIGNAL
  7522. SeeAlso: INT F1/AL=01h
  7523. ----------F106-------------------------------
  7524. INT F1 - Common ISDN API (CAPI) v1.1 - "API-DEINSTALL" - UNINSTALL
  7525.     AH = 06h
  7526.     BX = force flag
  7527.         0000h normal uninstall
  7528.         0001h forced uninstall
  7529. Return: AX = status (0000h,1008h) (see #3670)
  7530. Desc:    reset ISDN controller, close all ISDN Level 1 connections except for
  7531.       telephone connections
  7532. Notes:    the caller is required to provide at least 512 bytes of stack space
  7533. SeeAlso: INT F1/AL=01h,INT F1/AH=01h
  7534. ----------F1F0-------------------------------
  7535. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MANUFACTURER"
  7536.     AH = F0h
  7537.     ES:BX -> 64-byte buffer for manufacturer identification information
  7538. Return: ES:BX buffer filled with ASCIZ idnetification string
  7539. Range:    INT 00 to INT FF, selectable by program parameter
  7540. Notes:    the caller is required to provide at least 512 bytes of stack space
  7541. SeeAlso: AH=01h,AH=F1h,AH=F2h,AH=FFh,INT F1/AL=F0h
  7542. ----------F1--F0-----------------------------
  7543. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MANUFACTURER"
  7544.     AL = F0h
  7545.     AH = CAPI version number * 10 (14h for v2.0)
  7546.     ES:BX -> 64-byte buffer for manufacturer identification information
  7547. Return: ES:BX buffer filled with ASCIZ idnetification string
  7548. Range:    INT 00 to INT FF, selectable by program parameter
  7549. Notes:    the caller is required to provide at least 512 bytes of stack space
  7550. SeeAlso: AH=F0h,INT F1/AL=01h,INT F1/AL=F1h,INT F1/AL=F2h,INT F1/AL=FFh
  7551. ----------F1F1-------------------------------
  7552. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-VERSION"
  7553.     AH = F1h
  7554.     ES:BX -> 64-byte buffer for CAPI version number
  7555. Return: ES:BX buffer filled with ASCIZ version string
  7556. Notes:    the caller is required to provide at least 512 bytes of stack space
  7557. SeeAlso: AH=01h,AH=F0h,AH=F2h,AH=FFh
  7558. ----------F1--F1-----------------------------
  7559. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_VERSION"
  7560.     AL = F1h
  7561.     AH = CAPI version number * 10 (14h for v2.0)
  7562. Return: AH = CAPI major version number
  7563.     AL = CAPI minor version number
  7564.     DH = vendor-specific major version
  7565.     DL = vendor-specific minor version
  7566. Notes:    the caller is required to provide at least 512 bytes of stack space
  7567. SeeAlso: AH=F1h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AL=FFh
  7568. ----------F1F2-------------------------------
  7569. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-SERIAL-NUMBER"
  7570.     AH = F2h
  7571.     ES:BX -> 64-byte buffer for CAPI serial number
  7572. Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
  7573.           string if no serial number
  7574. Notes:    the caller is required to provide at least 512 bytes of stack space
  7575. SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=FFh
  7576. ----------F1--F2-----------------------------
  7577. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_SERIAL_NUMBER"
  7578.     AL = F2h
  7579.     AH = CAPI version number * 10 (14h for v2.0)
  7580.     ES:BX -> 64-byte buffer for CAPI serial number
  7581. Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
  7582.           string if no serial number
  7583. Notes:    the caller is required to provide at least 512 bytes of stack space
  7584. SeeAlso: AH=F2h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F3h
  7585. ----------F1--F3-----------------------------
  7586. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_PROFILE" - GET CAPABILITIES
  7587.     AL = F3h
  7588.     AH = CAPI version number * 10 (14h for v2.0)
  7589.     ES:BX -> 64-byte buffer for CAPI capabilities (see #3675)
  7590.     CX = controller number (01h-06h) or 0000h to get number of controllers
  7591. Return: AX = status (0000h,11xxh) (see #3671)
  7592.     ES:BX buffer filled if successful
  7593. Notes:    the caller is required to provide at least 512 bytes of stack space
  7594. SeeAlso: INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AH=FFh
  7595.  
  7596. Format of CAPI v2.0 capabilities:
  7597. Offset    Size    Description    (Table 3675)
  7598.  00h    WORD    number of installed controllers
  7599.  02h    WORD    number of supported B channels
  7600.  04h    DWORD    global options (see #3676)
  7601.  08h    DWORD    B1 protocol support flags (see #3677)
  7602.  0Ch    DWORD    B2 protocol support flags (see #3678)
  7603.  10h    DWORD    B3 protocol support flags (see #3679)
  7604.  14h 24 BYTEs    reserved for CAPI use
  7605.  2Ch 20 BYTEs    vendor-specific information
  7606.  
  7607. Bitfields for CAPI v2.0 global options:
  7608. Bit(s)    Description    (Table 3676)
  7609.  0    internal controller supported
  7610.  1    external controller supported
  7611.  2    handset supported (only if bit 1 also set)
  7612.  3    DTMF supported
  7613.  4-31    reserved (0)
  7614. SeeAlso: #3675
  7615.  
  7616. Bitfields for CAPI v2.0 B1 protocol support:
  7617. Bit(s)    Description    (Table 3677)
  7618.  0    64k bps with HDLC framing (required, always set)
  7619.  1    64k bps bit-transparent operation with network byte framing
  7620.  2    V.110 asynchronous with start/stop byte framing
  7621.  3    V.110 synchronous with HDLC framing
  7622.  4    T.30 modem for group 3 FAX
  7623.  5    64k bps inverted with HDLC framing
  7624.  6    56k bps bit-transparent operation with network byte framing
  7625.  7-31    reserved (0)
  7626. SeeAlso: #3675
  7627.  
  7628. Bitfields for CAPI v2.0 B2 protocol support:
  7629. Bit(s)    Description    (Table 3678)
  7630.  0    ISO 7776 (X.75 SLP) (required, always set)
  7631.  1    transparent
  7632.  2    SDLC
  7633.  3    Q.921 LAPD (D-channel X.25)
  7634.  4    T.30 for group 3 FAX
  7635.  5    point-to-point protocol (PPP)
  7636.  6    transparent (ignoring B1 framing errors)
  7637.  7-31    reserved (0)
  7638. SeeAlso: #3675
  7639.  
  7640. Bitfields for CAPI v2.0 B3 protocol support:
  7641. Bit(s)    Description    (Table 3679)
  7642.  0    transparent (required, always set)
  7643.  1    T.90NL with T.70NL compatibility
  7644.  2    ISO 8208 (X.25 DTE-DTE)
  7645.  3    X.25 DCE
  7646.  4    T.30 for group 3 FAX
  7647.  5-31    reserved (0)
  7648. SeeAlso: #3675
  7649. ----------F1FF-------------------------------
  7650. INT F1 - Common ISDN API (CAPI) v1.1 - "API-MANUFACTURER" - VENDOR-SPECIFIC
  7651.     AH = FFh
  7652.     other registers vendor-specific
  7653. Return: registers vendor-specific
  7654. Range:    INT 00 to INT FF, selectable by program parameter
  7655. Notes:    the caller is required to provide at least 512 bytes of stack space
  7656. SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=F2h,INT F1/AH=FFh
  7657. ----------F1--FF-----------------------------
  7658. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_MANUFACTURER" - VENDOR-SPECIFIC
  7659.     AL = FFh
  7660.     AH = CAPI version number * 10 (14h for v2.0)
  7661.     other registers vendor-specific
  7662. Return: registers vendor-specific
  7663. Range:    INT 00 to INT FF, selectable by program parameter
  7664. Notes:    the caller is required to provide at least 512 bytes of stack space
  7665. SeeAlso: AH=FFh,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F2h
  7666. --------*-F2---------------------------------
  7667. INT F2 - reserved for user interrupt
  7668. --------s-F2---------------------------------
  7669. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  7670. SeeAlso: INT F1"SPEECH"
  7671. --------N-F2---------------------------------
  7672. INT F2 - NetWare Remote Boot - ORIGINAL INT 13
  7673. SeeAlso: INT F1"NetWare",INT F3"NetWare",INT F4"NetWare"
  7674. ----------F2---------------------------------
  7675. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  7676.     AH = function number (see #3680)
  7677.     ???
  7678. Return: ???
  7679. Program: ImageCapture is a product of International Computers
  7680. SeeAlso: INT F3"ICCTSR"
  7681.  
  7682. (Table 3680)
  7683. Values for ImageCapture function:
  7684.  01h    power up
  7685.  02h    power down
  7686.  03h    set controls
  7687.  04h    capture image
  7688.  05h    display image
  7689.  06h    read file
  7690.  07h    write file
  7691.  08h    write array
  7692.  09h    read pixel
  7693.  0Ah    write pixel
  7694.  0Bh    check if VGA present
  7695.  0Ch    set video mode
  7696.  0Dh    check for keystroke
  7697.  0Eh    delay
  7698. --------*-F3---------------------------------
  7699. INT F3 - reserved for user interrupt
  7700. SeeAlso: INT F2"user",INT F4"user"
  7701. --------s-F3---------------------------------
  7702. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  7703. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  7704.       value selected with SET-ECHO.EXE
  7705. SeeAlso: INT 2F/AX=FBFBh/ES=0000h
  7706. ----------F3---------------------------------
  7707. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  7708. Program: ImageCapture is a product of International Computers
  7709. SeeAlso: INT F2"ICCTSR"
  7710. --------N-F3---------------------------------
  7711. INT F3 - NetWare Remote Boot - BOOT ROM'S INT 13 HANDLER
  7712. SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F4"NetWare"
  7713. --------*-F4---------------------------------
  7714. INT F4 - reserved for user interrupt
  7715. SeeAlso: INT F3"user",INT F5"user"
  7716. --------T-F4---------------------------------
  7717. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  7718. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F5"DoubleDOS",INT FE"DoubleDOS"
  7719. --------N-F4---------------------------------
  7720. INT F4 - NetWare Remote Boot - ???
  7721. SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F3"NetWare"
  7722. --------*-F5---------------------------------
  7723. INT F5 - reserved for user interrupt
  7724. SeeAlso: INT F4"user",INT F6"user"
  7725. --------T-F5---------------------------------
  7726. INT F5 - DoubleDOS - ???
  7727. SeeAlso: INT F4"DoubleDOS",INT F6"DoubleDOS"
  7728. --------*-F6---------------------------------
  7729. INT F6 - reserved for user interrupt
  7730. SeeAlso: INT F5"user",INT F7"user"
  7731. --------T-F6---------------------------------
  7732. INT F6 - DoubleDOS - ???
  7733. SeeAlso: INT F5"DoubleDOS",INT F7"DoubleDOS"
  7734. --------*-F7---------------------------------
  7735. INT F7 - reserved for user interrupt
  7736. SeeAlso: INT F6"user"
  7737. --------T-F7---------------------------------
  7738. INT F7 - DoubleDOS - ???
  7739. SeeAlso: INT F6"DoubleDOS"
  7740. ----------F700-------------------------------
  7741. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  7742.     AH = 00h
  7743.     AL = function
  7744.         00h get configuration record
  7745.         Return: DS:DX -> configuration record
  7746.         01h set configuration record
  7747.         Return: nothing
  7748.         02h get path for option
  7749.         DS:DX -> option name
  7750.         Return: DS:DX -> path
  7751.         03h determine whether configuration record set
  7752.         Return: AX = status
  7753.                 0000h set
  7754.                 0001h not yet set
  7755.         04h get link state
  7756.         Return: AX = state
  7757.                 0000h unlinked
  7758.                 0001h linked
  7759. Notes:    this information is preliminary and still subject to change
  7760.     all of the INT F7 calls for FSBBS are used for interprogram
  7761.       communication between the BBS kernel and the programs it spawns
  7762. SeeAlso: AH=01h
  7763. ----------F701-------------------------------
  7764. INT F7 - FSBBS 2.0 - USER RECORD
  7765.     AH = 01h
  7766.     AL = function
  7767.         00h get user record for user currently online
  7768.         Return: DS:DX -> user record
  7769.         01h set user record
  7770.         DS:DX -> user record
  7771.         Return: nothing
  7772. SeeAlso: AH=00h,AH=02h
  7773. ----------F702-------------------------------
  7774. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  7775.     AH = 02h
  7776. Return: DS:DX -> 8-character blank-padded account name
  7777. SeeAlso: AH=01h
  7778. ----------F703-------------------------------
  7779. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  7780.     AH = 03h
  7781.     AL = function
  7782.         00h get terminal index number
  7783.         Return: DX = index number
  7784.         01h set terminal index number
  7785.         DX = terminal index
  7786.         Return: nothing
  7787. ----------F704-------------------------------
  7788. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  7789.     AH = 04h
  7790.     AL = function
  7791.         00h get PassData buffer contents
  7792.         DS:DX -> buffer for PassData contents
  7793.         Return: DS:DX buffer filled
  7794.         01h set PassData contents
  7795.         DS:DX -> buffer containing new PassData
  7796.         CH = length of data in buffer
  7797.         Return: nothing
  7798. ----------F705-------------------------------
  7799. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  7800.     AH = 05h
  7801.     AL = function
  7802.         00h get time remaining
  7803.         Return: DX = number of minutes remaining
  7804.         01h get current time
  7805.         Return: DS:DX -> 8-character time string
  7806.         02h increment time
  7807.         DX = number of additional minutes
  7808.         03h decrement time
  7809.         DX = number of minutes
  7810. SeeAlso: AH=06h
  7811. ----------F706-------------------------------
  7812. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  7813.     AH = 06h
  7814.     AL = function
  7815.         00h determine whether function is available
  7816.         DX = index of function
  7817.         01h set function availability
  7818.         DX = index of function
  7819.         ???
  7820. Return: nothing
  7821. SeeAlso: AH=05h,AH=07h
  7822. ----------F707-------------------------------
  7823. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  7824.     AH = 07h
  7825.     AL = function
  7826.         00h get current dump mode
  7827.         Return: DL = mode
  7828.         01h set dump mode
  7829.         DL = mode
  7830. SeeAlso: AH=06h
  7831. --------*-F8---------------------------------
  7832. INT F8 - reserved for user interrupt
  7833. --------h-F8---------------------------------
  7834. INT F8 - Sanyo MBC-550/555 - IRQ0 - 100 HZ INTERRUPT
  7835. Note:    normally masked off at 8259 interrupt controller
  7836. SeeAlso: INT 08"IRQ0",INT F9"Sanyo",INT FA"Sanyo"
  7837. --------T-F8---------------------------------
  7838. INT F8 - DoubleDOS - ???
  7839. --------*-F9---------------------------------
  7840. INT F9 - reserved for user interrupt
  7841. --------T-F9---------------------------------
  7842. INT F9 - DoubleDOS - ???
  7843. --------h-F9---------------------------------
  7844. INT F9 - Sanyo MBC-550/555 - IRQ1 - ???
  7845. Note:    documented as "for system use only"; normally enabled at the 8259
  7846. SeeAlso: INT 09"IRQ1",INT F8"Sanyo",INT FA"Sanyo"
  7847. --------*-FA---------------------------------
  7848. INT FA - reserved for user interrupt
  7849. --------h-FA---------------------------------
  7850. INT FA - Sanyo MBC-550/555 - IRQ2 - SERIAL PORT USART INTERRUPT
  7851. Note:    this vector is not used on the Tandy 1000TL
  7852. SeeAlso: INT 0A"IRQ2",INT F9"Sanyo",INT FB"Sanyo"
  7853. --------T-FA---------------------------------
  7854. INT FA - DoubleDOS - TURN OFF TIMESHARING
  7855. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  7856. ----------FA---------------------------------
  7857. INT FA P - ASM Edit - INSTALLATION CHECK
  7858. Program: ASM Edit is a shareware programmer's editor
  7859. Note:    ASM Edit hooks this vector in protected mode to allow DPMI programs
  7860.       to detect whether they were run while shelled to DOS from ASM Edit
  7861.  
  7862. Format of ASM Edit signature block:
  7863. Offset    Size    Description    (Table 3681)
  7864.  00h    BYTE    CFh (IRET)
  7865.  01h  8 BYTEs    signature "ASM Edit" (no trailing NUL)
  7866. --------*-FB---------------------------------
  7867. INT FB - reserved for user interrupt
  7868. --------h-FB---------------------------------
  7869. INT FB - Sanyo MBC-550/555 - IRQ3 - KEYBOARD USART RECEIVE INTERRUPT
  7870. SeeAlso: INT 0B"IRQ3",INT FA"Sanyo",INT FC"Sanyo"
  7871. --------T-FB---------------------------------
  7872. INT FB - DoubleDOS - TURN ON TIMESHARING
  7873. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  7874. --------*-FC---------------------------------
  7875. INT FC - reserved for user interrupt
  7876. --------T-FC---------------------------------
  7877. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  7878. Return: ES = segment of display buffer
  7879. Desc:    determine the address of the virtual screen to which the program
  7880.       should write instead of the actual video memory, so that the
  7881.       multitasked programs do not interfere with each other's output
  7882. Note:    the display buffer may be moved if multitasking is enabled
  7883. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  7884. --------h-FC---------------------------------
  7885. INT FC - Sanyo MBC-550/555 - IRQ4 - PRINTER READY INTERRUPT
  7886. Note:    normally masked off at the 8259 interrupt controller
  7887. SeeAlso: INT 0C"IRQ4",INT FB"Sanyo",INT FD"Sanyo"
  7888. --------*-FD---------------------------------
  7889. INT FD - reserved for user interrupt
  7890. --------T-FD---------------------------------
  7891. INT FD - DoubleDOS - ???
  7892. --------h-FD---------------------------------
  7893. INT FD - Sanyo MBC-550/555 - IRQ5 - FLOPPY DISK CONTROLLER
  7894. SeeAlso: INT 0D"IRQ5",INT FC"Sanyo",INT FE"Sanyo"
  7895. --------S-FD---------------------------------
  7896. INT FD - TFPCX - INSTALLATION CHECK
  7897.     AH = function (also see separate entries below)
  7898. Program: TFPCX is an interface between modem and terminal program for packet-
  7899.       radio communications
  7900. Notes:    the installation check consists of testing for the string "N5NX" three
  7901.       bytes beyond the interrupt handler; INT FD is the default, but may
  7902.       be changed, so the full installation check consists of scanning
  7903.       for the signature
  7904.     TFPCX returns AX=FFFFh on any unsupported function call
  7905. SeeAlso: AH=01h,AH=03h,AH=FEh
  7906. --------S-FD01-------------------------------
  7907. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  7908.     AH = 01h
  7909. Return: AX = status
  7910.         0000h no characters waiting
  7911.         0001h character available for input
  7912. Program: TFPCX is an interface between modem and terminal program for packet-
  7913.       radio communications
  7914. SeeAlso: AH=02h
  7915. --------S-FD02-------------------------------
  7916. INT FD - TFPCX - GET CHARACTER
  7917.     AH = 02h
  7918. Return: AL = character
  7919. Notes:    this call is only allowed if AH=01h indicated that a character is
  7920.       available
  7921.     all available characters should be read before sending any additional
  7922.       characters
  7923. SeeAlso: AH=01h,AH=03h
  7924. --------S-FD03-------------------------------
  7925. INT FD - TFPCX - OUTPUT CHARACTER
  7926.     AH = 03h
  7927.     AL = character to send
  7928. Return: nothing
  7929. SeeAlso: AH=02h
  7930. --------S-FDFE-------------------------------
  7931. INT FD - TFPCX - GET VERSION
  7932.     AH = FEh
  7933. Return: AH = major version
  7934.     AL = minor version
  7935. Program: TFPCX is an interface between modem and terminal program for packet-
  7936.       radio communications
  7937. SeeAlso: AH=01h,AH=03h
  7938. --------B-FE---------------------------------
  7939. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  7940. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  7941.       is the last fourth of the interrupt vector table.  If the processor
  7942.       is returned to real mode via a hardware reset (the only possibility
  7943.       on an 80286, though there are a number of ways of generating one),
  7944.       then the BIOS startup code stacks three words on its scratch stack
  7945.       before determining that a return to real mode has been requested.
  7946.       As a result, INT FE and INT FF are corrupted.
  7947. SeeAlso: INT FF"XT286"
  7948. --------T-FE---------------------------------
  7949. INT FE - DoubleDOS - GIVE UP TIME
  7950.     AL = number of 55ms time slices to give away
  7951. Return: after other program (if active) has run
  7952. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  7953. --------G-FE---------------------------------
  7954. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  7955. SeeAlso: INT 3F
  7956. --------h-FE---------------------------------
  7957. INT FE - Sanyo MBC-550/555 - IRQ6 - 8087 COPROCESSOR INTERRUPT
  7958. Note:    normally masked off at the 8259 interrupt controller
  7959. SeeAlso: INT 0E"IRQ6",INT FD"Sanyo",INT FF"Sanyo"
  7960. --------B-FF---------------------------------
  7961. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  7962. Note:    (see INT FE"XT286")
  7963. SeeAlso: INT FE"XT286"
  7964. --------b-FF---------------------------------
  7965. INT FF - Z100 - WARM BOOT
  7966. SeeAlso: INT 40"Z100"
  7967. --------h-FF---------------------------------
  7968. INT FF - Sanyo MBC-550/555 - IRQ7 - USER INTERRUPT FOR EXTERNAL INTERRUPT
  7969. Note:    normally masked off at the 8259 interrupt controller
  7970. SeeAlso: INT 0F"IRQ7",INT FE"Sanyo"
  7971. --------Q-FF---------------------------------
  7972. INT FF U - QEMM-386.SYS v6.0+ - internal
  7973. Notes:    requires that a byte in the conventional-memory stub be set to the
  7974.       desired function number (00h through 0Ch)
  7975. SeeAlso: #3682
  7976.  
  7977. (Table 3682)
  7978. Values for QEMM internal functions:
  7979.  00h    reflect back to Virtual86-mode interrupt handler (default)
  7980.  01h    ???
  7981.  02h    access DR7???
  7982.  03h    QPI upcall (see INT 67/AH=3Fh)
  7983.  04h    ???
  7984.  05h    ???
  7985.  06h    INT 15/AH=87h
  7986.  07h    EMS services (see INT 67/AH=40h,INT 67/AH=5Dh)
  7987.  08h    ???
  7988.  09h    QEMM exception handler
  7989.  0Ah    XMS services (see INT 2F/AX=4310h"XMS")
  7990.  0Bh    Virtual DMA Services (see INT 4B/AX=8102h)
  7991.  0Ch    ???
  7992. --------v-FF---------------------------------
  7993. INT FF - VIRUS - "Violetta" - ???
  7994. Note:    used but not chained by virus
  7995. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  7996. --------V-FF----BX0000-----------------------
  7997. INT FF - PC/FORTH - GRAPHICS API - VIDEO STATUS CHANGE
  7998.     BX = 0000h
  7999.     DS:SI -> FORTH program counter
  8000.     SS:BP -> FORTH parameter stack
  8001.     SS:SP -> FORTH return stack
  8002.     DS:DX -> FORTH video parameter area
  8003. Desc:    called to inform graphics driver of any status changes such as video
  8004.       mode changes, character color changes, graphics XOR mode turned on
  8005.       or off, etc.; also used as an installation check
  8006. Index:    installation check;PC/FORTH
  8007. --------V-FF---------------------------------
  8008. INT FF - PC/FORTH - GRAPHICS API
  8009.     BX = function number
  8010.         0001h function REDRAW
  8011.         0002h function !PEL
  8012.         0003h function @PEL
  8013.         0004h function LINE
  8014.         0005h function ARC
  8015.         0006h function @BLOCK
  8016.         0007h function !BLOCK
  8017.         0008h function FLOOD
  8018.     DS:SI -> FORTH program counter
  8019.     SS:BP -> FORTH parameter stack
  8020.     SS:SP -> FORTH return stack
  8021.     details of parameters not available
  8022. Return:    AX,BX,CX,DX,ES,DI may be destroyed
  8023. Note:    these functions all display an error message if the graphics routines
  8024.       are not resident
  8025. --------!---Admin----------------------------
  8026. Highest Table Number = 3682
  8027. --------!---FILELIST-------------------------
  8028. Please redistribute all of the files comprising the interrupt list (listed at
  8029. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  8030. quartet of archives named INTER54A through INTER54D (preferably the original
  8031. authenticated PKZIP archives), the utility programs in a fifth archive
  8032. called INTER54E.ZIP, the WinHelp-related programs in a sixth archive
  8033. named INTER54F.ZIP, and the non-WinHelp hypertext programs in a seventh archive
  8034. names INTER54G.ZIP.
  8035.  
  8036. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  8037. --------!---CONTACT_INFO---------------------
  8038. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  8039. UUCP: {uunet,harvard}!pobox.com!ralf
  8040. FIDO: Ralf Brown 1:129/26.1
  8041.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  8042.     unless you address it to me)
  8043. CIS:  >INTERNET:ralf@pobox.com
  8044.