home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 32 / hot34.iso / ficheros / DTOOL / INTER57D.ZIP / INTERRUP.P < prev    next >
Text File  |  1998-03-22  |  339KB  |  8,834 lines

  1. Interrupt List, part 16 of 16
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997,1998 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,#2746
  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,#2746
  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. InstallCheck:    test for the ASCII signature "SBOS" at offset 0Ah in the
  88.       interrupt handler's segment (similar to one of the possible EMS
  89.       installation checks)
  90. Range:    SBOS may use INT 78-INT 7F
  91. Note:    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 #3537)
  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 3537)
  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 #3538)
  382. Return: CF set on error
  383.     CF clear on success
  384. InstallCheck:    test for the signature "PDGATEWRKSTNIF" just prior to the
  385.       interrupt handler
  386. Index:    installation check;Telebit ACS Serial I/O
  387.  
  388. Format of Telebit ACS parameter block:
  389. Offset    Size    Description    (Table 3538)
  390.  00h    BYTE    command (see #3539)
  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 #3540)
  400.  
  401. (Table 3539)
  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 3540)
  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. InstallCheck:    test for the signature "Lynn" in the four bytes preceding the
  445.       interrupt handler; if present, the current program is running as a
  446.       DOS task on a non-dedicated NetWare 2.x file server.
  447. Note:    Before placing the server into "console" mode, it is recommended that
  448.       NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  449. SeeAlso: INT 21/AH=DEh/DL=04h
  450. Index:    installation check;non-dedicated NetWare server
  451. --------S-7F---------------------------------
  452. INT 7F U - YTERM - ???
  453. SeeAlso: INT 7E"YTERM"
  454. --------E-7F---------------------------------
  455. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  456. Notes:    this vector is overwritten when GO32 starts but is not restored by
  457.       early versions of the DOS extender
  458.     the newest versions of GO32 dynamically allocate the vectors used
  459.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  460. SeeAlso: INT 0F"IRQ7",INT 7E"GO32"
  461. ----------7F---------------------------------
  462. INT 7F - Canon IXHND2 Scanner Interface
  463. --------U-7F---------------------------------
  464. INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT
  465.     DS:SI -> WinRun control block (WCB) (see #3541)
  466. Return: WinRun receiver status returned in WCB
  467. Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start
  468.       Windows applications from a virtual DOS machine under Windows
  469. Note:    The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need
  470.       to be up and running
  471.  
  472. Format of the WinRun control block (WCB):
  473. Offset    Size    Description    (Table 3541)
  474.  00h    DWORD    pointer to ASCIZ command string
  475.  04h    WORD    (ret) WinRun receiver status
  476.         0000h-001Fh WinExec() error
  477.         0020h-FFFEh WinExec() instance handle
  478.         FFFFh        Windows not running or WinRun receiver not
  479.                   installed
  480. --------N-7F---------------------------------
  481. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  482. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  483.       MW386 multitasking system is present (i.e. signature "NXNX")
  484.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  485.       load time.  To determine the actual vector used, open the device
  486.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  487.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  488.       be the actual interrupt number being used; the other interrupts may
  489.       be found with INT 7F/AH=09h/CL=03h
  490. --------N-7F---------------------------------
  491. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  492. Note:    a program may determine that it is running on an ANSK Slave by checking
  493.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  494.       address is RAM, and should not be written.  However, the above check
  495.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  496.       device driver
  497. --------N-7F00-------------------------------
  498. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  499.     AH = 00h
  500.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  501. Return: AL = status (see #3542)
  502.     AH = semaphore owner if status=02h
  503. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  504.  
  505. (Table 3542)
  506. Values for Alloy function status:
  507.  00h    successful
  508.  01h    invalid function
  509.  02h    semaphore already locked
  510.  03h    unable to lock/unlock semaphore
  511.  04h    semaphore space exhausted
  512.  05h    host/target PC did not respond (NTNX)
  513. --------T-7F00-------------------------------
  514. INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
  515.     AH = 00h
  516.     BX = resource identifier
  517.     AL = wait flag
  518. Return: AL = status
  519.         00h successful
  520.         01h resource not available
  521.         02h user error
  522. InstallCheck:    ensure that the interrupt vector is not pointing at segment
  523.       0000h, then test whether the byte at offset 0000h in the interrupt
  524.       handler's segment is E9h
  525. Notes:    function will not return until the resource is available if AL is
  526.       nonzero on entry
  527.     a maximum of 100 resources may be enqueued at once
  528. SeeAlso: AH=01h"MultiLink"
  529. --------N-7F00-------------------------------
  530. INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
  531.     AH = 00h
  532.     ES:SI -> buffer for "USERS" text string
  533. Return: AX = 4250h ('BP') if installed
  534.     BX = 5120h ('Q ') if installed
  535.     DX = version number (DH = major, DL = minor)
  536.     CX = length of returned string
  537. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  538.       John Wiseman which allows a PC to act as a node in an AX.25 network
  539. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  540. --------N-7F01-------------------------------
  541. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  542.     AH = 01h
  543.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  544. Return: AL = status (see #3542)
  545.     AH = semaphore owner if status=02h
  546. SeeAlso: AH=00h,AH=02h,AH=41h
  547. --------T-7F01-------------------------------
  548. INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
  549.     AH = 01h
  550.     BX = resource identifier
  551. Return: AL = status
  552.         00h successful
  553.         02h user error
  554. Note:    the indicated resource may be dequeued even if it was enqueued by
  555.       another task
  556. SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"
  557. --------V-7F01-------------------------------
  558. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  559.     AH = 01h
  560. Return: BX = 1234h if installed
  561.         DX:AX -> array of FAR entry points
  562.         CH = driver major version
  563.         CL = driver minor version
  564. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  565. SeeAlso: AX=1234h,AX=4321h
  566. --------N-7F01-------------------------------
  567. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  568.     AH = 01h
  569.     AL = stream number (01h-40h)
  570.     CL = new application flags
  571.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  572.     DL = new application mask
  573. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  574.       John Wiseman which allows a PC to act as a node in an AX.25 network
  575. Range:    INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  576.       (earlier versions were hard-wired for INT 7F)
  577. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  578. --------I-7F0104BX0000-----------------------
  579. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  580.     AX = 0104h (HLLAPI gate ID)
  581.     BX = 0000h
  582.     DS:SI -> parameter control block (see #3543)
  583. Return: parameter control block updated
  584. InstallCheck:    for the Novell HLLAPI TSR, test for the signature "CXI" (for
  585.       the company Novell bought) immediately prior to the interrupt handler
  586. SeeAlso: AX=0105h,AX=ABCDh
  587.  
  588. Format of HLLAPI parameter control block:
  589. Offset    Size    Description    (Table 3543)
  590.  00h  3 BYTEs    signature = 'PCB'
  591.  03h    BYTE    function number (see #3544,#3545)
  592.  04h    WORD    segment of control string
  593.  06h    WORD    offset of control string
  594.  08h    WORD    length of control string, unless explicit end-of-str char set
  595.  0Ah    BYTE    unused (IBM)
  596.         ControlString[0] (Rabbit)
  597.  0Bh    WORD    return code (see #3547)
  598.  0Dh    WORD    maximum length of control string (IBM)
  599.         unused (Rabbit)
  600.  
  601. (Table 3544)
  602. Values for HLLAPI function number:
  603.  00h    OEM function (Query system for Attachmate implementation)
  604.  01h    Connect presentation space
  605.  02h    Disconnect presentation space
  606.  03h    Send string of keystrokes as if typed from keyboard
  607.  04h    Wait ~60s, returns status of presentation space
  608.  05h    Copy current presentation space into a user-defined buffer
  609.  06h    Search presentation space for first occurrence of a specified string
  610.  07h    Query cursor location in current presentation space
  611.  08h    Copy part or all of current presentation space into user buffer
  612.  09h    Set session parameters; parameters vary by vendor (see #3546)
  613.  0Ah    Get info on sessions currently connected
  614.  0Bh    Lock current presentation space
  615.  0Ch    Unlock previously locked presentation space
  616.  0Dh    Return copy of operator info area (OIA) of current presentation space
  617.  0Eh    get attribute byte for given position in the current presentation space
  618.  0Fh    copy string of characters to the current presentation space
  619.  10h    workstation control functions
  620.  11h    storage manager functions, intended primarily for BASIC applications
  621.     (not implemented by Rabbit)
  622.  12h    set delay period in half-second intervals
  623.  14h    get info on level of workstation support used
  624.  15h    reset session parameters to default values
  625.  16h    get detailed info on the current session
  626.  17h    start host notification to application on presentation sp or OIA update
  627.  18h    check host update when host notification enabled
  628.  19h    stop host notification
  629.  1Eh    search field within current presentation space for string
  630.  1Fh    get first positionof a selected field in the current presentation space
  631.  20h    get length of specified field
  632.  21h    copy string into a specified field
  633.  22h    copy specified field into a user-defined buffer
  634.  23h    create alternate presentation space (IBM only), don't use with BASIC
  635.  24h    switch to alternate presentation space (IBM only), not with BASIC
  636.  25h    display cursor in specified area (IBM only), don't use with BASIC
  637.  26h    display alternate presentation space (IBM only), don't use with BASIC
  638.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  639.  28h    set cursor
  640.  29h    start Close Intercept
  641.  2Ah    query Close Intercept
  642.  2Bh    stop Close Intercept
  643.  32h    start intercepting keystrokes to allow filtering
  644.  33h    get keystrokes after turning on interception
  645.  34h    notify operator when keystroke rejected by filter subroutine
  646.  35h    stop intercepting keystrokes
  647.  5Ah    send file
  648.  5Bh    receive file
  649.  5Ch    run a program (not implemented by Rabbit)
  650.  5Dh    execute DOS command (not implemented by Rabbit)
  651.  63h    change presentation space position to PC display row/col or vice versa
  652.  65h    connect to Window Services
  653.  66h    disconnect from Window Services
  654.  67h    set/query window coordinates
  655.  68h    set/query window status
  656.  69h    change presentation space name
  657.  78h    connect Structured Fields
  658.  79h    disconnect Structured Fields
  659.  7Ah    query size of communications buffer
  660.  7Bh    allocate communications buffer
  661.  7Ch    free communications buffer
  662.  7Dh    get request completion state
  663.  7Eh    read Structured Fields
  664.  7Fh    write Structured Fields
  665.  FFh    Get info on DCA implementation
  666.  
  667. (Table 3545)
  668. Values for LLAPI function number:
  669.  80h    initialize LLAPI (internal call)
  670.  83h    set Session ID (one-character ID)
  671.  84h    read Session ID (one-character ID)
  672.  85h    lock 327x keyboard
  673.  86h    unlock 327x keyboard
  674.  87h    wait for Clear to Send
  675.  88h    type ASCII character
  676.  89h    type 327x key
  677.  8Ah    read keyboard lock state
  678.  8Fh    force screen update
  679.  90h    view session
  680.  91h    relinquish (suspend foreground until background becomes idle)
  681.  92h    poke screen character
  682.  93h    poke translated character
  683.  94h    peek screen character
  684.  95h    peek translated character
  685.  96h    set cursor position
  686.  97h    send scan code (Rabbit only)
  687.  98h    synchronize (returns after keystroke queue empty)
  688.  99h    type PC key (Rabbit only)
  689.  
  690. (Table 3546)
  691. Values for HLLAPI Function 09h Session Parameters:
  692.  ASCII        ??? (Rabbit only)
  693.  ATTRIB        return attributes in hex
  694.  NOATTRIB    return attributes as blanks
  695.  CONPHYS    make physical connection
  696.  CONLOG        only make logical connection
  697.  EAB        copy extended attribute bytes along with data
  698.  NOEAB        copy data only
  699.  ESC=n        set escape character to "n" (default '@')
  700.  EOT=n        set end of string character (default 00h)
  701.  FPAUSE        full-duration pause
  702.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  703.  FTWAIT        wait for file transfer to complete (Rabbit only)
  704.  IPAUSE        interruptable pause
  705.  RABESC        ??? (Rabbit only)
  706.  NORABESC    ??? (Rabbit only)
  707.  SCANCODE    ??? (Rabbit only)
  708.  STRLEN        use explicit string lengths
  709.  STREOT        use terminated strings
  710.  SRCHALL    search entire presentation space
  711.  SRCHFROM    search from specified offset
  712.  SRCHFRWD    search forward from position 1
  713.  SRCHBKWD    search backward from last position in presentation space
  714.  TIMEOUT=n    ??? (Rabbit only)
  715.  TWAIT        wait specified time for keyboard ready
  716.  LWAIT        wait until keyboard ready
  717.  NWAIT        no wait
  718.  TRON        enable tracing
  719.  TROFF        disable tracing
  720.  AUTORESET    send reset before sending keys with function 03h
  721.  NORESET    don't send reset
  722.  QUIET        don't display messages sent with INT 21/AH=09h
  723.  NOQUIET    allow messages to be displayed
  724.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  725.  XLATE        translate extended attribute bytes
  726.  NOXLATE    don't translate
  727.  NEWRET        use HLLAPI v3.0 return code conventions
  728.  OLDRET        use HLLAPI v2.0 return code conventions
  729.  
  730. (Table 3547)
  731. Values for Windows HLLAPI return code:
  732.  00h    successful
  733.  01h    Presentation Space not connected/requested size unavailable
  734.  02h    invalid function or parameter error/invalid block ID
  735.  03h    file transfer complete
  736.  04h    file transfer complete (segmented)/Presentation Space busy
  737.  05h    inhibited or keyboard locked
  738.  06h    data truncated
  739.  07h    invalid Presentation Space position
  740.  08h    operation not available
  741.  09h    system error
  742.  0Ah    blocking error
  743.  0Bh    resource not available
  744.  0Ch    session stopped
  745.  14h    undefined key combination
  746.  15h    OIA updated
  747.  16h    Presentation Space updated
  748.  17h    both Presentation Space and OIA updated
  749.  18h    no such field
  750.  19h    no keystrokes available
  751.  1Ah    Presentation Space or Operator Information Area changed
  752.  1Bh    file transfer aborted
  753.  1Ch    zero-length field
  754.  1Eh    cursor type invalid
  755.  1Fh    keystroke overflow
  756.  20h    another application is already connected
  757.  22h    message sent to host cancelled
  758.  23h    transmission from host cancelled
  759.  24h    lost contact with host
  760.  25h    function successful
  761.  26h    function incomplete
  762.  27h    a DDM session is already connected
  763.  28h    disconnected, but asynchronous requests still pending
  764.  29h    buffer already in use
  765.  2Ah    no matching request found
  766. 12Dh    invalid function number
  767. 12Eh    file not found
  768. 131h    access denied
  769. 134h    out of memory
  770. 136h    environment invalid
  771. 137h    format invalid
  772. 270Eh (9998) invalid Presentation Space ID
  773. 270Fh (9999) invalid row or column code
  774. ---Windows HLLAPI extensions---
  775. F000h    asynchronous call already in progress
  776. F001h    invalid asynchronous task ID
  777. F002h    blocking call cancelled
  778. F003h    underlying subsystem not started
  779. F004h    unsupported application version
  780. --------V-7F0105-----------------------------
  781. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  782.     AX = 0105h
  783. Return: CF set on error
  784.     CF clear if successful
  785.         CX:DX -> array of FAR pointers to entry points (see #3548)
  786. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  787.       and then performing a FAR call via the appropriate vector of the
  788.       entry point array, placing the FAR address of the function's
  789.       parameter block on the top of the stack
  790. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  791.  
  792. (Table 3548)
  793. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  794.  08h    HOPEN    Open Adapter (see #3580)
  795.  09h    HSMX    Set Mix (see #3609)
  796.  10h    HINT    Interrupt (see #3576)
  797.  13h    HLDPAL    Load Palette (see #3577)
  798.  15h    HBBW    BitBLT Write Image Data (see #3563)
  799.  17h    HBBR    BitBLT Read Image Data (see #3564)
  800.  18h    HBBCHN    Chained Data Go (see #3562)
  801.  19h    HBBC    BitBLT Copy Data (see #3561)
  802.  1Dh    HQMODE    Get Current Mode (see #3586)
  803.  20h    HRECT    Fill Rectangle (see #3588)
  804.  22h    HCLOSE    Close Adapter and place in quiescent state (see #3569)
  805.  30h    HINIT    Initialize State (see #3575)
  806.  31h    HSYNC    Synchronize Adapter (see #3614)
  807.  39h    HSPAL    Save Palette (see #3611)
  808.  3Ah    HRPAL    Restore Palette (see #3591)
  809.  ???    HSGQ    Set Graphics Quality (see #3600)
  810.  ???    HSCOORD    Set Coordinate Type (see #3597)
  811.  ???    HESC    Escape, Terminate Processing (see #3574)
  812.  ???    HSBCOL    Set Background Color (see #3592)
  813.  ???    HSBP    Set Bit Plane Controls (see #3593)
  814.  ???    HSCMP    Set Color Comparison Register (see #3595)
  815.  ???    HSCOL    Set Color (see #3596)
  816.  ???    HSHS    Set Scissors (clipping rectangle) (see #3601)
  817.  ???    HXLATE    Assign Text Color (see #3615)
  818.  ???    HQMODES    Get Adapter Modes (see #3587)
  819.  ???    HQDPS    Get Drawing Process State Size (see #3585)
  820.  ???    HQDFPAL    Get Default Palette (see #3584)
  821.  ???    HQCOORD    Get Coordinate Type (see #3582)
  822.  ???    HQCP    Get Current Position (see #3583)
  823.  ???    HSMODE    Change Mode (see #3607)
  824.  ???    HLINE    Draw Line at Given Position (see #3578)
  825.  ???    HCLINE    Draw Line at Current Position (see #3568)
  826.  ???    HRLINE    Draw Line Relative from Given Position (see #3589)
  827.  ???    HCRLINE    Draw Line Relative at Current Position (see #3571)
  828.  ???    HSLT    Set Line Type (see #3604)
  829.  ???    HSLW    Set Line Width (see #3606)
  830.  ???    HSLPC    Save Line Pattern Count (see #3603)
  831.  ???    HRLPC    Restore Line Pattern Count (see #3590)
  832.  ???    HCBBW    BitBLT Write Image Data at Current Position (see #3565)
  833.  ???    HBAR    Begin Area (see #3560)
  834.  ???    HEAR    End Area (see #3572)
  835.  ???    HSPATT    Set Pattern (see #3612)
  836.  ???    HSPATTO    Set Pattern Reference Point (see #3613)
  837.  ???    HEGS    Erase Graphics Screen (see #3573)
  838.  ???    HSCP    Set Current Position (see #3598)
  839.  ???    HMRK    Set Marker (see #3579)
  840.  ???    HCMRK    Set Marker at Current Position (see #3570)
  841.  ???    HSMARK    Set Marker Shape (see #3608)
  842.  ???    HSCS    Set Character Set (see #3599)
  843.  ???    HCHST    Write Character String at Given Position (see #3567)
  844.  ???    HCCHST    Write Character String at Current Position (see #3566)
  845.  ???    HSCELL    Set Cell Size for Alphanumeric Text (see #3594)
  846.  ???    ABLOCKMFI Write Character/Attribute Block MFI (see #3551)
  847.  ???    ABLOCKCGA Write Character Block CGA (see #3549)
  848.  ???    AERASE    Erase Rectangle (see #3554)
  849.  ???    ASCROLL Scroll Rectangle (see #3555)
  850.  ???    ACURSOR    Set Alphanumerics Cursor Position (see #3553)
  851.  ???    ASCUR    Set Alphanumeric Cursor Shape (see #3556)
  852.  ???    ASFONT    Set Font (see #3557)
  853.  ???    AXLATE    Assign Alphanumeric Color (see #3559)
  854.  
  855. Format of ABLOCKCGA parameter block:
  856. Offset    Size    Description    (Table 3549)
  857.  00h    WORD    000Ah (length of following data)
  858.  02h    WORD    top-left coordinate of character block
  859.  04h    WORD    width of block
  860.  06h    DWORD    -> block of WORDs describing characters (see #3550)
  861.  0Ah    BYTE    length of block in characters
  862.  0Bh    BYTE    highlight attribute
  863.         bit 4: transparent background
  864.         bit 5: overstrike
  865.         bit 6: reverse video
  866.         bit 7: underscore
  867. SeeAlso: #3551
  868.  
  869. Bitfields for one character in ABLOCKCGA character block:
  870. Bit(s)    Description    (Table 3550)
  871.  3-0    foreground attribute
  872.  7-4    background attribute
  873.  15-8    character code
  874.  
  875. Format of ABLOCKMFI parameter block:
  876. Offset    Size    Description    (Table 3551)
  877.  00h    WORD    0009h (length of following data)
  878.  02h    WORD    top-left coordinate of character block
  879.  04h    WORD    width of block
  880.  06h    DWORD    -> block of DWORDs describing characters (see #3552)
  881.  0Ah    BYTE    length of block in characters
  882. SeeAlso: #3549
  883.  
  884. Bitfields for one character in ABLOCKMFI character block:
  885. Bit(s)    Description    (Table 3552)
  886.  7-0    reserved
  887.  9-8    low two bits of font number
  888.  12    transparent background
  889.  13    overstrike
  890.  14    reverse video
  891.  15    underscore
  892.  19-16    foreground color attribute
  893.  23-20    background color attribute
  894.  31-24    character code
  895.  
  896. Format of ACURSOR parameter block:
  897. Offset    Size    Description    (Table 3553)
  898.  00h    WORD    0002h (length of following data)
  899.  02h    BYTE    column (0-based)
  900.  03h    BYTE    row (0-based)
  901. SeeAlso: #3556
  902.  
  903. Format of AERASE parameter block:
  904. Offset    Size    Description    (Table 3554)
  905.  00h    WORD    0005h (length of following data)
  906.  02h    BYTE    left-most column (0-based)
  907.  03h    BYTE    top-most row (0-based)
  908.  04h    BYTE    rectangle's width in character cells
  909.  05h    BYTE    rectangle's height in character cells
  910.  06h    BYTE    background color (bits 7-4)
  911. SeeAlso: #3555
  912.  
  913. Format of ASCROLL parameter block:
  914. Offset    Size    Description    (Table 3555)
  915.  00h    WORD    0006h (length of following data)
  916.  02h    BYTE    left-most column (0-based) of source
  917.  03h    BYTE    top-most row (0-based) of source
  918.  04h    BYTE    rectangle's width in character cells
  919.  05h    BYTE    rectangle's height in character cells
  920.  06h    BYTE    left-most column (0-based) of destination
  921.  07h    BYTE    top-most row (0-based) of destination
  922. SeeAlso: #3554
  923.  
  924. Format of ASCUR parameter block:
  925. Offset    Size    Description    (Table 3556)
  926.  00h    WORD    0003h (length of following data)
  927.  02h    BYTE    cursor start line (00h = top of cell, FFh = keep current shape)
  928.  03h    BYTE    cursor stop line
  929.  04h    BYTE    cursor attribute
  930.         00h normal
  931.         01h hidden
  932.         02h left-arrow (requires start = 2 and stop = bottom of cell)
  933.         03h right-arrow (requires start = 2 and stop = bottom of cell)
  934. Notes:    no cursor is shown if the start line is greater than the stop line
  935.     the alphanumeric cursor is hidden after each mode change
  936. SeeAlso: #3553,INT 10/AH=01h
  937.  
  938. Format of ASFONT parameter block:
  939. Offset    Size    Description    (Table 3557)
  940.  00h    WORD    0005h (length of following data)
  941.  02h    BYTE    font number (0-3)
  942.  03h    DWORD    -> character set definition block (see #3558)
  943.  
  944. Format of 8514/A character set definition block:
  945. Offset    Size    Description    (Table 3558)
  946.  00h    BYTE    reserved
  947.  01h    BYTE    type of character set
  948.         00h bitmapped, 01h&02h reserved, 03h short-stroke font
  949.  02h    BYTE    reserved
  950.  03h    DWORD    reserved
  951.  07h    BYTE    cell width in pixels
  952.  08h    BYTE    cell height in pixels
  953.  09h    BYTE    reserved
  954.  0Ah    WORD    cell size in bytes
  955.  0Ch    WORD    flags
  956.         bit 15: reserved (0)
  957.         bit 14: color bitmap
  958.         bit 13: proportional spacing
  959.  0Eh    DWORD    -> index table
  960.  12h    DWORD    -> character width table
  961.  16h    BYTE    initial code point
  962.  17h    BYTE    final code point
  963.  18h    DWORD    -> character definition table
  964.  1Ch    WORD    reserved
  965.  1Eh    DWORD    -> second character definition table
  966.  22h    WORD    reserved
  967.  24h    DWORD    -> third character definition table
  968.  
  969. Format of AXLATE parameter block:
  970. Offset    Size    Description    (Table 3559)
  971.  00h    WORD    0080h (length of following data)
  972.  02h 64 BYTEs    character foreground translation table
  973.  42h 64 BYTEs    character background translation table
  974.  
  975. Format of HBAR parameter block:
  976. Offset    Size    Description    (Table 3560)
  977.  00h    WORD    0000h (no data following)
  978. SeeAlso: #3572
  979.  
  980. Format of HBBC parameter block:
  981. Offset    Size    Description    (Table 3561)
  982.  00h    WORD    0010h (length of following data)
  983.  02h    WORD    data format
  984.         0000h across-the-plane copy (color expansion)
  985.         0008h through-the-plane copy
  986.  04h    WORD    data rectangle's width
  987.  06h    WORD    data rectangle's height
  988.  08h    BYTE    source bit plane number (across-the-plane copies only)
  989.  09h    BYTE    reserved
  990.  0Ah  2 WORDs    X,Y coordinates of source's upper-left corner in display memory
  991.  0Eh  2 WORDs    X,Y coordinates of destination's upper-left corner in
  992.           display memory
  993. Note:    copies data from one location in video memory to another
  994. SeeAlso: #3562
  995.  
  996. Format of HBBCHN parameter block:
  997. Offset    Size    Description    (Table 3562)
  998.  00h    WORD    0006h (length of following data)
  999.  02h    DWORD    -> data buffer in system memory
  1000.  06h    WORD    number of bytes to transfer
  1001. Note:    this function performs the actual data transfer for a bitBLT set up
  1002.       with HBBR, HBBW, or HCBBW
  1003. SeeAlso: #3561,#3563,#3564,#3565
  1004.  
  1005. Format of HBBR parameter block:
  1006. Offset    Size    Description    (Table 3563)
  1007.  00h    WORD    000Ch or 0014h (length of following data)
  1008.  02h    WORD    data format
  1009.         0000h across-the-plane copy (color expansion)
  1010.         0008h through-the-plane copy
  1011.  04h    WORD    data rectangle's width
  1012.  06h    WORD    data rectangle's height
  1013.  08h    BYTE    source bit plane number
  1014.  09h    BYTE    reserved
  1015.  0Ah  2 WORDs    X,Y coordinates of destination's upper-left corner in
  1016.           display memory
  1017. ---optional---
  1018.  0Eh    WORD    sub-rectangle left margin in pixels
  1019.  10h    WORD    sub-rectangle top margin in pixels
  1020.  12h    WORD    sub-rectangle width
  1021.  14h    WORD    sub-rectangle height
  1022. SeeAlso: #3562,#3563,#3565
  1023.  
  1024. Format of HBBW parameter block:
  1025. Offset    Size    Description    (Table 3564)
  1026.  00h    WORD    000Ah or 0012h (length of following data)
  1027.  02h    WORD    data format
  1028.         0000h across-the-plane copy (color expansion)
  1029.         0008h through-the-plane copy
  1030.  04h    WORD    data rectangle's width
  1031.  06h    WORD    data rectangle's height
  1032.  08h  2 WORDs    X,Y coordinates of destination in display memory
  1033. ---optional---
  1034.  0Ch    WORD    sub-rectangle left margin in pixels
  1035.  0Eh    WORD    sub-rectangle top margin in pixels
  1036.  10h    WORD    sub-rectangle width
  1037.  12h    WORD    sub-rectangle height
  1038. SeeAlso: #3562,#3564,#3565
  1039.  
  1040. Format of HCBBW parameter block:
  1041. Offset    Size    Description    (Table 3565)
  1042.  00h    WORD    0006h or 000Eh (length of following data)
  1043.  02h    WORD    data format
  1044.         0000h across-the-plane copy (color expansion)
  1045.         0008h through-the-plane copy
  1046.  04h    WORD    data rectangle's width
  1047.  06h    WORD    data rectangle's height
  1048. ---optional---
  1049.  08h    WORD    sub-rectangle left margin in pixels
  1050.  0Ah    WORD    sub-rectangle top margin in pixels
  1051.  0Ch    WORD    sub-rectangle width
  1052.  0Eh    WORD    sub-rectangle height
  1053. SeeAlso: #3562,#3563,#3564
  1054.  
  1055. Format of HCCHST parameter block:
  1056. Offset    Size    Description    (Table 3566)
  1057.  00h    WORD    length of following data
  1058.  02h  N BYTEs    ASCII string to display (length given by 'length' field above)
  1059. SeeAlso: #3567
  1060.  
  1061. Format of HCHST parameter block:
  1062. Offset    Size    Description    (Table 3567)
  1063.  00h    WORD    length of following data
  1064.  02h  2 WORDs    X,Y of left-bottom corner of string on screen
  1065.  06h  N BYTEs    ASCII string to display (length given by 'length' field above)
  1066. SeeAlso: #3566
  1067.  
  1068. Format of HCLINE parameter block:
  1069. Offset    Size    Description    (Table 3568)
  1070.  00h    WORD    length of following data (multiple of 4)
  1071.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  1072. Notes:    the first line segment is drawn beginning at the current position
  1073.     on completion, the current position is set to the last point drawn
  1074. SeeAlso: #3578,#3589,#3571
  1075.  
  1076. Format of HCLOSE parameter block:
  1077. Offset    Size    Description    (Table 3569)
  1078.  00h    WORD    0001h (length of following data)
  1079.  01h    BYTE    (ret) return code
  1080. SeeAlso: #3580
  1081.  
  1082. Format of HCMRK parameter block:
  1083. Offset    Size    Description    (Table 3570)
  1084.  00h    WORD    length of following data
  1085.  02h 2N WORDs    X,Y of N points
  1086. Note:    draws N+1 marker symbols, the first one at the current position
  1087. SeeAlso: #3579
  1088.  
  1089. Format of HCRLINE parameter block:
  1090. Offset    Size    Description    (Table 3571)
  1091.  00h    WORD    length of following data (multiple of 4)
  1092.  02h 2N WORDs    X,Y coordinates relative to the position of the previous point
  1093.           (current position for first point) for each of N points in
  1094.           polyline
  1095. Notes:    the first line segment is drawn beginning at the current position
  1096.     on completion, the current position is set to the last point drawn
  1097. SeeAlso: #3578,#3568,#3589
  1098.  
  1099. Format of HEAR parameter block:
  1100. Offset    Size    Description    (Table 3572)
  1101.  00h    WORD    0001h (length of following data)
  1102.  02h    BYTE    area definition flags
  1103.         bits 7-6: End Area type
  1104.             00 complete, perform fill
  1105.             01 suspend definition
  1106.             10 complete, but don't fill
  1107. SeeAlso: #3560
  1108.  
  1109. Format of HEGS parameter block:
  1110. Offset    Size    Description    (Table 3573)
  1111.  00h    WORD    0000h (no data following)
  1112.  
  1113. Format of HESC parameter block:
  1114. Offset    Size    Description    (Table 3574)
  1115.  00h    WORD    0000h (no data following)
  1116.  
  1117. Format of HINIT parameter block:
  1118. Offset    Size    Description    (Table 3575)
  1119.  00h    WORD    0002h (length of following data)
  1120.  02h    WORD    segment of task buffer
  1121. SeeAlso: #3614
  1122.  
  1123. Format of HINT parameter block:
  1124. Offset    Size    Description    (Table 3576)
  1125.  00h    WORD    0004h (length of following data)
  1126.  02h    DWORD    interrupt/event identifier
  1127.         bit 31: vertical blanking
  1128.  
  1129. Format of HLDPAL parameter block:
  1130. Offset    Size    Description    (Table 3577)
  1131.  00h    WORD    000Ah (length of following data)
  1132.  02h    BYTE    palette ID (00h = user, 01h = default)
  1133.  03h    BYTE    reserved
  1134.  04h    WORD    number of first palette entry
  1135.  06h    WORD    number of entries
  1136.  08h    DWORD    -> palette entries
  1137. SeeAlso: #3611
  1138.  
  1139. Format of HLINE parameter block:
  1140. Offset    Size    Description    (Table 3578)
  1141.  00h    WORD    length of following data (multiple of 4)
  1142.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  1143. Note:    on completion, the current position is set to the last point drawn
  1144. SeeAlso: #3568,#3589,#3571
  1145.  
  1146. Format of HMRK parameter block:
  1147. Offset    Size    Description    (Table 3579)
  1148.  00h    WORD    length of following data (multiple of 4)
  1149.  02h 2N WORDs    X,Y for N points
  1150. SeeAlso: #3570
  1151.  
  1152. Format of HOPEN parameter block:
  1153. Offset    Size    Description    (Table 3580)
  1154.  00h    WORD    0003h (length of following data)
  1155.  01h    BYTE    initialization flags
  1156.         bit 6: don't load default palette
  1157.         bit 7: clear bitplanes
  1158.  02h    BYTE    mode type (see #3581)
  1159.  03h    BYTE    (ret) return code
  1160.         bit 7: no adapter (hardware mismatch)
  1161. SeeAlso: #3569
  1162.  
  1163. (Table 3581)
  1164. Values for 8514/A display mode:
  1165.  0000h    12x20 characters, 1024x768
  1166.  0001h    8x14 characters, 640x480
  1167.  0002h    8x14 characters, 1024x768
  1168.  0003h    7x15 characters, 1024x768
  1169.  
  1170. Format of HQCOORD parameter block:
  1171. Offset    Size    Description    (Table 3582)
  1172.  00h    WORD    0004h (length of following data)
  1173.  02h    BYTE    (ret) coordinate format
  1174.         bits 7-4: bytes per coordinate
  1175.         bits 3-0: fraction bytes in coordinate
  1176.  03h    BYTE    (ret) relative coordinate format
  1177.         bits 7-4: bytes per coordinate
  1178.         bits 3-0: fraction bytes in coordinate
  1179.  04h    BYTE    (ret) number of dimensions (2-4)
  1180.  05h    BYTE    (ret) test results
  1181.         bit 7: coordinate format not supported
  1182.         bit 6: relative coordinate format not supported
  1183.         bit 5: specified dimension not supported
  1184.  
  1185. Format of HQCP parameter block:
  1186. Offset    Size    Description    (Table 3583)
  1187.  00h    WORD    0004h (length of following data)
  1188.  02h    WORD    (ret) current X position
  1189.  04h    WORD    (ret) current Y position
  1190.  
  1191. Format of HQDFPAL parameter block:
  1192. Offset    Size    Description    (Table 3584)
  1193.  00h    WORD    0040h (length of following data)
  1194.  02h 16    DWORDs    (ret) color index values
  1195. Note:    the default palette is set to match the default EGA/VGA 16-color
  1196.       palettes
  1197.  
  1198. Format of HQDPS parameter block:
  1199. Offset    Size    Description    (Table 3585)
  1200.  00h    WORD    0006h (length of following data)
  1201.  02h    WORD    (ret) size of data buffer in bytes
  1202.  04h    WORD    (ret) stack size in bytes
  1203.  06h    WORD    (ret) size of palette save buffer in bytes
  1204.  
  1205. Format of HQMODE parameter block:
  1206. Offset    Size    Description    (Table 3586)
  1207.  00h    WORD    0012h (length of following data)
  1208.  02h    BYTE    current video mode (see #3581)
  1209.  03h    WORD    driver version
  1210.         bit 6: 80286/8086 CPU
  1211.         bit 5: 8 bit planes instead of 4 planes
  1212.         bits 4-0: hardware release number
  1213.  05h    BYTE    adapter type
  1214.         03h 8514/A
  1215.         04h XGA
  1216.  06h    BYTE    reserved (display type)
  1217.  07h    BYTE    character cell width
  1218.  08h    BYTE    character cell height
  1219.  09h    BYTE    number of bit planes
  1220.  0Ah    WORD    screen width (pixels)
  1221.  0Ch    WORD    screen height (pixels)
  1222.  0Eh    WORD    horizontal resolution (pixels/inch)
  1223.  10h    WORD    vertical resolution (pixels/inch)
  1224.  12h    BYTE    flag: 00h = monochrome, FFh = color
  1225.  13h    BYTE    intensity levels
  1226. SeeAlso: #3587
  1227.  
  1228. Format of HQMODES parameter block:
  1229. Offset    Size    Description    (Table 3587)
  1230.  00h    WORD    0021h (length of following data)
  1231.  02h    BYTE    (ret) adapter type
  1232.  03h 32 BYTEs    (ret) available display modes (FFh byte marks end of data)
  1233. SeeAlso: #3586
  1234.  
  1235. Format of HRECT parameter block:
  1236. Offset    Size    Description    (Table 3588)
  1237.  00h    WORD    0008h (legth of following data)
  1238.  02h  2 WORDs    X,Y coordinates of top left corner or rectangle
  1239.  06h    WORD    rectangle's width
  1240.  08h    WORD    rectangle's height
  1241. Note:    the rectangle is filled using the current pattern, color, and mix
  1242.  
  1243. Format of HRLINE parameter block:
  1244. Offset    Size    Description    (Table 3589)
  1245.  00h    WORD    length of following data (multiple of 4)
  1246.  02h  2 WORDs    X,Y coordinates of starting point
  1247.  06h 2N WORDs    X,Y coordinates relative to the position of the previous point
  1248.           for each of N points in polyline
  1249. Note:    on completion, the current position is set to the last point drawn
  1250. SeeAlso: #3578,#3568,#3571
  1251.  
  1252. Format of HRLPC parameter block:
  1253. Offset    Size    Description    (Table 3590)
  1254.  00h    WORD    0000h (no data following)
  1255. Note:    used for continuity of lines crossing scissors boundaries
  1256. SeeAlso: #3603
  1257.  
  1258. Format of HRPAL parameter block:
  1259. Offset    Size    Description    (Table 3591)
  1260.  00h    WORD    0300h (length of following data)
  1261.  02h 768 BYTEs    buffer containing previously-saved palette table
  1262. SeeAlso: #3611
  1263.  
  1264. Format of HSBCOL parameter block:
  1265. Offset    Size    Description    (Table 3592)
  1266.  00h    WORD    0004h (length of following data)
  1267.  02h    DWORD    color index for new background color
  1268. SeeAlso: #3596
  1269.  
  1270. Format of HSBP parameter block:
  1271. Offset    Size    Description    (Table 3593)
  1272.  00h    WORD    000Ch (length of following data)
  1273.  02h    DWORD    bitmask for graphics updates
  1274.  06h    DWORD    bitmask for alphanumeric updates
  1275.  0Ah    DWORD    display bitmask
  1276.  
  1277. Format of HSCELL parameter block:
  1278. Offset    Size    Description    (Table 3594)
  1279.  00h
  1280.  
  1281. Format of HSCMP parameter block:
  1282. Offset    Size    Description    (Table 3595)
  1283.  00h    WORD    0005h (length of following data)
  1284.  02h    DWORD    comparison color
  1285.  06h    BYTE    logical operation
  1286.         00h True
  1287.         01h pel > testcolor
  1288.         02h pel == testcolor
  1289.         03h pel < testcolor
  1290.         04h False
  1291.         05h pel >= testcolor
  1292.         06h pel <> testcolor
  1293.         07h pel <= testcolor
  1294.  
  1295. Format of HSCOL parameter block:
  1296. Offset    Size    Description    (Table 3596)
  1297.  00h    WORD    0004h (length of following data)
  1298.  02h    DWORD    color index for new foreground color
  1299. SeeAlso: #3592
  1300.  
  1301. Format of HSCOORD parameter block:
  1302. Offset    Size    Description    (Table 3597)
  1303.  00h    WORD    0003h (length of following data)
  1304.  02h    BYTE    coordinate format
  1305.         bits 7-4: bytes per coordinate
  1306.         bits 3-0: fraction bytes in coordinate
  1307.  03h    BYTE    relative coordinates format
  1308.         bits 7-4: bytes per coordinate
  1309.         bits 3-0: fraction bytes in coordinate
  1310.  04h    BYTE    number of dimensions (2-4)
  1311.  
  1312. Format of HSCP parameter block:
  1313. Offset    Size    Description    (Table 3598)
  1314.  00h    WORD    0004h (length of following data)
  1315.  02h  2 WORDs    X,Y or coordinate for new current position
  1316.  
  1317. Format of HSCS parameter block:
  1318. Offset    Size    Description    (Table 3599)
  1319.  00h    WORD    0004h (length of following data)
  1320.  02h    DWORD    -> character set definition
  1321.  
  1322. Format of HSGQ parameter block:
  1323. Offset    Size    Description    (Table 3600)
  1324.  00h    WORD    0002h (length of following data)
  1325.  02h    WORD    quality settings (see #3602)
  1326.  
  1327. Format of HSHS parameter block:
  1328. Offset    Size    Description    (Table 3601)
  1329.  00h    WORD    0008h (length of following data)
  1330.  02h    WORD    left edge of clipping rectangle (-2048 to +6143)
  1331.  04h    WORD    right edge
  1332.  06h    WORD    top edge
  1333.  08h    WORD    bottom edget
  1334.  
  1335. Bitfields for 8514/A quality settings:
  1336. Bit(s)    Description    (Table 3602)
  1337.  15    reserved
  1338.  14    high precision
  1339.  13    reserved
  1340.  12-11    pel code
  1341.     00 not drawn
  1342.     01 drawn
  1343.     02 conditional on overpainting/mixes
  1344.  10    don't close areas to be filed
  1345.  9-0    reserved
  1346.  
  1347. Format of HSLPC parameter block:
  1348. Offset    Size    Description    (Table 3603)
  1349.  00h    WORD    0000h (no data following)
  1350. Note:    used for continuity of lines crossing scissors boundaries
  1351. SeeAlso: #3590
  1352.  
  1353. Format of HSLT parameter block:
  1354. Offset    Size    Description    (Table 3604)
  1355.  00h    WORD    0006h (length of following data)
  1356.  02h    BYTE    line type (see #3605)
  1357.  03h    BYTE    reserved
  1358.  04h    DWORD    -> user line-type definition (if user type)
  1359. SeeAlso: #3606
  1360.  
  1361. (Table 3605)
  1362. Values for 8514/A line type:
  1363.  00h    user line type
  1364.  01h    dotted
  1365.  02h    short dashes
  1366.  03h    dash-dot
  1367.  04h    double dotted
  1368.  05h    dashed
  1369.  06h    dash double dot
  1370.  07h    solid
  1371.  08h    invisible
  1372. SeeAlso: #3604
  1373.  
  1374. Format of HSLW parameter block:
  1375. Offset    Size    Description    (Table 3606)
  1376.  00h    WORD    0001h (length of following data)
  1377.  02h    BYTE    width of line in pixels
  1378. SeeAlso: #3604
  1379.  
  1380. Format of HSMODE parameter block:
  1381. Offset    Size    Description    (Table 3607)
  1382.  00h    WORD    0001h (length of following data)
  1383.  02h    BYTE    new display mode number (see #3581)
  1384.  
  1385. Format of HSMRK paramter block:
  1386. Offset    Size    Description    (Table 3608)
  1387.  00h    WORD    000Eh (length of following data)
  1388.  02h    BYTE    cell width
  1389.  03h    BYTE    cell height
  1390.  04h    BYTE    flags
  1391.  05h    BYTE    reserved
  1392.  06h    WORD    length of marker symbol
  1393.  08h    DWORD    -> image definition data
  1394.  0Ch    DWORD    -> color definition data
  1395. SeeAlso: #3612
  1396.  
  1397. Format of HSMX parameter block:
  1398. Offset    Size    Description    (Table 3609)
  1399.  00h    WORD    0002h (length of following data)
  1400.  02h    BYTE    foreground mix (see #3610)
  1401.  03h    BYTE    background mix (see #3610)
  1402.  
  1403. (Table 3610)
  1404. Values for 8514/A mix:
  1405.  00h    retain previous mix
  1406.  01h    source OR destination
  1407.  02h    source
  1408.  04h    source XOR destination
  1409.  05h    leave as-is
  1410.  06h    max(source,destination)
  1411.  07h    min(source,destination)
  1412.  08h    source+destination (clipped)
  1413.  09h    destination-source (clipped to zero)
  1414.  0Ah    source-destination (clipped to zero)
  1415.  0Bh    average source and destination
  1416.  10h    zero destination
  1417.  11h    source AND destination
  1418.  12h    source AND NOT destination
  1419.  13h    source
  1420.  14h    NOT source AND destination
  1421.  15h    leave as-is
  1422.  16h    source XOR destination
  1423.  17h    source OR destination
  1424.  18h    NOT source AND NOT destination
  1425.  19h    NOT (source XOR destination)
  1426.  1Ah    NOT destination
  1427.  1Bh    source OR NOT destination
  1428.  1Ch    NOT source
  1429.  1Dh    NOT source OR destination
  1430.  1Eh    NOT source OR NOT destination
  1431.  1Fh    set all bits of destination
  1432.  
  1433. Format of HSPAL parameter block:
  1434. Offset    Size    Description    (Table 3611)
  1435.  00h    WORD    0300h (length of following data)
  1436.  02h 768 BYTEs    buffer for palette table
  1437. SeeAlso: #3577,#3591
  1438.  
  1439. Format of HSPATT parameter block:
  1440. Offset    Size    Description    (Table 3612)
  1441.  00h    WORD    000Eh (length of following data)
  1442.  02h    BYTE    cell width
  1443.  03h    BYTE    cell height
  1444.  04h    BYTE    flags
  1445.  05h    BYTE    reserved
  1446.  06h    WORD    length of marker symbol
  1447.  08h    DWORD    -> image definition data
  1448.  0Ch    DWORD    -> color definition data
  1449. SeeAlso: #3608,#3613
  1450.  
  1451. Format of HSPATTO parameter block:
  1452. Offset    Size    Description    (Table 3613)
  1453.  00h    WORD    0004h (length of following data)
  1454.  02h  2 WORDs    X,Y of pattern reference point (origin)
  1455. SeeAlso: #3612
  1456.  
  1457. Format of HSYNC parameter block:
  1458. Offset    Size    Description    (Table 3614)
  1459.  00h    WORD    0002h (length of following data)
  1460.  02h    WORD    segment of task state buffer
  1461. SeeAlso: #3575
  1462.  
  1463. Format of HXLATE parameter block:
  1464. Offset    Size    Description    (Table 3615)
  1465.  00h    WORD    0020h (length of following data)
  1466.  02h 32 BYTEs    color index table
  1467. --------V-7F0105-----------------------------
  1468. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  1469.     AX = 0105h
  1470. Return: CF set on error
  1471.     CF clear if successful
  1472.         CX:DX -> array of FAR pointers to entry points (see #3548)
  1473. Note:    this API is a superset of the 8514/A Adapter Interface
  1474.       (see AX=0105h"HDILOAD")
  1475. --------V-7F0106-----------------------------
  1476. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  1477.     AX = 0106h
  1478. Return: AX = 0105h if successfully unloaded
  1479. SeeAlso: AX=0105h
  1480. --------N-7F02-------------------------------
  1481. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  1482.     AH = 02h
  1483.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  1484. Return: AL = status (see #3542)
  1485.     AH = semaphore owner if status=02h
  1486. SeeAlso: AH=00h,AH=01h,AH=42h
  1487. --------T-7F02-------------------------------
  1488. INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
  1489.     AH = 02h
  1490. Return: ???
  1491. Desc:    yields CPU to other tasks
  1492. SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h
  1493. --------N-7F02-------------------------------
  1494. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  1495.     AH = 02h
  1496.     AL = stream number (01h-40h)
  1497.     CX = length of frame
  1498.     ES:SI -> frame to be sent
  1499. SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  1500. --------f-7F0200-----------------------------
  1501. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  1502.     AX = 0200h
  1503. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  1504. --------N-7F03-------------------------------
  1505. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  1506.     AH = 03h
  1507. Return: AL = user number
  1508.     AH = machine number (MW386)
  1509. Note:    this function call is the recommended method for a CPU-bound process to
  1510.       prevent its priority from being lowered
  1511. SeeAlso: AH=04h,AH=05h,AH=A1h
  1512. --------N-7F03-------------------------------
  1513. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  1514.     AH = 03h
  1515.     AL = stream number (01h-40h)
  1516.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  1517.           bytes is usually sufficient)
  1518. Return: BX = number of pending frames (0000h if returned frame was last avail)
  1519.     CX = length of received frame
  1520. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  1521. --------N-7F04-------------------------------
  1522. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  1523.     AH = 04h
  1524. Return: AL = total number of users on currrent machine (MW386)
  1525.     AL = number of slaves on system (NTNX)
  1526. SeeAlso: AH=03h
  1527. --------N-7F04-------------------------------
  1528. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  1529.     AH = 04h
  1530.     AL = stream number (01h-40h)
  1531. Return: CX = state (0000h disconnected, 0001h connected)
  1532.     DX = delta state (0000h no change, 0001h changed since last check)
  1533. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"
  1534. --------N-7F05-------------------------------
  1535. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  1536.     AH = 05h
  1537.     AL = function
  1538.         00h lock system (disable slave services)
  1539.         01h unlock system
  1540.         02h enable spooler
  1541.         03h disable spooler
  1542.         04h enable slave timer update
  1543.         05h disable slave timer update
  1544.         06h enable form feeds
  1545.         07h disable form feeds
  1546. SeeAlso: INT 17/AH=A4h
  1547. --------N-7F05-------------------------------
  1548. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  1549.     AH = 05h
  1550.     DX:DI -> buffer for user information record (see #3616)
  1551. Notes:    MW386 provides this function for backward compatibility only, and sets
  1552.       many of the fields to zero because they are meaningless under MW386
  1553.     this function has no effect when called by the host (user 0)
  1554. SeeAlso: AH=03h
  1555.  
  1556. Format of Alloy user information record:
  1557. Offset    Size    Description    (Table 3616)
  1558.  00h    WORD    segment of video RAM
  1559.  02h    WORD    segment of secondary copy of video RAM
  1560.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  1561.         flag nonzero if update needed
  1562.  06h    WORD    video NMI enable port
  1563.         (not used by MW386, set to 0000h)
  1564.  08h    WORD    video NMI disable port
  1565.         (not used by MW386, set to 0000h)
  1566.  0Ah    BYTE    processor type
  1567.         00h 8088
  1568.         01h V20
  1569.         02h 8086
  1570.         03h V30
  1571.         06h 80386
  1572.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  1573.         (not used by MW386, set to 0000h)
  1574.  0Dh    WORD    offset of terminal driver
  1575.         (not used by MW386, set to 0000h)
  1576.  0Fh    BYTE    port for console I/O
  1577.         (not used by MW386, set to 0000h)
  1578.  10h    WORD    offset of processor communication busy flag
  1579.         bit 7 set when slave communicating with host
  1580.  12h    WORD    pointer to FAR NX system call
  1581.         (not used by MW386, set to 0000h)
  1582.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  1583.  16h    WORD    offset of command/status word
  1584.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  1585.         nonzero if screen must be repainted
  1586.  1Ah    WORD    offset of screen repaint flag
  1587.  1Ch    WORD    pointer to NEAR NX system call
  1588.         (not used by MW386, set to 0000h)
  1589.  1Eh    WORD    offset for intercept flags
  1590.         (not used by MW386, set to 0000h)
  1591.         intercept flag = FFh if MS-DOS intercepts should be disabled
  1592.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  1593.         lock flag = FFh if backgrnd screen updates should be suspended
  1594.  22h 26 BYTEs    reserved
  1595. --------N-7F05-------------------------------
  1596. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  1597.     AH = 05h
  1598.     AL = stream number (01h-40h)
  1599. Note:    this function must be called in order to receive a report of another
  1600.       status change
  1601. SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"
  1602. --------N-7F06-------------------------------
  1603. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  1604.     AH = 06h
  1605.     AL = drive number (1=A:, 2=B:, etc)
  1606.     ES:DI -> drive info record (see #3617)
  1607. Return: AX = status
  1608.         0000h successful
  1609.         ES:DI buffer filled
  1610.         0001h not shared drive
  1611.  
  1612. Format of Alloy drive info record:
  1613. Offset    Size    Description    (Table 3617)
  1614.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  1615.  02h    WORD    segment of allocation map (owner table)
  1616.         one byte per FAT entry, containing user ID owning that entry
  1617.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  1618.  06h    WORD    pointer to configuration file
  1619.  08h    WORD    total number of clusters
  1620.  0Ah    WORD    bytes per sector
  1621.  0Ch    WORD    sectors per cluster
  1622.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  1623. --------N-7F06-------------------------------
  1624. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  1625.     AH = 06h
  1626.     DL = drive number (1=A:,2=B:,etc)
  1627.     CX = number of clusters to allocate
  1628. Return: AH = status
  1629.         00h successful
  1630.         CX = number of clusters still free
  1631.         10h invalid shared drive request
  1632.         CL = first and second shared drives
  1633.         11h invalid cluster count (must be 01h-FFh)
  1634. --------N-7F06-------------------------------
  1635. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  1636.     AH = 06h
  1637.     AL = stream number (01h-40h)
  1638.     CX = subfunction
  1639.         0000h connect to node
  1640.         DL bit 0: use BBS callsign instead of Node Call
  1641.         0001h connect to node
  1642.         use BBS Call if APPLMASK=1
  1643.         0002h disconnect
  1644.         0003h return user to node
  1645. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  1646. --------N-7F07-------------------------------
  1647. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  1648.     AH = 07h
  1649. Return: ES:DI -> shared drive list (see #3618)
  1650. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  1651.       be returned as shared
  1652.  
  1653. Format of Alloy shared drive list:
  1654. Offset    Size    Description    (Table 3618)
  1655.  00h    BYTE    string length
  1656.  01h    BYTE    number of shared drives
  1657.  02h  N BYTEs    one byte per shared drive
  1658. --------N-7F07-------------------------------
  1659. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  1660.     AH = 07h
  1661.     AL = stream number (01h-40h)
  1662. Return: BX = number of pending receive frames
  1663.     CX = number of unacknowledged sent frames
  1664.     DX = number of buffers available
  1665. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  1666. --------N-7F08-------------------------------
  1667. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  1668.     AH = 08h
  1669.     CL = function
  1670.         00h get original interrupt vector
  1671.         01h get Network Executive interrrupt
  1672.     AL = interrupt number
  1673.     DX:SI -> DWORD to hold interrupt vector
  1674. Return: AL = status
  1675.         00h successful
  1676.         01h interrupt vector not used by network executive
  1677.         02h invalid subfunction
  1678. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  1679.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  1680. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  1681. --------N-7F08--CL02-------------------------
  1682. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  1683.     AH = 08h
  1684.     CL = 02h
  1685.     DX = timeout in seconds
  1686. Return: AL = status
  1687.         00h successful
  1688.         02h invalid subfunction
  1689. --------N-7F08-------------------------------
  1690. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  1691.     AH = 08h
  1692.     AL = stream number (01h-40h)
  1693. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  1694.     ---v4.05+ ---
  1695.     AL = radio port to which channel is connected (level 2)
  1696.     AH = session type (see #3619)
  1697.     BX = L2 paclen for session
  1698.     CX = maximum frame size
  1699.     DX = L4 window size or 0000h if not L4 circuit
  1700. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  1701.       John Wiseman which allows a PC to act as a node in an AX.25 network
  1702. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  1703.  
  1704. Bitfields for G8BPQ session type:
  1705. Bit(s)    Description    (Table 3619)
  1706.  0    L2LINK
  1707.  1    SESSION
  1708.  2    UPLINK
  1709.  3    DOWNLIND
  1710.  5    BPQHOST
  1711. --------T-7F09-------------------------------
  1712. INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
  1713.     AH = 09h
  1714.     AL = priority (0-7)
  1715. Return: nothing
  1716. InstallCheck:    ensure that the interrupt vector is not pointing at segment
  1717.       0000h, then test whether the byte at offset 0000h in the interrupt
  1718.       handler's segment is E9h
  1719. Index:    installation check;MultiLink Advanced
  1720. SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"
  1721. --------N-7F09-------------------------------
  1722. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  1723.     AH = 09h
  1724.     AL = application
  1725.         00h node
  1726.         01h BBS
  1727.         02h HOST
  1728.         03h SYSOP
  1729.     BL = what to get (00h callsign, 01h application name)
  1730.     ES:SI -> buffer for callsign/name string
  1731. Return: CX = length of returned string
  1732. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  1733. --------N-7F09-------------------------------
  1734. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  1735.     AH = 09h
  1736.     CL = function
  1737.         00h enable checking of RTNX.MUD file
  1738.         01h disable RTNX.MUD checking
  1739. --------N-7F09--CL02-------------------------
  1740. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  1741.     AH = 09h
  1742.     CL = 02h
  1743. Note:    in dedicated mode, the host will only poll for I/O requests from the
  1744.       slave processors, and not provide workstation services
  1745. --------N-7F09--CL03-------------------------
  1746. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  1747.     AH = 09h
  1748.     CL = 03h
  1749.     AL = default interrupt number (67h,7Fh,etc)
  1750. Return: CL = actual interrupt which handles specified interrupt's calls
  1751. SeeAlso: AH=08h
  1752. --------N-7F0A--CL00-------------------------
  1753. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  1754.     AH = 0Ah
  1755.     CL = 00h
  1756.     ES:DI -> buffer for system flags (see #3620)
  1757. Return: ES:DI buffer filled
  1758. Notes:    on a slave, only the NX_Busy flag is returned
  1759.     all three flags are at fixed positions, so this function only needs to
  1760.       be called once
  1761.     an interrupt handler should only perform DOS or device accesses when
  1762.       all three flags are 00h
  1763.  
  1764. Format of Alloy system flags:
  1765. Offset    Size    Description    (Table 3620)
  1766.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  1767.  04h    DWORD    pointer to device driver busy flag
  1768.  08h    DWORD    pointer to InTimer flag
  1769. --------N-7F0A-------------------------------
  1770. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  1771.     AH = 0Ah
  1772.     AL = radio port
  1773.     ES:SI -> buffer containing data to be sent
  1774.     CX = number of bytes to send
  1775. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  1776. --------T-7F0A-------------------------------
  1777. INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
  1778.     AH = 0Ah
  1779.     AL = task-switch status
  1780.         00h normal (disable task when it repeatedly polls keyboard)
  1781.         01h disable task until keyboard input available
  1782.         FFh never disable task
  1783. Return: ???
  1784. SeeAlso: AH=09h"MultiLink"
  1785. --------N-7F0B--CL02-------------------------
  1786. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  1787.     AH = 0Bh
  1788.     CL = 02h
  1789.     AL = slave ID number
  1790.     CH = DOS to activate
  1791.         00h graphics DOS
  1792.         01h character DOS
  1793. Return: AL = status
  1794.         00h successful
  1795.         01h nothing done, proper DOS type already loaded
  1796. --------N-7F0B-------------------------------
  1797. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  1798.     AH = 0Bh
  1799.     ES:DI -> buffer for received data (see #3621)
  1800. Return: CX = number of bytes received
  1801. Note:    the specified buffer must be large enough to receive a full frame
  1802. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  1803.  
  1804. Format of G8BPQ received data:
  1805. Offset    Size    Description    (Table 3621)
  1806.  00h    WORD    internal control information
  1807.  02h    BYTE    port number (bit 7 set if transmitted frame)
  1808.  03h    WORD    frame length including this header
  1809.  05h    var    user data
  1810. --------N-7F0C-------------------------------
  1811. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  1812.     AH = 0Ch
  1813.     DX = function
  1814.         0001h update beacon text
  1815.         CX = length of data
  1816.         ES:SI -> data to be sent in beacons
  1817.         0002h (v4.07+) initiate NODES broadcast
  1818. SeeAlso: AH=09h"G8BPQ"
  1819. --------N-7F0D00-----------------------------
  1820. INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
  1821.     AX = 0D00h
  1822. Return: AL = first available stream number, or FFh if none free
  1823. SeeAlso: AH=00h"G8BPQ",AH=0Dh
  1824. --------N-7F0D-------------------------------
  1825. INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
  1826.     AH = 0Dh
  1827.     AL = stream number (01h-FFh)
  1828.     CL = function
  1829.         01h allocate stream
  1830.         Return: CX = status (0000h successful, else already in use)
  1831.         02h deallocate stream
  1832. SeeAlso: AX=0D00h
  1833. --------N-7F0F-------------------------------
  1834. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  1835.     AH = 0Fh
  1836. Return: AX = time marker (clock ticks modulo 64K)
  1837. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  1838.       John Wiseman which allows a PC to act as a node in an AX.25 network
  1839. SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h
  1840. --------N-7F10--CL00-------------------------
  1841. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  1842.     AH = 10h
  1843.     CL = 00h
  1844.     AL = channel number
  1845.     DX:DI -> channel buffer
  1846. Return: AL = status (00h-03h,0Dh) (see #3622)
  1847. Note:    may not be invoked from within a hardware interrupt handler
  1848. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  1849.  
  1850. (Table 3622)
  1851. Values for Alloy function status:
  1852.  00h    successful
  1853.  01h    busy
  1854.  02h    channel range error (not 00h-3Fh)
  1855.  03h    invalid subfunction
  1856.  0Ah    channel not open
  1857.  0Ch    channel already locked
  1858.  0Dh    unable to open
  1859. --------N-7F10--CL01-------------------------
  1860. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  1861.     AH = 10h
  1862.     CL = 01h
  1863.     AL = channel number
  1864. Return: AL = status (00h-03h,0Ah) (see #3622)
  1865. Note:    may not be invoked from within a hardware interrupt handler
  1866. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  1867. --------N-7F10--CL02-------------------------
  1868. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  1869.     AH = 10h
  1870.     CL = 02h
  1871.     AL = channel number
  1872. Return: AL = status (00h-03h,0Ah,0Ch) (see #3622)
  1873. Note:    may not be invoked from within a hardware interrupt handler
  1874. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  1875. --------N-7F10--CL03-------------------------
  1876. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  1877.     AH = 10h
  1878.     CL = 03h
  1879.     AL = channel number
  1880. Return: AL = status (00h-03h,0Ah) (see #3622)
  1881. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  1882.       locked by receipt of a datagram
  1883.     may not be invoked from within a hardware interrupt handler
  1884. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  1885. --------N-7F10--CL04-------------------------
  1886. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  1887.     AH = 10h
  1888.     CL = 04h
  1889.     AL = channel number
  1890. Return: AL = status (00h-03h) (see #3622)
  1891. Notes:    unlocks buffer after received datagram has been processed
  1892.     may not be invoked from within a hardware interrupt handler
  1893. SeeAlso: AH=10h/CL=00h
  1894. --------N-7F10--CL05-------------------------
  1895. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  1896.     AH = 10h
  1897.     CL = 05h
  1898. Return: AL = status (00h-03h) (see #3622)
  1899. Notes:    clears all pending datagrams and clears buffer pointers before closing
  1900.       the channels
  1901.     may not be invoked from within a hardware interrupt handler
  1902. SeeAlso: AH=10h/CL=01h
  1903. --------N-7F10--CL06-------------------------
  1904. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  1905.     AH = 10h
  1906.     CL = 06h
  1907. Return: AL = status (00h-03h) (see #3622)
  1908. Note:    may not be invoked from within a hardware interrupt handler
  1909. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  1910. --------N-7F10--CL07-------------------------
  1911. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  1912.     AH = 10h
  1913.     CL = 07h
  1914. Return: AL = status (00h-03h) (see #3622)
  1915. Notes:    unlocks all locked channels which have no pending datagrams
  1916.     may not be invoked from within a hardware interrupt handler
  1917. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  1918. --------N-7F10--CL08-------------------------
  1919. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  1920.     AH = 10h
  1921.     CL = 08h
  1922.     DX = maximum channel number to lock
  1923. Return: AL = status (00h-03h) (see #3622)
  1924. Notes:    locks channels numbered 00h through the value in DX
  1925.     may not be invoked from within a hardware interrupt handler
  1926. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  1927. --------N-7F10--CL09-------------------------
  1928. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  1929.     AH = 10h
  1930.     CL = 09h
  1931.     DX = maximum channel number to unlock
  1932. Return: AL = status (00h-03h) (see #3622)
  1933. Notes:    unlocks channels numbered 00h through the value in DX
  1934.     may not be invoked from within a hardware interrupt handler
  1935. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  1936. --------N-7F11-------------------------------
  1937. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  1938.     AH = 11h
  1939.     DX:SI -> request block (see #3624)
  1940. Return: AL = status (see #3623)
  1941. Note:    if wildcard channel FFh used, actual channel number will be filled in
  1942. SeeAlso: AH=12h
  1943.  
  1944. (Table 3623)
  1945. Values for Alloy function status:
  1946.  00h    successful
  1947.  01h    busy
  1948.  02h    channel range error (not 00h-3Fh)
  1949.  03h    invalid subfunction
  1950.  0Ah    packet too large (or <2 bytes if NTNX)
  1951.  0Bh    can't send packet to itself
  1952.  0Ch    invalid number of destinations
  1953.  0Dh    destination channel number out of range
  1954.  0Eh    destination user is busy
  1955.  0Fh    destination user has locked channel
  1956.  10h    channel not open
  1957.  11h    no datagram server on destination (NTNX)
  1958.  
  1959. Format of Alloy request block:
  1960. Offset    Size    Description    (Table 3624)
  1961.  00h    DWORD    pointer to packet to send
  1962.  04h    WORD    packet size in bytes (1-4096)
  1963.  06h    BYTE    number of destinations for packet (max 1Fh)
  1964.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  1965.  26h 31 BYTEs    destination channels (FFh = first available channel)
  1966.  45h 31 BYTEs    return destination statuses
  1967. --------N-7F12-------------------------------
  1968. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  1969.     AH = 12h
  1970.     AL = channel number being acknowledged
  1971.     DI:DX = 32-bit status to return to sender
  1972. Return: AL = status (see #3625)
  1973. Note:    also unlocks the channel, allowing the next datagram to be received
  1974. SeeAlso: AH=11h,AH=15h/CL=04h
  1975.  
  1976. (Table 3625)
  1977. Values for Alloy function status:
  1978.  00h    successful
  1979.  01h    busy
  1980.  02h    channel range error (not 00h-3Fh)
  1981.  03h    invalid subfunction
  1982.  0Ah    channel not open
  1983.  0Bh    no message in channel
  1984.  0Ch    destination slave busy--retry (NTNX)
  1985.  0Dh    destination user not active
  1986.  0Eh    destination slave not active (NTNX)
  1987.  0Fh    destination disabled datagram service
  1988. --------V-7F1234-----------------------------
  1989. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  1990.     AX = 1234h
  1991. SeeAlso: AX=4321h
  1992. --------N-7F13--CL00-------------------------
  1993. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  1994.     AH = 13h
  1995.     CL = 00h
  1996. Note:    clears all pending datagrams and removes all channels opened in NTNX
  1997.       compatibility mode
  1998. --------N-7F14--CL00-------------------------
  1999. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  2000.     AH = 14h
  2001.     CL = 00h
  2002.     DX:DI -> application FAR receive service routine (see #3626)
  2003. Return: AL = status (00h-03h) (see #3625)
  2004. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  2005.  
  2006. (Table 3626)
  2007. Values Alloy receive service routine is called with:
  2008.     DH = sender ID
  2009.     DL = channel with datagram
  2010.     interrupts disabled
  2011. Return: AL = response code
  2012.         00h leave buffer locked, set channel status, and repeat call later
  2013.         01h release channel buffer
  2014.         02h change buffer pointer to DX:DI
  2015.     AH,CX,DX,DI,SI may be destroyed
  2016. --------N-7F14--CL01-------------------------
  2017. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  2018.     AH = 14h
  2019.     CL = 01h
  2020.     DX:DI -> application FAR acknowledge service routine (see #3627)
  2021. Return: AL = status (00h-03h) (see #3625)
  2022. Note:    the service routine will be called as soon as an acknowledgment arrives
  2023. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  2024.  
  2025. (Table 3627)
  2026. Values Alloy acknowledge service routine is called with:
  2027.     DS:SI -> acknowledge structure (see #3631)
  2028. Return: AL = response code
  2029.         00h application busy, network executive should call again later
  2030.         01h acknowledge accepted
  2031.     AH,DX,SI may be destroyed
  2032. --------N-7F14--CL02-------------------------
  2033. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  2034.     AH = 14h
  2035.     CL = 02h
  2036.     AL = channel number
  2037.     DX:DI -> receive buffer
  2038. Return: AL = status (00h-03h) (see #3625)
  2039. Note:    may be called from within a receive ISR or when a datagram is pending
  2040. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  2041. --------N-7F14--CL03-------------------------
  2042. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  2043.     AH = 14h
  2044.     CL = 03h
  2045. Return: DX:DI -> current receive ISR
  2046. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  2047. --------N-7F14--CL04-------------------------
  2048. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  2049.     AH = 14h
  2050.     CL = 04h
  2051. Return: DX:DI -> current acknowledge ISR
  2052. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  2053. --------N-7F14--CL05-------------------------
  2054. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  2055.     AH = 14h
  2056.     CL = 05h
  2057.     DX:DI -> buffer for busy structure (see #3628)
  2058. Return: DX:DI buffer filled
  2059.  
  2060. Format of Alloy busy structure:
  2061. Offset    Size    Description    (Table 3628)
  2062.  00h    DWORD    pointer to busy flag byte
  2063.  04h    WORD    fixed port address (FF00h)
  2064. --------N-7F15--CL00-------------------------
  2065. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  2066.     AH = 15h
  2067.     CL = 00h
  2068.     AL = channel number
  2069.     DX:DI -> status structure (see #3629)
  2070. Return: AL = status (00h-03h) (see #3625)
  2071. SeeAlso: AH=15h/CL=01h
  2072.  
  2073. Format of Alloy channel status structure:
  2074. Offset    Size    Description    (Table 3629)
  2075.  00h    BYTE    channel status
  2076.         bit 0: channel open
  2077.         bit 1: channel buffer contains received data
  2078.         bit 7: channel locked
  2079.  01h    BYTE    sender ID
  2080. --------N-7F15--CL01-------------------------
  2081. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  2082.     AH = 15h
  2083.     CL = 01h
  2084.     DX:DI -> full-channel structure (see #3630)
  2085. Return: AL = status
  2086.         00h successful
  2087.         01h busy
  2088.         0Ah no datagrams available
  2089. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  2090.       and NTNX return the oldest datagram
  2091. SeeAlso: AH=15h/CL=00h
  2092.  
  2093. Format of Alloy full-channel structure:
  2094. Offset    Size    Description    (Table 3630)
  2095.  00h    BYTE    number of channel with oldest datagram
  2096.  01h    BYTE    sender ID
  2097. --------N-7F15--CL02-------------------------
  2098. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  2099.     AH = 15h
  2100.     CL = 02h
  2101. Return: AH = number of channels available (40h for MW386)
  2102. Note:    the application may always assume at least 32 channels available
  2103. SeeAlso: AH=15h/CL=03h
  2104. --------N-7F15--CL03-------------------------
  2105. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  2106.     AH = 15h
  2107.     CL = 03h
  2108.     DX:DI -> WORD for return value
  2109. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  2110. SeeAlso: AH=15h/CL=02h
  2111. --------N-7F15--CL04-------------------------
  2112. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  2113.     AH = 15h
  2114.     CL = 04h
  2115.     DX:DI -> status structure (see #3631)
  2116. Return: AL = status
  2117.         00h successful
  2118.         DX:DI structure filled
  2119.         01h busy
  2120.         0Ah no acknowledgement has arrived
  2121. SeeAlso: AH=12h,AH=14h/CL=01h
  2122.  
  2123. Format of Alloy status structure:
  2124. Offset    Size    Description    (Table 3631)
  2125.  00h    BYTE    sender ID
  2126.  01h    BYTE    channel number
  2127.  02h  4 BYTEs    receiver status (see #3625)
  2128. --------N-7F16-------------------------------
  2129. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  2130.     AH = 16h
  2131.     DX:SI -> transfer structure (see #3632)
  2132. Return: AL = status
  2133.         00h successful
  2134.         0Ah source or destination out of range
  2135.         0Bh transfer kernel busy--try again
  2136. Notes:    this call transfers memory contents directly between users; both source
  2137.       and destination user IDs may differ from the caller's ID
  2138.     no segment wrap is allowed
  2139.  
  2140. Format of Alloy transfer structure:
  2141. Offset    Size    Description    (Table 3632)
  2142.  00h    WORD    bytes to transfer
  2143.  02h    BYTE    source ID
  2144.         FEh = caller
  2145.  03h    DWORD    source address
  2146.  07h    BYTE    destination ID
  2147.         FFh = all slaves except caller
  2148.         FEh = caller
  2149.  08h    DWORD    destination address
  2150. --------N-7F21-------------------------------
  2151. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  2152.     AH = 21h
  2153.     AL = sender's user ID
  2154.     DS:DX -> control packet (see #3633)
  2155. Note:    messages or commands are ignored if disabled by the destination user
  2156. SeeAlso: AH=22h
  2157.  
  2158. Format of Alloy control packet:
  2159. Offset    Size    Description    (Table 3633)
  2160.  00h    BYTE    packet type
  2161.         00h message
  2162.         01h NTNX command
  2163.         02h MW386 command
  2164.  01h    BYTE    destination user ID or 'A' for all users
  2165.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  2166.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  2167. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  2168. --------N-7F22-------------------------------
  2169. INT 7F - Alloy NTNX - GET MESSAGE
  2170.     AH = 22h
  2171. Return: pending messages displayed on user's screen
  2172. SeeAlso: AH=21h
  2173. --------N-7F24-------------------------------
  2174. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  2175.     AH = 24h
  2176.     CL = function
  2177.         00h attach
  2178.         01h release
  2179.     CH = drive (0=A:,1=B:,etc)
  2180. Return: AX = status (see #3634)
  2181. Note:    only drives on the current machine may be attached
  2182.  
  2183. (Table 3634)
  2184. Values for Alloy function status:
  2185.  00h    successful
  2186.  01h    invalid request
  2187.  02h    already attached
  2188.  03h    not attached
  2189.  04h    lock table full
  2190. --------N-7F24-------------------------------
  2191. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  2192.     AH = 24h
  2193.     CL = function
  2194.         02h attach host
  2195.         03h release host
  2196. Return: AX = status (see #3634)
  2197. Note:    the host processor may be attached in order to perform I/O via the host
  2198. --------N-7F25--CL00-------------------------
  2199. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  2200.     AH = 25h
  2201.     CL = 00h
  2202. Return: AH = version suffix letter
  2203.     CH = major version number
  2204.     CL = minor version number
  2205. SeeAlso: AH=25h/CL=01h
  2206. --------N-7F25--CL01-------------------------
  2207. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  2208.     AH = 25h
  2209.     CL = 01h
  2210. Return: CL = executive type (see #3635)
  2211. SeeAlso: AH=25h/CL=00h
  2212.  
  2213. (Table 3635)
  2214. Values for Alloy network executive type:
  2215.  00h    RTNX
  2216.  01h    ATNX
  2217.  02h    NTNX
  2218.  03h    BTNX
  2219.  04h    MW386
  2220.  05h    ANSK
  2221. --------V-7F2525-----------------------------
  2222. INT 7F - TIGA Communications Driver v2.05 - ???
  2223.     AX = 2525h
  2224.     BX = ???
  2225. Return: ???
  2226. SeeAlso: AX=4321h,AX=5555h
  2227. --------N-7F26--CL00-------------------------
  2228. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  2229.     AH = 26h
  2230.     CL = 00h
  2231. Return: AX = file mode bits (see #3636)
  2232. Note:    MW386 does not support file modes, and always returns AX=001Fh
  2233. SeeAlso: AH=26h,AH=26h/CL=06h
  2234.  
  2235. Bitfields for Alloy file mode bits:
  2236. Bit(s)    Description    (Table 3636)
  2237.  0    directory protection enabled
  2238.  1    extended open enabled
  2239.  2    flush on every disk write
  2240.  3    flush on every disk write in locked interval
  2241.  4    flush on reads from simultaneously opened file
  2242. --------N-7F26-------------------------------
  2243. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  2244.     AH = 26h
  2245.     CL = check type to set/reset
  2246.         01h directory protection
  2247.         02h extended open
  2248.         03h flush on every disk write
  2249.         04h flush on disk write if any lock set during write
  2250.         05h flush on all reads if file written
  2251.     AL = new state (00h off, 01h on)
  2252. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  2253. --------N-7F26--CL06-------------------------
  2254. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  2255.     AH = 26h
  2256.     CL = 06h
  2257. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  2258. SeeAlso: AH=26h/CL=00h
  2259. --------N-7F30-------------------------------
  2260. INT 7F - Alloy MW386 - GET PORT INFORMATION
  2261.     AH = 30h
  2262.     CX = MW386 port number
  2263. Return: AL = result
  2264.         FFh if port not found
  2265.         else driver unit number
  2266.         BL = port mode
  2267.         BH = port type
  2268.             02h remote
  2269.         DH = owner's machine ID
  2270.         DL = owner's user ID
  2271. SeeAlso: INT 17/AH=8Bh
  2272. --------N-7F31-------------------------------
  2273. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  2274.     AH = 31h
  2275.     ???
  2276. Return: ???
  2277. --------N-7F37-------------------------------
  2278. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  2279.     AH = 37h
  2280. Return: ES:AX -> semaphore table
  2281. --------N-7F37-------------------------------
  2282. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  2283.     AH = 37h
  2284.     DS:DX -> ASCIZ string to display
  2285. Note:    if the string is empty, a terminal update will be forced
  2286. --------N-7F38-------------------------------
  2287. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  2288.     AH = 38h
  2289.     AL = new terminal driver number
  2290.         FFh dummy driver
  2291.         FEh current driver
  2292.         FDh load new driver
  2293.         DS:SI -> new driver
  2294. SeeAlso: AH=39h
  2295. --------N-7F39-------------------------------
  2296. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  2297.     AH = 39h
  2298.     AL = new terminal driver number
  2299.         FFh dummy driver
  2300.         FEh current driver
  2301.         FDh load new driver
  2302.         DS:SI -> new driver
  2303.     DL = user number (FFh = caller)
  2304.     DH = machine number if DL <> FFh
  2305. Return: CF set if invalid user number
  2306.     CF clear if successful
  2307. Notes:    only available to supervisors
  2308.     the new driver number will not take effect until the user is rebooted
  2309. SeeAlso: AH=38h
  2310. --------N-7F3A-------------------------------
  2311. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  2312.     AH = 3Ah
  2313.     DL = user number (FFh = caller)
  2314.     DH = machine number
  2315. Return: CF clear if successful
  2316.         AH = terminal driver number
  2317.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  2318.         CL = parity (00h none, 01h even, 02h odd)
  2319.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  2320.     CF set if invalid user number
  2321. SeeAlso: AH=3Bh
  2322. --------N-7F3B-------------------------------
  2323. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  2324.     AH = 3Bh
  2325.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  2326.     CL = parity (00h none, 01h even, 02h odd)
  2327.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  2328.     DL = user number (FFh = caller)
  2329.     DH = machine number for user
  2330. Return: CF set if invalid user number
  2331. Notes:    only available to supervisors
  2332.     the new parameters will take effect immediately if the user's terminal
  2333.       has not been started, else AH=3Dh must be called to post the changes
  2334. SeeAlso: AH=3Ah,AH=3Dh
  2335. --------N-7F3C-------------------------------
  2336. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  2337.     AH = 3Ch
  2338.     AL = new state (00h disabled, 01h enabled)
  2339.     DL = user number (FFh = caller)
  2340.     DH = machine number for user
  2341. Return: CF set if invalid user number
  2342. Note:    only available to supervisors
  2343. SeeAlso: AH=3Dh
  2344. --------N-7F3D-------------------------------
  2345. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  2346.     AH = 3Dh
  2347. Note:    should be called whenever a program changes the terminal type or its
  2348.       parameters
  2349. SeeAlso: AH=3Bh
  2350. --------N-7F41-------------------------------
  2351. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  2352.     AH = 41h
  2353.     AL = user ID
  2354.     DS:DX -> ASCIZ filename
  2355. Return: AL = status (see #3637)
  2356. Note:    requests exclusive read/write access to file
  2357. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  2358.  
  2359. (Table 3637)
  2360. Values for Alloy function status:
  2361.  00h    successful
  2362.  01h    invalid function
  2363.  02h    already locked
  2364.  03h    unable to lock
  2365.  04h    lock table full or semaphore space exhausted
  2366. --------N-7F41-------------------------------
  2367. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  2368.     AH = 41h
  2369.     AL = user ID
  2370.     DS:DX -> ASCIZ semaphore name
  2371. Return: AL = status (see #3637)
  2372. SeeAlso: AH=00h,AH=42h"MW386"
  2373. --------s-7F4150BHC1-------------------------
  2374. INT 7F U - Voyetra - AAPISG - API
  2375.     AX = 4150h ('AP')
  2376.     BH = C1h
  2377.     BL = function (00h-13h)
  2378.         00h initialize (fails except first time called)
  2379.     ???
  2380. Return: AX = status???
  2381.         0000h successful
  2382.         0001h failed
  2383. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  2384. BUG:    the function range check uses JL instead of JB, so it will cause a
  2385.       crash if BL >= 80h on entry
  2386. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  2387. --------N-7F42-------------------------------
  2388. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  2389.     AH = 42h
  2390.     AL = user ID
  2391.     DS:DX -> ASCIZ filename
  2392. Return: AL = status (see #3637)
  2393. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  2394. --------N-7F42-------------------------------
  2395. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  2396.     AH = 42h
  2397.     AL = user ID
  2398.     DS:DX -> ASCIZ semaphore name
  2399. Return: AL = status
  2400.         00h successful
  2401.         01h invalid function
  2402.         03h unable to unlock semaphore
  2403. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  2404. --------V-7F4321-----------------------------
  2405. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  2406.     AX = 4321h
  2407. Return: AX = 0000h if installed
  2408. Note:    INT 7F is the default, but may be overridden
  2409. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  2410. --------s-7F4331BHC1-------------------------
  2411. INT 7F U - Voyetra - VAPISG - API
  2412.     AX = 4331h ('C1')
  2413.     BH = C1h
  2414.     BL = function (00h-7Ah)
  2415.     ???
  2416. Return: ???
  2417. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  2418.       sound board
  2419. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  2420. --------N-7F4E-------------------------------
  2421. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  2422.     AH = 4Eh
  2423.     AL = error mode flags
  2424.         bit 0: display critical disk errors
  2425.         bit 1: display sharing errors
  2426.     DX = 4E58h ("NX")
  2427. Return: AL = status
  2428.         00h successful
  2429. SeeAlso: AH=4Fh
  2430. --------N-7F4F-------------------------------
  2431. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  2432.     AH = 4Fh
  2433.     AL = FCB mode
  2434.         02h read/write compatibility
  2435.         42h read/write shared
  2436.     DX = 4E58h ("NX")
  2437. Return: AL = status
  2438.         00h successful
  2439. --------V-7F5555-----------------------------
  2440. INT 7F - TIGA Communications Driver v2.05 - ???
  2441.     AX = 5555h
  2442.     BX = ???
  2443. Return: ???
  2444. SeeAlso: AX=4321h
  2445. --------s-7F564DBHC1-------------------------
  2446. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  2447.     AX = 564Dh ('VM')
  2448.     BH = C1h
  2449.     BL = function (00h-1Bh)
  2450.         00h ???
  2451.         Return: CF clear
  2452.             AX = 0000h
  2453.     ???
  2454. Return: AX = FFFFh if invalid function
  2455.     ???
  2456. SeeAlso: AX=4331h,AX=5658h
  2457. --------s-7F5658BHC1-------------------------
  2458. INT 7F U - Voyetra - VAPISG - API
  2459.     AX = 5658h ('VX')
  2460.     BH = C1h
  2461.     BL = function (00h-1Bh)
  2462.     ???
  2463. Return: ???
  2464. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  2465.       sound board
  2466. SeeAlso: AX=4331h,AX=564Dh
  2467. --------N-7F81-------------------------------
  2468. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  2469.     AH = 81h
  2470.     AL = user ID
  2471.     DS:DX -> ASCIZ device name
  2472. SeeAlso: AH=82h
  2473. --------N-7F82-------------------------------
  2474. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  2475.     AH = 82h
  2476.     AL = user ID
  2477.     DS:DX -> ASCIZ device name
  2478. SeeAlso: AH=81h
  2479. --------N-7FA0-------------------------------
  2480. INT 7F - Alloy MW386 - GET USER NAME
  2481.     AH = A0h
  2482.     DL = user number (FFh = caller)
  2483.     DH = machine number for user
  2484.     ES:DI -> 17-byte buffer for ASCIZ user name
  2485. Return: CF set if invalid user number
  2486. SeeAlso: AH=03h,AH=A1h
  2487. --------N-7FA1-------------------------------
  2488. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  2489.     AH = A1h
  2490. Return: AL = process number
  2491.     DL = user number
  2492.     DH = machine number
  2493. SeeAlso: AH=03h,AH=A0h,AH=A2h
  2494. --------N-7FA2-------------------------------
  2495. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  2496.     AH = A2h
  2497.     DL = user number (FFh = caller)
  2498.     DH = machine number for user
  2499. Return: CF clear if successful
  2500.         AL = privilege level
  2501.         00h supervisor
  2502.         01h high
  2503.         02h medium
  2504.         03h low
  2505.     CF set if invalid user number
  2506. SeeAlso: AH=A1h,AH=A3h
  2507. --------N-7FA3-------------------------------
  2508. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  2509.     AH = A3h
  2510.     DL = user number
  2511.     DH = machine number for user
  2512. Return: CF clear if successful
  2513.         AL = login state
  2514.         00h never logged in
  2515.         01h currently logged out
  2516.         03h currently logged in
  2517.     CF set if invalid user number or user not active
  2518. SeeAlso: AH=A2h
  2519. --------N-7FA4-------------------------------
  2520. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  2521.     AH = A4h
  2522.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  2523. Return: AL = status
  2524.         00h     accepted
  2525.         else invalid password
  2526. --------N-7FA500-----------------------------
  2527. INT 7F - Alloy MW386 - GET USER STATUS
  2528.     AX = A500h
  2529.     DI = machine number and user number
  2530. Return: CF clear if successful
  2531.         BX = user flags
  2532.         bit 5: allow messages
  2533.         CL = scan code for task manager hotkey
  2534.         CH = scan code for spooler hotkey
  2535.         DL = scan code for task swapper hotkey
  2536.         DH = modifier key status
  2537.     CF set if invalid user number
  2538. SeeAlso: AX=A501h
  2539. Index:    hotkeys;Alloy MW386
  2540. --------N-7FA501-----------------------------
  2541. INT 7F - Alloy MW386 - SET USER STATUS
  2542.     AX = A501h
  2543.     BX = user flags (see AX=A500h)
  2544.     CL = scan code for task manager hotkey
  2545.     CH = scan code for spooler hotkey
  2546.     DL = scan code for task swapper hotkey
  2547.     DH = modifier key status
  2548.     DI = machine number and user number
  2549. Return: CF set if invalid user number
  2550. Note:    must have supervisor privilege to set another user's status
  2551. SeeAlso: AX=A500h
  2552. Index:    hotkeys;Alloy MW386
  2553. --------V-7FABCDBX0000-----------------------
  2554. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  2555.     AX = ABCDh
  2556.     BX = 0000h
  2557. Return: AX = total number of functions available
  2558.     ES:BX -> entry point array (see #3638)
  2559. SeeAlso: AX=0104h,AX=0105h
  2560.  
  2561. (Table 3638)
  2562. Values for 8516 Touch Screen function number:
  2563.  00h    check initialization and reset (see #3639)
  2564.  14h    set user-defined subroutine (see #3640)
  2565. Notes:    each driver function takes two stack parameters using Pascal calling
  2566.       conventions: address of parameter block and address of results buffer
  2567.     all pointers are FAR pointers
  2568.     on return, AX contains the status of the call:
  2569.         AX = 0000h successful
  2570.          0001h invalid input
  2571.          0002h interface error
  2572.          0003h unable to perform function
  2573.  
  2574. Format of 8516 Touch Screen Function 00h parameter block:
  2575. Offset    Size    Description    (Table 3639)
  2576.  00h    WORD    0000h (function number)
  2577. Note:    this function should be called before any other device driver functions
  2578.  
  2579. Format of 8516 Touch Screen Function 00h results buffer:
  2580. Offset    Size    Description    (Table 3640)
  2581.  00h    WORD    touch screen status
  2582.         0000h unavailable
  2583.         0001h uncalibrated
  2584.         FFFFh available
  2585.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  2586. Notes:    the following driver parameters will have been reset to zero:
  2587.       touchdown counter, liftoff counter, position at last touch, position
  2588.       at last lift, int call mask, select on count, select off count,
  2589.       pos select on count, pos select off count.
  2590.     the following driver parameters will have been reset as listed:
  2591.       mouse emulation mode: left on
  2592.       thresholds: 46 on screen, 96 push harder, 80 push release
  2593.       x, y hysteresis: 400
  2594.       data repeat rate: 40/sec
  2595.       select mechanism: push-harder - first-touch
  2596.       coordinate origin: upper left corner
  2597.       filter frequency: medium
  2598.       data block mask: all enabled
  2599.       click lock: on
  2600. --------N-7FB0-------------------------------
  2601. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  2602.     AH = B0h
  2603.     AL = user number
  2604.     DS = code segment
  2605. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  2606.       or INT 7F locking functions
  2607. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  2608. --------N-7FB1--SF00-------------------------
  2609. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  2610.     AH = B1h subfn 00h
  2611.     AL = (bits 7-5) 000
  2612.          (bits 4-0) user ID
  2613. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  2614.       INT 7F locking functions
  2615. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  2616. --------N-7FB2--SF01-------------------------
  2617. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  2618.     AH = B2h subfn 01h
  2619.     AL = (bits 7-5) 001
  2620.          (bits 4-0) user ID
  2621. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  2622. --------N-7FB3--SF02-------------------------
  2623. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  2624.     AH = B3h subfn 02h
  2625.     AL = (bits 7-5) 010
  2626.          (bits 4-0) user ID
  2627. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  2628. --------N-7FB4-------------------------------
  2629. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  2630.     AH = B4h
  2631.     AL = user ID
  2632. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  2633. --------N-7FC3-------------------------------
  2634. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  2635.     AH = C3h
  2636.     AL = byte to write
  2637. Return: CF clear if successful
  2638.     CF set on error
  2639. SeeAlso: AH=C6h
  2640. --------N-7FC5-------------------------------
  2641. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  2642.     AH = C5h
  2643.     AL = new console mode
  2644.         00h keyboard indirect
  2645.         01h keyboard direct
  2646.         02h data handshake enforced
  2647.         03h no data handshake
  2648. Return: CF clear if successful
  2649.         AL = prior console mode
  2650.     CF set on error (caller is not remote user)
  2651. Note:    modes 2 and 3 may be used for input through the console port; no video
  2652.       output should be performed in these modes
  2653. --------N-7FC6-------------------------------
  2654. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  2655.     AH = C6h
  2656.     AL = byte to write
  2657. Return: CF clear if successful
  2658.     CF set on error (caller is not remote user)
  2659. Note:    any terminal driver data translation will be bypassed
  2660. SeeAlso: AH=C3h,AH=C7h
  2661. --------N-7FC7-------------------------------
  2662. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  2663.     AH = C7h
  2664. Return: CF clear if successful
  2665.         AL = byte read
  2666.     CF set on error (no data available or caller is not remote user)
  2667. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  2668. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  2669. --------N-7FC8-------------------------------
  2670. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  2671.     AH = C8h
  2672.     AL = maximum bytes to read
  2673.     ES:DI -> buffer for console data
  2674. Return: CF clear if successful
  2675.         CX = number of bytes read
  2676.     CF set on error (caller is not remote user)
  2677. SeeAlso: AH=C7h
  2678. --------N-7FCF-------------------------------
  2679. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  2680.     AH = CFh
  2681.     DS:DX -> ASCIZ string containing user number to be reset
  2682. SeeAlso: AH=D6h
  2683. --------N-7FD6-------------------------------
  2684. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  2685.     AH = D6h
  2686.     DS:DX -> reset packet (see #3641)
  2687. Return: never if successful
  2688. Note:    all users will be shut down immediately if successful
  2689. SeeAlso: AH=CFh
  2690.  
  2691. Format of Alloy MW386 reset packet:
  2692. Offset    Size    Description    (Table 3641)
  2693.  00h    DWORD    reset code (60606060h)
  2694.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  2695. --------N-7FD7-------------------------------
  2696. INT 7F - Alloy MW386 - POST EVENT
  2697.     AH = D7h
  2698.     AL = user number (if local event)
  2699.     DX = event number
  2700. --------N-7FD8-------------------------------
  2701. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  2702.     AH = D8h
  2703. Return: CF set on error
  2704. Note:    forces all disk buffers to be written out immediately
  2705. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  2706. --------N-7FDB-------------------------------
  2707. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  2708.     AH = DBh
  2709. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  2710. --------N-7FE0-------------------------------
  2711. INT 7F - Alloy MW386 - CREATE DOS TASK
  2712.     AH = E0h
  2713.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2714.     DS:DX -> ASCIZ task name (max 16 bytes)
  2715. Return: CF clear if successful
  2716.         AL = task create ID
  2717.     CF set on error
  2718. Note:    only foreground DOS tasks can use this function
  2719. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  2720. --------N-7FE1-------------------------------
  2721. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  2722.     AH = E1h
  2723.     AL = create ID (from AH=E0h)
  2724. Return: AL = DOS process number
  2725.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2726. Note:    this function should not be called immediately after creating a new
  2727.       DOS task, since the new task is being initialized by a concurrent
  2728.       process
  2729. SeeAlso: AH=E0h,AH=E2h
  2730. --------N-7FE2-------------------------------
  2731. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  2732.     AH = E2h
  2733.     AL = DOS process number (from AH=E1h)
  2734. Return: CF set on error (invalid process number or caller not foreground task)
  2735. Notes:    specified task becomes the foreground task and current task is placed
  2736.       in the background
  2737.     may only be called by a foreground task
  2738. SeeAlso: AH=E0h,AH=E1h
  2739. --------N-7FE3-------------------------------
  2740. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  2741.     AH = E3h
  2742.     DS:DX -> ASCIZ task name
  2743. ---v1.x---
  2744.     AL = user number
  2745. ---v2+---
  2746.     BH = user number
  2747.     BL = task number
  2748. Return: CF clear if successful
  2749.     CF set on error (invalid process number)
  2750. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  2751. --------N-7FE4-------------------------------
  2752. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  2753.     AH = E4h
  2754.     ES:DI -> buffer for task name
  2755. ---v1.x---
  2756.     AL = user number
  2757. ---v2+---
  2758.     BH = user number
  2759.     BL = task number
  2760. Return: CF clear if successful
  2761.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2762.         DX = task flags
  2763.         bit 7: MS-DOS process
  2764.         ES:DI buffer filled
  2765.     CF set on error (invalid process number)
  2766. SeeAlso: AH=E3h,AH=E5h
  2767. --------N-7FE5-------------------------------
  2768. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  2769.     AH = E5h
  2770.     DS:DX -> ASCIZ task name
  2771.     BH = user number
  2772. Return: CF clear if successful
  2773.         AL = DOS process number
  2774.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  2775.     CF set on error (no match for name)
  2776. SeeAlso: AH=E3h,AH=E4h
  2777. --------N-7FE6-------------------------------
  2778. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  2779.     AH = E6h
  2780. Return: AX = number of processes available to current user
  2781. SeeAlso: AH=E0h
  2782. --------N-7FE7-------------------------------
  2783. INT 7F - Alloy MW386 - REMOVE DOS TASK
  2784.     AH = E7h
  2785.     AL = DOS process number
  2786. Return: CF clear if successful
  2787.     CF set on error (invalid process number or first process)
  2788. Note:    can only be called by a foreground task
  2789. SeeAlso: AH=E0h
  2790. --------N-7FE8-------------------------------
  2791. INT 7F - Alloy MW386 - DOS TASK DELAY
  2792.     AH = E8h
  2793.     CX = delay time in milliseconds
  2794. Note:    a delay of 0 may be used to surrender the current time slice
  2795. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  2796. SeeAlso: INT 2F/AX=1680h
  2797. --------N-7FF0-------------------------------
  2798. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  2799.     AH = F0h
  2800.     AL = group number
  2801.     DS:DX -> ASCIZ directory name
  2802. Return: CF clear if successful
  2803.         AX = status
  2804.         0002h directory not found
  2805.         0003h directory not found
  2806.         0005h directory in use, cannot be restricted
  2807.         02xxh restricted to group xxh
  2808.     CF set on error
  2809. Note:    the restriction on the directory may be removed by calling this
  2810.       function with group 0, then using AH=F1h to assign the directory to
  2811.       group 0
  2812. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  2813. --------N-7FF1-------------------------------
  2814. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  2815.     AH = F1h
  2816.     AL = group number
  2817.     DS:DX -> ASCIZ directory name
  2818. Notes:    performs permanent assignment to a group; no immediate action is taken
  2819.       unless the directory has been restricted with AH=F0h
  2820.     may be used to restrict a nonexistent directory
  2821. SeeAlso: AH=F0h
  2822. --------N-7FF2-------------------------------
  2823. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  2824.     AH = F2h
  2825.     CX = entry number
  2826.     ES:DI -> 64-byte buffer
  2827. Return: CF clear if successful
  2828.         buffer filled with 63-byte directory info and 1-byte group number
  2829.     CF set on error (invalid entry)
  2830. SeeAlso: AH=F0h,AH=F3h
  2831. --------N-7FF3-------------------------------
  2832. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  2833.     AH = F3h
  2834.     AL = group number
  2835.     CX = entry number
  2836.     ES:DI -> 64-byte buffer
  2837. Return: CF clear if successful
  2838.         CX = next entry number
  2839.         buffer filled with 63-byte directory info and 1-byte group number
  2840.     CF set on error (no more matching entries)
  2841. Note:    like AH=F2h, but only returns directories belonging to the specified
  2842.       group
  2843. SeeAlso: AH=F2h
  2844. --------N-7FF8-------------------------------
  2845. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  2846.     AH = F8h
  2847.     AL = group number
  2848.     DL = user number
  2849.     DH = machine number (currently 00h)
  2850. Return: CF clear if successful
  2851.     CF set on error (user already in maximum number of groups)
  2852. Note:    each user is allowed eight group assignments
  2853. SeeAlso: AH=F9h,AH=FAh
  2854. --------N-7FF9-------------------------------
  2855. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  2856.     AH = F9h
  2857.     AL = group number
  2858.     DL = user number
  2859.     DH = machine number (currently 00h)
  2860. Return: CF clear if successful
  2861.     CF set if failed
  2862. SeeAlso: AH=F8h,AH=FAh
  2863. --------N-7FFA-------------------------------
  2864. INT 7F - Alloy MW386 - GET USER GROUP LIST
  2865.     AH = FAh
  2866.     DL = user number
  2867.     DH = machine number (currently 00h)
  2868.     ES:DI -> 16-byte buffer for group list
  2869. Return: CX = number of groups
  2870.     ES:DI buffer filled with group numbers
  2871. SeeAlso: AH=F8h,AH=F9h
  2872. --------N-7FFB-------------------------------
  2873. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  2874.     AH = FBh
  2875.     CL = group number
  2876.     ES:DI -> ASCIZ group name (max 17 bytes)
  2877. SeeAlso: AH=FCh
  2878. --------N-7FFC-------------------------------
  2879. INT 7F - Alloy MW386 - GET GROUP NAME
  2880.     AH = FCh
  2881.     CL = group number
  2882.     ES:DI -> 17-byte buffer for ASCIZ name
  2883. Return: ES:DI buffer filled
  2884. Note:    if the group has not been named, "(unnamed)" is returned
  2885. SeeAlso: AH=FBh
  2886. ----------80---------------------------------
  2887. INT 80 - Q-PRO4 - ???
  2888. --------r-80---------------------------------
  2889. INT 80 - reserved for BASIC
  2890. Note:    this vector and INT 81 through INT ED are modified but not restored by
  2891.       Direct Access v4.0, and may be left dangling by other programs
  2892.       written with the same version of compiled BASIC
  2893. SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC"
  2894. --------E-80---------------------------------
  2895. INT 80 - Phar Lap 386|DOS-Extender - RELOCATED PRINT-SCREEN
  2896. Note:    the extender relocates INT 05 to here by default, but can be told to
  2897.       leave INT 05 alone with the commandline (or DOSX= environment
  2898.       variable) flag -PRIVEC 5
  2899. SeeAlso: INT 05"PRINT SCREEN"
  2900. --------d-80---------------------------------
  2901. INT 80 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  2902. Note:    the factory-default location for the eight bytes of scratchpad RAM
  2903.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  2904.       vectors 80h and 81h
  2905. SeeAlso: INT 81"BusLogic"
  2906. --------b-80---------------------------------
  2907. INT 80 U - AMI BIOS v1.00.12.AX1T - internal - BIOS SUBSYSTEM SELECTION
  2908.     AH = function
  2909.         00h install and initialize BIOS subsystem
  2910.         AL = ??? (00h,01h,03h)
  2911.         CX:BX = subsystem ID (see #3642)
  2912.         ESI = address from which to load, or 00000000h for default for
  2913.             subsystem
  2914.         EDI = physical address at which to install, or 0 for default
  2915.         Note:    if CX=0000h on entry, this call is applied to all
  2916.               subsystems whose ID has low word BX
  2917.         01h get BIOS subsystem information
  2918.         CX:BX = subsystem ID (see #3642)
  2919.         Return: AL = ???
  2920.             AH = ???
  2921.             EDX = uncompressed size of subsystem in bytes
  2922.             SI = offset within subsystem of initialization
  2923.                 routine, or FFFFh if none
  2924.             EDI = physical address of default location or 0
  2925.         02h get matching subsystem identifier
  2926.         AL = index into subsystem list (return ALth occurrence
  2927.               matching BX)
  2928.         BX = low word of subsystem identifier
  2929.             (0001h,0002h,0004h,0005h,000Bh,FFFFh)
  2930.         Return: CF clear if successful
  2931.                 CX = high word of ALth matching subsystem
  2932.             CF set on error
  2933.         Note:    the system is halted if AL=00h on entry
  2934.         03h set up "big real" mode (4G segment limits)
  2935.         04h turn off "big real" mode (restore 64K segment limits)
  2936.         05h remove BIOS subsystem
  2937.         CX:BX = subsystem ID to leave out
  2938.         Note:    the system is halted if an invalid (not installed)
  2939.               subsystem ID is specified
  2940.         06h get installed subsystem info
  2941.         CX:BX = subsystem ID (see #3642)
  2942.         Return:    CF clear
  2943.             EDX = length of ???
  2944.             EDI = linear address of start of ???
  2945.         Note:    the system is halted if an invalid (not installed)
  2946.               subsystem ID is specified
  2947. Return: CF clear if successful
  2948.     CF set on non-fatal error
  2949. Note:    this interrupt vector is cleared to 0000h:0000h near the end of the
  2950.       BIOS startup sequence
  2951.  
  2952. (Table 3642)
  2953. Values for AMI BIOS subsystem ID:
  2954.  00010001h    ROM BIOS @F000-FFFF
  2955.  00010002h    setup??? (loaded @6000-68FF)
  2956.  00010005h    APM code
  2957.  0001000Bh    language-specific error message set (English)
  2958.  00020002h    PnP/PCI ACFG code (loaded @F000-F1FF)
  2959.  0001FFFFh
  2960.  0002FFFFh    recovery code
  2961.  00030004h
  2962.  0003FFFFh    BIOS decompression code
  2963.  0004000Bh
  2964.  00060004h
  2965.  0100FFFFh    ACFG data
  2966.  10000000h    ROM @C000 (64K)
  2967.  10000001h    HMA (48K)
  2968.  10000002h    RAM @7A00 (24K)
  2969.  10000003h    RAM @8000-BFFF
  2970.  10000004h
  2971.  10000005h    real-mode address space (0-1M)
  2972.  1000000Bh    installed language-specific message set???
  2973. --------s-80----BL00-------------------------
  2974. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  2975.     BL = 00h
  2976.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  2977. Return: AX = initialization result (see #3643)
  2978. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  2979.       which provides access to multiple drivers for the SoundBlaster
  2980.       board through a single interface
  2981. Range:    INT 80h to INT BFh, selected automatically
  2982. Note:    the SBSIM installation check consists of testing for the signature
  2983.       "SBSIM" at offset 103h in the interrupt handler's segment.
  2984. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  2985. SeeAlso: INT 80/BX=0000h"SBSIM"
  2986.  
  2987. (Table 3643)
  2988. Values for SBSIM error code:
  2989.  01h    busy--currently in use
  2990.  02h    bad driver specified
  2991.  03h    invalid function
  2992.  04h    voice process already active
  2993.  05h    couldn't start CT-VOICE
  2994.  06h    couldn't start CTVDSK
  2995.  07h    invalid SBSIM handle
  2996.  08h    buffer not initialized yet
  2997.  09h    bad filename
  2998.  0Ah    bad file handle
  2999.  0Bh    driver not started yet
  3000.  0Ch    XMS driver not installed
  3001.  0Dh    no free SBSIM handles
  3002.  0Eh    bad file type
  3003.  0Fh    couldn't free XMS block
  3004.  10h    invalid source selected
  3005.  11h    get pan position failed
  3006.  12h    set pan position failed
  3007.  13h    set volume failed
  3008.  14h    couldn't start fade/pan
  3009.  15h    couldn't stop fade/pan
  3010.  16h    couldn't pause fade/pan
  3011.  17h    not a fade/pan operation
  3012.  18h    bad mode for fade/pan
  3013.  19h    couldn't start fade/pan
  3014.  1Ah    source not fading/panning
  3015.  1Bh    FM or MIDI already playing
  3016.  1Ch    bad MIDI mapper format
  3017. --------s-80----BL01-------------------------
  3018. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  3019.     BL = 01h
  3020.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3021. Return: AX = result (see #3643)
  3022. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  3023. --------s-80----BL02-------------------------
  3024. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  3025.     BL = 02h
  3026.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3027. Return: nothing
  3028. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  3029. --------s-80----BL03-------------------------
  3030. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  3031.     BL = 03h
  3032.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3033. Return: nothing
  3034. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  3035. SeeAlso: INT 80/BL=05h
  3036. --------s-80----BL04-------------------------
  3037. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  3038.     BL = 04h
  3039.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3040. Return: nothing
  3041. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  3042. --------s-80----BL05-------------------------
  3043. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  3044.     BL = 05h
  3045.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  3046. Return: AX = status
  3047. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  3048. --------s-80----BX0000-----------------------
  3049. INT 80 - SoundBlaster SBFM driver - GET VERSION
  3050.     BX = 0000h
  3051. Return: ???
  3052. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  3053. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh/ES=0000h
  3054. --------s-80----BX0000-----------------------
  3055. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  3056.     BX = 0000h
  3057. Return: AX = version (AH = major, AL = minor)
  3058. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  3059.       which provides access to multiple drivers for the SoundBlaster
  3060.       board through a single interface
  3061. Range:    INT 80h to INT BFh, selected automatically
  3062. Note:    the SBSIM installation check consists of testing for the signature
  3063.       "SBSIM" at offset 103h in the interrupt handler's segment.
  3064. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 21/AX=4402h"CTMMSYS"
  3065. SeeAlso: INT 80/BL=00h"SBSIM"
  3066. Index:    installation check;SBSIM|installation check;SoundBlaster
  3067. --------s-80----BX0001-----------------------
  3068. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  3069.     BX = 0001h
  3070.     DX:AX -> music status byte
  3071. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  3072. --------s-80----BX0001-----------------------
  3073. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  3074.     BX = 0001h
  3075. Return: AX = bit flags for loaded drivers (see #3644)
  3076. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  3077.  
  3078. Bitfields for SBSIM loaded drivers:
  3079. Bit(s)    Description    (Table 3644)
  3080.  0    FM
  3081.  1    double disk-buffered voice driver (DDBV)
  3082.  2    memory voice driver
  3083.  3    auxiliary driver (mixer)
  3084.  4    MIDI
  3085. --------s-80----BX0002-----------------------
  3086. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  3087.     BX = 0002h
  3088.     CX = number of instruments
  3089.     DX:AX -> instrument table
  3090. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  3091. --------s-80----BX0002-----------------------
  3092. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  3093.     BX = 0002h
  3094.     AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  3095. Return: CF clear if successful
  3096.         DX:AX -> entry point
  3097.     CF set on error
  3098. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  3099. --------s-80----BX0003-----------------------
  3100. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  3101.     BX = 0003h
  3102.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  3103.         FFFFh to restore to 18.2 Hz
  3104. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  3105. --------s-80----BX0004-----------------------
  3106. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  3107.     BX = 0004h
  3108.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  3109. Note:    default frequency is 96 Hz
  3110. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  3111. --------s-80----BX0005-----------------------
  3112. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  3113.     BX = 0005h
  3114.     AX = semi-tone offset
  3115. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  3116. --------s-80----BX0005-----------------------
  3117. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  3118.     BX = 0005h
  3119.     AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  3120. Return: CF clear if successful
  3121.         DX:AX -> buffer
  3122.         CX = buffer size in K
  3123.     CF set on error
  3124. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  3125.       which provides access to multiple drivers for the SoundBlaster
  3126.       board through a single interface
  3127. Range:    INT 80h to INT BFh, selected automatically
  3128. Note:    the SBSIM installation check consists of testing for the signature
  3129.       "SBSIM" at offset 103h in the interrupt handler's segment.
  3130. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  3131. --------s-80----BX0006-----------------------
  3132. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  3133.     BX = 0006h
  3134.     DX:AX -> music block
  3135. Return: AX = status
  3136.         0000h successful
  3137.         0001h music already active
  3138. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  3139. --------s-80----BX0007-----------------------
  3140. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  3141.     BX = 0007h
  3142. Return: AX = status
  3143.         0000h successful
  3144.         0001h music not active
  3145. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  3146. --------s-80----BX0008-----------------------
  3147. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  3148.     BX = 0008h
  3149. Return: AX = status
  3150.         0000h successful
  3151.         0001h music is active
  3152. SeeAlso: BX=0000h"SBFM"
  3153. --------s-80----BX0009-----------------------
  3154. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  3155.     BX = 0009h
  3156. Return: AX = status
  3157.         0000h successful
  3158.         0001h no music active
  3159. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  3160. --------s-80----BX000A-----------------------
  3161. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  3162.     BX = 000Ah
  3163. Return: AX = status
  3164.         0000h successful
  3165.         0001h no music paused
  3166. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  3167. --------s-80----BX000B-----------------------
  3168. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  3169.     BX = 000Bh
  3170.     DX:AX -> trap routine
  3171. SeeAlso: BX=0000h"SBFM"
  3172. --------s-80----BX0400-----------------------
  3173. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  3174.     BX = 0400h
  3175.     AX = sound source (see #3645)
  3176. Return: CF clear if successful
  3177.         AX = volume
  3178.     CF set on error
  3179.         AX = error code (see #3643 at INT 80/BL=00h)
  3180. SeeAlso: BX=0401h"SBSIM"
  3181.  
  3182. (Table 3645)
  3183. Values for SBSIM sound source:
  3184.  00h    master volume
  3185.  01h    voice
  3186.  02h    FM
  3187.  03h    CD
  3188.  04h    line in
  3189.  05h    microphone
  3190. --------s-80----BX0401-----------------------
  3191. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  3192.     BX = 0401h
  3193.     AX = sound source (see #3645)
  3194.     DX = new volume
  3195. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  3196. SeeAlso: BX=0400h"SBSIM"
  3197. --------N-8001-------------------------------
  3198. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  3199.     AH = 01h
  3200. Return: AX = 0000h
  3201.     CX = FFFFh
  3202.     DX = FFFFh
  3203. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  3204.     all buffer pointers are reset back to 0
  3205. --------N-8002-------------------------------
  3206. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  3207.     AH = 02h
  3208.     BX = extra bytes to allocate per packet
  3209. Return: AX = segment address of 10K buffer (for receives???)
  3210.     BX = segment address of 2K buffer (for sends???)
  3211. SeeAlso: AH=05h
  3212. --------N-8003-------------------------------
  3213. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  3214.     AH = 03h
  3215. Return: CX:DX -> receive call address
  3216. Note:    the returned address can be used in the packet driver calls since it
  3217.       will be a valid address in all DOS boxes
  3218. SeeAlso: AH=06h
  3219. --------N-8004-------------------------------
  3220. INT 80 - QPC Software PKTINT.COM - ENABLE???
  3221.     AH = 04h
  3222.     BX = ???
  3223. Return: ???
  3224. SeeAlso: AH=01h
  3225. --------N-8005-------------------------------
  3226. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  3227.     AH = 05h
  3228. Return: AX = amount of buffer currently in use
  3229.     BX = current offset in buffer
  3230.     CX = number of times receive has been called
  3231. SeeAlso: AH=02h
  3232. --------N-8006-------------------------------
  3233. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  3234.     AH = 06h
  3235. Return: BX = next packet offset
  3236.     CX = number of bytes still buffered
  3237.     DX = size of packet released back into buffer pool
  3238. SeeAlso: AH=03h
  3239. --------r-81---------------------------------
  3240. INT 81 - reserved for BASIC
  3241. Note:    this vector is modified but not restored by Direct Access v4.0, and
  3242.       may be left dangling by other programs written with the same version
  3243.       of compiled BASIC
  3244. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  3245. --------N-81---------------------------------
  3246. INT 81 - IBM TOKEN RING ADAPTER - ???
  3247. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  3248. --------d-81---------------------------------
  3249. INT 81 - BusLogic BT-946C PCI SCSI Adapter - SCRATCHPAD RAM (NOT A VECTOR!)
  3250. Note:    the factory-default location for the eight bytes of scratchpad RAM
  3251.       needed by the SCSI adapter is 0000h:0200h, which is interrupt
  3252.       vectors 80h and 81h
  3253. SeeAlso: INT 80"BusLogic"
  3254. --------b-81---------------------------------
  3255. INT 81 - AMI WinBIOS - SECOND HARD DRIVE AUTODETECTION
  3256. Notes:    used by WinBIOS with core version of July 1994 or later
  3257.     QEMM 7.5 began using this interrupt internally after the QPAT3
  3258.       maintenance release when searching for "ROM holes", causing a
  3259.       lengthy delay during bootup.    Adding the QEMM parameter RH:N will
  3260.       avoid the QEMM call to INT 81 and speed up the boot process
  3261. --------O-81---------------------------------
  3262. INT 81 - Paragon Technology PTS/DOS 6.5x, S/DOS 1.0 - API
  3263. --------s-810200---------------------------
  3264. INT 81 - Gravis UltraSound - MegaEm - PROCESS COMMAND LINE
  3265.     AX = 0200h
  3266.     BX = PSP segment
  3267.     SI = ??? (data area)
  3268. Return: AX = status (see #3646)
  3269.     BL = emulation state
  3270.         bit 1   Emulation is on
  3271.         bit 2   Emulation is off
  3272. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  3273.       emulator for the Gravis UltraSound
  3274. Range:    INT 81 to INT FF (see INT 21/AX=FD12h), selected by scanning for an
  3275.       interrupt with vector 0000h:0000h
  3276. SeeAlso: AX=0202h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  3277.  
  3278. (Table 3646)
  3279. Values for MegaEm status:
  3280.  0000h    successful
  3281.  0001h    invalid command line optie
  3282.  0002h    display options
  3283.  0003h    ???
  3284.  0004h    invalid number of voices specified
  3285.  0005h    could not load enough patches to provide acceptable emulation
  3286.  0006h    to many warnings on patch loading
  3287.  0007h    ??? (not used anymore)
  3288.  0008h    /CO and SCSI don't work together
  3289.  0009h    invalid music volume
  3290.  000Ah    invalid master volume
  3291.  000Bh    /SC switch is no longer valid
  3292.  0100h    ??? (some error on patch loading)
  3293. --------s-810202---------------------------
  3294. INT 81 - Gravis UltraSound - MegaEm - ???
  3295.     AX = 0202h
  3296. Return: AX = ???
  3297. SeeAlso: AX=0200h,AX=0300h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  3298. --------s-810300---------------------------
  3299. INT 81 - Gravis UltraSound - MegaEm - LOAD SAMPLE ???
  3300.     AX = 0300h
  3301. Return: AX = ???
  3302. SeeAlso: AX=0200h,AX=0202h,AX=0400h,INT 21/AX=FD12h/BX=3457h
  3303. --------s-810400---------------------------
  3304. INT 81 - Gravis UltraSound - MegaEm - ???
  3305.     AX = 0400h
  3306.     BX = ??? (segment)
  3307. Return: AX = ???
  3308.     BX = ???
  3309. Program: MegaEm is a protected-mode SoundBlaster, SoundCanvas, and MT-32
  3310.       emulator for the Gravis UltraSound
  3311. SeeAlso: AX=0200h,AX=0202h,AX=0300h,INT 21/AX=FD12h/BX=3457h
  3312. --------s-812010------------------------
  3313. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - INT 78 REDIRECT
  3314.     AX = 2010h
  3315.     ???
  3316. Return: ???
  3317. Note:    MegaEm calls this function from its INT 78 handler, and then
  3318.       immediately returns (via RETF in v3.10, thus leaving the flags on
  3319.       the stack); this permits it to operate while hooking only one
  3320.       interrupt through the memory manager in protected mode
  3321. SeeAlso: AX=2011h,AX=2012h
  3322. --------s-812011------------------------
  3323. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - NMI REDIRECT
  3324.     AX = 2011h
  3325.     ???
  3326. Return: ???
  3327. Note:    MegaEm calls this function from its NMI (INT 02) handler, and then
  3328.       immediately returns; this permits it to operate while hooking only
  3329.       one interrupt through the memory manager in protected mode
  3330. SeeAlso: AX=2010h,AX=2012h
  3331. --------s-812012------------------------
  3332. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - SOUNDCARD IRQ REDIRECT
  3333.     AX = 2012h
  3334.     ???
  3335. Return: ???
  3336. Note:    MegaEm calls this function from its GUS IRQ handler, and then
  3337.       immediately returns; this permits it to operate while hooking only
  3338.       one interrupt through the memory manager in protected mode
  3339. SeeAlso: AX=2010h,AX=2011h
  3340. --------s-812015------------------------
  3341. INT 81 - Gravis UltraSound - MEGA_EM v3.0+ - ???
  3342.     AX = 2015h
  3343.     ???
  3344. Return: ???
  3345. --------r-82---------------------------------
  3346. INT 82 - reserved for BASIC
  3347. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  3348. --------N-82---------------------------------
  3349. INT 82 - IBM TOKEN RING ADAPTER - ???
  3350.     AH = function
  3351.         00h display message???
  3352.         DS:BX -> string
  3353.     ???
  3354. Return: ???
  3355. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  3356. --------r-83---------------------------------
  3357. INT 83 - reserved for BASIC
  3358. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  3359. --------s-8300-------------------------------
  3360. INT 83 - JM Pro Tracker v5.0 - ???
  3361.     AH = 00h
  3362.     ???
  3363. Return: CF clear (successful)
  3364.     AX = ??? (0302h)
  3365. Program: JM Pro Tracker is a public-domain resident .MOD (digital music)
  3366.       player by Josha Munnik
  3367.  
  3368. (Table 3647)
  3369. Values for JM Pro Tracker error code:
  3370.  000Ah    ???
  3371.  000Bh    ???
  3372.  0014h    ???
  3373.  001Eh    some required parameters have not yet been set
  3374.  001Fh    already playing???
  3375.  FExxh    busy (API call already in progress)
  3376.  FFxxh    invalid function number
  3377. --------s-8301-------------------------------
  3378. INT 83 - JM Pro Tracker v5.0 - ???
  3379.     AH = 01h
  3380.     DX = ??? or FFFFh
  3381.     ???
  3382. Return: CF clear if successful
  3383.     CF set on error
  3384.         AX = error code (see #3647)
  3385. --------s-8302-------------------------------
  3386. INT 83 - JM Pro Tracker v5.0 - ???
  3387.     AH = 02h
  3388.     BX = ???
  3389.     ???
  3390. Return: CF clear if successful
  3391.         AX = ???
  3392.         BX = ???
  3393.         CX = ???
  3394.         DX = ???
  3395.         SI = ???
  3396.     CF set on error
  3397.         AX = error code (000Ah,000Bh,other) (see #3647)
  3398. --------s-8303-------------------------------
  3399. INT 83 - JM Pro Tracker v5.0 - ???
  3400.     AH = 03h
  3401.     BX = ??? (only low four bits, must be nonzero)
  3402.     CX = ???
  3403.     ???
  3404. Return: CF clear if successful
  3405.     CF set on error
  3406.         AX = error code (0014h) (see #3647)
  3407. --------s-8304-------------------------------
  3408. INT 83 - JM Pro Tracker v5.0 - SET DMA BUFFER???
  3409.     AH = 04h
  3410.     CX = number of bytes in suggested buffer
  3411.     ES:DI -> suggested buffer for DMA transfers???
  3412. Return: CF clear if successful
  3413.         ES:AX -> actual buffer (filled with bytes of 80h)
  3414.         CX = actual length (multiple of 4)
  3415.     CF set on error
  3416.         AX = error code (see #3647)
  3417. Note:    the buffer must not cross a 64K DMA page boundary
  3418. --------s-8305-------------------------------
  3419. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  3420.     AH = 05h
  3421.     CX = length of buffer
  3422.     ES:DI -> buffer for/containing ???
  3423. Return: CF clear (successful)
  3424. SeeAlso: AH=06h,AH=07h,AH=18h
  3425. --------s-8306-------------------------------
  3426. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  3427.     AH = 06h
  3428.     CX = length of buffer
  3429.     ES:DI -> buffer for/containing ???
  3430. Return: CF clear (successful)
  3431. SeeAlso: AH=05h,AH=07h,AH=18h
  3432. --------s-8307-------------------------------
  3433. INT 83 - JM Pro Tracker v5.0 - SET ??? BUFFER
  3434.     AH = 07h
  3435.     BX = ???
  3436.     CX = length of buffer
  3437.     ES:DI -> buffer for/containing ???
  3438. Return: CF clear (successful)
  3439. SeeAlso: AH=05h,AH=06h,AH=18h
  3440. --------s-8308-------------------------------
  3441. INT 83 - JM Pro Tracker v5.0 - START PLAYING???
  3442.     AH = 08h
  3443.     ???
  3444. Return: CF clear if successful
  3445.        ???
  3446.     CF set on error
  3447.         AX = error code (001Eh,001Fh) (see #3647)
  3448. SeeAlso: AH=09h,AH=0Ah
  3449. --------s-8309-------------------------------
  3450. INT 83 - JM Pro Tracker v5.0 - PAUSE???
  3451.     AH = 09h
  3452.     ???
  3453. Return: CF clear if successful
  3454.     CF set on error
  3455.         AX = error code (see #3647)
  3456. SeeAlso: AH=08h,AH=0Ah
  3457. --------s-830A-------------------------------
  3458. INT 83 - JM Pro Tracker v5.0 - RESUME???
  3459.     AH = 0Ah
  3460.     ???
  3461. Return: CF clear if successful
  3462.     CF set on error
  3463.         AX = error code (001Fh) (see #3647)
  3464. SeeAlso: AH=08h,AH=09h
  3465. --------s-830B-------------------------------
  3466. INT 83 - JM Pro Tracker v5.0 - ???
  3467.     AH = 0Bh
  3468.     BX = ???
  3469.     ???
  3470. Return: CF clear if successful
  3471.     CF set on error
  3472. --------s-830C-------------------------------
  3473. INT 83 - JM Pro Tracker v5.0 - ???
  3474.     AH = 0Ch
  3475.     DX bit 5 = ???
  3476.     ???
  3477. Return: CF clear if successful
  3478.         BX = ??? (FFFFh)
  3479.         CX = ??? (0000h)
  3480.         DX = ???
  3481.     CF set on error
  3482.         AX = error code (see #3647)
  3483. --------s-830D-------------------------------
  3484. INT 83 - JM Pro Tracker v5.0 - ???
  3485.     AH = 0Dh
  3486.     BX = ???
  3487.     ???
  3488. Return: CF clear (successful)
  3489. --------s-830E-------------------------------
  3490. INT 83 - JM Pro Tracker v5.0 - ???
  3491.     AH = 0Eh
  3492.     BX = ??? (ignored if ES:DI = 0000h:0000h)
  3493.     ES:DI -> ??? or 0000h:0000h
  3494. Return: CF clear (successful)
  3495. --------s-830F-------------------------------
  3496. INT 83 - JM Pro Tracker v5.0 - ???
  3497.     AH = 0Fh
  3498.     ???
  3499. Return: CF clear if successful
  3500.         AX = ???
  3501.     CF set on error
  3502.         AX = error code (see #3647)
  3503. --------s-8310-------------------------------
  3504. INT 83 - JM Pro Tracker v5.0 - ???
  3505.     AH = 10h
  3506.     BL = subfunction???
  3507.     CX = ???
  3508.     DX = ???
  3509.     ???
  3510. Return: CF clear if successful
  3511.         CX = DX = ???
  3512.     CF set on error
  3513.         AX = error code (see #3647)
  3514. SeeAlso: AH=18h
  3515. --------s-8311-------------------------------
  3516. INT 83 - JM Pro Tracker v5.0 - ???
  3517.     AH = 11h
  3518.     BL = ???
  3519.     CX = ???
  3520. Return: CF clear (successful)
  3521. --------s-8312-------------------------------
  3522. INT 83 - JM Pro Tracker v5.0 - CLEAR ???
  3523.     AH = 12h
  3524. Return: nothing
  3525. --------s-8313-------------------------------
  3526. INT 83 - JM Pro Tracker v5.0 - ???
  3527.     AH = 13h
  3528.     BX = ???
  3529. Return: CF clear (successful)
  3530. --------s-8314-------------------------------
  3531. INT 83 - JM Pro Tracker v5.0 - ???
  3532.     AH = 14h
  3533.     ???
  3534. Return: CF clear (successful)
  3535.     BX = ???
  3536. --------s-8315-------------------------------
  3537. INT 83 - JM Pro Tracker v5.0 - GET ???
  3538.     AH = 15h
  3539.     BX = what to get (zero/nonzero)
  3540. Return: CF clear if successful
  3541.         BX = ???
  3542.         DX = ???
  3543.     CF set on error
  3544.         AX = error code (see #3647)
  3545. --------s-8316-------------------------------
  3546. INT 83 - JM Pro Tracker v5.0 - ???
  3547.     AH = 16h
  3548.     AL = subfunction
  3549.         00h ???
  3550.         Return: BX = ???
  3551.             CX = ???
  3552.             DX = ???
  3553.             ES:DI -> ???
  3554.             CF indicates ???
  3555.         01h ???
  3556.         Return: BX = ???
  3557.             CX = ???
  3558.             DX = ???
  3559. Return: CF clear if successful
  3560.     CF set on error
  3561.         AX = error code (FFxxh) (see #3647)
  3562. --------s-8317-------------------------------
  3563. INT 83 - JM Pro Tracker v5.0 - UNHOOK API INTERRUPT
  3564.     AH = 17h
  3565. Return: CF clear if successful
  3566.     CF set on error (hooked by another program)
  3567. --------s-8318-------------------------------
  3568. INT 83 - JM Pro Tracker v5.0 - SET BUFFERS
  3569.     AH = 18h
  3570.     ES:DI -> buffer-pointer structure (see #3648)
  3571. Return: nothing
  3572. SeeAlso: AH=05h,AH=06h,AH=07h,AH=10h
  3573.  
  3574. Format of JM Pro Tracker buffer-pointer structure:
  3575. Offset    Size    Description    (Table 3648)
  3576.  00h    WORD    length of ??? buffer (see AH=05h)
  3577.  02h    DWORD    -> ??? buffer (see AH=05h)
  3578.  06h    WORD    length of ??? buffer (see AH=06h)
  3579.  08h    DWORD    -> ??? buffer (see AH=06h)
  3580.  0Ch    WORD    length of ??? buffer (see AH=07h)
  3581.  0Eh    DWORD    -> ??? buffer (see AH=07h)
  3582.  12h    WORD    ??? (see AH=07h)
  3583.  14h    WORD    ??? (see AH=10h) (subfunction 01h)
  3584.  16h    WORD    ??? (see AH=10h) (subfunction 01h)
  3585.  18h    WORD    ??? (see AH=10h) (subfunction 00h)
  3586.  1Ah    WORD    ??? (see AH=10h) (subfunction 01h)
  3587. --------r-84---------------------------------
  3588. INT 84 - reserved for BASIC
  3589. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  3590. --------r-85---------------------------------
  3591. INT 85 - reserved for BASIC
  3592. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  3593.       v4.0, and may be left dangling by other programs written with the
  3594.       same version of compiled BASIC
  3595. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  3596. --------N-86---------------------------------
  3597. INT 86 - NetBIOS - ORIGINAL INT 18
  3598. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  3599. SeeAlso: INT 18"BOOT HOOK"
  3600. --------r-86---------------------------------
  3601. INT 86 - IBM ROM BASIC - used while in interpreter
  3602. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3603.     BASIC.COM/BASICA.COM do not restore vector on termination
  3604. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  3605. --------r-86---------------------------------
  3606. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  3607. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  3608. --------r-87---------------------------------
  3609. INT 87 - IBM ROM BASIC - used while in interpreter
  3610. Notes:    called by ROM BASIC
  3611.     BASIC.COM/BASICA.COM do not restore vector on termination
  3612. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  3613. --------r-87---------------------------------
  3614. INT 87 - APL*PLUS/PC - ???
  3615. SeeAlso: INT 86"APL",INT 88/AL=00h
  3616. --------v-87---------------------------------
  3617. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  3618. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  3619.       following
  3620. SeeAlso: INT 8B"VIRUS"
  3621. --------r-88---------------------------------
  3622. INT 88 - IBM ROM BASIC - used while in interpreter
  3623. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3624.     BASIC.COM/BASICA.COM do not restore vector on termination
  3625. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  3626. --------r-88--00-----------------------------
  3627. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  3628.     AL = 00h
  3629.     BX = STPTR of the variable to be assigned
  3630.     ES:SI -> model of type, rank, and shape (see #3649)
  3631. Return: ES:DI -> first data byte of object
  3632.     DX:CX = number of elements in the object
  3633. SeeAlso: INT 88/AL=01h,INT 88/AL=08h,INT C8"APL"
  3634.  
  3635. Format of APL*PLUS/PC shape model:
  3636. Offset    Size    Description    (Table 3649)
  3637.  00h    BYTE    type
  3638.         01h character (2-byte dimension sizes)
  3639.         02h integer (2-byte dimension sizes)
  3640.         08h floating point (2-byte dimension sizes)
  3641.         11h character (4-byte dimension sizes)
  3642.         12h integer (4-byte dimension sizes)
  3643.         18h floating point (4-byte dimension sizes)
  3644.  01h    BYTE    rank
  3645.  02h    (D)WORD first dimension of shape
  3646.  N    (D)WORD second dimension of shape
  3647.     ...
  3648. --------r-88--01-----------------------------
  3649. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  3650.     AL = 01h
  3651.     AH = rank
  3652.     BX = STPTR of the variable to be assigned
  3653.     CX = first dimension (if any)
  3654.     DX = second dimension (if any)
  3655. Return: ES:DI -> object
  3656.     CX = number of elements in the object
  3657. Note:    each dimension must be 32767 or smaller
  3658. SeeAlso: AL=00h,AL=02h,AL=08h,INT C8"APL"
  3659. --------r-88--02-----------------------------
  3660. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  3661.     AL = 02h
  3662.     AH = rank
  3663.     BX = STPTR of the variable to be assigned
  3664.     CX = first dimension (if any)
  3665.     DX = second dimension (if any)
  3666. Return: ES:DI -> object
  3667.     CX = number of elements in the object
  3668. Note:    each dimension must be 32767 or smaller
  3669. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  3670. --------r-88--08-----------------------------
  3671. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  3672.     AL = 08h
  3673.     AH = rank
  3674.     BX = STPTR of the variable to be assigned
  3675.     CX = first dimension (if any)
  3676.     DX = second dimension (if any)
  3677. Return: ES:DI -> object
  3678.     CX = number of elements in the object
  3679. Note:    each dimension must be 32767 or smaller
  3680. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  3681. --------r-88--F5-----------------------------
  3682. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  3683.     AL = F5h
  3684.     BX = STPTR of object
  3685. SeeAlso: INT C8"APL"
  3686. --------r-88--F6-----------------------------
  3687. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  3688.     AL = F6h
  3689.     BX = STPTR of object
  3690. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  3691. --------r-88--F7-----------------------------
  3692. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  3693.     AL = F7h
  3694.     BX = STPTR of object
  3695. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  3696. --------r-88--F8-----------------------------
  3697. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  3698.     AL = F8h
  3699.     BX = STPTR of object
  3700. Return: BX = name's outswapping status
  3701.         0000h eligible
  3702.         0001h not eligible
  3703. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  3704. --------r-88--F9-----------------------------
  3705. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  3706.     AL = F9h
  3707.     ES:SI -> name
  3708.     CX = length of name
  3709. Return: CF set if name ill-formed or already in use
  3710.         BX = STPTR if already in symbol table
  3711.     CF clear if name is available for use
  3712.         BX = 0000h
  3713. Note:    does not force the name into the workspace
  3714. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  3715. --------r-88--FC-----------------------------
  3716. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  3717.     AL = FCh
  3718.     BX = amount of memory needed (paragraphs)
  3719. Return: CF clear if memory available
  3720.     CF set if a workspace compaction is required
  3721. SeeAlso: AL=FDh,INT C8"APL"
  3722. --------r-88--FD-----------------------------
  3723. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  3724.     AL = FDh
  3725. Return: BX = number of paragraphs available in workspace
  3726. SeeAlso: AL=FCh,INT C8"APL"
  3727. --------r-88--FE-----------------------------
  3728. INT 88 - APL*PLUS/PC - CREATE NAME
  3729.     AL = FEh
  3730.     ES:SI -> name
  3731.     CX = length of name
  3732. Return: BX = STPTR of name
  3733.     DX = interpreter's data segment
  3734. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  3735. --------r-88--FF-----------------------------
  3736. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  3737.     AL = FFh
  3738.     ES:SI -> name
  3739.     CX = length of name
  3740. Return: CF set if name ill-formed or already in use
  3741.         BX = STPTR if already in symbol table
  3742.     CF clear if name is available for use
  3743.         BX = 0000h
  3744. Note:    forces the name into the workspace and makes it immune from outswapping
  3745. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  3746. --------r-89---------------------------------
  3747. INT 89 - IBM ROM BASIC - used while in interpreter
  3748. Notes:    called by ROM BASIC
  3749.     BASIC.COM/BASICA.COM do not restore vector on termination
  3750. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  3751. --------r-89---------------------------------
  3752. INT 89 - APL*PLUS/PC - ???
  3753. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  3754.       the older interrupts
  3755. SeeAlso: INT C9"APL"
  3756. --------r-8A---------------------------------
  3757. INT 8A - IBM ROM BASIC - used while in interpreter
  3758. Notes:    called by ROM BASIC
  3759.     BASIC.COM/BASICA.COM do not restore vector on termination
  3760. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  3761. --------r-8A---------------------------------
  3762. INT 8A - APL*PLUS/PC - PRINT SCREEN
  3763. Note:    same as INT 05
  3764. SeeAlso: INT 05"PRINT SCREEN",INT 8C"APL",INT CA"APL"
  3765. --------r-8B---------------------------------
  3766. INT 8B - IBM ROM BASIC - used while in interpreter
  3767. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3768.     BASIC.COM/BASICA.COM do not restore vector on termination
  3769. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  3770. --------r-8B---------------------------------
  3771. INT 8B - APL*PLUS/PC - BEEP
  3772. Note:    same as printing a ^G via INT 21/AH=02h
  3773. SeeAlso: INT 21/AH=02h,INT CB"APL"
  3774. --------v-8B---------------------------------
  3775. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  3776. Note:    if the ZeroHunt virus is resident, this vector will contain either
  3777.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  3778. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  3779. --------r-8C---------------------------------
  3780. INT 8C - IBM ROM BASIC - used while in interpreter
  3781. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3782.     BASIC.COM/BASICA.COM do not restore vector on termination
  3783. --------r-8C---------------------------------
  3784. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  3785.     AX = flag
  3786.         0000h do not save display attributes
  3787.         0001h save attributes
  3788. SeeAlso: INT CC"APL"
  3789. --------r-8D---------------------------------
  3790. INT 8D - IBM ROM BASIC - used while in interpreter
  3791. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3792.     BASIC.COM/BASICA.COM do not restore vector on termination
  3793. --------r-8E---------------------------------
  3794. INT 8E - IBM ROM BASIC - used while in interpreter
  3795. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3796.     BASIC.COM/BASICA.COM do not restore vector on termination
  3797. --------r-8F---------------------------------
  3798. INT 8F - IBM ROM BASIC - used while in interpreter
  3799. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3800.     BASIC.COM/BASICA.COM do not restore vector on termination
  3801. --------r-90---------------------------------
  3802. INT 90 - IBM ROM BASIC - used while in interpreter
  3803. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3804.     BASIC.COM/BASICA.COM do not restore vector on termination
  3805. --------r-90---------------------------------
  3806. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  3807. --------r-91---------------------------------
  3808. INT 91 - IBM ROM BASIC - used while in interpreter
  3809. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3810.     BASIC.COM/BASICA.COM do not restore vector on termination
  3811. --------N-91---------------------------------
  3812. INT 91 - IBM TOKEN RING ADAPTER - ???
  3813. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  3814. --------r-92---------------------------------
  3815. INT 92 - IBM ROM BASIC - used while in interpreter
  3816. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  3817.     BASIC.COM/BASICA.COM do not restore vector on termination
  3818. --------N-92---------------------------------
  3819. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  3820.     BX:DX -> control block
  3821. SeeAlso: INT 68"Sangoma"
  3822. --------e-92E1-------------------------------
  3823. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  3824.     AH = E1h
  3825.     AL = function
  3826.     BX = stack count (number of words to push)
  3827.     CX:DX -> stack data (in word-reversed order ready to push)
  3828. Return: AX = status (see #3650)
  3829. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  3830.  
  3831. (Table 3650)
  3832. Values for Da Vinci eMail function status:
  3833.  0001h    success
  3834.  FF97h    "ERS_NOT_AVAILABLE"
  3835.  FF99h    "ERS_TOO_MANY_NAMES"
  3836.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  3837.  FFE3h    "ERS_NAME_NOT_FOUND"
  3838.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  3839.  FFFFh    "ERS_NO_SUCH_FILE"
  3840. --------e-92E100-----------------------------
  3841. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  3842.     AX = E100h
  3843.     BX = size of parameter block in words (000Ah)
  3844.     CX:DX -> parameter block (see #3651)
  3845. Return: AX = 0001h success
  3846. Desc:    this function is used to initialize the dispatcher
  3847. SeeAlso: AX=E101h,AX=E103h
  3848.  
  3849. Format of Da Vinci eMail "NetInitStart" parameter block:
  3850. Offset    Size    Description    (Table 3651)
  3851.  00h    WORD    segment of ???
  3852.  02h    WORD    offset of ???
  3853.  04h    WORD    high part of long ???
  3854.  06h    WORD    low part of long ???
  3855.  08h    WORD    high part of long ???
  3856.  0Ah    WORD    low part of long ???
  3857.  0Ch    WORD    high part of long ???
  3858.  0Eh    WORD    low part of long ???
  3859.  10h    WORD    high part of long ???
  3860.  12h    WORD    low part of long ???
  3861. --------e-92E101BX0000-----------------------
  3862. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  3863.     AX = E101h
  3864.     BX = 0000h
  3865.     CX:DX ignored
  3866. Return: AX = 0001h success
  3867. SeeAlso: AX=E100h,AX=E180h
  3868. --------e-92E102BX0000-----------------------
  3869. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  3870.     AX = E102h
  3871.     BX = 0000h
  3872.     CX:DX ignored
  3873. Return: AX = 0001h success
  3874. Desc:    this function is used to determine if the dispatcher is loaded
  3875. SeeAlso: AX=E10Bh,AX=E180h
  3876. --------e-92E103BX0000-----------------------
  3877. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  3878.     AX = E103h
  3879.     BX = 0000h
  3880.     CX:DX ignored
  3881. Return: AX = status (see #3650)
  3882. SeeAlso: AX=E100h
  3883. --------e-92E104-----------------------------
  3884. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  3885.     AX = E104h
  3886.     BX = size of parameter block in words (0006h)
  3887.     CX:DX -> parameter block (see #3652)
  3888. Return: AX = status (see #3650)
  3889. Desc:    this function is used to verify node address for usernames
  3890. SeeAlso: AX=E180h
  3891.  
  3892. Format of Da Vinci eMail "NetWhereIs" parameter block:
  3893. Offset    Size    Description    (Table 3652)
  3894.  00h    WORD    segment of node address buffer
  3895.  02h    WORD    offset of node address buffer
  3896.  04h    WORD    segment of uppercase username
  3897.  06h    WORD    offset of uppercase username
  3898.  08h    WORD    segment of "DVSEMAIL"
  3899.  0Ah    WORD    offset of "DVSEMAIL"
  3900. --------e-92E105-----------------------------
  3901. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  3902.     AX = E105h
  3903.     BX = size of parameter block in words (0007h)
  3904.     CX:DX -> parameter block (see #3653)
  3905. Return: AX = 0000h Error
  3906.     AX = handle
  3907. Desc:    this function is used to open a submission channel
  3908. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  3909.  
  3910. Format of Da Vinci eMail "NetOpen" parameter block:
  3911. Offset    Size    Description    (Table 3653)
  3912.  00h    WORD    operation (1 = read, 2 = write)
  3913.  02h    WORD    segment of uppercase To: username
  3914.  04h    WORD    offset of uppercase To: username
  3915.  06h    WORD    segment of "DVSEMAIL"
  3916.  08h    WORD    offset of "DVSEMAIL"
  3917.  0Ah    WORD    segment of node address
  3918.  0Ch    WORD    offset of node address
  3919. --------e-92E106BX0004-----------------------
  3920. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  3921.     AX = E106h
  3922.     BX = 0004h
  3923.     CX:DX -> parameter block
  3924. Return: AX = 0001h
  3925. SeeAlso: AX=E108h
  3926. --------e-92E107BX0002-----------------------
  3927. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  3928.     AX = E107h
  3929.     BX = 0002h
  3930.     CX:DX -> parameter block
  3931. Return: AX = 0001h
  3932. SeeAlso: AX=E109h,AX=E180h
  3933. --------e-92E108-----------------------------
  3934. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  3935.     AX = E108h
  3936.     BX = size of parameter block in words (0004h)
  3937.     CX:DX -> parameter block (see #3654)
  3938. Return: AX = amount written
  3939. Desc:    This function is used to write transactions to the dispatcher.
  3940.       The command block is written first and then another call is used
  3941.       to write the associated data.
  3942. SeeAlso: AX=E106h
  3943.  
  3944. Format of Da Vinci eMail "NetWrite" parameter block:
  3945. Offset    Size    Description    (Table 3654)
  3946.  00h    WORD    buffer count (see #3656)
  3947.  02h    WORD    segment of command buffer (see #3655)
  3948.  04h    WORD    offset of command buffer
  3949.  06h    WORD    handle from NetOpen
  3950.  
  3951. Format of Da Vinci eMail command buffer:
  3952. Offset    Size    Description    (Table 3655)
  3953.  00h    BYTE    command
  3954.         21h '!' Protocol commands for remote control
  3955.         41h 'A' Authorization protocol element
  3956.         42h 'B' Return(back) routing information
  3957.             Associated data is the From: username
  3958.         43h 'C' Carbon Copy list
  3959.             Associated data is a comma delimitted list of usernames
  3960.         44h 'D' Distribution list
  3961.             Associated data is a comma delimitted list of usernames
  3962.         45h 'E' Mail end marker
  3963.             No associated data
  3964.         48h 'H' Mail message header
  3965.             Associated data is a message header buffer
  3966.         4Dh 'M' Mail message
  3967.             Associated data is the body of the message
  3968.         4Fh 'O' Object
  3969.         50h 'P' Paperclip attachment
  3970.         52h 'R' Routing information
  3971.             Associated data is the To: username
  3972.         53h 'S' Subject
  3973.             Associated data is the subject of the message
  3974.         54h 'T' Trail of Reply/Forwards
  3975.  01h    BYTE    subcommand
  3976.  02h    DWORD    length of associated data
  3977.  
  3978. Format of Da Vinci eMail message header buffer:
  3979. Offset    Size    Description    (Table 3656)
  3980.  00h 30 BYTEs    subject line
  3981.  1Eh 24 BYTEs    To
  3982.  36h 24 BYTEs    From
  3983.  4Eh    DWORD    Time
  3984.         BYTE    00h
  3985.         BYTE    hour
  3986.         BYTE    minute
  3987.         BYTE    second
  3988.  52h    DWORD    Date
  3989.         BYTE    00h
  3990.         BYTE    year
  3991.         BYTE    month
  3992.         BYTE    day
  3993.  56h    DWORD    serial number (00000000h)
  3994.  5Ah    WORD    mail types (see #3657)
  3995.  5Ch    WORD    special types (0)
  3996.  
  3997. Bitfields for Da Vinci eMail mail types:
  3998. Bit(s)    Description    (Table 3657)
  3999.  7    blind carbon copy
  4000.  6    carbon copy
  4001.  5    priority
  4002.  4    confidential
  4003.  3    certified
  4004.  2    bulk
  4005.  1-0    class (first, second, third, bulk)
  4006. --------e-92E109-----------------------------
  4007. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  4008.     AX = E109h
  4009.     BX = size of parameter block in words (0001h)
  4010.     CX:DX -> parameter block (see #3658)
  4011. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  4012. SeeAlso: AX=E107h,AX=E180h
  4013.  
  4014. Format of Da Vinci eMail "NetErrorFix" parameter block:
  4015. Offset    Size    Description    (Table 3658)
  4016.  00h    WORD    ???
  4017. --------e-92E10A-----------------------------
  4018. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  4019.     AX = E10Ah
  4020.     BX = size of parameter block in words (0001h)
  4021.     CX:DX -> parameter block (see #3659)
  4022. Return: AX = 0001h
  4023. Desc:    this function is used to close a dispatcher handle
  4024. SeeAlso: AX=E105h
  4025.  
  4026. Format of Da Vinci eMail "NetClose" parameter block:
  4027. Offset    Size    Description    (Table 3659)
  4028.  00h    WORD    handle from NetOpen
  4029. --------e-92E10B-----------------------------
  4030. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  4031.     AX = E10Bh
  4032.     BX = size of parameter block in words (0004h)
  4033.     CX:DX -> parameter block (see #3660)
  4034. Return: AX = 0001h
  4035. SeeAlso: AX=E102h,AX=E10Ch
  4036.  
  4037. Format of Da Vinci eMail "NetCheckQueue" parameter block:
  4038. Offset    Size    Description    (Table 3660)
  4039.  00h    WORD    segment of 24-byte username buffer
  4040.  02h    WORD    offset of 24-byte username buffer
  4041.  04h    WORD    segment of 24-byte protocol buffer
  4042.  06h    WORD    offset of 24-byte protocol buffer
  4043. --------e-92E10C-----------------------------
  4044. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  4045.     AX = E10Ch
  4046.     BX = size of parameter block in words (0002h)
  4047.     CX:DX -> parameter block (see #3661)
  4048. Return: AX = 0001h
  4049. SeeAlso: AX=E10Bh
  4050.  
  4051. Format of Da Vinci eMail "NetReadQueue" parameter block:
  4052. Offset    Size    Description    (Table 3661)
  4053.  00h    WORD    Segment of 128 byte node address buffer
  4054.  02h    WORD    Offset of 128 byte node address buffer
  4055. --------e-92E10D-----------------------------
  4056. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  4057.     AX = E10Dh
  4058.     BX = size of parameter block in words (0006h)
  4059.     CX:DX -> parameter block (see #3662)
  4060. Return: AX = status (see #3650)
  4061. Desc:    this function is used to verify username/password
  4062. SeeAlso: AX=E10Eh
  4063.  
  4064. Format of Da Vinci eMail "NetSubmitName" parameter block:
  4065. Offset    Size    Description    (Table 3662)
  4066.  00h    WORD    segment of uppercase password string
  4067.  02h    WORD    offset of uppercase password string
  4068.  04h    WORD    segment of uppercase username string
  4069.  06h    WORD    offset of uppercase username string
  4070.  08h    WORD    segment of "DVSEMAIL"
  4071.  0Ah    WORD    offset of "DVSEMAIL"
  4072. --------e-92E10E-----------------------------
  4073. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  4074.     AX = E10Eh
  4075.     BX = size of parameter block in words (0004h)
  4076.     CX:DX -> parameter block (see #3663)
  4077. Return: AX = 0001h
  4078. Desc:    this function is used to remove a username
  4079. SeeAlso: AX=E10Dh
  4080.  
  4081. Format of Da Vinci eMail "NetRemoveName" parameter block:
  4082. Offset    Type    Description    (Table 3663)
  4083.  00h    WORD    segment of uppercase username
  4084.  02h    WORD    offset of uppercase username
  4085.  04h    WORD    segment of "DVSEMAIL"
  4086.  06h    WORD    offset of "DVSEMAIL"
  4087. --------e-92E10FBX0000-----------------------
  4088. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  4089.     AX = E10Fh
  4090.     BX = 0000h
  4091.     CX:DX ignored
  4092. Return: AX = 0001h
  4093. SeeAlso: AX=E180h
  4094. --------e-92E110-----------------------------
  4095. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  4096.     AX = E110h
  4097.     BX = size of parameter block in words (0006h)
  4098.     CX:DX -> parameter block (see #3664)
  4099. Return: AX = 0001h
  4100. SeeAlso: AX=E111h,AX=E113h
  4101.  
  4102. Format of Da Vinci eMail "NetGetAltRoute" parameter block:
  4103. Offset    Size    Description    (Table 3664)
  4104.  00h  6 WORDs    ???
  4105. --------e-92E111-----------------------------
  4106. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  4107.     AX = E111h
  4108.     BX = size of parameter block in words (0004h)
  4109.     CX:DX -> parameter block (see #3665)
  4110. Return: AX = 0001h
  4111. SeeAlso: AX=E110h,AX=E113h
  4112.  
  4113. Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block:
  4114. Offset    Size    Description    (Table 3665)
  4115.  00h  4 WORDs    ???
  4116. --------e-92E112-----------------------------
  4117. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  4118.     AX = E112h
  4119.     BX = size of parameter block in words (0008h)
  4120.     CX:DX -> parameter block (see #3666)
  4121. Return: AX = 0001h
  4122. SeeAlso: AX=E180h
  4123.  
  4124. Format of Da Vinci eMail "NetChangePassword" parameter block:
  4125. Offset    Size    Description    (Table 3666)
  4126.  00h  8 WORDs    ???
  4127. --------e-92E113-----------------------------
  4128. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  4129.     AX = E113h
  4130.     BX = size of parameter block in words (0008h)
  4131.     CX:DX -> parameter block (see #3667)
  4132. Return: AX = 0001h
  4133. SeeAlso: AX=E110h,AX=E111h
  4134.  
  4135. Format of Da Vinci eMail "NetSetAltRoute" parameter block:
  4136. Offset    Size    Description    (Table 3667)
  4137.  00h  8 WORDs    ???
  4138. --------e-92E175-----------------------------
  4139. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  4140.     AX = E175h
  4141. Return: AX = 0012h
  4142.     BX = PSP
  4143. SeeAlso: AX=E180h
  4144. --------e-92E180-----------------------------
  4145. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  4146.     AX = E180h
  4147. Return: AX = 0012h if installed
  4148.     ES:DX -> '$'-terminated driver information string
  4149. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  4150. --------r-93---------------------------------
  4151. INT 93 - IBM ROM BASIC - used while in interpreter
  4152. Notes:    called by ROM BASIC
  4153.     BASIC.COM/BASICA.COM do not restore vector on termination
  4154. --------N-93---------------------------------
  4155. INT 93 - IBM TOKEN RING ADAPTER - ???
  4156. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  4157. --------r-94---------------------------------
  4158. INT 94 - IBM ROM BASIC - used while in interpreter
  4159. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  4160.     BASIC.COM/BASICA.COM do not restore vector on termination
  4161. --------s-94----SI0000-----------------------
  4162. INT 94 u - PCM driver - INITIALIZE SOUND
  4163.     SI = 0000h
  4164.     ES:BX -> parameters
  4165. Return: ???
  4166. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  4167.       sound boards
  4168. InstallCheck:    test for the signature string "PCMDRIVER" immediately preceding
  4169.       the interrupt handler; the word preceding the signature gives the PCM
  4170.       driver's version
  4171. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  4172. Index:    installation check;PCM driver|PCM.COM;installation check
  4173. Index:    PCM driver;installation check
  4174. --------s-94----SI0001-----------------------
  4175. INT 94 u - PCM driver - INITIALIZE PCM
  4176.     SI = 0001h
  4177.     ES:BX -> parameters
  4178. Return: ???
  4179. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  4180. --------s-94----SI0002-----------------------
  4181. INT 94 u - PCM driver - INITIALIZE PCM INFO
  4182.     SI = 0002h
  4183.     ES:BX -> parameters (see #3668)
  4184. Return: ???
  4185. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  4186.  
  4187. Format of PCM driver function 0002h parameters:
  4188. Offset    Size    Description    (Table 3668)
  4189.  00h    DWORD    rate
  4190.  04h    WORD    channel number
  4191.  06h    WORD    "comp"
  4192.  08h    WORD    "dsize"
  4193. --------s-94----SI0003-----------------------
  4194. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  4195.     SI = 0003h
  4196.     ES:BX -> parameters (see #3669)
  4197. Return: ???
  4198. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  4199.  
  4200. Format of PCM driver function 0003h parameters:
  4201. Offset    Size    Description    (Table 3669)
  4202.  00h    DWORD    -> DMA buffer
  4203.  04h    WORD    size of DMA buffer
  4204.  06h    WORD    number of divisions
  4205. --------s-94----SI0004-----------------------
  4206. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  4207.     SI = 0004h
  4208.     ES:BX -> parameters (see #3670)
  4209. Return: ???
  4210. SeeAlso: SI=0000h,SI=0001h
  4211.  
  4212. Format of PCM driver function 0004h parameters:
  4213. Offset    Size    Description    (Table 3670)
  4214.  00h    DWORD    -> user function
  4215. --------s-94----SI0005-----------------------
  4216. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  4217.     SI = 0005h
  4218. Return: ???
  4219. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  4220. --------s-94----SI0006-----------------------
  4221. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  4222.     SI = 0006h
  4223. Return: ???
  4224. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  4225. --------s-94----SI0007-----------------------
  4226. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  4227.     SI = 0007h
  4228. Return: ???
  4229. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  4230. --------s-94----SI0008-----------------------
  4231. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  4232.     SI = 0008h
  4233. Return: ???
  4234. SeeAlso: SI=0007h
  4235. --------s-94----SI0009-----------------------
  4236. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  4237.     SI = 0009h
  4238. Return: ???
  4239. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  4240. --------s-94----SI000A-----------------------
  4241. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  4242.     SI = 000Ah
  4243. Return: ???
  4244. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  4245. Index:    uninstall;PCM driver
  4246. --------s-94----SI000B-----------------------
  4247. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  4248.     SI = 000Bh
  4249.     ES:BX -> parameters (see #3671)
  4250. Return: ???
  4251. SeeAlso: SI=0003h
  4252.  
  4253. Format of PCM driver functio 000Bh parameters:
  4254. Offset    Size    Description    (Table 3671)
  4255.  00h    DWORD    -> memory block to contain DMA buffer
  4256.  04h    WORD    desired size of DMA buffer
  4257. --------s-94----SI000D-----------------------
  4258. INT 94 u - Media Vision PCM.COM - GET STATUS
  4259.     SI = 000Dh
  4260. Return: AX = status (0000h = waiting) (see #3672)
  4261.  
  4262. Bitfields for PCM.COM status:
  4263. Bit(s)    Description    (Table 3672)
  4264.  0    playing
  4265.  1    recording
  4266.  2    SBplaying
  4267.  3    SBrecording
  4268.  14    SBpaused
  4269.  15    paused
  4270. --------s-94----SI8000-----------------------
  4271. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  4272.     SI = 8000h
  4273. Return: DX:AX -> DMA buffer
  4274. Program: PCM.COM is a superset of the standard PCM driver which provides
  4275.       additional functions for fine control of the driver
  4276. InstallCheck:    for the Media Vision PCM.COM "shark" functions, test for the
  4277.       signature "PCM-SHARK" at offset 107h in 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 #3673)
  4335. Return: ???
  4336.  
  4337. Format of PCM.COM DMA info structure:
  4338. Offset    Size    Description    (Table 3673)
  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 #3674)
  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 3674)
  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. InstallCheck:    test for the string "STACKXXX" at offset 0Ah from the
  4787.       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 #3675)
  5098.     ES:EBX -> System Control Block in native mode (see #3675)
  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 3675)
  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 #3676)
  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 #1366 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 3676)
  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 #1351 at INT 21/AX=5700h)
  5129.  08h    WORD    file creation date (see #1352 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 #3677)
  5136.     CF set on error
  5137.         AX = error code (see #1366 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 3677)
  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 #3680)
  5186.  5Ch    WORD    pointer to first Current Directory Block (see #3683)
  5187.  5Eh    WORD    pointer to active Current Directory Block (see #3683)
  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 #3678)
  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 #3679)
  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 3678)
  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 3679)
  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 3680)
  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 #3682)
  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 #3681)
  5263.  26h  2 BYTEs    ???
  5264.  
  5265. Bitfields for PC-MOS/386 IOCTL flags:
  5266. Bit(s)    Description    (Table 3681)
  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 3682)
  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 #3685) (0000h = none)
  5300.  45h    BYTE    flag: nonzero if GFB refers to character device
  5301.  46h    WORD    address of Block Device Block (see #3684)
  5302.  48h    WORD    sector of file's directory entry (see #1041)
  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 3683)
  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 3684)
  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 3685)
  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 #3682)
  5373.  14h    WORD    segment address of owner's Task File Block (see #3680)
  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 #3686)
  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 #3686)
  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 #1366 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 3686)
  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 #1366 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 #1366 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 #1366 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 #1366 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 #1366 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 #1366 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 #1366 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 #3687)
  5502. Return: CF clear if successful
  5503.         ES:DI buffer filled
  5504.     CF set on error
  5505.         AX = error code (see #1366 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 3687)
  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 #1366 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 #1366 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 #1366 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 #1366 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 #3689)
  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 #3688)
  5568. SeeAlso: AH=21h
  5569.  
  5570. (Table 3688)
  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 3689)
  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 #1366 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 #3675)
  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 #3677)
  5626.     CF set on error
  5627.         AX = error code (see #1366 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 #1366 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 #1366 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 #1366 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 #1366 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 #3690,#3691)
  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 #3692)
  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 3690)
  5879. Values for CP/M-86,DR Multiuser DOS function number:
  5880.  00h    terminate calling process            (see INT E0/CL=00h)
  5881.  01h    read a character                (see INT E0/CL=01h)
  5882.  02h    write character to default console        (see INT E0/CL=02h)
  5883.  03h    read character from default AUX            (see INT E0/CL=03h)
  5884.  04h    write character to default AUX            (see INT E0/CL=04h)
  5885.  05h    write character to default list device        (see INT E0/CL=05h)
  5886.  06h    perform raw I/O on default console        (see INT E0/CL=06h)
  5887.  07h    return default AUX input status            (see INT E0/CL=07h)
  5888.  08h    return default AUX output status        (see INT E0/CL=08h)
  5889.  09h    write string to default console            (see INT E0/CL=09h)
  5890.  0Ah    read string from default console        (see INT E0/CL=0Ah)
  5891.  0Bh    return default console input status        (see INT E0/CL=0Bh)
  5892.  0Ch    get BDOS release ID                (see INT E0/CL=0Ch)
  5893.  0Dh    reset all disk drives        (see also INT 21/AH=0Dh)
  5894.  0Eh    set default drive        (see also INT 21/AH=0Eh"DOS 1+")
  5895.  0Fh    open file via FCB        (see also INT 21/AH=0Fh,#1034)
  5896.  10h    close file via FCB        (see also INT 21/AH=10h)
  5897.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  5898.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  5899.  13h    delete file via FCB        (see also INT 21/AH=13h)
  5900.  14h    sequential read via FCB        (see also INT 21/AH=14h)
  5901.  15h    sequential write via FCB    (see also INT 21/AH=15h)
  5902.  16h    create file via FCB        (see also INT 21/AH=16h)
  5903.  17h    rename file via FCB        (see also INT 21/AH=17h)
  5904.  18h    get bit map of logged drives
  5905.  19h    get default drive        (see also INT 21/AH=19h)
  5906.  1Ah    set DMA address offset
  5907.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  5908.  1Ch    set default drive to read-only
  5909.  1Dh    get bit map of read-only drives
  5910.  1Eh    set file attributes via FCB    (see also INT 21/AX=4301h)
  5911.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  5912.  20h    get/set default user number
  5913.  21h    read random record via FCB    (see also INT 21/AH=21h)
  5914.  22h    write random record via FCB    (see also INT 21/AH=22h)
  5915.  23h    compute file size with FCB    (see also INT 21/AH=23h)
  5916.  24h    get FCB random record number    (see also INT 21/AH=24h)
  5917.  25h    reset specified drives
  5918.  26h    access specified drives (not in DR DOS Plus v2.1)
  5919.  27h    free specified drives
  5920.  28h    write random with FCB, zero fill (see also INT 21/AH=28h)
  5921.  2Ah    lock records in FCB file    (see also INT 21/AH=5Ch)
  5922.  2Bh    unlock records in FCB file    (see also INT 21/AH=5Ch)
  5923.  2Ch    set BDOS multisector count
  5924.  2Dh    set BDOS error mode
  5925.  2Eh    get free space on disk
  5926.  2Fh    load, initialize, and jump to process ("chain process")
  5927.     (see INT E0/CL=2Fh,INT 21/AH=4Bh)
  5928.  30h    flush write-deferred buffers
  5929.  31h    get/set system variable (DOS Plus v2.1)
  5930.  32h    call BIOS (XIOS) character routine (see #3691)
  5931.  33h    set DMA address segment
  5932.  34h    get DMA buffer address
  5933.  35h    CP/M-86 allocate maximum memory            (see INT E0/CL=35h)
  5934.  36h    allocate maximum memory at specified segment    (see INT E0/CL=36h)
  5935.  37h    CP/M-86 allocate memory segment (see INT E0/CL=37h,INT 21/AH=48h)
  5936.  38h    allocate memory at specified segment        (see INT E0/CL=38h)
  5937.  39h    CP/M-86 free specified memory segment (see INT E0/CL=39h,INT 21/AH=49h)
  5938.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)    (see INT E0/CL=3Ah)
  5939.  3Bh    load .CMD file into memory            (see INT E0/CL=3Bh)
  5940.  3Ch    (DOS Plus v2.1) call RSX program
  5941.  40h    (DR-NET, REAL/32) log on a server        (see INT E0/CL=40h)
  5942.  41h    (DR-NET, REAL/32) log off a server        (see INT E0/CL=41h)
  5943.  42h    (DR-NET) send a message
  5944.  43h    (DR-NET) receive a message
  5945.  44h    (DR-NET, REAL/32) get network status        (see INT E0/CL=44h)
  5946.  45h    (DR-NET, REAL/32) get requestor config table    (see INT E0/CL=45h)
  5947.  46h    (DR-NET) set compatibility attributes
  5948.  47h    (DR-NET, REAL/32) get server configuration table (see INT E0/CL=47h)
  5949.  48h    (DR-NET, REAL/32) set network error mode    (see INT E0/CL=48h)
  5950.  49h    (DR-NET, REAL/32) attach network
  5951.  4Ah    (DR-NET, REAL/32) detach network
  5952.  4Bh    (DR-NET, REAL/32) set default password
  5953.  4Ch    (DR-NET, REAL/32) get-set long timeout
  5954.  4Dh    (DR-NET, REAL/32) get parameter table
  5955.  4Fh    (REAL/32) get extended network error
  5956.  50h    (DR-NET, REAL/32) get network information
  5957.  53h    get current time            (see also INT 21/AH=2Ch)
  5958.  54h    set current time            (see also INT 21/AH=2Dh)
  5959.  55h    get binary system date            (see also INT 21/AH=2Ah)
  5960.  56h    set system date                (see also INT 21/AH=2Bh"DATE")
  5961.  57h    allocate system flag
  5962.  58h    deallocate system flag
  5963.  59h    reserve memory in global area            (see INT E0/CL=59h)
  5964.  5Ah    lock physical drive
  5965.  5Bh    unlock physical drive
  5966.  5Ch    search path for executable file            (see INT E0/CL=5Ch)
  5967.  5Dh    load and execute command            (see INT E0/CL=5Dh)
  5968.  5Eh    get/set process exit code            (see INT E0/CL=5Eh)
  5969.  5Fh    set country information
  5970.  60h    get country information
  5971.  63h    truncate FCB file (see also INT 21/AH=28h)
  5972.  64h    create/update directory label
  5973.  65h    get directory label
  5974.  66h    get FCB date stamp and password mode
  5975.  67h    write extended FCB
  5976.  68h    set system date and time
  5977.  69h    get system date and time in binary
  5978.  6Ah    establish password for file access
  5979.  6Bh    get OS serial number                (see INT E0/CL=6Bh)
  5980.  6Ch    (DOS Plus v2.1) get/set program return code
  5981.  6Dh    get/set console mode                (see INT E0/CL=6Dh)
  5982.  6Eh    get/set string delimiter            (see INT E0/CL=6Eh)
  5983.  6Fh    write block to default console            (see INT E0/CL=6Fh)
  5984.  70h    write block to default list device        (see INT E0/CL=70h)
  5985.  71h    execute DOS-compatible function            (see INT E0/CL=71h)
  5986.  74h    set FCB time and date stamps
  5987.  80h    allocate memory                    (see INT E0/CL=80h)
  5988.  82h    deallocate memory                (see INT E0/CL=81h)
  5989.  83h    poll I/O device
  5990.  84h    wait on system flag                (see INT E0/CL=84h)
  5991.  85h    set system flag                    (see INT E0/CL=85h)
  5992.  86h    create message queue                (see INT E0/CL=86h)
  5993.  87h    open message queue                (see INT E0/CL=87h)
  5994.  88h    delete message queue                (see INT E0/CL=88h)
  5995.  89h    read from message queue                (see INT E0/CL=89h)
  5996.  8Ah    conditionally read from message queue        (see INT E0/CL=8Ah)
  5997.  8Bh    write to message queue                (see INT E0/CL=8Bh)
  5998.  8Ch    conditionally write to message queue        (see INT E0/CL=8Ch)
  5999.  8Dh    delay calling process                (see INT E0/CL=8Dh)
  6000.  8Eh    call process dispatcher (yield CPU)        (see INT E0/CL=8Eh)
  6001.  8Fh    terminate calling process (same as func 00h)    (see INT E0/CL=8Fh)
  6002.  90h    create a process                (see INT E0/CL=90h)
  6003.  91h    set calling process' priority            (see INT E0/CL=91h)
  6004.  92h    attach to default console            (see INT E0/CL=92h)
  6005.  93h    detach from default console            (see INT E0/CL=93h)
  6006.  94h    (REAL/32) set the process' default console    (see INT E0/CL=94h)
  6007.  95h    assign default console to process        (see INT E0/CL=95h)
  6008.  96h    interpret and execute commandline        (see INT E0/CL=96h)
  6009.  97h    resident procedure library
  6010.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  6011.  99h    return default console                (see INT E0/CL=99h)
  6012.  9Ah    get address of system data (SYSDAT)        (see INT E0/CL=9Ah)
  6013.  9Bh    get system time and date
  6014.  9Ch    return calling process' descriptor        (see INT E0/CL=9Ch)
  6015.  9Dh    terminate process by name or PD address        (see INT E0/CL=9Dh)
  6016.  9Eh    attach to default list device            (see INT E0/CL=9Eh)
  6017.  9Fh    detach from default list device            (see INT E0/CL=9Fh)
  6018.  A0h    select default list device            (see INT E0/CL=A0h)
  6019.  A1h    conditionally attach to default list device    (see INT E0/CL=A1h)
  6020.  A2h    conditionally attach to default console        (see INT E0/CL=A2h)
  6021.  A3h    get OS version number                (see INT E0/CL=A3h)
  6022.  A4h    get default list device                (see INT E0/CL=A4h)
  6023.  A5h    attach to default AUX                (see INT E0/CL=A5h)
  6024.  A6h    detach from default AUX                (see INT E0/CL=A6h)
  6025.  A7h    conditionally attach to default AUX        (see INT E0/CL=A7h)
  6026.  A8h    set default AUX                    (see INT E0/CL=A8h)
  6027.  A9h    return default AUX                (see INT E0/CL=A9h)
  6028.  ACh    read block from default AUX            (see INT E0/CL=ACh)
  6029.  ADh    (DOS Plus v2.1) write block to default AUX    (see INT E0/CL=ADh)
  6030.  B0h    configure default AUX                (see INT E0/CL=B0h)
  6031.  B1h    get/set device control parameters        (see INT E0/CL=B1h)
  6032.  B2h    send Break through default AUX            (see INT E0/CL=B2h)
  6033.  B3h    allocate physical memory            (see INT E0/CL=B3h)
  6034.  B4h    free physical memory                (see INT E0/CL=B4h)
  6035.  B5h    map physical memory                (see INT E0/CL=B5h)
  6036.  B6h    nondestructive conditional message queue read    (see INT E0/CL=B6h)
  6037.  B7h    timed wait on system flag            (see INT E0/CL=B7h)
  6038.  B8h    get/set I/O port mapping            (see INT E0/CL=B8h)
  6039.  B9h    set list device timeout                (see INT E0/CL=B9h)
  6040.  BAh    set AUX timeout value                (see INT E0/CL=BAh)
  6041.  BBh    execute XIOS service
  6042.  BDh    (DR Multiuser DOS) delay            (see INT E0/CL=BDh)
  6043.  FFh    return 80386 to native mode
  6044. SeeAlso: #3691,#3692
  6045.  
  6046. (Table 3691)
  6047. Values for DOS Plus v2.1 XIOS functions:
  6048.  00h    terminate program
  6049.  01h    ???
  6050.  02h    check for console input status
  6051.  03h    read character from console
  6052.  04h    write character to console
  6053.  05h    write character to list device
  6054.  06h    write character to auxiliary device
  6055.  07h    read character from auxiliary device
  6056.  0Fh    get list device status
  6057.  10h-14h reserved
  6058.  15h    device initialization
  6059.  16h    check console output status
  6060.  17h-7Fh reserved
  6061. ---BBC Acorn---
  6062.  80h    get XIOS version
  6063.  81h    get Tube semaphore
  6064.  82h    release Tube semaphore
  6065.  83h    select text/graphics
  6066.  84h    update B&W graphics rectangle
  6067.  85h    update color graphics rectangle
  6068.  86h    get/release/update mouse
  6069.  87h    get system error info
  6070.  88h    entry in CLOCK called by WatchDog RSP
  6071.  89h    BBC OSBYTE function
  6072.  8Ah    BBC OSWORD function
  6073. SeeAlso: #3690
  6074.  
  6075. (Table 3692)
  6076. Values for DR Multiuser DOS Error Return Code:
  6077.  00h    no error
  6078.  01h    system call not implemented
  6079.  02h    illegal system call number
  6080.  03h    cannot find memory
  6081.  04h    illegal flag number
  6082.  05h    flag overrun
  6083.  06h    flag underrun
  6084.  07h    no unused Queue Descriptors
  6085.  08h    no free queue buffer
  6086.  09h    cannot find queue
  6087.  0Ah    queue in use
  6088.  0Ch    no free Process Descriptors
  6089.  0Dh    no queue access
  6090.  0Eh    empty queue
  6091.  0Fh    full queue
  6092.  10h    CLI queue missing
  6093.  11h    no 8087 in system
  6094.  12h    no unused Memory Descriptors
  6095.  13h    illegal console number
  6096.  14h    no Process Descriptor match
  6097.  15h    no console match
  6098.  16h    no CLI process
  6099.  17h    illegal disk number
  6100.  18h    illegal filename
  6101.  19h    illegal filetype
  6102.  1Ah    character not ready
  6103.  1Bh    illegal Memory Descriptor
  6104.  1Ch    bad return from BDOS load
  6105.  1Dh    bad return from BDOS read
  6106.  1Eh    bad return from BDOS open
  6107.  1Fh    null command
  6108.  20h    not owner of resource
  6109.  21h    no CSEG in load file
  6110.  22h    process Descriptor exists on Thread Root
  6111.  23h    could not terminate process
  6112.  24h    cannot attach to process
  6113.  25h    illegal list device number
  6114.  26h    illegal password
  6115.  28h    external termination occurred
  6116.  29h    fixup error upon load
  6117.  2Ah    flag set ignored
  6118.  2Bh    illegal auxilliary device number
  6119. SeeAlso: #3690
  6120. --------O-E0----CL00-------------------------
  6121. INT E0 - REAL/32 - "P_TERMCPM" - TERMINATE CALLING PROCESS
  6122.     CL = 00h
  6123. Return: AX = error code
  6124.         FFFFh on failure
  6125.     may destroy SI,DI???
  6126. Program: REAL/32 is the descendant of IMS Multiuser DOS, which in turn is
  6127.       derived from DR Multiuser DOS and its predecessors (Concurrent DOS,
  6128.       etc.)
  6129. Note:    sets the exit code (ERRORLEVEL) to 00h
  6130. SeeAlso: INT 21/AH=00h
  6131. --------O-E0----CL01-------------------------
  6132. INT E0 - REAL/32 - "C_READ" - FETCH CHARACTER FROM THE DEFAULT CONSOLE
  6133.     CL = 01h
  6134. Return: AX = character
  6135.     may destroy SI,DI???
  6136. Notes:    this function echos the character to the screen, expanding Tab
  6137.       characters to the next multiple of eight columns; Ctrl-C is
  6138.       ignored if the calling process can not terminate
  6139.     the calling process is suspended until a character is available; if
  6140.       the caller does not own the console, it is suspended until it
  6141.       can attach to the console
  6142. SeeAlso: INT E0/CL=02h,INT E0/CL=06h,INT 21/AH=01h
  6143. --------O-E0----CL02-------------------------
  6144. INT E0 - REAL/32 - "C_WRITE" - WRITE CHARACTER TO DEFAULT CONSOLE
  6145.     CL = 02h
  6146.     DX = character
  6147. Return: nothing
  6148.     may destroy SI,DI???
  6149. Note:    Tab characters are expanded to blanks up to the next multiple of
  6150.       eight columns
  6151. SeeAlso: INT E0/CL=01h,INT E0/CL=06h,INT 21/AH=02h
  6152. --------O-E0----CL03-------------------------
  6153. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM DEFAULT AUX DEVICE
  6154.     CL = 03h
  6155. Return: AL = ASCII character
  6156.     may destroy SI,DI???
  6157. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  6158.       input device (AUXn:); control is not returned to the calling
  6159.       process until a character has been read.
  6160.     if another process owns AUX, this call blocks until the device becomes
  6161.       available
  6162.     this function is also supported by REAL/32
  6163. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  6164. --------O-E0----CL04-------------------------
  6165. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO DEFAULT AUX DEVICE
  6166.     CL = 04h
  6167.     DL = BYTE to write
  6168. Return: nothing
  6169.     may destroy SI,DI,DH???
  6170. Note:    if another process owns AUX, this call blocks until the device becomes
  6171.       available
  6172. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  6173. --------O-E0----CL05-------------------------
  6174. INT E0 - REAL/32 - "L_WRITE" - WRITE CHARACTER TO DEFAULT LIST DEVICE
  6175.     CL = 05h
  6176.     DL = char to write
  6177. Return: nothing
  6178.     may destroy SI,DI???
  6179. Note:    if another process owns the list device, this call blocks until the
  6180.       device becomes available
  6181. SeeAlso: INT 21/AH=05h
  6182. --------O-E0----CL06-------------------------
  6183. INT E0 - REAL/32 - "C_RAWIO" - PERFORM RAW I/O WITH DEFAULT CONSOLE
  6184.     CL = 06h
  6185.     DL = mode describing the operation to be performed
  6186.         FFh get console input/status
  6187.         FEh get console status
  6188.         FDh get console input (blocking)
  6189.         else output DL to the console as a character
  6190. Return: AX = returned value
  6191.         for DL = FFh, the character or 00h if none available
  6192.         for DL = FEh, 00h if no characters available, FFh if any available
  6193.         for DL = FDh, the character read from the console
  6194.         else AX = 0000h
  6195.     may destroy SI,DI???
  6196. Notes:    during raw I/O, the special characters ^C, ^O, ^P, and ^S are not
  6197.       interpreted, but are passed through
  6198.     if the virtual console is in ^S mode and the owning process calls
  6199.       this function, the ^S state is cleared
  6200. SeeAlso: INT E0/CL=01h,INT E0/CL=02h,INT 21/AH=06h
  6201. --------O-E0----CL07-------------------------
  6202. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  6203.     CL = 07h
  6204. Return: AL = status
  6205.         00h not ready
  6206.         FFh character available
  6207. Desc:    determine whether the current AUX device has input available
  6208. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  6209. --------O-E0----CL08-------------------------
  6210. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  6211.     CL = 08h
  6212. Return: AL = status
  6213.         00h not ready
  6214.         FFh ready for output
  6215. Desc:    determine whether the current AUX device is able to accept more output
  6216. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  6217. --------O-E0----CL09-------------------------
  6218. INT E0 - REAL/32 - "C_WRITESTR" - WRITE STRING TO DEFAULT CONSOLE
  6219.     CL = 09h
  6220.     DS:DX -> string
  6221. Return: nothing
  6222.     may destroy SI,DI,DS???
  6223. Note:    the string terminated with a '$' character (24h) by default; the
  6224.       terminator may be changed with C_DELIMIT
  6225.     tabs are expanded to the next multiple of eight columns
  6226. SeeAlso: INT E0/CL=6Eh
  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 #3693)
  6231. Return: nothing
  6232.  
  6233. Format of REAL/32 "C_READSTR" buffer:
  6234. Offset    Size    Description    (Table 3693)
  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 #3694)
  6251.     may destroy SI,DI???
  6252. SeeAlso: INT E0/CL=A3h,INT 21/AX=4451h
  6253.  
  6254. (Table 3694)
  6255. Values for REAL/32 BDOS version:
  6256.  1432h    - DR Concurrent PC DOS Version 3.2
  6257.  1441h    - DR Concurrent DOS Version 4.1
  6258.  1450h    - DR Concurrent DOS/XM Version 5.0
  6259.  1463h    - DR Multiuser DOS Release 5.0
  6260.  1465h    - DR Multiuser DOS Release 5.01
  6261.  1466h    - DR Multiuser DOS Release 5.1, IMS Multiuser DOS Enhanced Release 5.1
  6262.  1467h    - IMS Multiuser DOS Version 7.0, 7.1
  6263.  1468h    - IMS REAL/32 Version 7.50, 7.51
  6264.  1469h    - IMS REAL/32 Version 7.52, 7.53
  6265.  14??h    - IMS REAL/32 Version 7.6
  6266. SeeAlso: #1266,#1267,#3761
  6267. --------O-E0----CL2F-------------------------
  6268. INT E0 - REAL/32 - "P_CHAIN" - CHAIN PROCESS
  6269.     CL = 2Fh
  6270.     [DTA] = ASCIZ command line for process to start
  6271. Return: AX = return code
  6272.         0000h successful
  6273.         FFFFh failed
  6274.     may destroy SI,DI???
  6275. --------O-E0----CL35-------------------------
  6276. INT E0 R - REAL/32 - "MC_MAX" - CP-M/86 ALLOCATE MAXIMUM MEMORY
  6277.     CL = 35h
  6278.     DS:DX -> MCB (see #3695)
  6279. Return: AX = status
  6280.     may destroy SI,DI,DS???
  6281. SeeAlso: INT E0/CL=39h
  6282.  
  6283. Format of REAL/32 MCB (Memory Control Block):
  6284. Offset    Size    Description    (Table 3695)
  6285.  00h    WORD    segment address of memory block
  6286.  02h    WORD    length of block in paragraphs
  6287.  04h    BYTE    reserved (0)
  6288. --------O-E0----CL36-------------------------
  6289. INT E0 R - REAL/32 - "MC_ABSMAX" - ALLOCATE MAXIMUM MEMORY SEGMENT ABSOLUTE
  6290.     CL = 36h
  6291.     DS:DX -> MCB (see #3695)
  6292. Return: AX = status
  6293.     may destroy SI,DI,DS???
  6294. SeeAlso: INT E0/CL=39h
  6295. --------O-E0----CL37-------------------------
  6296. INT E0 R - REAL/32 - "MC_ALLOC" - CP-M/86 ALLOCATE MEMORY SEGMENT
  6297.     CL = 37h
  6298.     DS:DX -> MCB (see #3695)
  6299. Return: AX = status
  6300.     may destroy SI,DI,DS???
  6301. SeeAlso: INT E0/CL=39h
  6302. --------O-E0----CL38-------------------------
  6303. INT E0 R - REAL/32 - "MC_ABSALLOC" - ALLOCATE MEMORY SEGMENT ABSOLUTE
  6304.     CL = 38h
  6305.     DS:DX -> MCB (see #3695)
  6306. Return: AX = status
  6307.     may destroy SI,DI,DS???
  6308. SeeAlso: INT E0/CL=39h
  6309. --------O-E0----CL39-------------------------
  6310. INT E0 R - REAL/32 - "MC_FREE" - CP-M/86 FREE SPECIFIED MEMORY SEGMENT
  6311.     CL = 39h
  6312.     DS:DX -> MCB (see #3695)
  6313. Return: AX = status
  6314.     may destroy SI,DI,DS???
  6315. SeeAlso: INT E0/CL=3Ah
  6316. --------O-E0----CL3A-------------------------
  6317. INT E0 R - REAL/32 - "MC_ALLFREE" - CP-M/86 FREE ALL MEMORY
  6318.     CL = 3Ah
  6319. Return: nothing???
  6320. Desc:    release all of the calling process's memory except the User Data Area
  6321. SeeAlso: INT E0/CL=39h
  6322. --------O-E0----CL3B-------------------------
  6323. INT E0 u - REAL/32 - "P_LOAD" - LOAD .CMD FILE INTO MEMORY
  6324.     CL = 3Bh
  6325.     ???
  6326. Return: ???
  6327. Note:    IMS does not document the details of this call because .CMD files are
  6328.       supported for backward compatibility only
  6329. --------O-E0----CL40-------------------------
  6330. INT E0 - REAL/32 - "N_LOGON" - LOG ONTO A SERVER
  6331.     CL = 40h
  6332.     DS:DX -> LPB (see #3767)
  6333. Return: AX = status (0000h,00FFh,07FFh,0DFFh,0EFFh,FFFFh) (see #3696)
  6334.     may destroy SI,DI,DS???
  6335. SeeAlso: INT E0/CL=41h
  6336.  
  6337. Format of REAL/32 Logon/Logoff Parameter Block:
  6338. Offset    Size    Description    (Table 3767)
  6339.  00h    BYTE    node ID
  6340.  01h  8 BYTEs    password for server access
  6341.  09h    DWORD    -> process descriptor of process to be logged on (see #3768)
  6342.  
  6343. Format of REAL/32 Process Descriptor:
  6344. Offset    Size    Description    (Table 3768)
  6345.  00h    WORD    offset of next entry in current descriptor list
  6346.  02h    WORD    offset of thread list
  6347.  04h    BYTE    current processor status (see #3769)
  6348.  05h    BYTE    priority
  6349.  06h    WORD    runtime flags (see #3770)
  6350.  08h  8 BYTEs    process name
  6351.  10h    WORD    segment of User Data Area (256 or 352 bytes)
  6352.  12h    BYTE    current default disk drive
  6353.  13h    BYTE    drive from which process was loaded
  6354.  14h    WORD    reserved (0)
  6355.  16h    WORD    offset of memory descriptor list for memory owned by process
  6356.  18h  6 BYTEs    reserved
  6357.  1Eh    WORD    offset of process descriptor for parent process
  6358.         0000h if parent has already terminated
  6359.  20h    BYTE    number of default console
  6360.  21h    BYTE    number of default AUX device
  6361.  22h  2 BYTEs    reserved
  6362.  24h    BYTE    number of default list device
  6363.  25h    BYTE    reserved
  6364.  26h    WORD    flags (see #3771)
  6365.  28h 12 BYTEs    reserved
  6366.  34h    WORD    offset of memory page allocation root
  6367.  36h 22 BYTEs    reserved
  6368. SeeAlso: #3767
  6369.  
  6370. (Table 3769)
  6371. Values for REAL/32 processor status:
  6372.  00h    process is ready to run
  6373.  01h    process is polling a device
  6374.  02h    delaying for a number of ticks
  6375.  03h    in swap list
  6376.  04h    terminating
  6377.  05h    asleep
  6378.  06h    waiting to read a message from a queue
  6379.  07h    waiting to write a message
  6380.  08h    waiting on system flag or semaphore
  6381.  09h    waiting to attach to an I/O device
  6382.  0Ah    waiting on sync block
  6383.  0Bh    waiting for system flag or semaphore with timeout
  6384.  0Ch    forced dispatch
  6385. SeeAlso: #3768
  6386.  
  6387. Bitfields for REAL/32 process flags:
  6388. Bit(s)    Description    (Table 3770)
  6389.  0    system process
  6390.  1    do not terminate
  6391.  2    special rsp process
  6392.  3    from process descriptor table
  6393.  14-4    unused???
  6394.  15    uses math coprocessor
  6395. SeeAlso: #3768,#3771
  6396.  
  6397. Bitfields for REAL/32 secondary flags:
  6398. Bit(s)    Description    (Table 3771)
  6399.  0    suspend when in background
  6400.  1    ???
  6401.  2    in foreground
  6402.  3    enable APPEND processing on file opens
  6403.  4    Ctrl-C was typed
  6404.  5    Ctrl-C will reset disk system
  6405.  6    OK to read locked record
  6406.  7    ???
  6407.  8    do not perform banking
  6408. SeeAlso: #3768,#3770
  6409.  
  6410. (Table 3696)
  6411. Values for REAL/32 "N_LOGON" status:
  6412.  0000h    successful
  6413.  00FFh    server could not create shadow process
  6414.  07FFh    incorrect password
  6415.  0CFFh    not logged into specified server
  6416.  0DFFh    process already logged onto 16 servers,
  6417.     LPB process not attached to network
  6418.  0EFFh    physical transmission prevented message or response from getting thru
  6419.     network error during logoff
  6420.  FFFFh    calling process not attached to network
  6421. --------O-E0----CL41-------------------------
  6422. INT E0 - REAL/32 - "N_LOGON" - LOG OFF A SERVER
  6423.     CL = 41h
  6424.     DS:DX -> LPB (see #3767)
  6425. Return: AX = status (0000h,0CFFh,0DFFh,0EFFh,FFFFh) (see #3696)
  6426.     may destroy SI,DI,DS???
  6427. SeeAlso: INT E0/CL=40h
  6428. --------O-E0----CL44-------------------------
  6429. INT E0 - REAL/32 - "N_STAT" - GET NETWORK STATUS
  6430.     CL = 44h
  6431. Return: AX = network status or 0FFFh on error
  6432.         bit 8: calling process is attached to network
  6433.     may destroy SI,DI???
  6434. --------O-E0----CL45-------------------------
  6435. INT E0 - REAL/32 - "N_RCT" - GET REQUESTOR CONFIGURATION TABLE
  6436.     CL = 45h
  6437.     DS:DX -> RCT Control Block (see #3772,#3773)
  6438. Return: AX = status or error code (see #3697,#3696)
  6439.     may destroy SI,DI,DS???
  6440. SeeAlso: INT E0/CL=47h
  6441.  
  6442. Format of REAL/32 RCT Control Block for Drives:
  6443. Offset    Size    Description    (Table 3772)
  6444.  00h    BYTE    command byte
  6445.         00h map disk drive
  6446.         02h map list device
  6447.  01h    BYTE    local resource ID
  6448.  02h    BYTE    remote resource ID
  6449.  03h    BYTE    server node ID number
  6450. Note:    the RCT Control Block is a union of two possible structures; this
  6451.       variant is used when mapping disk drives and list devices
  6452. SeeAlso: #3773
  6453.  
  6454. Format of REAL/32 RCT Control Block for Queues:
  6455. Offset    Size    Description    (Table 3773)
  6456.  00h    BYTE    command byte
  6457.         03h map local queue to server
  6458.         04h unmap queue
  6459.  01h  8 BYTEs    local queue name (case-sensitive)
  6460.  09h  8 BYTEs    remote queue name (case-sensitive)
  6461.  11h    BYTE    server node ID number
  6462. Note:    the RCT Control Block is a union of two possible structures; this
  6463.       variant is used when mapping queues
  6464. SeeAlso: #3772
  6465.  
  6466. (Table 3697)
  6467. Values for REAL/32 "N_RCT" status:
  6468.  0000h    successful
  6469.  0001h    invalid local device
  6470.  0002h    invalid remote device
  6471.  0003h    no queue entry space
  6472. --------O-E0----CL47-------------------------
  6473. INT E0 - REAL/32 - "N_SCT" - GET SERVER CONFIGURATION TABLE
  6474.     CL = 47h
  6475.     DS:DX -> 112-byte buffer for Server Configuration Table (see #3774)
  6476. Return: AX = status (0000h successful, else error code)
  6477.     may destroy SI,DI,DS???
  6478. Note:    the first byte of the SCT buffer is set to the desired server number
  6479.       prior to calling this function
  6480. SeeAlso: INT E0/CL=45h
  6481.  
  6482. Format of REAL/32 Server Configuration Table:
  6483. Offset    Size    Description    (Table 3774)
  6484.  00h    BYTE    server's default physical drive ID
  6485.  01h    BYTE    network status
  6486.  02h    BYTE    server node ID number
  6487.  03h    BYTE    maximum number of requesters supported by server
  6488.  04h    BYTE    current number of shadow processes
  6489.  05h 108 BYTEs    six logon structures, each:
  6490.         Offset    Size    Description
  6491.          00h    WORD    bit vector of logged-in nodes
  6492.          02h 16 BYTEs    list of requester node IDs
  6493. --------O-E0----CL48-------------------------
  6494. INT E0 - REAL/32 - "N_ERRMODE" - SET NETWORK ERROR MODE
  6495.     CL = 48h
  6496.     DL = new error mode
  6497.         FFh return error in registers AX,BX,CX
  6498.         FEh display message and return error
  6499.         FDh display message and abort (default)
  6500. Return: CX = error code (0000h successful, FFFFh failed)
  6501.     may destroy SI,DI???
  6502. Desc:    specify how the REAL/32 Net Server responds to error numbers 0CFFh,
  6503.       0DFFh, and 0EFFh (see #3696)
  6504. --------O-E0----CL59-------------------------
  6505. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  6506.     CL = 59h
  6507.     DX = size in bytes
  6508. Return: AX = status
  6509.         FFFFh failed
  6510.         other successful
  6511.         ES:BX -> reserved memory
  6512. --------O-E0----CL5C-------------------------
  6513. INT E0 - REAL/32 - "P_PATH" - SCAN PATH FOR EXECUTABLE FILE
  6514.     CL = 5Ch
  6515.     !!! details to follow
  6516. SeeAlso: INT E0/CL=5Dh,INT E0/CL=5Eh,INT 21/AH=4Bh
  6517. --------O-E0----CL5D-------------------------
  6518. INT E0 - REAL/32 - "P_EXEC" - EXECUTE CHILD PROCESS
  6519.     CL = 5Dh
  6520.     !!! details to follow
  6521. SeeAlso: INT E0/CL=5Ch,INT E0/CL=5Eh,INT 21/AH=4Bh
  6522. --------O-E0----CL5E-------------------------
  6523. INT E0 - REAL/32 - "P_EXITCODE" - GET/SET PROCESS EXIT CODE
  6524.     CL = 5Eh
  6525.     DX = exit code or FFFFh to get
  6526.         DH ignored when setting code
  6527.         DL = process exit code
  6528. Return: AX = status (FFFFh on error)
  6529.     if getting:
  6530.         AH = termination reason
  6531.         00h normal
  6532.         01h external termination via Ctrl-C or P_ABORT
  6533.         02h hardware (critical) error abort
  6534.         03h child did not terminate
  6535.         FFh illegal request (no child, or exit code already retrieved)
  6536.         AL = process exit code
  6537. SeeAlso: INT E0/CL=5Dh,INT 21/AH=4Ch
  6538. --------O-E0----CL6B-------------------------
  6539. INT E0 - REAL/32 - "S_SERIAL" - GET OS SERIAL NUMBER
  6540.     CL = 6Bh
  6541.     DS:DX -> 6-byte buffer for ASCII serial number
  6542. Return: nothing???
  6543. --------O-E0----CL6D-------------------------
  6544. INT E0 - REAL/32 - "C_MODE" - GET/SET CONSOLE MODE
  6545.     CL = 6Dh
  6546.     DX = new console mode (see #3788), or FFFFh to get current mode
  6547. Return: AX = status if setting (0000h = success)
  6548.     AX = current console mode if DX=FFFFh on entry
  6549.  
  6550. Bitfields for REAL/32 console mode:
  6551. Bit(s)    Description    (Table 3788)
  6552.  0    C_STAT function will return 01h only when Ctrl-C is pressed
  6553.  1    disable support for stop/start scroll (Ctrl-S/Ctrl-Q)
  6554.  2    raw console output (no tab expansion, no printer echo)
  6555.  3    disable program termination on Ctrl-C
  6556.  7    disable Ctrl-O console bit-bucket
  6557.  10    enable Esc as end-of-line character
  6558. --------O-E0----CL6E-------------------------
  6559. INT E0 - REAL/32 - "C_DELIMIT" - GET/SET STRING DELIMITER
  6560.     CL = 6Eh
  6561.     DX = new delimiter, or FFFFh to get current string delimiter
  6562. Return: AX = status (0000h success) if setting
  6563.     AX = current string delimiter (default is 24h '$' at process start)
  6564. SeeAlso: INT E0/CL=09h
  6565. --------O-E0----CL6F-------------------------
  6566. INT E0 - REAL/32 - "C_WRITEBLK" - WRITE BLOCK TO DEFAULT CONSOLE
  6567.     CL = 6Fh
  6568.     DS:DX -> Character Control Block (see #3700,#3787)
  6569. Return: nothing???
  6570. SeeAlso: INT E0/CL=70h
  6571. --------O-E0----CL70-------------------------
  6572. INT E0 - REAL/32 - "L_WRITEBLK" - WRITE BLOCK TO DEFAULT LIST (PRINTER) DEVICE
  6573.     CL = 70h
  6574.     DS:DX -> Character Control Block (see #3700,#3787)
  6575. Return: nothing???
  6576. SeeAlso: INT E0/CL=6Fh
  6577. --------O-E0----CL71-------------------------
  6578. INT E0 R - ConcCP/M,DR Multiuser DOS - EXECUTE DOS-COMPATIBLE FUNCTIONS
  6579.     CL = 71h
  6580.     DS:DX -> parameter block (see #3764)
  6581. Return: AX = status (0000h successful, else error code)
  6582.     may destroy SI,DI,DS
  6583.  
  6584. (Table 3765)
  6585. Values for DR "execute DOS-compatible function" function number:
  6586.  00h    "fd_getdpb"    get disk information (see also INT 21/AH=32h)
  6587.  01h    "fd_mkdir"    create directory (see also INT 21/AH=39h)
  6588.  02h    "fd_rmdir"    remove directory (see also INT 21/AH=3Ah)
  6589.  03h    "fd_chdir"    change directory (see also INT 21/AH=3Bh)
  6590.  04h    "fd_creat"    create file (see also INT 21/AH=3Ch)
  6591.  05h    "fd_open"    open existing file (see also INT 21/AH=3Dh)
  6592.  06h    "fd_close"    close file (see also INT 21/AH=3Eh)
  6593.  07h    "fd_read"    read from file (see also INT 21/AH=3Fh)
  6594.  08h    "fd_write"    write to file (see also INT 21/AH=40h)
  6595.  09h    "fd_delete"    delete file (see also INT 21/AH=41h)
  6596.  0Ah    "fd_lseek"    get/set file position (see also INT 21/AH=42h)
  6597.  0Bh    "fd_chmod"    get/set file attributes (see also INT 21/AH=43h)
  6598.  0Ch    "fd_curdir"    get current directory (see also INT 21/AH=47h)
  6599.  0Dh    "fd_sfirst"    find first matching file (see also INT 21/AH=4Eh)
  6600.  0Eh    "fd_snext"    find next matching file (see also INT 21/AH=4Fh)
  6601.  0Fh    "fd_rename"    rename file (see also INT 21/AH=56h)
  6602.  10h    "fd_gsfdate"    get/set file date (see also INT 21/AX=5700h)
  6603.  11h    "fd_mktemp"    make temporary file (see also INT 21/AH=5Ah)
  6604.  12h    "fd_mknew"    create new file (see also INT 21/AH=5Bh)
  6605.  13h    "fd_lock"    lock/unlock file data (see also INT 21/AH=5Ch)
  6606.  14h    "fd_dup"    duplicate file handle (see also INT 21/AH=45h)
  6607.  15h    "fd_dup2"    force duplicate file handle (see also INT 21/AH=46h)
  6608.  16h-19h ???
  6609.  1Ah    "fd_ioctl"    I/O control emulation
  6610.  1Bh    "fd_commit"    commit file to disk (see also INT 21/AH=68h)
  6611.  1Ch    "fd_expand"    expand file name (see also INT 21/AH=60h)
  6612.  1Dh    ???
  6613.  1Eh    ???
  6614.  1Fh    "fd_sethandles" set number of handles for calling process
  6615. SeeAlso: #3764
  6616.  
  6617. Format of DR "execute DOS-compatible function" parameter block:
  6618. Offset    Size    Description    (Table 3764)
  6619.  00h    WORD    function number (see #3765)
  6620. ---function 00h---
  6621.  02h    WORD    drive
  6622.  04h    DWORD    -> DPB (see #3766)
  6623. ---function 01h,02h,03h---
  6624.  02h    DWORD    -> ASCIZ directory name
  6625. ---function 04h---
  6626.  02h    DWORD    -> ASCIZ filename
  6627.  06h    WORD    file attributes
  6628. ---function 05h---
  6629.  02h    DWORD    -> ASCIZ filename
  6630.  06h    WORD    open mode (see INT 21/AH=3Dh)
  6631. ---function 06h---
  6632.  02h    WORD    file handle
  6633. ---function 07h,08h---
  6634.  02h    WORD    file handle
  6635.  04h    DWORD    -> buffer
  6636.  08h    WORD    number of bytes to read or write
  6637. ---function 09h---
  6638.  02h    DWORD    -> ASCIZ filename
  6639. ---function 0Ah---
  6640.  02h    WORD    file handle
  6641.  04h    DWORD    (call) desired offset
  6642.         (ret) new file position if function is successful
  6643.  08h    WORD    seek origin (offset is calculated from specified position)
  6644.         00h start of file
  6645.         01h current position
  6646.         02h end of file
  6647. ---function 0Bh---
  6648.  02h    DWORD    -> ASCIZ filename
  6649.  06h    WORD    (call) new file attributes or new file owner
  6650.         (ret) current/new file attributes, depending on function
  6651.  08h    WORD    subfunction
  6652.         00h get attribute
  6653.         01h set attribute
  6654.         02h get extended attributes
  6655.         03h set extended attributes (and password)
  6656.         04h get encrypted password
  6657.         05h set extended attributes (and encrypted password)
  6658.         06h get file owner
  6659.         07h set file owner
  6660.         Note: the password is taken from the first 8 bytes of the DTA
  6661. ---function 0Ch---
  6662.  02h    WORD    drive
  6663.  04h    DWORD    -> 64-byte buffer for ASCIZ current directory path
  6664. ---function 0Dh---
  6665.  02h    DWORD    -> ASCIZ filespec
  6666.  06h    WORD    file attributes
  6667.  08h    WORD    (call) size of buffer pointed at by current DTA
  6668.         (ret) number of matching files returned???
  6669.         Note:    if the volume label attribute is specified, the root
  6670.               directory will be searched
  6671.             if the buffer is at least 47 bytes, multiple matching
  6672.               entries will be stored in the DTA (at 21 bytes per
  6673.               entry)
  6674. ---function 0Eh---
  6675.  02h    WORD    number of additional matches to store in DTA
  6676.         (normally set to 0, but if DTA is at least 47 bytes, can be
  6677.           set to (DTAsize-21)/26 to return multiple matches)
  6678. ---function 0Fh---
  6679.  02h    DWORD    -> ASCIZ filename
  6680.  06h    DWORD    -> ASCIZ new name
  6681. ---function 10h---
  6682.  02h    WORD    file handle
  6683.  04h    WORD    subfunction
  6684.         00h get date and time
  6685.         01h set date and time
  6686.  06h    WORD    file date
  6687.  08h    WORD    file time
  6688. ---function 11h---
  6689.  02h    DWORD    -> ASCIZ pathname + 13 extra bytes for generated filename
  6690.         (if pathname does not end in backslash, one will be appended)
  6691.  06h    WORD    file attributes
  6692. ---function 12h---
  6693.  02h    DWORD    -> ASCIZ filename
  6694.  06h    WORD    file attributes
  6695. ---function 13h---
  6696.  02h    WORD    file handle
  6697.  04h    DWORD    offset of start of region
  6698.  08h    DWORD    length of region to lock/unlock
  6699.  0Ch    WORD    subfunction (00h = lock, 01h = unlock)
  6700. ---function 14h---
  6701.  02h    WORD    file handle to be duplicated
  6702.         (new file handle is returned as function return value)
  6703. ---function 15h---
  6704.  02h    WORD    file handle to be duplicated
  6705.  04h    WORD    file handle which is to become the duplicate
  6706. ---function 1Ah, form 1---
  6707.  02h    WORD    file handle
  6708.  04h    WORD    IOCTL function number (00h,01h,06h,07h,0Ah)
  6709.  06h    WORD    (ret) status
  6710. ---function 1Ah, form 2---
  6711.  02h    WORD    drive number
  6712.  04h    WORD    IOCTL function number (08h,09h,0Eh,0Fh)
  6713.  06h    WORD    (ret) status
  6714. ---function 1Ah, form 3---
  6715.  02h    WORD    file handle
  6716.  04h    WORD    IOCTL function number (02h,03h,54h)
  6717.  06h    DWORD    -> buffer
  6718.  0Ah    WORD    (call) size of buffer in bytes
  6719.         (ret) size of returned data
  6720. ---function 1Ah, form 4---
  6721.  02h    WORD    drive number
  6722.  04h    WORD    IOCTL function number (04h,05h)
  6723.  06h    DWORD    -> buffer
  6724.  0Ah    WORD    (call) size of buffer in bytes
  6725.         (ret) size of returned data
  6726. ---function 1Bh---
  6727.  02h    WORD    file handle of file to be committed to disk
  6728. ---function 1Ch---
  6729.  02h    DWORD    -> ASCIZ relative filename
  6730.  06h    DWORD    -> buffer for absolute filename
  6731. ---function 1Fh---
  6732.  02h    WORD    desired number of file handles for process
  6733.  
  6734. Format of DR Multiuser DOS Disk Parameter Block (DPB):
  6735. Offset    Size    Description    (Table 3766)
  6736.  00h    BYTE    drive number (00h = A:)
  6737.  01h    BYTE    relative unit number
  6738.  02h    WORD    sector size in bytes
  6739.  04h    BYTE    sectors per cluster - 1
  6740.  05h    BYTE    shift count to convert clusters into sectors
  6741.  06h    WORD    number of reserved sectors at beginning of drive
  6742.  08h    BYTE    number of FATs
  6743.  09h    WORD    number of root directory entries
  6744.  0Bh    WORD    number of first sector containing user data
  6745.  0Dh    WORD    number of clusterse on disk
  6746.  0Fh    BYTE    number of sectors per FAT
  6747.  10h    WORD    sector number of first directory sector
  6748.  12h  4 BYTEs    reserved
  6749.  16h    BYTE    media ID byte (see #1044)
  6750.  17h    BYTE    00h if disk accessed, FFh if not
  6751.  18h  6 BYTEs    reserved
  6752.  1Eh    WORD    number of free clusters on drive
  6753. Note:    this structure is a subset of the MS-DOS 3.x Drive Parameter Block
  6754. SeeAlso: #3764,#1045 at INT 21/AH=1Fh,#1083 at INT 21/AH=32h
  6755. --------O-E0----CL80-------------------------
  6756. INT E0 - REAL/32 - "M_ALLOC" - ALLOCATE MEMORY
  6757.     CL = 80h
  6758.     DS:DX -> Memory Parameter Block (MPB) (see #3775)
  6759. Return: AX = status (0000h success, else error code)
  6760. SeeAlso: INT E0/CL=81h
  6761.  
  6762. Format of REAL/32 Memory Parameter Block (MPB):
  6763. Offset    Size    Description    (Table 3775)
  6764.  00h    WORD    (call) desired starting paragraph of block, or
  6765.           0000h for anywhere
  6766.         (ret) starting paragraph of allocated block
  6767.  02h    WORD    (call) minimum number of paragraphs required
  6768.         (ret) actual number of paragraphs allocated
  6769.  04h    WORD    (call) maximum number of paragraphs to allocate
  6770.         (ret) actual number of paragraphs allocated
  6771.  06h    WORD    process descriptor (see #3768) of memory's owner or 0000h
  6772.  08h    WORD    flags (normally set to 0000h on call)
  6773. SeeAlso: #3776
  6774. --------O-E0----CL81-------------------------
  6775. INT E0 - REAL/32 - "M_FREE" - DEALLOCATE MEMORY
  6776.     CL = 81h
  6777.     DS:DX -> Memory Free Parameter Block (MFPB) (see #3776)
  6778. Return: AX = status (0000h success, else error code)
  6779. SeeAlso: INT E0/CL=81h
  6780.  
  6781. Format of REAL/32 Memory Free Parameter Block (MFPB) :
  6782. Offset    Size    Description    (Table 3776)
  6783.  00h    WORD    starting segment of block to be freed
  6784.  02h    WORD    reserved (0)
  6785. SeeAlso: #3775
  6786. --------O-E0----CL84-------------------------
  6787. INT E0 - REAL/32 - "DEV_WAITFLAG" - WAIT ON SYSTEM FLAG
  6788.     CL = 84h
  6789.     DX = system flag ID
  6790. Return: AX = status (0000h success, else error code)
  6791.     if successful, this function does not return until the system flag has
  6792.       been set by an interrupt handler (see INT E0/CL=85h); if the flag was
  6793.       already set, this call returns immediately
  6794. SeeAlso: INT E0/CL=85h,INT E0/CL=B7h
  6795. --------O-E0----CL85-------------------------
  6796. INT E0 - REAL/32 - "DEV_SETFLAG" - SET SYSTEM FLAG
  6797.     CL = 85h
  6798.     DX = system flag ID
  6799. Return: AX = status (0000h success, else error code)
  6800. Note:    REAL/32 returns an error if the flag was already set, which indicates
  6801.       that a previous logical interrupt has not yet been serviced
  6802. SeeAlso: INT E0/CL=84h
  6803. --------O-E0----CL86-------------------------
  6804. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  6805.     CL = 86h
  6806.     DS:DX -> queue descriptor (see #3698)
  6807. Return: AX = status (0000h success, FFFFh failure)
  6808.     CX = error code (see #3692)
  6809. Note:    also supported by REAL/32
  6810. SeeAlso: INT E0/CL=87h
  6811.  
  6812. Format of DR Multiuser DOS queue descriptor:
  6813. Offset    Size    Description    (Table 3698)
  6814.  00h  2 WORDs    internal use, initialize to zeros
  6815.  04h    WORD    queue flags (see #3777)
  6816.  06h  8 BYTEs    queue name
  6817.  0Eh    WORD    length of message
  6818.  10h    WORD    number of messages
  6819.  12h  4 WORDs    internal use, initialize to zeros
  6820.  1Ah    WORD    offset in system area of buffer for messages
  6821.  
  6822. Bitfields for REAL/32 queue flags:
  6823. Bit(s)    Description    (Table 3777)
  6824.  0    mutual exclusion queue
  6825.  1    can not be deleted
  6826.  2    restricted to system processes
  6827.  3    RSP message queue
  6828.  4    reserved for internal use
  6829.  5    RPL address queue
  6830.  7-6    reserved for internal use
  6831.  15-8    reserved for future use
  6832. SeeAlso: #3698
  6833. --------O-E0----CL87-------------------------
  6834. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  6835.     CL = 87h
  6836.     DS:DX -> queue parameter block (QPB) (see #3699,#3784)
  6837. Return: AX = status (0000h success, FFFFh failure)
  6838.     CX = error code (see #3692)
  6839. Note:    also supported by REAL/32
  6840. SeeAlso: INT E0/CL=86h,INT E0/CL=88h,INT E0/CL=89h
  6841.  
  6842. Format of DR Multiuser DOS queue parameter block:
  6843. Offset    Size    Description    (Table 3699)
  6844.  00h    WORD    internal use, initialize to zero
  6845.  02h    WORD    queue ID (set by INT E0/CL=87h)
  6846.  04h    WORD    internal use, initialize to zero
  6847.  06h    WORD    offset of queue message buffer
  6848.         (REAL/32) if FFFFh, then full address of buffer is stored at
  6849.           offest 10h
  6850.  08h  8 BYTEs    queue name
  6851. ---REAL/32 only----
  6852.  10h    DWORD    segment:offset of queue message buffer
  6853. SeeAlso: #3784
  6854.  
  6855. Format of protected-mode REAL/32 Queue Parameter Block (QPB):
  6856. Offset    Size    Description    (Table 3784)
  6857.  00h    WORD    internal use
  6858.  02h    WORD    queue ID
  6859.  04h    WORD    internal use
  6860.  06h    DWORD    32-bit offset to buffer
  6861.  0Ah    WORD    selector for buffer
  6862.  0Ch  8 BYTEs    queue name
  6863. SeeAlso: #3699
  6864. --------O-E0----CL88-------------------------
  6865. INT E0 - REAL/32 - "Q_DELETE" - DELETE SYSTEM QUEUE
  6866.     CL = 88h
  6867.     DS:DX -> queue parameter block (QPB) (see #3699,#3784)
  6868. Return: AX = status (0000h success, FFFFh failure)
  6869. SeeAlso: INT E0/CL=87h
  6870. --------O-E0----CL89-------------------------
  6871. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  6872.     CL = 89h
  6873.     DS:DX -> queue parameter block (QPB) (see #3699,#3784)
  6874. Return: AX = status (0000h success, FFFFh failure)
  6875.     CX = error code (see #3692)
  6876. Note:    also supported by REAL/32
  6877. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh,INT E0/CL=B6h
  6878. --------O-E0----CL8A-------------------------
  6879. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  6880.     CL = 8Ah
  6881.     DS:DX -> queue parameter block (QPB) (see #3699,#3784)
  6882. Return: AX = status (0000h success, FFFFh failure)
  6883.     CX = error code (see #3692)
  6884. Note:    also supported by REAL/32
  6885. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch,INT E0/CL=B6h
  6886. --------O-E0----CL8B-------------------------
  6887. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  6888.     CL = 8Bh
  6889.     DS:DX -> queue parameter block (QPB) (see #3699,#3784)
  6890. Return: AX = status (0000h success, FFFFh failure)
  6891.     CX = error code (see #3692)
  6892. Note:    also supported by REAL/32
  6893. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  6894. --------O-E0----CL8C-------------------------
  6895. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  6896.     CL = 8Ch
  6897.     DS:DX -> queue parameter block (QPB) (see #3699,#3784)
  6898. Return: AX = status (0000h success, FFFFh failure)
  6899.     CX = error code (see #3692)
  6900. Note:    also supported by REAL/32
  6901. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  6902. --------O-E0----CL8E-------------------------
  6903. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  6904.     CL = 8Eh
  6905.     DX = FFFFh (optional) to force dispatch
  6906. Return: nothing
  6907. Desc:    allow other processes of the same or higher priority to run if they
  6908.       are ready
  6909. Notes:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  6910.     also supported by REAL/32
  6911. SeeAlso: INT E0/CL=91h,INT 15/AX=1000h,INT 2F/AX=1680h
  6912. --------O-E0----CL8F-------------------------
  6913. INT E0 - REAL/32 - "P_TERM" - TERMINATE CALLING PROCESS
  6914.     CL = 8Fh
  6915.     DX = termination code
  6916. Return: never if successful
  6917.     AX = FFFFh on failure
  6918. Note:    this function can not terminate processes whose KEEP flag is set
  6919.     if the termination code is FFh, this function can terminate the process
  6920.       even if its SYSTEM flag is on; otherwise, only user processes can
  6921.       terminate themselves
  6922. SeeAlso: INT E0/CL=90h,INT 21/AH=4Ch
  6923. --------O-E0----CL90-------------------------
  6924. INT E0 - REAL/32 - "P_CREATE" - CREATE A PROCESS
  6925.     CL = 90h
  6926.     DS:DX -> process descriptor in calling process' system memory area
  6927.         (see #3768)
  6928. Return: AX = status
  6929. Notes:    this call can create more than one process if the specied process
  6930.       descriptor's link (next-process) field is nonzero
  6931.     all reserved and unused fields in the process descriptor should be
  6932.       filled with zeros; passing an invalid descriptor or pointer may
  6933.       crash the system because the descriptor is not checked by the OS
  6934.     the newly-created process(es) is always a native process, which can not
  6935.       make DOS calls
  6936. SeeAlso: INT E0/CL=8Fh
  6937. --------O-E0----CL91-------------------------
  6938. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  6939.     CL = 91h
  6940.     DL = new priority (00h highest to FFh lowest)
  6941. Return: nothing
  6942. Notes:    sets priority of calling process; transient processes are initialized
  6943.       to priority C8h
  6944.     also supported by REAL/32
  6945. SeeAlso: INT E0/CL=8Eh
  6946. --------O-E0----CL92-------------------------
  6947. INT E0 - ConcCP/M,DR Multiuser DOS - "C_ATTACH" - ATTACH TO DEFAULT CONSOLE
  6948.     CL = 92h
  6949. Return: AX = status
  6950. Notes:    also supported by REAL/32
  6951.     if the console is currently owned by another process, this function
  6952.       waits until the console is available
  6953. SeeAlso: INT E0/CL=93h,INT E0/CL=94h,INT E0/CL=99h,INT E0/CL=9Eh,INT E0/CL=A2h
  6954. --------O-E0----CL93-------------------------
  6955. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  6956.     CL = 93h
  6957. Return: AX = status
  6958.         0000h successfully detached
  6959.         FFFFh detach failed
  6960. Note:    also supported by REAL/32
  6961. SeeAlso: INT E0/CL=92h,INT E0/CL=A6h
  6962. --------O-E0----CL94-------------------------
  6963. INT E0 - REAL/32 - "C_SET" - SET PROCESS'S DEFAULT CONSOLE
  6964.     CL = 94h
  6965.     DX = console ID
  6966. Return: AX = status (0000h success, else error code)
  6967. SeeAlso: INT E0/CL=92h,INT E0/CL=95h,INT E0/CL=99h
  6968. --------O-E0----CL95-------------------------
  6969. INT E0 - REAL/32 - "C_ASSIGN" - ASSIGN DEFAULT CONSOLE TO ANOTHER PROCESS
  6970.     CL = 95h
  6971.     DS:DX -> Assign Control Parameter Block (ACPB) (see #3778)
  6972. Return: AX = status
  6973. SeeAlso: INT E0/CL=94h,INT E0/CL=99h
  6974.  
  6975. Format of REAL/32 Assign Control Parameter Block (ACPB):
  6976. Offset    Size    Description    (Table 3778)
  6977.  00h    BYTE    ID of console to assign
  6978.  01h    BYTE    flag: if FFh, new process must have CNS as console for this
  6979.           call to succeed
  6980.  02h    DWORD    -> process descriptor (see #3768) or 00000000h
  6981.  06h  8 BYTEs    name of process to search for if descriptor field above is zero
  6982. --------O-E0----CL96-------------------------
  6983. INT E0 - REAL/32 - "P_CLI" - RUN COMMAND LINE INTERFACE
  6984.     CL = 96h
  6985.     DS:DX -> Command Line Buffer (CLBUF) (see #3779)
  6986. Return: AX = status
  6987. Desc:    execute the indicated command concurrently with the calling process;
  6988.       system queue commands, .BAT, .CMD, .COM, and .EXE files can be
  6989.       executed
  6990. Note:    the calling process will lose its virtual console and must reattach it
  6991.       before attempting any I/O
  6992. SeeAlso: INT E0/CL=92h
  6993.  
  6994. Format of REAL/32 Command Line Buffer (CLBUF):
  6995. Offset    Size    Description    (Table 3779)
  6996.  00h    BYTE    reserved (0)
  6997.  01h 128 BYTEs    ASCIZ command line
  6998.  81h    BYTE    (0)
  6999. --------O-E0----CL99-------------------------
  7000. INT E0 - REAL/32 - "C_GET" - GET DEFAULT CONSOLE
  7001.     CL = 99h
  7002. Return: AX = default console ID
  7003. SeeAlso: INT E0/CL=94h
  7004. --------O-E0----CL9A-------------------------
  7005. INT E0 - REAL/32 - "S_SYSDAT" - GET SYSTEM DATA AREA
  7006.     CL = 9Ah
  7007. Return: ES:AX -> system data area (see #3780)
  7008.     may destroy SI,DI
  7009.  
  7010. Format of REAL/32 system data area:
  7011. Offset    Size    Description    (Table 3780)
  7012.  00h    DWORD    address of supervisor entry point
  7013.  04h 36 BYTEs    reserved
  7014.  28h    DWORD    address of XIOS entry point
  7015.  2Ch    DWORD    address of XIOS initialization point
  7016.  30h  8 BYTEs    reserved
  7017.  38h    DWORD    address of IRET dispatcher entry point
  7018.  3Ch    DWORD    address of RETF dispatcher entry point
  7019.  40h    WORD    segment of operating system code
  7020.  42h    WORD    paragraph address of first Resident System Process (RSP)
  7021.  44h    WORD    paragraph after OS system area
  7022.  46h    BYTE    reserved
  7023.  47h    BYTE    number of system console devices
  7024.  48h    BYTE    number of system list (printer) devices
  7025.  49h    BYTE    number of Character Control blocks
  7026.  4Ah    BYTE    number of system flags
  7027.  4Bh    BYTE    current search disk
  7028.  4Ch    WORD    maximum memory per process
  7029.  4Eh    BYTE    reserved
  7030.  4Fh    BYTE    "dayfile" (flag, true if FFh)
  7031.  50h    BYTE    default disk for temporary files
  7032.  51h    BYTE    system ticks per second (typically 60)
  7033.  52h    WORD    offset of Locked Unused list
  7034.  54h    WORD    offset of CCB table
  7035.  56h    WORD    offset of system flag table
  7036.  58h    WORD    offset of root of Memory Descriptor Unused list
  7037.  5Ah    WORD    offset of Memory Free list
  7038.  5Ch    WORD    offset of Process Unused list
  7039.  5Eh    WORD    offset of Queue Unused list
  7040.  60h  4 WORDs    (no longer used) QMAU
  7041.  68h    WORD    offset of root of Ready List
  7042.  6Ah    WORD    offset of root of Delay List
  7043.  6Ch    WORD    offset of Dispatcher Ready list
  7044.  6Eh    WORD    offset of root of Poll List
  7045.  70h    WORD    reserved
  7046.  72h    WORD    offset of root of Thread List
  7047.  74h    WORD    offset of root of Queue List
  7048.  76h    WORD    offset of Memory Allocation list
  7049.  78h    WORD    segment of version string
  7050.  7Ah    WORD    BDOS version number
  7051.  7Ch    WORD    OS version number
  7052.  7Eh    WORD    number of days since 01jan1978
  7053.  80h    BYTE    current time: hour
  7054.  81h    BYTE    current time: minute
  7055.  82h    BYTE    current time: second
  7056.  83h    BYTE    number of XIOS consoles
  7057.  84h    BYTE    number of XIOS list (printer) devices
  7058.  85h    BYTE    total number of character devices
  7059.  86h    WORD    offset of LCB table
  7060.  88h    WORD    bitmap of open files
  7061.  8Ah    BYTE    maximum locked records per process
  7062.  8Bh    BYTE    maximum open files per process
  7063.  8Ch    WORD    offset of process descriptor for math coprocessor's owner
  7064.  8Eh    WORD    offset of Auxiliary Control Block
  7065.  90h  8 BYTEs    reserved
  7066.  98h    WORD    offset of root Memory Window Descriptor
  7067.  9Ah    WORD    reserved
  7068.  9Ch    BYTE    number of Auxiliary Control Blocks
  7069.  9Dh    BYTE    default search disk
  7070.  9Eh    BYTE    reserved
  7071.  9Fh    BYTE    number of physical consoles
  7072.  A0h    DWORD    address of 8087 interrupt handler
  7073.  A4h    DWORD    address of default 8087 exception handler
  7074.  ...        reserved
  7075. C00h 82 BYTEs    XIOS header structure (see #3781)
  7076.  
  7077. Format of REAL/32 XIOS header structure:
  7078. Offset    Size    Description    (Table 3781)
  7079.  00h  3 BYTEs    XIOS initialization entry point
  7080.  03h  3 BYTEs    XIOS service entry point
  7081.  06h    WORD    segment address of system data
  7082.  08h    DWORD    address of supervisor entry point
  7083.  0Ch    BYTE    set tick flag
  7084.  0Dh    BYTE    ticks per second
  7085.  0Eh    BYTE    global Door Open interrupt flag
  7086.  0Fh    BYTE    number of Auxiliary Control Blocks
  7087.  10h    BYTE    number of physical consoles
  7088.  11h    BYTE    number of virtual consoles
  7089.  12h    BYTE    number of logical consoles
  7090.  13h    BYTE    number of list control blocks
  7091.  14h    WORD    offset of CCB table
  7092.  16h    WORD    offset of LCB table
  7093.  18h 16 WORDs    offsets into DPH for drives A-P
  7094.  38h    WORD    buffer size in paragraphs
  7095.  3Ah    WORD    offset of ACB table
  7096.  3Ch    WORD    used by OEM
  7097.  3Eh    WORD    offset of CCB pointer array
  7098.  40h    WORD    offset of LCB pointer array
  7099.  42h    WORD    offset of ACB pointer array
  7100.  44h    BYTE    'first' flag
  7101.  45h    BYTE    unused
  7102.  46h    WORD    offset of print device support table
  7103.  48h    WORD    offset of aux device support table
  7104.  4Ah    WORD    XIOS extra segment
  7105.  4Ch    WORD    segment of save end address for debug
  7106.  4Eh    WORD    segment of save start address for debug
  7107.  50h    BYTE    number of main virtual console
  7108.  51h    WORD    segment of XIOS code
  7109. SeeAlso: #3780
  7110. --------O-E0----CL9C-------------------------
  7111. INT E0 - REAL/32 - "P_PDADR" - GET ADDRESS OF PROCESS DESCRIPTOR
  7112.     CL = 9Ch
  7113. Return: ES:AX -> caller's process descriptor (see #3768)
  7114.     may destroy SI,DI
  7115. SeeAlso: INT E0/CL=8Fh,INT E0/CL=90h
  7116. --------O-E0----CL9D-------------------------
  7117. INT E0 - REAL/32 - "P_ABORT" - ABORT PROCESS BY NAME OR DESCRIPTOR
  7118.     CL = 9Dh
  7119.     DS:DX -> Abort Parameter Block (see #3782)
  7120. Return: AX = status
  7121.     may destroy SI,DI,DS
  7122. SeeAlso: INT E0/CL=8Fh,INT E0/CL=9Ch
  7123.  
  7124. Format of REAL/32 Abort Parameter Block:
  7125. Offset    Size    Description    (Table 3782)
  7126.  00h    WORD    process descriptor of process to abort, or 0000h
  7127.  02h    WORD    termination code
  7128.  04h    BYTE    default console number
  7129.  05h    BYTE    reserved (0)
  7130.  06h  8 BYTEs    name of process to abort, if descriptor at offset 00h is 0000h
  7131. --------O-E0----CL9E-------------------------
  7132. INT E0 - REAL/32 - "L_ATTACH" - ATTACH TO DEFAULT LIST DEVICE
  7133.     CL = 9Eh
  7134. Return: AX = status
  7135.     may destroy SI,DI
  7136. SeeAlso: INT E0/CL=92h,INT E0/CL=9Fh,INT E0/CL=A0h,INT E0/CL=A1h
  7137. --------O-E0----CL9F-------------------------
  7138. INT E0 - REAL/32 - "L_DETACH" - DETACH FROM DEFAULT LIST DEVICE
  7139.     CL = 9Fh
  7140. Return: AX = status
  7141.     may destroy SI,DI
  7142. SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh
  7143. --------O-E0----CLA0-------------------------
  7144. INT E0 - REAL/32 - "L_SET" - SET DEFAULT LIST DEVICE
  7145.     CL = A0h
  7146.     DX = ID of list (printer) device
  7147. Return: AX = status (0000h success, FFFFh if invalid printer number)
  7148.     may destroy SI,DI
  7149. SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh,INT E0/CL=A4h
  7150. --------O-E0----CLA1-------------------------
  7151. INT E0 - REAL/32 - "L_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT LIST DEVICE
  7152.     CL = A1h
  7153. Return: AX = status (00h = successful, FFh = unable to attach)
  7154.     may destroy SI,DI
  7155. Desc:    attach the default list device to the calling process only if it is
  7156.       currently available
  7157. SeeAlso: INT E0/CL=92h,INT E0/CL=9Eh,INT E0/CL=A0h
  7158. --------O-E0----CLA2-------------------------
  7159. INT E0 - REAL/32 - "C_CATTACH" - CONDITIONALLY ATTACH TO DEFAULT CONSOLE
  7160.     CL = A2h
  7161. Return: AL = status (FFh = console attached to another process)
  7162. Note:    if the console is currently owned by another process, this function
  7163.       will return an error code instead of attaching or waiting
  7164. SeeAlso: INT E0/CL=93h,INT E0/CL=94h,INT E0/CL=99h,INT E0/CL=92h
  7165. --------O-E0----CLA3-------------------------
  7166. INT E0 - ConcCP/M,DR Multiuser DOS,REAL/32 - "S_OSVER" - GET OS VERSION
  7167.     CL = A3h
  7168. Return: AX = operating system version (see #3694) (see also INT 21/AX=4451h)
  7169. SeeAlso: INT E0/CL=0Ch,INT 21/AX=4451h
  7170. --------O-E0----CLA4-------------------------
  7171. INT E0 - REAL/32 - "L_GET" - GET DEFAULT LIST (PRINTER) DEVICE
  7172.     CL = A4h
  7173. Return: AL = number of default list device
  7174. SeeAlso: INT E0/CL=A0h
  7175. --------O-E0----CLA5-------------------------
  7176. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  7177.     CL = A5h
  7178. Return: nothing (DR)
  7179.     AX = status (REAL/32)
  7180. Desc:    attaches the default auxiliary device to the calling process unless
  7181.       it is already attached to another process, in which case the call
  7182.       blocks until the device becomes available
  7183. Notes:    this call should be used before attempting to read or write from
  7184.       the AUX device; however, the I/O calls internally call this function
  7185.       to ensure device ownership
  7186.     also supported by REAL/32
  7187. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  7188. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  7189. --------O-E0----CLA6-------------------------
  7190. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  7191.     CL = A6h
  7192. Return: AX = status
  7193.         0000h successfully detached
  7194.         FFFFh detach failed
  7195.     CX = error code
  7196. Note:    also supported by REAL/32
  7197. SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7h
  7198. --------O-E0----CLA7-------------------------
  7199. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  7200.     CL = A7h
  7201. Return: AX = status
  7202.         0000h attached
  7203.         FFFFh unable to attach
  7204. Desc:    attaches the default auxiliary device to the calling process if it is
  7205.       available
  7206. Notes:    does not block if the device is already in use
  7207.     also supported by REAL/32
  7208. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  7209. --------O-E0----CLA8-------------------------
  7210. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  7211.     CL = A8h
  7212.     DL = auxiliary device number
  7213. Return: AX = status
  7214.         0000h successful
  7215.         FFFFh failed
  7216.     CX = error code
  7217. Desc:    specify which physical device will become AUX
  7218. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  7219. --------O-E0----CLA9-------------------------
  7220. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  7221.     CL = A9h
  7222. Return: AL = current default auxiliary device number
  7223. Desc:    determine which physical device is currently AUX
  7224. SeeAlso: INT E0/CL=A8h
  7225. --------O-E0----CLAC-------------------------
  7226. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  7227.     CL = ACh
  7228.     DS:DX -> character control block (CHCB) (see #3700,#3787)
  7229. Return: AX = number of characters read
  7230. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  7231.       until the buffer is full or the device is no longer ready
  7232. Notes:    if the device is initially not ready, blocks until at least one
  7233.       character has been read
  7234.     if another process owns AUX, this call blocks until the device becomes
  7235.       available
  7236.     also supported by REAL/32
  7237. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  7238.  
  7239. Format of DR Multiuser DOS character control block (CHCB):
  7240. Offset    Size    Description    (Table 3700)
  7241.  00h    DWORD    pointer to character buffer
  7242.  04h    WORD    length of character buffer
  7243. Note:    this version of the structure is used by REAL/32 in real mode
  7244. SeeAlso: #3786
  7245.  
  7246. Format of REAL/32 protected-mode Character Control Block (CHCB):
  7247. Offset    Size    Description    (Table 3787)
  7248.  00h    DWORD    32-bit offset of character buffer
  7249.  04h    WORD    selector for character buffer
  7250.  06h    WORD    length of character buffer
  7251. SeeAlso: #3700
  7252. --------O-E0----CLAD-------------------------
  7253. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  7254.     CL = ADh
  7255.     DS:DX -> character control block (see #3700,#3787)
  7256. Return: AX = number of characters written
  7257. Notes:    does not return until at least one character has been written
  7258.     also supported by REAL/32
  7259. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  7260. --------O-E0----CLB0-------------------------
  7261. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  7262.     CL = B0h
  7263.     DX:DX -> AUX device parameter block (see #3701)
  7264. Return: AX = status
  7265.         0000h successful
  7266.         parameter block updated
  7267.         FFFFh failed
  7268.         CX = error code
  7269. Note:    also supported by REAL/32
  7270. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  7271.  
  7272. Format of DR Multiuser DOS AUX device parameter block:
  7273. Offset    Size    Description    (Table 3701)
  7274.  00h    BYTE    function (00h get, 01h set)
  7275.  01h    BYTE    baud rate (see #3703) FFh = don't change/unknown
  7276.  02h    BYTE    parity (see #3702)
  7277.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  7278.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  7279.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  7280.         FFh unknown/don't change)
  7281.  06h    BYTE    XON character, FFh unknown/don't change
  7282.  07h    BYTE    XOFF character, FFh unknown/don't change
  7283.  
  7284. (Table 3702)
  7285. Values for DR Multiuser DOS AUX parity:
  7286.  00h    none
  7287.  01h    odd
  7288.  02h    none
  7289.  03h    even
  7290.  04h    stick parity bit
  7291.  FFh    don't change/unknown
  7292. SeeAlso: #3701,#3703
  7293.  
  7294. (Table 3703)
  7295. Values for DR Multiuser DOS AUX baud rate:
  7296.  00h    50 baud
  7297.  01h    62.5 baud
  7298.  02h    75 baud
  7299.  03h    110 baud
  7300.  04h    134.5 baud
  7301.  05h    150 baud
  7302.  06h    200 baud
  7303.  07h    300 baud
  7304.  08h    600 baud
  7305.  09h    1200 baud
  7306.  0Ah    1800 baud
  7307.  0Bh    2000 baud
  7308.  0Ch    2400 baud
  7309.  0Dh    3600 baud
  7310.  0Eh    4800 baud
  7311.  0Fh    7200 baud
  7312.  10h    9600 baud
  7313.  11h    19200 baud
  7314.  12h    38400 baud
  7315.  13h    56000 baud
  7316.  14h    76800 baud
  7317.  15h    115200 baud
  7318. SeeAlso: #3701,#3702
  7319. --------O-E0----CLB1-------------------------
  7320. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  7321.     CL = B1h
  7322.     DS:DX -> AUX device control block (see #3704)
  7323. Return: AX = status
  7324.         0000h successful
  7325.         control block updated
  7326.         FFFFh failed
  7327.         CX = error code
  7328. Note:    also supported by REAL/32
  7329. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  7330.  
  7331. Format of DR Multiuser DOS AUX device control block:
  7332. Offset    Size    Description    (Table 3704)
  7333.  00h    BYTE    function (00h get, 01h set)
  7334.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  7335.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  7336.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  7337.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  7338.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  7339.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  7340. --------O-E0----CLB2-------------------------
  7341. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  7342.     CL = B2h
  7343.     DX = duration of break in system ticks (0001h-FFFFh)
  7344. Return: AX = status
  7345.         0000h successful
  7346.         break signal completed
  7347.         FFFFh failed
  7348.         CX = error code
  7349. Notes:    if the AUX device is currently owned by another process, this call will
  7350.       block until the device becomes available
  7351.     also supported by REAL/32
  7352. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  7353. --------O-E0----CLB3-------------------------
  7354. INT E0 R - REAL/32 - "MP_ALLOC" - ALLOCATE PHYSICAL MEMORY
  7355.     CL = B3h
  7356.     DX = number of 4K pages to allocate
  7357. Return: AX = number of first 4K page allocated, or FFFFh on error
  7358. Note:    memory allocated with this function is not automatically freed when
  7359.       the process terminates
  7360. SeeAlso: INT E0/CL=B4h,INT E0/CL=B5h
  7361. --------O-E0----CLB4-------------------------
  7362. INT E0 R - REAL/32 - "MP_FREE" - DEALLOCATE PHYSICAL MEMORY
  7363.     CL = B4h
  7364.     DX = number of the physical page to free
  7365. Return: AX = status (0000h successful, FFFFh error)
  7366. SeeAlso: INT E0/CL=B3h
  7367. --------O-E0----CLB5-------------------------
  7368. INT E0 R - REAL/32 - "MP_MAP" - MAP PHYSICAL MEMORY
  7369.     CL = B5h
  7370.     DS:DX -> Memory Physical Parameter Block (see #3783)
  7371. Return: AX = status (0000h successful, FFFFh error)
  7372.     may destroy SI,DI,DS
  7373. SeeAlso: INT E0/CL=B3h
  7374.  
  7375. Format of REAL/32 Memory Physical Parameter Block:
  7376. Offset    Size    Description    (Table 3783)
  7377.  00h    WORD    4K page number in first megabyte to be mapped
  7378.  02h    WORD    number of page to map into above page, or 0000h to unmap
  7379.  04h    WORD    window number (0000h, as only one window currently supported)
  7380.  06h    WORD    reserved
  7381. Note:    all users of the system share the window, so applications should not
  7382.       use it for arguments to system calls, attempt to read/write to/from
  7383.       files via the window, etc.
  7384. --------O-E0----CLB6-------------------------
  7385. INT E0 - REAL/32 - "Q_NCREAD" - CONDITIONALLY NONDESTRUCTIVELY READ QUEUE
  7386.     CL = B6h
  7387.     DS:DX -> Queue Parameter Block (QPB) (see #3784,#3699)
  7388. Return: AX = status
  7389. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ah
  7390. --------O-E0----CLB7-------------------------
  7391. INT E0 - REAL/32 - "DEV_TWAITFLAG" - TIMED WAIT ON SYSTEM FLAG
  7392.     CL = B7h
  7393.     DS:DX -> Flag Parameter Block (FPB) (see #3785)
  7394. Return: AX = status
  7395.     may destroy SI,DI,DS
  7396. Note:    if the flag was already set, this function returns immediately
  7397. SeeAlso: INT E0/CL=84h,INT E0/CL=85h
  7398.  
  7399. Format of REAL/32 Flag Parameter Block (FPB):
  7400. Offset    Size    Description    (Table 3785)
  7401.  00h    WORD    number of system flag on which to wait
  7402.  02h    WORD    maximum number of system ticks (see INT E0/CL=9Ah) to wait
  7403. --------O-E0----CLB8-------------------------
  7404. INT E0 - REAL/32 - "DEV_MAP" - GET/SET SERIAL/PARALLEL PORT MAPPINGS
  7405.     CL = B8h
  7406.     DS:DX -> Device Map Parameter Block (DEVPB) (see #3786)
  7407. Return: nothing???
  7408.     may destroy SI,DI,DS
  7409.  
  7410. Format of REAL/32 Device Map Parameter Block (DEVPB):
  7411. Offset    Size    Description    (Table 3786)
  7412.  00h    WORD    direction (00h = get current mapping, 01h = set new mapping)
  7413.  02h  4 BYTEs    physical device IDs which map into LPT1 - LPT4
  7414.  06h  4 BYTEs    physical device IDs which map into COM1 - COM4
  7415. Note:    LPT4 and COM3/COM4 are reserved on early versions of Multiuser DOS,
  7416.       but are supported from at least CCI Multiuser DOS v7.22 onward
  7417. --------O-E0----CLB9-------------------------
  7418. INT E0 - REAL/32 - "L_TIMEOUT" - SET LIST DEVICE TIMEOUT
  7419.     CL = B9h
  7420.     DX = timeout value in system ticks (see #3780)
  7421.         0000h-FFEFh = new number of system ticks
  7422.         FFFDh = get current value without changing
  7423.         FFFEh = start timeout count
  7424.         FFFFh = never timeout
  7425. Return: AX = status, or current timeout value if DX=FFFDh on entry
  7426.     may destroy SI,DI
  7427. SeeAlso: INT E0/CL=BAh
  7428. --------O-E0----CLBA-------------------------
  7429. INT E0 - REAL/32 - "A_TIMEOUT" - SET AUX DEVICE TIMEOUT
  7430.     CL = BAh
  7431.     DX = timeout value in system ticks (see #3780)
  7432.         0000h-FFEFh = new number of system ticks
  7433.         FFFDh = get current value without changing
  7434.         FFFEh = start timeout count
  7435.         FFFFh = never timeout
  7436. Return: AX = status, or current timeout value if DX=FFFDh on entry
  7437.     may destroy SI,DI
  7438. SeeAlso: INT E0/CL=B9h
  7439. --------O-E0----CLBD-------------------------
  7440. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  7441.     CL = BDh
  7442.     DX = delay in system ticks (typically 16.6 ms/tick)
  7443. Return: after the delay elapses
  7444.     no results
  7445. Notes:    the length of a system tick is installation-dependent (typically
  7446.       1/50 or 1/60 second); the length may be determined by reading the
  7447.       TICKSPERSEC value from the system data segment
  7448.     the actual delay before the process is rescheduled to run may be up to
  7449.       one tick longer than requested; the delay between rescheduling and
  7450.       actual execution cannot be predicted if higher-priority processes
  7451.       are awaiting a turn at the CPU
  7452. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  7453. --------g-E00000-----------------------------
  7454. INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
  7455.     AX = 0000h
  7456. Return: nothing
  7457. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  7458.       which specially-written .COM or .EXE programs form robots battling
  7459.       each other in a user-defined arena
  7460. --------g-E00001-----------------------------
  7461. INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
  7462.     AX = 0001h
  7463.     BX = speed (0-maximum for robot)
  7464.     CX = direction (0-359 degrees)
  7465. Return: nothing
  7466. Notes:    the speed will change to the specified value at the maximum
  7467.       acceleration the robot is capable of; if the robot is already moving
  7468.       faster than its maximum maneuverability speed, it will not be able
  7469.       to change direction
  7470.     this call also terminates the current robot's turn
  7471. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  7472. --------g-E00002-----------------------------
  7473. INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
  7474.     AX = 0002h
  7475.     BX = direction (0-359 degrees)
  7476.     CX = resolution (0-45 degrees)
  7477. Return: AX = status
  7478.         FFFFh if nothing detected
  7479.         else robot ID (0-19)
  7480.         BX = range to detected robot
  7481. Notes:    the scan searches within CX degrees to either side of the specified
  7482.       direction
  7483.     the scanner will see right through walls, but shells will not pass
  7484.       through walls
  7485.     this call also terminates the current robot's turn
  7486. SeeAlso: AX=0000h,AX=0001h,AX=0003h
  7487. --------g-E00003-----------------------------
  7488. INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
  7489.     AX = 0003h
  7490.     BX = direction (0-359 degrees)
  7491.     CX = range (0-700)
  7492. Return: AX = status (0000h not fired, else ID of shell fired)
  7493. Notes:    up to seven shells may be in flight for a robot at one time; the cannon
  7494.       takes 50 ticks to reload
  7495.     this call also terminates the current robot's turn
  7496. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch
  7497. --------g-E00010-----------------------------
  7498. INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
  7499.     AX = 0010h
  7500. Return: BX = current X coordinate (0-999)
  7501.     CX = current Y coordinate (0-999)
  7502. --------g-E00011-----------------------------
  7503. INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
  7504.     AX = 0011h
  7505.     BX = target robot ID
  7506.     CX = data to be sent
  7507. Return: AX = status (0000h data could not be sent, 0001h data sent)
  7508. Note:    this call costs one unit of battery power
  7509. --------g-E00012-----------------------------
  7510. INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
  7511.     AX = 0012h
  7512. Return: AX = status
  7513.         0000h no data available
  7514.         0001h data retrieved
  7515.         BX = sender's ID
  7516.         CX = data
  7517. Note:    each robot has a 20-word receive FIFO; if the FIFO is full, other
  7518.       robots will be unable to send more data until some is read
  7519. --------g-E00013-----------------------------
  7520. INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
  7521.     AX = 0013h
  7522. Return: BX = damage status
  7523. Note:    the initial value depends on configuration, but is typically 100; as
  7524.       the robot is damaged, it decreases
  7525. --------g-E00014-----------------------------
  7526. INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
  7527.     AX = 0014h
  7528. Return: BX = current speed
  7529. --------g-E00015-----------------------------
  7530. INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
  7531.     AX = 0015h
  7532. Return: BX = current battery charge
  7533. Note:    the battery starts off with 1000 units of charge, and is constantly
  7534.       being charged by solar panels and constantly discharged by motion;
  7535.       the battery is charged at 4 units per turn and discharged at
  7536.       0.1*speed units per turn.
  7537. --------g-E00016-----------------------------
  7538. INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
  7539.     AX = 0016h
  7540. Return: BX:CX = number of game ticks elapsed (not related to real time)
  7541. --------g-E00017-----------------------------
  7542. INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
  7543.     AX = 0017h
  7544.     BX = angle (0-359 degrees)
  7545. Return: BX:CX = 100000*sine of angle
  7546. SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh
  7547. --------g-E00018-----------------------------
  7548. INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
  7549.     AX = 0018h
  7550.     BX = angle (0-359 degrees)
  7551. Return: BX:CX = 100000*cosine of angle
  7552. SeeAlso: AX=0017h,AX=0019h,AX=001Ah
  7553. --------g-E00019-----------------------------
  7554. INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
  7555.     AX = 0019h
  7556.     BX = angle (0-359 degrees)
  7557. Return: BX:CX = 100000*tangent of angle
  7558. SeeAlso: AX=0017h,AX=0018h,AX=001Ah
  7559. --------g-E0001A-----------------------------
  7560. INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
  7561.     AX = 001Ah
  7562.     BX:CX = 100000*tangent of an angle
  7563. Return: AX = angle (-90 to +90 degrees)
  7564. SeeAlso: AX=0017h,AX=0018h,AX=0019h
  7565. --------g-E0001B-----------------------------
  7566. INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER
  7567.     AX = 001Bh
  7568.     BX:CX = value
  7569. Return: BX:CX = square root
  7570. SeeAlso: AX=0017h
  7571. --------g-E0001C-----------------------------
  7572. INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
  7573.     AX = 001Ch
  7574.     BX:CX -> pattern array
  7575. Return: nothing
  7576. Note:    the pattern array consists of five bytes, the low five bits of each
  7577.       specifying the bit pattern for one line of the robot's screen display
  7578. --------g-E0001D-----------------------------
  7579. INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
  7580.     AX = 001Dh
  7581.     BX = flag number (0 or 1)
  7582.     CX = new value (0 reset, 1 set)
  7583. Return: nothing
  7584. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  7585.       which specially-written .COM or .EXE programs form robots battling
  7586.       each other in a user-defined arena
  7587. Note:    the two flag markers may be used for any purpose, typically for
  7588.       debugging to provide a visual display of progress
  7589. --------g-E0001E-----------------------------
  7590. INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
  7591.     AX = 001Eh
  7592.     BX = number of armor units to buy (negative to sell)
  7593. Return: nothing
  7594. Note:    each armor unit is worth 50 battery units; the robot's armor rating
  7595.       will not go above its initial rating, so attempts to purchase more
  7596.       will waste battery units
  7597. SeeAlso: AX=001Fh
  7598. --------g-E0001F-----------------------------
  7599. INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
  7600.     AX = 001Fh
  7601.     BX = number of shells to buy
  7602. Return: nothing
  7603. Note:    each shell costs ten battery units
  7604. SeeAlso: AX=001Eh,AX=0020h
  7605. --------g-E00020-----------------------------
  7606. INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
  7607.     AX = 0020h
  7608. Return: BX = number of shells remaining
  7609. SeeAlso: AX=001Fh
  7610. --------g-E00021-----------------------------
  7611. INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
  7612.     AX = 0021h
  7613.     BX:CX -> 81-byte buffer for map (see #3705)
  7614. Return: buffer filled with 9x9 area of map centered on robot's position
  7615.  
  7616. (Table 3705)
  7617. Values for PCROBOTS map squares:
  7618.  2Eh '.' empty square
  7619.  44h 'D' damaging trap
  7620.  52h 'R' refueling point
  7621.  58h 'X' wall
  7622. --------g-E00022-----------------------------
  7623. INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
  7624.     AX = 0022h
  7625.     BX = new state (0000h become visible, 0001h become invisible)
  7626. Return: nothing
  7627. Notes:    this function has no effect if the robot is not capable of invisibility
  7628.     the robot can only stay invisible for 100 turns, after which it will
  7629.       automatically become visible; it must also be remain visible for
  7630.       as many turns as it was invisible before it can turn invisible
  7631.       again
  7632. SeeAlso: AX=0024h,AX=0080h
  7633. --------g-E00023-----------------------------
  7634. INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  7635.     AX = 0023h
  7636. Return: BX = status of last shell to land
  7637.         0000h missed completely
  7638.         0001h hit a wall
  7639.         0002h hit a robot within 50-square radius
  7640.         0003h hit a robot within 25-square radius
  7641.         0004h hit a robot within 5-square radius
  7642. --------g-E00024-----------------------------
  7643. INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
  7644.     AX = 0024h
  7645. Return: BX = visibility (0000h visible, 0001h invisible)
  7646. SeeAlso: AX=0022h,AX=0080h
  7647. --------g-E00025-----------------------------
  7648. INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
  7649.     AX = 0025h
  7650.     BX = Y
  7651.     CX = X
  7652. Return: AX = angle (arctangent of Y/X)
  7653. --------g-E00026-----------------------------
  7654. INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
  7655.     AX = 0026h
  7656. Return: AX = robot ID
  7657. --------g-E00027-----------------------------
  7658. INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
  7659.     AX = 0027h
  7660.     BX:CX = ASCIZ IFF string
  7661. Return: nothing
  7662. Note:    the IFF string may only be set once
  7663. SeeAlso: AX=0028h,AX=0029h
  7664. --------g-E00028-----------------------------
  7665. INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
  7666.     AX = 0028h
  7667.     BX = robot ID to test
  7668. Return: AX = status
  7669.         0000h IFF strings match
  7670.         0001h IFF strings differ or invalid robot ID
  7671. SeeAlso: AX=0027h
  7672. --------g-E00029-----------------------------
  7673. INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
  7674.     AX = 0029h
  7675.     BX:CX -> ASCIZ name string
  7676. Return: nothing
  7677. Note:    the name may only be set once
  7678. SeeAlso: AX=0027h,AX=002Ah
  7679. --------g-E0002A-----------------------------
  7680. INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
  7681.     AX = 002Ah
  7682.     BX:CX -> ASCIZ name string
  7683.     DX = first ID to check
  7684. Return: AX = robot ID or FFFFh if no robot with specified name
  7685. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  7686. --------g-E0002B-----------------------------
  7687. INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
  7688.     AX = 002Bh
  7689. Return: AX = team ID (0-2) or FFFFh if 'loner'
  7690. SeeAlso: AX=0029h
  7691. --------g-E0002C-----------------------------
  7692. INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  7693.     AX = 002Ch
  7694.     BX = shell ID
  7695. Return: AX = status
  7696.         0000h missed completely
  7697.         0001h hit a wall
  7698.         0002h hit a robot within a 50-square radius
  7699.         0003h hit a robot within a 25-square radius
  7700.         0004h hit a robot within a 5-square radius
  7701.         0005h shell not known (too old or not yet fired)
  7702.         0006h shell still in flight
  7703. SeeAlso: AX=0003h
  7704. --------g-E0002D-----------------------------
  7705. INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
  7706.     AX = 002Dh
  7707.     BX:CX -> X word variable
  7708. Return: AX = status (0001h OK, 0000h problem with address)
  7709. Note:    after this call, PCROBOTS will automatically update the specified
  7710.       word whenever the robot moves
  7711. SeeAlso: AX=002Eh
  7712. --------g-E0002E-----------------------------
  7713. INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
  7714.     AX = 002Eh
  7715.     BX:CX -> Y word variable
  7716. Return: AX = status (0001h OK, 0000h problem with address)
  7717. Note:    after this call, PCROBOTS will automatically update the specified
  7718.       word whenever the robot moves
  7719. SeeAlso: AX=002Dh
  7720. --------g-E00080-----------------------------
  7721. INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
  7722.     AX = 0080h
  7723.     BX = basic configuration (see #3706)
  7724.     CX = advanced configuration (see #3707)
  7725. Return: AX = status (0001h OK, 0000h not first call in program)
  7726. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  7727.       which specially-written .COM or .EXE programs form robots battling
  7728.       each other in a user-defined arena
  7729. Notes:    a maximum of ten points may be allocated to the robot; if you attempt
  7730.       to allocate more, some items will be given a value of zero.  If this
  7731.       function is not called, each attribute is set to the default value
  7732.       of 2.
  7733.     if the invisibility option is chosen, the robot will start with only
  7734.       900 cannon shells instead of the default 1000
  7735.  
  7736. Bitfields for PCROBOTS basic configuration:
  7737. Bit(s)    Description    (Table 3706)
  7738.  0-3    maximum speed (0-4 = 50,75,100,150,200)
  7739.  4-7    maneuverability (0-4 = 20%,35%,50%,75%,100%)
  7740.  8-11    cannon range (0-4 = 300,500,700,1000,1500)
  7741.  12-15    robot armor (0-4 = 50,75,100,150,200)
  7742.  
  7743. Bitfields for PCROBOTS advanced configuration:
  7744. Bit(s)    Description    (Table 3707)
  7745.  0-2    robot acceleration (0-4 = 5,7,10,15,20)
  7746.  3    capable of invisibility
  7747. --------r-E1---------------------------------
  7748. INT E1 - IBM ROM BASIC - used while in interpreter
  7749. Notes:    called by ROM BASIC
  7750.     BASIC.COM/BASICA.COM do not restore vector on termination
  7751. --------N-E1---------------------------------
  7752. INT E1 - PC Cluster Disk Server Information (NOT A VECTOR!)
  7753. Desc:    points at a data table
  7754. SeeAlso: INT E2
  7755. --------O-E1---------------------------------
  7756. INT E1 - MP/M-86, - ALTERNATE CP/M-86 FUNCTION CALLS
  7757.     CL = function number (see #3690,#3691)
  7758.     DS,DX = parameters
  7759. Return: as appropriate for function
  7760.     CX is often the error code (see #3692)
  7761. Desc:    used by some applications which alter CP/M functions while running a
  7762.       child program, to store the original INT E0 vector before
  7763.       intercepting INT E0
  7764. SeeAlso: #3690 at INT E0"CP/M"
  7765. ----------E1---------------------------------
  7766. INT E1 - DeskMate (Tandy) - TASK DATA SEGMENTS (NOT A VECTOR!)
  7767. Desc:    used to store data; the    low word of the vector is the data segment for
  7768.       the first task; the high word is the data segment of the second task
  7769.       (DeskMate supports 2-way task switching between small- or
  7770.       medium-model applications)
  7771. Program: DeskMate is a proprietary GUI from Tandy distributed with several
  7772.       models of the Tandy 1000's, 2500's, 3000's, and laptops.  Retail
  7773.       and runtime versions also exist.  Some Tandy's are designed to
  7774.       boot directly into DeskMate.
  7775. SeeAlso: INT E0"DeskMate"
  7776. --------r-E2---------------------------------
  7777. INT E2 - IBM ROM BASIC - used while in interpreter
  7778. Notes:    called by ROM BASIC
  7779.     BASIC.COM/BASICA.COM do not restore vector on termination
  7780. --------N-E2---------------------------------
  7781. INT E2 - PC Cluster Program - RELOCATED INT 1C
  7782. SeeAlso: INT 1C
  7783. --------r-E3---------------------------------
  7784. INT E3 - IBM ROM BASIC - used while in interpreter
  7785. Notes:    called by ROM BASIC
  7786.     BASIC.COM/BASICA.COM do not restore vector on termination
  7787. --------r-E40005-----------------------------
  7788. INT E4 - Logitech Modula v2.0 - MonitorEntry
  7789.     AX = 0005h
  7790.     BX = priority
  7791. Return: nothing
  7792. SeeAlso: AX=0006h
  7793. --------r-E40006-----------------------------
  7794. INT E4 - Logitech Modula v2.0 - MonitorExit
  7795.     AX = 0006h
  7796. Return: nothing
  7797. SeeAlso: AX=0005h
  7798. --------r-E4---------------------------------
  7799. INT E4 - IBM ROM BASIC - used while in interpreter
  7800. Notes:    called by ROM BASIC
  7801.     BASIC.COM/BASICA.COM do not restore vector on termination
  7802. --------r-E5---------------------------------
  7803. INT E5 - IBM ROM BASIC - used while in interpreter
  7804. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7805.     BASIC.COM/BASICA.COM do not restore vector on termination
  7806. --------r-E6---------------------------------
  7807. INT E6 - IBM ROM BASIC - used while in interpreter
  7808. Notes:    called by ROM BASIC
  7809.     BASIC.COM/BASICA.COM do not restore vector on termination
  7810. --------O-E600-------------------------------
  7811. INT E6 - Linux DOSEMU - INSTALLATION CHECK
  7812.     AH = 00h
  7813. Return: AX = AA55h if installed
  7814.         BH = major version number
  7815.         BL = minor version number
  7816.         CX = patchlevel
  7817. Notes:    check for the BIOS date string "02/25/93" at F000:FFF5 before
  7818.       calling this function.  In addition, the segment address of this
  7819.       vector should be F000h (for existing versions of DOSemu, the
  7820.       vector is F000h:0E60h)
  7821. SeeAlso: AH=FFh
  7822. --------O-E601-------------------------------
  7823. INT E6 - Linux DOSEMU - REGISTER DUMP
  7824.     AH = 01h
  7825. Return: nothing
  7826. SeeAlso: AH=00h
  7827. --------O-E602-------------------------------
  7828. INT E6 - Linux DOSEMU - SET I/O PORT PERMISSIONS
  7829.     AH = 02h
  7830.     BX = base I/O port address
  7831.     CX = number of consecutive I/O ports
  7832.     CF set to allow DOS to use ports
  7833.     CF clear if DOS should not be allowed to use ports
  7834. Return: nothing
  7835. SeeAlso: AH=00h
  7836. --------O-E605-------------------------------
  7837. INT E6 - Linux DOSEMU - STARTUP BANNER
  7838.     AH = 05h
  7839. Return: nothing
  7840. SeeAlso: AH=00h
  7841. --------O-E612-------------------------------
  7842. INT E6 - Linux DOSEMU - SET "HOGTHRESHOLD"
  7843.     AH = 12h
  7844.     BX = new "hogthreshold" (00h-99h)
  7845. Return: nothing
  7846. Desc:    specify how much CPU time DOSEMU may use
  7847. SeeAlso: AH=00h
  7848. --------O-E622-------------------------------
  7849. INT E6 - Linux DOSEMU - GET EMS STATUS
  7850.     AH = 22h
  7851. Return: ???
  7852. SeeAlso: AH=00h
  7853. --------O-E630-------------------------------
  7854. INT E6 - Linux DOSEMU - SET BOOTDISK FLAG
  7855.     AH = 30h
  7856.     BX = new flag state (0 = false, 1 = true)
  7857. Return: nothing
  7858. SeeAlso: AH=00h
  7859. --------O-E650-------------------------------
  7860. INT E6 - Linux DOSEMU - EXECUTE UNIX COMMAND
  7861.     AH = 50h
  7862.     ES:DX -> ASCIZ Unix command
  7863. SeeAlso: AH=00h,AH=51h
  7864. --------O-E651-------------------------------
  7865. INT E6 - Linux DOSEMU - EXECUTE DOS COMMAND FROM UNIX
  7866.     AH = 51h
  7867.     ES:DX -> ASCIZ DOS command
  7868. SeeAlso: AH=00h,AH=50h
  7869. --------O-E680-------------------------------
  7870. INT E6 - Linux DOSEMU - GET CURRENT UNIX DIRECTORY
  7871.     AH = 80h
  7872. Return: ES:DX -> current Unix directory
  7873.     AX = length of current directory name
  7874. SeeAlso: AH=00h,AH=81h
  7875. --------O-E681-------------------------------
  7876. INT E6 - Linux DOSEMU - CHANGE CURRENT UNIX DIRECTORY
  7877.     AH = 81h
  7878.     ES:DX -> ASCIZ directory name
  7879. Return: nothing
  7880. SeeAlso: AH=00h,AH=80h
  7881. --------O-E6FF-------------------------------
  7882. INT E6 - Linux DOSEMU - TERMINATE
  7883.     AH = FFh
  7884. SeeAlso: AH=00h
  7885. --------r-E7---------------------------------
  7886. INT E7 - IBM ROM BASIC - used while in interpreter
  7887. Notes:    called by ROM BASIC
  7888.     BASIC.COM/BASICA.COM do not restore vector on termination
  7889. --------r-E8---------------------------------
  7890. INT E8 - IBM ROM BASIC - used while in interpreter
  7891. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7892.     BASIC.COM/BASICA.COM do not restore vector on termination
  7893. --------r-E9---------------------------------
  7894. INT E9 - IBM ROM BASIC - used while in interpreter
  7895. Notes:    called by ROM BASIC
  7896.     BASIC.COM/BASICA.COM do not restore vector on termination
  7897. --------r-EA---------------------------------
  7898. INT EA - IBM ROM BASIC - used while in interpreter
  7899. Notes:    called by ROM BASIC
  7900.     BASIC.COM/BASICA.COM do not restore vector on termination
  7901. --------r-EB---------------------------------
  7902. INT EB - IBM ROM BASIC - used while in interpreter
  7903. Notes:    called by ROM BASIC
  7904.     BASIC.COM/BASICA.COM do not restore vector on termination
  7905. --------r-EC---------------------------------
  7906. INT EC - IBM ROM BASIC - used while in interpreter
  7907. Notes:    called by ROM BASIC
  7908.     BASIC.COM/BASICA.COM do not restore vector on termination
  7909. --------N-EC---------------------------------
  7910. INT EC - used by Alloy NTNX
  7911. --------r-EC---------------------------------
  7912. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  7913.     AX = function number (0000h to 0140h)
  7914.     STACK:    DWORD address to return to
  7915.         any arguments required by function
  7916. Return: STACK:    return address popped, but otherwise unchanged
  7917. Desc:    this is the interface from applications to the runtime system by Exact
  7918.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  7919.       it can provide DLL-style capabilities under MS-DOS.
  7920. Note:    the interrupt handler removes the return address and flags placed on
  7921.       the stack by the INT EC, then jumps to the appropriate function
  7922. --------r-ED---------------------------------
  7923. INT ED - IBM ROM BASIC - used while in interpreter
  7924. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7925.     BASIC.COM/BASICA.COM do not restore vector on termination
  7926.     INT 80 through INT ED are modified but not restored by Direct Access
  7927.       v4.0, and may be left dangling by other programs written with the
  7928.       same version of compiled BASIC
  7929. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  7930. --------r-EE---------------------------------
  7931. INT EE - IBM ROM BASIC - used while in interpreter
  7932. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7933.     BASIC.COM/BASICA.COM do not restore vector on termination
  7934. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  7935. --------r-EF---------------------------------
  7936. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  7937. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  7938. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  7939. --------O-EF----CX0473-----------------------
  7940. INT EF - GEM - INTERFACE
  7941.     CX = 0473h
  7942.     DS:DX -> GEM parameter block
  7943. --------r-F0---------------------------------
  7944. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  7945. Note:    BASICA.COM does not restore vector on termination
  7946. SeeAlso: INT EF"BASIC"
  7947. --------*-F1---------------------------------
  7948. INT F1 - reserved for user interrupt
  7949. --------s-F1---------------------------------
  7950. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  7951.     DS:BX -> '$'-terminated text string
  7952. Return: nothing
  7953. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  7954. --------s-F1---------------------------------
  7955. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  7956. SeeAlso: INT F2"SPEECH"
  7957. --------U-F1---------------------------------
  7958. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  7959. Return: AX:BX -> data area
  7960. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  7961.       and COM2 in software
  7962. Note:    The installation check consists of testing for the following signature
  7963.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  7964.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  7965.       version number
  7966. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  7967. --------N-F1---------------------------------
  7968. INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
  7969. Note:    if this vector contains the value 5774654Eh ("NetW"), the remote boot
  7970.       BIOS extension is active, and access to the floppy disk is redirected
  7971.       to an image file in the server's SYS:LOGIN directory
  7972. SeeAlso: INT F2"NetWare",INT F3"NetWare",INT F4"NetWare"
  7973. --------v-F1---------------------------------
  7974. INT F1 - VIRUS - "Violetta" - ???
  7975. Note:    used but not chained by virus
  7976. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  7977. ----------F101-------------------------------
  7978. INT F1 - Common ISDN API (CAPI) v1.1 - "API-REGISTER" - INITIALIZE CAPI
  7979.     AH = 01h
  7980.     ES:BX -> buffer for CAPI's use (refer to note below)
  7981.     CX = minimum number of pending messages
  7982.     DX = maximum simultaneous Level 3 connections
  7983.     SI = maximum concurrent received B3 data blocks
  7984.     DI = maximum B3 data block size
  7985. Return: AX = CAPI-assigned application ID
  7986.         0000h on error
  7987.         BX = error number
  7988.             1001h registration error
  7989. Range:    INT 00 to INT FF, selectable by program parameter
  7990. Notes:    the caller is required to provide at least 512 bytes of stack space
  7991.     the CAPI interrupt handler begins with a header which is nearly
  7992.       identical to the IBM Interrupt Sharing Protocol header
  7993.       (see #2256 at INT 2D"AMIS"), except that the short jump instruction
  7994.       to a hardware reset handler at offset 09h is replaced by the
  7995.       signature bytes "IA"
  7996.     the maximum length of a message is fixed at 180 bytes; the standard
  7997.       document suggests using CX=10, DI=1, SI=7, and DI=130 for
  7998.       applications which use only a single connection and standard
  7999.       protocols
  8000.     the total size of the application-provided buffer must be at least
  8001.       180*CX + DX*SI*DI bytes
  8002. SeeAlso: AH=02h,INT F1/AL=01h
  8003. Index:    installation check;Common ISDN API
  8004. ----------F1--01-----------------------------
  8005. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_REGISTER" - INITIALIZE CAPI
  8006.     AL = 01h
  8007.     AH = CAPI version number * 10 (14h for v2.0)
  8008.     ES:BX -> buffer for CAPI's use (refer to note below)
  8009.     CX = number of bytes for message buffer
  8010.     DX = maximum simultaneous logical (Level 3) connections
  8011.     SI = maximum concurrent received B3 data blocks (min. 2)
  8012.     DI = maximum B3 data block size (up to 2048 bytes)
  8013. Return: AX = CAPI-assigned application ID
  8014.         0000h on error
  8015.         BX = error number
  8016.             1001h registration error
  8017. Range:    INT 00 to INT FF, selectable by program parameter
  8018. Notes:    the caller is required to provide at least 512 bytes of stack space
  8019.     the CAPI interrupt handler begins with a header (see #3708) which is
  8020.       nearly identical to the IBM Interrupt Sharing Protocol header
  8021.       (see #2256 at INT 2D"AMIS"), except that the short jump instruction
  8022.       to a hardware reset handler at offset 09h is zeroed out and the
  8023.       entire header is inexplicably shortened by one byte
  8024.     the standard document suggests using 1024 + (1024*DX) bytes for the
  8025.       message buffer for typical applications
  8026.     the total size of the application-provided buffer must be at least
  8027.       CX + DX*SI*DI bytes
  8028. SeeAlso: AH=01h,INT F1/AL=02h
  8029. Index:    installation check;Common ISDN API
  8030.  
  8031. Format of CAPI v2.0 interrupt handler entry point:
  8032. Offset    Size    Description    (Table 3708)
  8033.  00h  2 BYTEs    short jump to actual start of interrupt handler, immediately
  8034.           following this data block (EBh 0Fh)
  8035.  02h    DWORD    address of next handler in chain
  8036.  06h    WORD    signature 424Bh
  8037.  08h    BYTE    EOI flag (80h)
  8038.         80h primary hardware interrupt handler (will issue EOI)
  8039.  09h  2 BYTEs    reserved (0)
  8040.         (is short jump to hardware reset routine in ISP header)
  8041.  0Bh  4 BYTEs    signature "CAPI"
  8042.  0Fh  2 BYTEs    two-digit CAPI version number in ASCII ('20')
  8043. SeeAlso: #2256 at INT 2D
  8044. ----------F102-------------------------------
  8045. INT F1 - Common ISDN API (CAPI) v1.1 - "API-RELEASE" - UNREGISTER FROM CAPI
  8046.     AH = 02h
  8047.     DX = application ID (see AH=01h)
  8048. Return: AX = status (0000h,1002h) (see #3709)
  8049. Notes:    the caller is required to provide at least 512 bytes of stack space
  8050. SeeAlso: AH=01h,INT F1/AL=02h
  8051.  
  8052. (Table 3709)
  8053. Values for CAPI v1.1 error code:
  8054.  0000h    successful
  8055.  1001h    registration error
  8056.  1002h    invalid application ID
  8057.  1003h    message too small or incorrectly coded message number
  8058.  1004h    invalid command or subcommand
  8059.  1005h    message queue full
  8060.  1006h    message queue empty
  8061.  1007h    message(s) lost due to queue overflow
  8062.  1008h    error uninstalling
  8063. SeeAlso: #3710
  8064. ----------F1--02-----------------------------
  8065. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_RELEASE" - UNREGISTER FROM CAPI
  8066.     AL = 02h
  8067.     AH = CAPI version number * 10 (14h for v2.0)
  8068.     DX = application ID (see INT F1/AL=01h)
  8069. Return: AX = status (0000h,11xxh) (see #3710)
  8070. Notes:    the caller is required to provide at least 512 bytes of stack space
  8071. SeeAlso: AH=02h,INT F1/AL=01h,INT F1/AL=03h
  8072.  
  8073. (Table 3710)
  8074. Values for CAPI v2.0 error code:
  8075.  0000h    successful
  8076.  1001h    too many applications
  8077.  1002h    logical block size too small (must be at least 128 bytes)
  8078.  1003h    buffer > 64K
  8079.  1004h    message buffer too small (minimum 1024 bytes)
  8080.  1005h    too many logical connections requested
  8081.  1006h    reserved
  8082.  1007h    could not register because CAPI busy, try again
  8083.  1008h    OS resource unavailable (out of memory, etc.)
  8084.  1009h    COMMON-ISDN-API not installed
  8085.  100Ah    controller does not support external equipment
  8086.  100Bh    controller supports only external equipment
  8087.  1101h    invalid application ID
  8088.  1102h    illegal command or subcommand, or message too short
  8089.  1103h    message queue full
  8090.  1104h    queue empty
  8091.  1105h    queue overflowed (message lost)
  8092.  1106h    unknown notification parameter
  8093.  1107h    could not accept message because CAPI busy, try again
  8094.  1108h    OS resource unavailable (out of memory, etc.)
  8095.  1109h    COMMON-ISDN-API not installed
  8096.  110Ah    controller does not support external equipment
  8097.  110Bh    controller supports only external equipment
  8098.  2001h    message not supported in current state
  8099.  2002h    illegal controller/PLCI/NCCI
  8100.  2003h    out of PLCI
  8101.  2004h    out of NCCI
  8102.  2005h    out of LISTEN
  8103.  2006h    out of FAX resources (T.30 protocol)
  8104.  2007h    illegal message parameter coding
  8105.  3001h    unsupported B1 protocol
  8106.  3002h    unsupported B2 protocol
  8107.  3003h    unsupported B3 protocol
  8108.  3004h    unsupported B1 protocol parameter
  8109.  3005h    unsupported B2 protocol parameter
  8110.  3006h    unsupported B3 protocol parameter
  8111.  3007h    unsupported B protocol combination
  8112.  3008h    NCPI not supported
  8113.  3009h    unknown CIP value
  8114.  300Ah    unsupported flags (reserved bits set)
  8115.  300Bh    unsupported facility
  8116.  300Ch    data length not supported by current protocol
  8117.  300Dh    reset procedure not supported by current protocol
  8118. SeeAlso: #3709
  8119. ----------F103-------------------------------
  8120. INT F1 - Common ISDN API (CAPI) v1.1 - "API-PUT-MESSAGE"
  8121.     AH = 03h
  8122.     DX = application ID (see AH=01h)
  8123.     ES:BX -> message to be sent (see #3711)
  8124. Return: AX = status (0000h,1002h,1003h,1004h,1005h) (see #3709)
  8125. Notes:    the caller is required to provide at least 512 bytes of stack space
  8126.     the message buffer may be reused as soon as this call returns
  8127. SeeAlso: AH=01h,AH=04h,INT F1/AL=03h
  8128.  
  8129. Format of CAPI message:
  8130. Offset    Size    Description    (Table 3711)
  8131.  00h    WORD    total message length, including header
  8132.  02h    WORD    application ID (see AH=01h)
  8133.  04h    BYTE    command (see #3712,#3713)
  8134.  05h    BYTE    subcommand (see #3712,#3713)
  8135.  06h    WORD    message sequence number
  8136.         0000h-7FFFh messages from application to CAPI (and replies)
  8137.         8000h-FFFFh messages from CAPI to application (and replies)
  8138.  08h    var    message data (max 172 bytes for v1.1 only)
  8139.  
  8140. (Table 3712)
  8141. Values for CAPI v1.1 message command/subcommand:
  8142. Cmd/SubCmd    Name            Description
  8143.  01h/00h    RESET-B3-REQ    request resetting of a Level 3 connection
  8144.  01h/01h    RESET-B3-CONF    confirm Level 3 connection reset
  8145.  01h/02h    RESET-B3-IND    indication from CAPI that Level 3 conn. reset
  8146.  01h/03h    RESET-B3-RESP    confirm receipt of RESET-B3-IND
  8147.  02h/00h    CONNECT-REQ        establish B-channel connection
  8148.  02h/01h    CONNECT-CONF    confirm start of connection establishment
  8149.  02h/02h    CONNECT-IND        indication from CAPI of incoming connection
  8150.  02h/03h    CONNECT-RESP    accept incoming connection
  8151.  03h/02h    CONNECT-ACTIVE-IND    indication that B-channel connection complete
  8152.  03h/03h    CONNECT-ACTIVE-RESP    confirm connection-complete indication
  8153.  04h/00h    DISCONNECT-REQ    request shutdown of B-channel connection
  8154.  04h/01h    DISCONNECT-CONF    confirm shutdown of B-channel connection
  8155.  04h/02h    DISCONNECT-IND    indication that B-channel is shutting down
  8156.  04h/03h    DISCONNECT-RESP    confirm that application knows of shutdown
  8157.  05h/00h    LISTEN-REQ        enable indication of incoming connections
  8158.  05h/01h    LISTEN-CONF        confirm enabling of incoming conn. indication
  8159.  06h/00h    GET-PARAMS-REQ    request B-channel parameters
  8160.  06h/01h    GET-PARAMS-CONF    return B-channel parameters
  8161.  07h/00h    INFO-REQ        set B-channel info to be signalled to app
  8162.  07h/01h    INFO-CONF        confirm B-channel info signalling
  8163.  07h/02h    INFO-IND        signal B-channel events to application
  8164.  07h/03h    INFO-CONF        confirm receipt of INFO-IND
  8165.  08h/00h    DATA-REQ        send D-channel data
  8166.  08h/01h    DATA-CONF        confirm receipt of DATA-REQ
  8167.  08h/02h    DATA-IND        receive D-channel data
  8168.  08h/03h    DATA-RESP        confirm receipt fo DATA-IND
  8169.  09h/00h    CONNECT-INFO-REQ    request connection information
  8170.  09h/01h    CONNECT-INFO-CONF    return connection information
  8171.  40h/00h    SELECT-B2-PROTOCOL-REQ  select Level 2 protocol
  8172.  40h/01h    SELECT-B2-PROTOCOL-CONF confirm receipt of SELECT-B2-PROTOCOL-REQ
  8173.  80h/00h    SELECT-B3-PROTOCOL-REQ  select Level 3 protocol
  8174.  80h/01h    SELECT-B3-PROTOCOL-CONF confirm receipt of SELECT-B3-PROTOCOL-REQ
  8175.  81h/00h    LISTEN-B3-REQ    enable notification of incoming Level 3 calls
  8176.  81h/01h    LISTEN-B3-CONF    confirm receipt of LISTEN-B3-REQ
  8177.  82h/00h    CONNECT-B3-REQ    establish Level 3 connection
  8178.  82h/01h    CONNECT-B3-CONF    confirm start of connection establishment
  8179.  82h/02h    CONNECT-B3-IND    indication of incoming Level 3 connection
  8180.  82h/03h    CONNECT-B3-RESP    accept incoming connection
  8181.  83h/02h    CONNECT-B3-ACTIVE-IND  indication that Level 3 connection complete
  8182.  83h/03h    CONNECT-B3-ACTIVE-RESP confirm connection-complete indication
  8183.  84h/00h    DISCONNECT-B3-REQ    request shutdown of Level 3 connection
  8184.  84h/01h    DISCONNECT-B3-CONF    confirm shutdown of Level 3 connection
  8185.  84h/02h    DISCONNECT-B3-IND    indication that Level 3 is shutting down
  8186.  84h/03h    DISCONNECT-B3-RESP    confirm that application knows of shutdown
  8187.  85h/00h    GET-B3-PARAMS-REQ    request Level 3 parameters
  8188.  85h/01h    GET-B3-PARAMS-CONF    return Level 3 parameters
  8189.  86h/00h    DATA-B3-REQ        send data on Level 3
  8190.  86h/01h    DATA-B3-CONF    confirm sending of Level 3 data
  8191.  86h/02h    DATA-B3-IND        indication of incoming Level 3 data
  8192.  86h/03h    DATA-B3-RESP    confirm receipt of Level 3 data
  8193.  87h/02h    HANDSET-IND        indication of Handset events
  8194.  87h/03h    HANDSET-RESP    confirm receipt of Handset event
  8195.  FFh/00h    MANUFACTURER-REQ    vendor-specific request
  8196.  FFh/01h    MANUFACTURER-CONF    vendor-specific request confirmation
  8197.  FFh/02h    MANUFACTURER-IND    vendor-specific notification
  8198.  FFh/03h    MANUFACTURER-RESP    vendor-specific notification confirmation
  8199. SeeAlso: #3711,#3713
  8200. ----------F1--03-----------------------------
  8201. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_PUT_MESSAGE"
  8202.     AL = 03h
  8203.     AH = CAPI version number * 10 (14h for v2.0)
  8204.     DX = application ID (see INT F1/AL=01h)
  8205.     ES:BX -> message to be sent (see #3711)
  8206. Return: AX = status (0000h,11xxh) (see #3710)
  8207. Notes:    the caller is required to provide at least 512 bytes of stack space
  8208.     the message buffer may be reused as soon as this call returns
  8209. SeeAlso: AH=03h,INT F1/AL=01h,INT F1/AL=04h
  8210.  
  8211. (Table 3713)
  8212. Values for CAPI v2.0 message command/subcommand:
  8213. Cmd/SubCmd    Name            Description
  8214.  01h/80h    ALERT_REQ        indicate compatibility with incoming calls
  8215.  01h/81h    ALERT_CONF        confirm receipt of ALERT_REQ
  8216.  02h/80h    CONNECT_REQ        establish B-channel connection
  8217.  02h/81h    CONNECT_CONF    confirm start of connection establishment
  8218.  02h/82h    CONNECT_IND        indication from CAPI of incoming connection
  8219.  02h/83h    CONNECT_RESP    accept incoming connection
  8220.  03h/82h    CONNECT_ACTIVE_IND    indication that B-channel connection complete
  8221.  03h/83h    CONNECT_ACTIVE_RESP    confirm connection-complete indication
  8222.  04h/80h    DISCONNECT_REQ    request shutdown of B-channel connection
  8223.  04h/81h    DISCONNECT_CONF    confirm shutdown of B-channel connection
  8224.  04h/82h    DISCONNECT_IND    indication that B-channel is shutting down
  8225.  04h/83h    DISCONNECT_RESP    confirm that application knows of shutdown
  8226.  05h/80h    LISTEN_REQ        enable signalling on incoming events
  8227.  05h/81h    LISTEN_CONF        confirm enabling of incoming event signalling
  8228.  08h/80h    INFO_REQ        send protocol information for physical connect
  8229.  08h/81h    INFO_CONF        confirm INFO_REQ
  8230.  08h/82h    INFO_IND        indicate event for physical connection
  8231.  08h/83h    INFO_CONF        confirm receipt of INFO_IND
  8232.  41h/80h    SELECT_B_PROTOCOL_REQ   change protocol on already-active connect
  8233.  41h/81h    SELECT_B_PROTOCOL_CONF  confirm receipt of SELECT_B_PROTOCOL_REQ
  8234.  80h/80h    FACILITY_REQ    control optional facilities
  8235.  80h/81h    FACILITY_CONF    confirm acceptance of FACILITY_REQ
  8236.  80h/82h    FACILITY_IND    indicate facility-dependent event
  8237.  80h/83h    FACILITY_RESP    confirm receipt of FACILITY_IND
  8238.  82h/80h    CONNECT_B3_REQ    establish Level 3 connection
  8239.  82h/81h    CONNECT_B3_CONF    confirm start of connection establishment
  8240.  82h/82h    CONNECT_B3_IND    indication of incoming Level 3 connection
  8241.  82h/83h    CONNECT_B3_RESP    accept incoming connection
  8242.  83h/82h    CONNECT_B3_ACTIVE_IND  indication that Level 3 connection complete
  8243.  83h/83h    CONNECT_B3_ACTIVE_RESP confirm connection-complete indication
  8244.  84h/80h    DISCONNECT_B3_REQ    request shutdown of Level 3 connection
  8245.  84h/81h    DISCONNECT_B3_CONF    confirm shutdown of Level 3 connection
  8246.  84h/82h    DISCONNECT_B3_IND    indication that Level 3 is shutting down
  8247.  84h/83h    DISCONNECT_B3_RESP    confirm that application knows of shutdown
  8248.  85h/80h    GET_B3_PARAMS_REQ    request Level 3 parameters
  8249.  85h/81h    GET_B3_PARAMS_CONF    return Level 3 parameters
  8250.  86h/80h    DATA_B3_REQ        send data on Level 3
  8251.  86h/81h    DATA_B3_CONF    confirm sending of Level 3 data
  8252.  86h/82h    DATA_B3_IND        indication of incoming Level 3 data
  8253.  86h/83h    DATA_B3_RESP    confirm receipt of Level 3 data
  8254.  87h/80h    RESET_B3_REQ    request resetting of a logical connection
  8255.  87h/81h    RESET_B3_CONF    confirm logical connection reset
  8256.  87h/82h    RESET_B3_IND    indication from CAPI that logical conn. reset
  8257.  87h/83h    RESET_B3_RESP    confirm receipt of RESET_B3_IND
  8258.  88h/82h    CONNECT_B3_T90_ACTIVE_IND  indicate switch from T.70 to T.90
  8259.  88h/83h    CONNECT_B3_T90_ACTIVE_RESP confirm receipt of T90_ACTIVE_IND
  8260.  FFh/80h    MANUFACTURER_REQ    vendor-specific request
  8261.  FFh/81h    MANUFACTURER_CONF    vendor-specific request confirmation
  8262.  FFh/82h    MANUFACTURER_IND    vendor-specific notification
  8263.  FFh/83h    MANUFACTURER_RESP    vendor-specific notification confirmation
  8264. SeeAlso: #3711,#3712
  8265. ----------F104-------------------------------
  8266. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MESSAGE"
  8267.     AH = 04h
  8268.     DX = application ID (see AH=01h)
  8269. Return: AX = status (0000h,1002h,1006h,1007h) (see #3709)
  8270.     ES:BX -> message if successful (see #3711)
  8271. Range:    INT 00 to INT FF, selectable by program parameter
  8272. Notes:    the caller is required to provide at least 512 bytes of stack space
  8273.     the returned message may be overwritten by the next call to this
  8274.       function
  8275. SeeAlso: AH=03h
  8276. ----------F1--04-----------------------------
  8277. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MESSAGE"
  8278.     AL = 04h
  8279.     AH = CAPI version number * 10 (14h for v2.0)
  8280.     DX = application ID (see AH=01h)
  8281. Return: AX = status (0000h,11xxh) (see #3710)
  8282.     ES:BX -> message if successful (see #3711)
  8283. Range:    INT 00 to INT FF, selectable by program parameter
  8284. Notes:    the caller is required to provide at least 512 bytes of stack space
  8285.     the returned message may be overwritten by the next call to this
  8286.       function
  8287. SeeAlso: AH=04h,INT F1/AL=03h
  8288. ----------F105-------------------------------
  8289. INT F1 - Common ISDN API (CAPI) v1.1 - "API-SET-SIGNAL" - SIGNAL HANDLING
  8290.     AH = 05h
  8291.     DX = application ID (see AH=01h)
  8292.     ES:BX -> signal handler or 0000h:0000h to disable
  8293. Return: AX = status (0000h,1002h) (see #3709)
  8294. Notes:    the caller is required to provide at least 512 bytes of stack space
  8295.     the signal handler is called as though it were an interrupt, with
  8296.       interrupts disabled; the handler must preserve all registers and
  8297.       return with an IRET
  8298. SeeAlso: AH=01h
  8299. ----------F1--05-----------------------------
  8300. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_SET_SIGNAL" - SIGNAL HANDLING
  8301.     AL = 05h
  8302.     AH = CAPI version number * 10 (14h for v2.0)
  8303.     DX = application ID (see AH=01h)
  8304.     ES:BX -> signal handler or 0000h:0000h to disable
  8305.     SI:DI = parameter to pass to signal handler
  8306. Return: AX = status (0000h,11xxh) (see #3710)
  8307. Notes:    the caller is required to provide at least 512 bytes of stack space
  8308.     the signal handler is called as though it were an interrupt, with
  8309.       interrupts disabled and DX,SI,DI set as they were when this function
  8310.       was called; the handler must preserve all registers and return with
  8311.       an IRET
  8312.     the signal handler may call CAPI_PUT_MESSAGE, CAPI_GET_MESSAGE, and
  8313.       CAPI_SET_SIGNAL
  8314. SeeAlso: INT F1/AL=01h
  8315. ----------F106-------------------------------
  8316. INT F1 - Common ISDN API (CAPI) v1.1 - "API-DEINSTALL" - UNINSTALL
  8317.     AH = 06h
  8318.     BX = force flag
  8319.         0000h normal uninstall
  8320.         0001h forced uninstall
  8321. Return: AX = status (0000h,1008h) (see #3709)
  8322. Desc:    reset ISDN controller, close all ISDN Level 1 connections except for
  8323.       telephone connections
  8324. Notes:    the caller is required to provide at least 512 bytes of stack space
  8325. SeeAlso: INT F1/AL=01h,INT F1/AH=01h
  8326. ----------F1F0-------------------------------
  8327. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-MANUFACTURER"
  8328.     AH = F0h
  8329.     ES:BX -> 64-byte buffer for manufacturer identification information
  8330. Return: ES:BX buffer filled with ASCIZ idnetification string
  8331. Range:    INT 00 to INT FF, selectable by program parameter
  8332. Notes:    the caller is required to provide at least 512 bytes of stack space
  8333. SeeAlso: AH=01h,AH=F1h,AH=F2h,AH=FFh,INT F1/AL=F0h
  8334. ----------F1--F0-----------------------------
  8335. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_MANUFACTURER"
  8336.     AL = F0h
  8337.     AH = CAPI version number * 10 (14h for v2.0)
  8338.     ES:BX -> 64-byte buffer for manufacturer identification information
  8339. Return: ES:BX buffer filled with ASCIZ idnetification string
  8340. Range:    INT 00 to INT FF, selectable by program parameter
  8341. Notes:    the caller is required to provide at least 512 bytes of stack space
  8342. SeeAlso: AH=F0h,INT F1/AL=01h,INT F1/AL=F1h,INT F1/AL=F2h,INT F1/AL=FFh
  8343. ----------F1F1-------------------------------
  8344. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-VERSION"
  8345.     AH = F1h
  8346.     ES:BX -> 64-byte buffer for CAPI version number
  8347. Return: ES:BX buffer filled with ASCIZ version string
  8348. Notes:    the caller is required to provide at least 512 bytes of stack space
  8349. SeeAlso: AH=01h,AH=F0h,AH=F2h,AH=FFh
  8350. ----------F1--F1-----------------------------
  8351. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_VERSION"
  8352.     AL = F1h
  8353.     AH = CAPI version number * 10 (14h for v2.0)
  8354. Return: AH = CAPI major version number
  8355.     AL = CAPI minor version number
  8356.     DH = vendor-specific major version
  8357.     DL = vendor-specific minor version
  8358. Notes:    the caller is required to provide at least 512 bytes of stack space
  8359. SeeAlso: AH=F1h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AL=FFh
  8360. ----------F1F2-------------------------------
  8361. INT F1 - Common ISDN API (CAPI) v1.1 - "API-GET-SERIAL-NUMBER"
  8362.     AH = F2h
  8363.     ES:BX -> 64-byte buffer for CAPI serial number
  8364. Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
  8365.           string if no serial number
  8366. Notes:    the caller is required to provide at least 512 bytes of stack space
  8367. SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=FFh
  8368. ----------F1--F2-----------------------------
  8369. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_SERIAL_NUMBER"
  8370.     AL = F2h
  8371.     AH = CAPI version number * 10 (14h for v2.0)
  8372.     ES:BX -> 64-byte buffer for CAPI serial number
  8373. Return: ES:BX buffer filled with ASCIZ serial number (seven digits), empty
  8374.           string if no serial number
  8375. Notes:    the caller is required to provide at least 512 bytes of stack space
  8376. SeeAlso: AH=F2h,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F3h
  8377. ----------F1--F3-----------------------------
  8378. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_GET_PROFILE" - GET CAPABILITIES
  8379.     AL = F3h
  8380.     AH = CAPI version number * 10 (14h for v2.0)
  8381.     ES:BX -> 64-byte buffer for CAPI capabilities (see #3714)
  8382.     CX = controller number (01h-06h) or 0000h to get number of controllers
  8383. Return: AX = status (0000h,11xxh) (see #3710)
  8384.     ES:BX buffer filled if successful
  8385. Notes:    the caller is required to provide at least 512 bytes of stack space
  8386. SeeAlso: INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F2h,INT F1/AH=FFh
  8387.  
  8388. Format of CAPI v2.0 capabilities:
  8389. Offset    Size    Description    (Table 3714)
  8390.  00h    WORD    number of installed controllers
  8391.  02h    WORD    number of supported B channels
  8392.  04h    DWORD    global options (see #3715)
  8393.  08h    DWORD    B1 protocol support flags (see #3716)
  8394.  0Ch    DWORD    B2 protocol support flags (see #3717)
  8395.  10h    DWORD    B3 protocol support flags (see #3718)
  8396.  14h 24 BYTEs    reserved for CAPI use
  8397.  2Ch 20 BYTEs    vendor-specific information
  8398.  
  8399. Bitfields for CAPI v2.0 global options:
  8400. Bit(s)    Description    (Table 3715)
  8401.  0    internal controller supported
  8402.  1    external controller supported
  8403.  2    handset supported (only if bit 1 also set)
  8404.  3    DTMF supported
  8405.  4-31    reserved (0)
  8406. SeeAlso: #3714
  8407.  
  8408. Bitfields for CAPI v2.0 B1 protocol support:
  8409. Bit(s)    Description    (Table 3716)
  8410.  0    64k bps with HDLC framing (required, always set)
  8411.  1    64k bps bit-transparent operation with network byte framing
  8412.  2    V.110 asynchronous with start/stop byte framing
  8413.  3    V.110 synchronous with HDLC framing
  8414.  4    T.30 modem for group 3 FAX
  8415.  5    64k bps inverted with HDLC framing
  8416.  6    56k bps bit-transparent operation with network byte framing
  8417.  7-31    reserved (0)
  8418. SeeAlso: #3714
  8419.  
  8420. Bitfields for CAPI v2.0 B2 protocol support:
  8421. Bit(s)    Description    (Table 3717)
  8422.  0    ISO 7776 (X.75 SLP) (required, always set)
  8423.  1    transparent
  8424.  2    SDLC
  8425.  3    Q.921 LAPD (D-channel X.25)
  8426.  4    T.30 for group 3 FAX
  8427.  5    point-to-point protocol (PPP)
  8428.  6    transparent (ignoring B1 framing errors)
  8429.  7-31    reserved (0)
  8430. SeeAlso: #3714
  8431.  
  8432. Bitfields for CAPI v2.0 B3 protocol support:
  8433. Bit(s)    Description    (Table 3718)
  8434.  0    transparent (required, always set)
  8435.  1    T.90NL with T.70NL compatibility
  8436.  2    ISO 8208 (X.25 DTE-DTE)
  8437.  3    X.25 DCE
  8438.  4    T.30 for group 3 FAX
  8439.  5-31    reserved (0)
  8440. SeeAlso: #3714
  8441. ----------F1FF-------------------------------
  8442. INT F1 - Common ISDN API (CAPI) v1.1 - "API-MANUFACTURER" - VENDOR-SPECIFIC
  8443.     AH = FFh
  8444.     other registers vendor-specific
  8445. Return: registers vendor-specific
  8446. Range:    INT 00 to INT FF, selectable by program parameter
  8447. Notes:    the caller is required to provide at least 512 bytes of stack space
  8448. SeeAlso: AH=01h,AH=F0h,AH=F1h,AH=F2h,INT F1/AH=FFh
  8449. ----------F1--FF-----------------------------
  8450. INT F1 - Common ISDN API (CAPI) v2.0 - "CAPI_MANUFACTURER" - VENDOR-SPECIFIC
  8451.     AL = FFh
  8452.     AH = CAPI version number * 10 (14h for v2.0)
  8453.     other registers vendor-specific
  8454. Return: registers vendor-specific
  8455. Range:    INT 00 to INT FF, selectable by program parameter
  8456. Notes:    the caller is required to provide at least 512 bytes of stack space
  8457. SeeAlso: AH=FFh,INT F1/AL=01h,INT F1/AL=F0h,INT F1/AL=F1h,INT F1/AL=F2h
  8458. --------*-F2---------------------------------
  8459. INT F2 - reserved for user interrupt
  8460. --------s-F2---------------------------------
  8461. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  8462. SeeAlso: INT F1"SPEECH"
  8463. --------N-F2---------------------------------
  8464. INT F2 - NetWare Remote Boot - ORIGINAL INT 13
  8465. SeeAlso: INT F1"NetWare",INT F3"NetWare",INT F4"NetWare"
  8466. ----------F2---------------------------------
  8467. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  8468.     AH = function number (see #3719)
  8469.     ???
  8470. Return: ???
  8471. Program: ImageCapture is a product of International Computers
  8472. SeeAlso: INT F3"ICCTSR"
  8473.  
  8474. (Table 3719)
  8475. Values for ImageCapture function:
  8476.  01h    power up
  8477.  02h    power down
  8478.  03h    set controls
  8479.  04h    capture image
  8480.  05h    display image
  8481.  06h    read file
  8482.  07h    write file
  8483.  08h    write array
  8484.  09h    read pixel
  8485.  0Ah    write pixel
  8486.  0Bh    check if VGA present
  8487.  0Ch    set video mode
  8488.  0Dh    check for keystroke
  8489.  0Eh    delay
  8490. --------*-F3---------------------------------
  8491. INT F3 - reserved for user interrupt
  8492. SeeAlso: INT F2"user",INT F4"user"
  8493. --------s-F3---------------------------------
  8494. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  8495. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  8496.       value selected with SET-ECHO.EXE
  8497. SeeAlso: INT 2F/AX=FBFBh/ES=0000h
  8498. ----------F3---------------------------------
  8499. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  8500. Program: ImageCapture is a product of International Computers
  8501. SeeAlso: INT F2"ICCTSR"
  8502. --------N-F3---------------------------------
  8503. INT F3 - NetWare Remote Boot - BOOT ROM'S INT 13 HANDLER
  8504. SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F4"NetWare"
  8505. --------*-F4---------------------------------
  8506. INT F4 - reserved for user interrupt
  8507. SeeAlso: INT F3"user",INT F5"user"
  8508. --------T-F4---------------------------------
  8509. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  8510. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F5"DoubleDOS",INT FE"DoubleDOS"
  8511. --------N-F4---------------------------------
  8512. INT F4 - NetWare Remote Boot - ???
  8513. SeeAlso: INT F1"NetWare",INT F2"NetWare",INT F3"NetWare"
  8514. --------*-F5---------------------------------
  8515. INT F5 - reserved for user interrupt
  8516. SeeAlso: INT F4"user",INT F6"user"
  8517. --------T-F5---------------------------------
  8518. INT F5 - DoubleDOS - ???
  8519. SeeAlso: INT F4"DoubleDOS",INT F6"DoubleDOS"
  8520. --------*-F6---------------------------------
  8521. INT F6 - reserved for user interrupt
  8522. SeeAlso: INT F5"user",INT F7"user"
  8523. --------T-F6---------------------------------
  8524. INT F6 - DoubleDOS - ???
  8525. SeeAlso: INT F5"DoubleDOS",INT F7"DoubleDOS"
  8526. --------*-F7---------------------------------
  8527. INT F7 - reserved for user interrupt
  8528. SeeAlso: INT F6"user"
  8529. --------T-F7---------------------------------
  8530. INT F7 - DoubleDOS - ???
  8531. SeeAlso: INT F6"DoubleDOS"
  8532. ----------F700-------------------------------
  8533. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  8534.     AH = 00h
  8535.     AL = function
  8536.         00h get configuration record
  8537.         Return: DS:DX -> configuration record
  8538.         01h set configuration record
  8539.         Return: nothing
  8540.         02h get path for option
  8541.         DS:DX -> option name
  8542.         Return: DS:DX -> path
  8543.         03h determine whether configuration record set
  8544.         Return: AX = status
  8545.                 0000h set
  8546.                 0001h not yet set
  8547.         04h get link state
  8548.         Return: AX = state
  8549.                 0000h unlinked
  8550.                 0001h linked
  8551. Notes:    this information is preliminary and still subject to change
  8552.     all of the INT F7 calls for FSBBS are used for interprogram
  8553.       communication between the BBS kernel and the programs it spawns
  8554. SeeAlso: AH=01h
  8555. ----------F701-------------------------------
  8556. INT F7 - FSBBS 2.0 - USER RECORD
  8557.     AH = 01h
  8558.     AL = function
  8559.         00h get user record for user currently online
  8560.         Return: DS:DX -> user record
  8561.         01h set user record
  8562.         DS:DX -> user record
  8563.         Return: nothing
  8564. SeeAlso: AH=00h,AH=02h
  8565. ----------F702-------------------------------
  8566. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  8567.     AH = 02h
  8568. Return: DS:DX -> 8-character blank-padded account name
  8569. SeeAlso: AH=01h
  8570. ----------F703-------------------------------
  8571. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  8572.     AH = 03h
  8573.     AL = function
  8574.         00h get terminal index number
  8575.         Return: DX = index number
  8576.         01h set terminal index number
  8577.         DX = terminal index
  8578.         Return: nothing
  8579. ----------F704-------------------------------
  8580. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  8581.     AH = 04h
  8582.     AL = function
  8583.         00h get PassData buffer contents
  8584.         DS:DX -> buffer for PassData contents
  8585.         Return: DS:DX buffer filled
  8586.         01h set PassData contents
  8587.         DS:DX -> buffer containing new PassData
  8588.         CH = length of data in buffer
  8589.         Return: nothing
  8590. ----------F705-------------------------------
  8591. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  8592.     AH = 05h
  8593.     AL = function
  8594.         00h get time remaining
  8595.         Return: DX = number of minutes remaining
  8596.         01h get current time
  8597.         Return: DS:DX -> 8-character time string
  8598.         02h increment time
  8599.         DX = number of additional minutes
  8600.         03h decrement time
  8601.         DX = number of minutes
  8602. SeeAlso: AH=06h
  8603. ----------F706-------------------------------
  8604. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  8605.     AH = 06h
  8606.     AL = function
  8607.         00h determine whether function is available
  8608.         DX = index of function
  8609.         01h set function availability
  8610.         DX = index of function
  8611.         ???
  8612. Return: nothing
  8613. SeeAlso: AH=05h,AH=07h
  8614. ----------F707-------------------------------
  8615. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  8616.     AH = 07h
  8617.     AL = function
  8618.         00h get current dump mode
  8619.         Return: DL = mode
  8620.         01h set dump mode
  8621.         DL = mode
  8622. SeeAlso: AH=06h
  8623. --------*-F8---------------------------------
  8624. INT F8 - reserved for user interrupt
  8625. --------h-F8---------------------------------
  8626. INT F8 - Sanyo MBC-550/555 - IRQ0 - 100 HZ INTERRUPT
  8627. Note:    normally masked off at 8259 interrupt controller
  8628. SeeAlso: INT 08"IRQ0",INT F9"Sanyo",INT FA"Sanyo"
  8629. --------T-F8---------------------------------
  8630. INT F8 - DoubleDOS - ???
  8631. --------*-F9---------------------------------
  8632. INT F9 - reserved for user interrupt
  8633. --------T-F9---------------------------------
  8634. INT F9 - DoubleDOS - ???
  8635. --------h-F9---------------------------------
  8636. INT F9 - Sanyo MBC-550/555 - IRQ1 - ???
  8637. Note:    documented as "for system use only"; normally enabled at the 8259
  8638. SeeAlso: INT 09"IRQ1",INT F8"Sanyo",INT FA"Sanyo"
  8639. --------*-FA---------------------------------
  8640. INT FA - reserved for user interrupt
  8641. --------h-FA---------------------------------
  8642. INT FA - Sanyo MBC-550/555 - IRQ2 - SERIAL PORT USART INTERRUPT
  8643. Note:    this vector is not used on the Tandy 1000TL
  8644. SeeAlso: INT 0A"IRQ2",INT F9"Sanyo",INT FB"Sanyo"
  8645. --------T-FA---------------------------------
  8646. INT FA - DoubleDOS - TURN OFF TIMESHARING
  8647. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  8648. ----------FA---------------------------------
  8649. INT FA P - ASM Edit - INSTALLATION CHECK
  8650. Program: ASM Edit is a shareware programmer's editor
  8651. Note:    ASM Edit hooks this vector in protected mode to allow DPMI programs
  8652.       to detect whether they were run while shelled to DOS from ASM Edit
  8653.  
  8654. Format of ASM Edit signature block:
  8655. Offset    Size    Description    (Table 3720)
  8656.  00h    BYTE    CFh (IRET)
  8657.  01h  8 BYTEs    signature "ASM Edit" (no trailing NUL)
  8658. --------*-FB---------------------------------
  8659. INT FB - reserved for user interrupt
  8660. --------h-FB---------------------------------
  8661. INT FB - Sanyo MBC-550/555 - IRQ3 - KEYBOARD USART RECEIVE INTERRUPT
  8662. SeeAlso: INT 0B"IRQ3",INT FA"Sanyo",INT FC"Sanyo"
  8663. --------T-FB---------------------------------
  8664. INT FB - DoubleDOS - TURN ON TIMESHARING
  8665. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  8666. --------*-FC---------------------------------
  8667. INT FC - reserved for user interrupt
  8668. --------T-FC---------------------------------
  8669. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  8670. Return: ES = segment of display buffer
  8671. Desc:    determine the address of the virtual screen to which the program
  8672.       should write instead of the actual video memory, so that the
  8673.       multitasked programs do not interfere with each other's output
  8674. Note:    the display buffer may be moved if multitasking is enabled
  8675. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  8676. --------h-FC---------------------------------
  8677. INT FC - Sanyo MBC-550/555 - IRQ4 - PRINTER READY INTERRUPT
  8678. Note:    normally masked off at the 8259 interrupt controller
  8679. SeeAlso: INT 0C"IRQ4",INT FB"Sanyo",INT FD"Sanyo"
  8680. --------*-FD---------------------------------
  8681. INT FD - reserved for user interrupt
  8682. --------T-FD---------------------------------
  8683. INT FD - DoubleDOS - ???
  8684. --------h-FD---------------------------------
  8685. INT FD - Sanyo MBC-550/555 - IRQ5 - FLOPPY DISK CONTROLLER
  8686. SeeAlso: INT 0D"IRQ5",INT FC"Sanyo",INT FE"Sanyo"
  8687. --------S-FD---------------------------------
  8688. INT FD - TFPCX - INSTALLATION CHECK
  8689.     AH = function (also see separate entries below)
  8690. Program: TFPCX is an interface between modem and terminal program for packet-
  8691.       radio communications
  8692. InstallCheck:    test for the string "N5NX" three bytes beyond the interrupt
  8693.       handler
  8694. Range:    INT FD is the default, but may be changed, so the full installation
  8695.      check consists of scanning for the signature
  8696. Note:    TFPCX returns AX=FFFFh on any unsupported function call
  8697. SeeAlso: AH=01h,AH=03h,AH=FEh
  8698. --------S-FD01-------------------------------
  8699. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  8700.     AH = 01h
  8701. Return: AX = status
  8702.         0000h no characters waiting
  8703.         0001h character available for input
  8704. Program: TFPCX is an interface between modem and terminal program for packet-
  8705.       radio communications
  8706. SeeAlso: AH=02h
  8707. --------S-FD02-------------------------------
  8708. INT FD - TFPCX - GET CHARACTER
  8709.     AH = 02h
  8710. Return: AL = character
  8711. Notes:    this call is only allowed if AH=01h indicated that a character is
  8712.       available
  8713.     all available characters should be read before sending any additional
  8714.       characters
  8715. SeeAlso: AH=01h,AH=03h
  8716. --------S-FD03-------------------------------
  8717. INT FD - TFPCX - OUTPUT CHARACTER
  8718.     AH = 03h
  8719.     AL = character to send
  8720. Return: nothing
  8721. SeeAlso: AH=02h
  8722. --------S-FDFE-------------------------------
  8723. INT FD - TFPCX - GET VERSION
  8724.     AH = FEh
  8725. Return: AH = major version
  8726.     AL = minor version
  8727. Program: TFPCX is an interface between modem and terminal program for packet-
  8728.       radio communications
  8729. SeeAlso: AH=01h,AH=03h
  8730. --------B-FE---------------------------------
  8731. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  8732. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  8733.       is the last fourth of the interrupt vector table.  If the processor
  8734.       is returned to real mode via a hardware reset (the only possibility
  8735.       on an 80286, though there are a number of ways of generating one),
  8736.       then the BIOS startup code stacks three words on its scratch stack
  8737.       before determining that a return to real mode has been requested.
  8738.       As a result, INT FE and INT FF are corrupted.
  8739. SeeAlso: INT FF"XT286"
  8740. --------T-FE---------------------------------
  8741. INT FE - DoubleDOS - GIVE UP TIME
  8742.     AL = number of 55ms time slices to give away
  8743. Return: after other program (if active) has run
  8744. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  8745. --------G-FE---------------------------------
  8746. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  8747. SeeAlso: INT 3F
  8748. --------h-FE---------------------------------
  8749. INT FE - Sanyo MBC-550/555 - IRQ6 - 8087 COPROCESSOR INTERRUPT
  8750. Note:    normally masked off at the 8259 interrupt controller
  8751. SeeAlso: INT 0E"IRQ6",INT FD"Sanyo",INT FF"Sanyo"
  8752. --------B-FF---------------------------------
  8753. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  8754. Note:    (see INT FE"XT286")
  8755. SeeAlso: INT FE"XT286"
  8756. --------b-FF---------------------------------
  8757. INT FF - Z100 - WARM BOOT
  8758. SeeAlso: INT 40"Z100"
  8759. --------h-FF---------------------------------
  8760. INT FF - Sanyo MBC-550/555 - IRQ7 - USER INTERRUPT FOR EXTERNAL INTERRUPT
  8761. Note:    normally masked off at the 8259 interrupt controller
  8762. SeeAlso: INT 0F"IRQ7",INT FE"Sanyo"
  8763. --------Q-FF---------------------------------
  8764. INT FF U - QEMM-386.SYS v6.0+ - internal
  8765. Notes:    requires that a byte in the conventional-memory stub be set to the
  8766.       desired function number (00h through 0Ch)
  8767. SeeAlso: #3721
  8768.  
  8769. (Table 3721)
  8770. Values for QEMM internal functions:
  8771.  00h    reflect back to Virtual86-mode interrupt handler (default)
  8772.  01h    ???
  8773.  02h    access DR7???
  8774.  03h    QPI upcall (see INT 67/AH=3Fh)
  8775.  04h    ???
  8776.  05h    ???
  8777.  06h    INT 15/AH=87h
  8778.  07h    EMS services (see INT 67/AH=40h,INT 67/AH=5Dh)
  8779.  08h    ???
  8780.  09h    QEMM exception handler
  8781.  0Ah    XMS services (see INT 2F/AX=4310h"XMS")
  8782.  0Bh    Virtual DMA Services (see INT 4B/AX=8102h)
  8783.  0Ch    ???
  8784. --------v-FF---------------------------------
  8785. INT FF - VIRUS - "Violetta" - ???
  8786. Note:    used but not chained by virus
  8787. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  8788. --------V-FF----BX0000-----------------------
  8789. INT FF - PC/FORTH - GRAPHICS API - VIDEO STATUS CHANGE
  8790.     BX = 0000h
  8791.     DS:SI -> FORTH program counter
  8792.     SS:BP -> FORTH parameter stack
  8793.     SS:SP -> FORTH return stack
  8794.     DS:DX -> FORTH video parameter area
  8795. Desc:    called to inform graphics driver of any status changes such as video
  8796.       mode changes, character color changes, graphics XOR mode turned on
  8797.       or off, etc.; also used as an installation check
  8798. Index:    installation check;PC/FORTH
  8799. --------V-FF---------------------------------
  8800. INT FF - PC/FORTH - GRAPHICS API
  8801.     BX = function number
  8802.         0001h function REDRAW
  8803.         0002h function !PEL
  8804.         0003h function @PEL
  8805.         0004h function LINE
  8806.         0005h function ARC
  8807.         0006h function @BLOCK
  8808.         0007h function !BLOCK
  8809.         0008h function FLOOD
  8810.     DS:SI -> FORTH program counter
  8811.     SS:BP -> FORTH parameter stack
  8812.     SS:SP -> FORTH return stack
  8813.     details of parameters not available
  8814. Return:    AX,BX,CX,DX,ES,DI may be destroyed
  8815. Note:    these functions all display an error message if the graphics routines
  8816.       are not resident
  8817. --------!---Admin----------------------------
  8818. Highest Table Number = 3886
  8819. --------!---FILELIST-------------------------
  8820. Please redistribute all of the files comprising the interrupt list (listed at
  8821. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  8822. quartet of archives named INTER57A through INTER57D (preferably the original
  8823. authenticated PKZIP archives), the utility programs in a fifth archive
  8824. called INTER57E.ZIP, the WinHelp-related programs in a sixth archive
  8825. named INTER57F.ZIP, and the non-WinHelp hypertext programs in a seventh archive
  8826. names INTER57G.ZIP.
  8827.  
  8828. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  8829. --------!---CONTACT_INFO---------------------
  8830. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  8831. FIDO: Ralf Brown 1:129/26.1
  8832.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  8833.     unless you address it to me)
  8834.