home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / misc / inter41 / interrup.k < prev    next >
Encoding:
Text File  |  1994-06-05  |  346.7 KB  |  9,557 lines

  1. Interrupt List, part 11 of 11
  2. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  3. --------N-6B---------------------------------
  4. INT 6B - DECnet DOS - PORT DRIVER
  5. Note:    the installation check consists of testing for a signature area
  6.       (see #1971) immediately preceding the interrupt handler
  7. SeeAlso: INT 6A"DECnet",INT 6C"DECnet"
  8. Index:    installation check;DECnet DOS Port Driver
  9.  
  10. Format of DECnet DOS signature area:
  11. Offset    Size    Description    (Table 1971)
  12.  -5    BYTE    major version number
  13.  -4    BYTE    minor version number
  14.  -3   3 BYTEs    signature (ASCII "PDV")
  15. --------v-6B---------------------------------
  16. INT 6B - VIRUS - "Saddam" - ORIGINAL INT 21h VECTOR
  17. SeeAlso: INT 21/AX=FFFFh,INT 61"VIRUS",INT 70"VIRUS"
  18. --------S-6B0000-----------------------------
  19. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED WRITE
  20.     AX = 0000h
  21.     CX = length
  22.     ES:BX -> buffer
  23. Return: CX = number of bytes written
  24. Program: NASI is Novell's NetWare Asynchronous Services Interface (purchased
  25.       from Network Products Corp, who call it NCSI) which runs on
  26.       workstations; NACS is the NetWare Asynchronous Communications
  27.       Services module which runs on servers
  28. Notes:    the installation check consists of testing for the signature string
  29.       "NCSI" three bytes past the interrupt handler; see also AH=02h.
  30.       As of version 3.0, Novell's NASI can be distinguished from NPC's
  31.       NCSI by the presence of an 'A' immediately following the signature
  32.     this function is also supported by TelAPI, NPC NCSI, and Connection
  33.       Manager CLIENT.EXE; for TelAPI, nonzero values in AL specify a
  34.       connection ID
  35.     Connection Manager returns CF set/AL=FFh if called while an INT 6B
  36.       call is already in progress
  37. SeeAlso: AX=0100h,AH=18h,INT 14/AH=19h,INT 14/AH=E3h
  38. --------S-6B0100-----------------------------
  39. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - BUFFERED READ
  40.     AX = 0100h
  41.     CX = length of buffer
  42.     ES:BX -> buffer
  43. Return: CX = number of bytes read
  44. Note:    also supported by TelAPI and NPC NCSI; for TelAPI, nonzero values in
  45.       AL specify a connection ID
  46. SeeAlso: AX=0000h,AH=19h,INT 14/AH=18h,INT 14/AH=E2h,INT 14/AX=FF02h
  47. --------S-6B02-------------------------------
  48. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - INSTALL CHECK
  49.     AH = 02h
  50.     AL nonzero
  51. Return: AL = 00h if present and OK
  52. Note:    this function is also supported by TelAPI and NPC NCSI
  53. SeeAlso: AX=0700h
  54. --------S-6B0600-----------------------------
  55. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - CONTROL
  56.     AX = 0600h
  57.     CX = command
  58.         02h send break
  59.         04h disconnect
  60.         06h hold
  61. Return: CF clear if successful
  62.         AL = 00h
  63.     CF set on error
  64.         AX < 0
  65. Note:    this function is also supported by TelAPI and NPC NCSI
  66. --------S-6B0700-----------------------------
  67. INT 6B - Novell NASI/NACS, Ungermann-Bass Net One SERIAL I/O - GET STATUS
  68.     AX = 0700h
  69. Return: CH <> 00h if connection active
  70. Notes:    this function is also supported by TelAPI and NPC NCSI
  71.     Novell TelAPI returns CX=FF01h and CF clear
  72. SeeAlso: AH=02h,AH=10h
  73. --------N-6B08-------------------------------
  74. INT 6B - TelAPI - ???
  75.     AH = 08h
  76. Return: CF clear
  77.         AL = 00h
  78.         CX = 0000h
  79. Note:    this function also clears ??? flag
  80. SeeAlso: INT 14/AX=FF00h
  81. --------S-6B10-------------------------------
  82. INT 6B - NPC NCSI EXTENDED SERIAL I/O - GET STATUS
  83.     AH = 10h
  84.     AL = connection ID (Novell TELAPI.EXE)
  85.     CX = ???
  86. Return: CF clear if successful
  87.         CL = ???
  88.         CH = ???
  89.     CF set on error
  90.     ???
  91. Notes:    this function is also supported by TelAPI
  92.     when shelled out to an external protocol from Novell NASI, the circuit
  93.       whose status indicates that it is connected is the currently active
  94.       circuit
  95. SeeAlso: AX=0700h,AH=12h,AH=1Fh
  96. --------S-6B11--DX0001-----------------------
  97. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ALLOCATE A VIRTUAL CIRCUIT
  98.     AH = 11h
  99.     DX = 0001h
  100.     AL = 00h
  101.     ES:BX -> service name string (8 characters, blank-padded)
  102. Return: CF clear if successful
  103.         AL = virtual circuit number allocated (01h for Novell TELAPI.EXE)
  104.         CL = ??? (01h for Novell TELAPI.EXE)
  105.         CH = ??? (01h for Novell TELAPI.EXE)
  106.     CF set on error
  107.         ???
  108. Note:    this function is also supported by TelAPI
  109. SeeAlso: AH=12h,AH=15h,AH=16h,AH=17h,AH=18h
  110. --------S-6B12-------------------------------
  111. INT 6B - NPC NCSI EXTENDED SERIAL I/O - VIRTUAL CIRCUIT STATUS
  112.     AH = 12h
  113.     AL = virtual circuit number
  114.     CL = ???
  115.     ES:BX -> ???
  116. Return: ???
  117. Note:    this function is also supported by TelAPI
  118. SeeAlso: AH=10h,AH=15h,AH=1Ah,AH=1Bh,AH=1Fh
  119. --------S-6B13-------------------------------
  120. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE REQUEST/REPLY SERVICE NAME
  121.     AH = 13h
  122.     AL = virtual circuit number
  123.     CL = direction (00h get, nonzero set)
  124.     ES:BX -> buffer for/containing service name
  125. Return: ???
  126. Note:    this function is also supported by TelAPI
  127. SeeAlso: AH=14h,AH=15h
  128. --------S-6B14-------------------------------
  129. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE SERVICE ADDRESS
  130.     AH = 14h
  131.     AL = virtual circuit number
  132.     ES:BX -> buffer for/containing service address
  133. Return: ???
  134. Note:    this function is also supported by TelAPI, which only supports
  135.       retrieving the address
  136. SeeAlso: AH=13h,AH=15h,AH=21h
  137. --------S-6B15-------------------------------
  138. INT 6B - NPC NCSI EXTENDED SERIAL I/O - SET/RETRIEVE VIRTUAL CIRCUIT CONFIG
  139.     AH = 15h
  140.     AL = virtual circuit number
  141.     CL = direction (00h get, nonzero set)
  142.     ES:BX -> buffer for/containing virtual circuit config (see #1972)
  143. Return: ES:BX buffer filled
  144. Note:    this function is also supported by TelAPI
  145. SeeAlso: AH=13h"NCSI",AH=14h"NCSI"
  146.  
  147. Format of virtual circuit configuration:
  148. Offset    Size    Description    (Table 1972)
  149.  00h    WORD    buffer length
  150.  02h    WORD    port ID
  151.  04h    WORD    receive rate
  152.  06h    WORD    receive word length
  153.  08h    WORD    receive stop bits
  154.  0Ah    WORD    receive parity
  155.  0Ch    WORD    transmit rate
  156.  0Eh    WORD    transmit word length
  157.  10h    WORD    transmit stop bits
  158.  12h    WORD    transmit parity
  159.  14h    WORD    DTR
  160.  16h    WORD    RTS
  161. --------S-6B16-------------------------------
  162. INT 6B - NPC NCSI EXTENDED SERIAL I/O - LOG AND/OR INITIALIZE VIRTUAL CIRCUIT
  163.     AH = 16h
  164.     AL = virtual circuit number
  165.     CL = ??? switch (00h, ???)
  166. Return: CF clear if successful
  167.         AL = virtual circuit number
  168.     CF set on error
  169.         ???
  170. Note:    this function is also supported by TelAPI, which always returns CF
  171.       clear and AL=00h
  172. SeeAlso: AH=11h,AH=12h,AH=17h
  173. --------S-6B17-------------------------------
  174. INT 6B - NPC NCSI EXTENDED SERIAL I/O - DISCONNECT A VIRTUAL CIRCUIT
  175.     AH = 17h
  176.     AL = virtual circuit number
  177. Return: CF clear if successful
  178.     CF set on error
  179.     ???
  180. Note:    this function is also supported by TelAPI, which always returns CF
  181.       clear and AL=00h
  182. SeeAlso: AH=11h,AH=16h
  183. --------S-6B18-------------------------------
  184. INT 6B - NPC NCSI EXTENDED SERIAL I/O - WRITE DATA ON A VIRTUAL CIRCUIT
  185.     AH = 18h
  186.     AL = virtual circuit number
  187.     CX = number of characters to send
  188.     ES:BX -> buffer containing characters to be sent
  189. Return: CF clear if successful
  190.     CF set on error
  191.     ???
  192. Note:    this function is also supported by TelAPI, which always returns CF
  193.       clear and AL=30h
  194. SeeAlso: AX=0000h,AH=12h,AH=19h
  195. --------S-6B19-------------------------------
  196. INT 6B - NPC NCSI EXTENDED SERIAL I/O - READ DATA ON A VIRTUAL CIRCUIT
  197.     AH = 19h
  198.     AL = virtual circuit number
  199.     CX = number of characters to read
  200.     ES:BX -> buffer for received characters
  201. Return: CX = 0000h if failed
  202.     CX = nonzero (possibly number of characters received) if successful
  203. Note:    this function is also supported by TelAPI
  204. SeeAlso: AX=0100h,AH=12h,AH=18h
  205. --------S-6B1A-------------------------------
  206. INT 6B - NPC NCSI EXTENDED SERIAL I/O - RECEIVE STATUS
  207.     AH = 1Ah
  208.     ???
  209. Return: ???
  210. SeeAlso: AH=12h,AH=1Bh
  211. --------S-6B1B-------------------------------
  212. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT STATUS
  213.     AH = 1Bh
  214.     ???
  215. Return: ???
  216. SeeAlso: AH=12h,AH=1Ah
  217. --------S-6B1C-------------------------------
  218. INT 6B - NPC NCSI EXTENDED SERIAL I/O - CLEAR RECEIVE BUFFER
  219.     AH = 1Ch
  220.     AL = circuit number
  221. Return: nothing
  222. SeeAlso: AH=1Dh"NCSI",AH=1Eh"NCSI"
  223. --------S-6B1D-------------------------------
  224. INT 6B - NPC NCSI EXTENDED SERIAL I/O - TRANSMIT BUFFER CONTROL
  225.     AH = 1Dh
  226.     ???
  227. Return: ???
  228. SeeAlso: AH=1Ch,AH=1Eh
  229. --------S-6B1E-------------------------------
  230. INT 6B - NPC NCSI EXTENDED SERIAL I/O - ISSUE CONTROL REQUEST
  231.     AH = 1Eh
  232.     ???
  233. Return: ???
  234. SeeAlso: AH=1Ch,AH=1Dh
  235. --------S-6B1F-------------------------------
  236. INT 6B - NPC NCSI EXTENDED SERIAL I/O - EXTERNAL STATUS
  237.     AH = 1Fh
  238.     ???
  239. Return: ???
  240. SeeAlso: AH=10h,AH=12h
  241. --------S-6B20-------------------------------
  242. INT 6B - Connection Manager CLIENT.EXE - ???
  243.     AH = 20h
  244.     ???
  245. Return: ???
  246. Program: Connection Manager by Softwarehouse Corp. permits the sharing of
  247.       serial ports over an IPX or NetBIOS-based network
  248. Note:    CLIENT.EXE returns CF set/AL=F9h if AH is not 00h to 21h on entry
  249. --------S-6B21-------------------------------
  250. INT 6B - NPC NCSI EXTENDED SERIAL I/O - QUERY NAME SERVICE
  251.     AH = 21h
  252.     AL = virtual circuit number
  253.     CL = ??? (00h or 01h)
  254.     ES:BX -> buffer for service name structure (see #1973)
  255. Return: CF clear if successful
  256.         ES:BX buffer filled
  257.     CF set on error
  258. Notes:    a program should call this function after allocating a virtual circuit
  259.       and check that the general name matches the requested service
  260.     prior to version 3.0, Novell's NASI returned the first available port;
  261.       v3.0+ returns the first port found--check the returned status to
  262.       determine whether the port is available
  263. SeeAlso: AH=14h"NCSI"
  264.  
  265. Format of NCSI service name structure:
  266. Offset    Size    Description    (Table 1973)
  267.  00h    WORD    buffer length
  268.  02h  8 BYTEs    service name
  269.  0Ah  8 BYTEs    general name
  270.  12h  8 BYTEs    specific name
  271.  1Ah  4 BYTEs    ???
  272. ---Novell NASI v3.0+ ---
  273.  1Eh    BYTE    port number
  274.  1Fh    BYTE    port status
  275.         00h idle (available)
  276.         01h allocated (available)
  277.         02h connected
  278.         03h on hold
  279. ----------6B6B-------------------------------
  280. INT 6B - Tandy SCHOOLMATE PLUS - API
  281.     AH = 6Bh
  282.     AL = E0h to FFh
  283. Note:    details not yet available
  284. ----------6C---------------------------------
  285. INT 6C - system resume vector (CONVERTIBLE)
  286. ----------6C---------------------------------
  287. INT 6C - DOS 3.2 Realtime Clock update
  288. --------N-6C---------------------------------
  289. INT 6C - DECnet DOS network scheduler
  290. Notes:    the installation check consists of testing for a signature area
  291.       immediately preceding the interrupt handler
  292.     also supported by DEC Pathworks for DOS
  293. SeeAlso: INT 6B"DECnet",INT 6D"DECnet",INT 6E"DECnet"
  294. Index:    installation check;DECnet DOS scheduler
  295.  
  296. Format of DECnet DOS signature area:
  297. Offset    Size    Description    (Table 1974)
  298.  -5    BYTE    major version number
  299.  -4    BYTE    minor version number
  300.  -3   3 BYTEs    signature (ASCII "SCH")
  301. --------V-6D---------------------------------
  302. INT 6D - VIDEO - many VGA - VIDEO BIOS ENTRY POINT
  303. Desc:    points at the original INT 10 entry point set up by the VGA BIOS
  304. Note:    used by IBM, ATI VGA Wonder, Paradise, Video7, and NCR, and many others
  305. SeeAlso: INT 10
  306. --------V-6D---------------------------------
  307. INT 6D - Trident SVGA - VIDEO BIOS HANDLER
  308. Note:    the BIOS INT 10 handler on various Trident VGA cards consists merely
  309.       of a call to INT 6D followed by an IRET.
  310. --------N-6D---------------------------------
  311. INT 6D - DECnet DOS (before 2.1) - DATA LINK LAYER PROGRAM
  312.     AH = function
  313.     ???
  314. Return: ???
  315. Note:    the installation check consists of testing for a signature area
  316.       immediately preceding the interrupt handler
  317. SeeAlso: INT 69/AH=0Ah,INT 6C"DECnet",INT 6E"DECnet"
  318. Index:    installation check;DECnet DOS Data Link Layer
  319.  
  320. Format of DECnet DOS signature area:
  321. Offset    Size    Description    (Table 1975)
  322.  -5    BYTE    major version number
  323.  -4    BYTE    minor version number
  324.  -3   3 BYTEs    signature (ASCII "DLL")
  325. --------N-6E---------------------------------
  326. INT 6E - DECnet DOS - DECnet NETWORK PROCESS API
  327. Notes:    this is the main DECnet DOS access, and is described in Digital manual
  328.       AA-EB46B-TV ("DECnet-DOS Programmer's Reference Manual")
  329.     there is a signature/data area immediately prior to the interrupt
  330.       handler which may be used as an installation check
  331. Index:    installation check;DECnet DOS
  332.  
  333. Format of DECnet DOS signature area:
  334. Offset    Size    Description    (Table 1976)
  335.  -5    BYTE    major version number
  336.  -4    BYTE    minor version number
  337.  -3   3 BYTEs    signature (ASCII "DNP")
  338. --------N-6F---------------------------------
  339. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  340.     AX = function
  341.         0000h enter terminal mode
  342.         Return: AX = status
  343.                 0000h no action requested
  344.                 0001h screen save
  345.         0001h reset interface and set configuration parameters
  346.         DX = bitfields
  347.             bits 2-0: model number
  348.             bits 4-3: I/O address
  349.             bits 6-5: DMA channel
  350.         Return: nothing
  351.         0002h set display parameters
  352.         DX = bitfields
  353.             bits 1-0: OIA mode
  354.             bits 4-2: monitor support
  355.         Return: nothing
  356.         0003h read status
  357.         Return: AX = status word (see #1977)
  358.         0004h read cursor position
  359.         Return: AX = cursor position
  360.         0005h get character from device buffer
  361.         DX = cursor position
  362.         Return: AH = type (00h data, 01h attribute)
  363.             AL = data or attribute character
  364.         0006h send character
  365.         DH = type (00h ASCII, 01h extended code)
  366.         DL = ASCII character or extended code
  367.         Return: nothing
  368.         0007h set timeout
  369.         DX = timeout in seconds
  370.         Return: nothing
  371.         0008h wait for location to be modified
  372.         DX = cursor position
  373.         Return: AX = status (0000h modified, nonzero timeout)
  374.         0009h NOP
  375.         000Ah restore display
  376.         Return: nothing
  377.         000Bh update device buffer
  378.         Return: AX = cursor positoin
  379.         000Ch write string to add information area
  380.         DS:DX -> string
  381.         Return: nothing
  382.         000Dh maintenance operations
  383.         DX = maintenance operation code
  384.         Return: AX = operation status
  385.         000Eh get control program version
  386.         Return: AH = release number (major version)
  387.             AL = level number (minor version)
  388.         000Fh get microcode version
  389.         Return: AH = release number (major version)
  390.             AL = level number (minor version)
  391.         0010h save or display graphics
  392.         BX = length of data buffer
  393.         CX = subfunction request code
  394.         DS:DX -> data buffer
  395.         Return: AX = return code
  396.             CX = length of PIF data
  397.         0011h perform structured field operation
  398.         CX = request number
  399.         DS:DX -> parameter list
  400.         Return: AX = status word (see #1977)
  401.             CX = error number
  402.         0012h set cursor position for direct write buffer
  403.         DX = new cursor position
  404.         Return: AX = status word (see #1977)
  405.         0013h write direct to buffer
  406.         DL = character to be written
  407.         DH = translation option
  408.         Return: AX = status word (see #1977)
  409.         0014h write direct to buffer without echo
  410.         DL = character to be written
  411.         DH = translation option
  412.         Return: AX = status word (see #1977)
  413.         0015h set direct write string length
  414.         DX = string value
  415.         Return: nothing
  416.         0016h write string direct to buffer
  417.         DS:DX -> string
  418.         Return: AX = status word (see #1977)
  419.         0017h write string direct to buffer, untranslated
  420.         DS:DX -> string
  421.         Return: AX = status word (see #1977)
  422.         0018h get direct-write cursor position
  423.         Return: AX = cursor position
  424.         0019h convert row/column to cursor position
  425.         DH = display row (1-43)
  426.         DL = display column (1-132)
  427.         Return: AX = cursor position
  428.         001Ah convert cursor position to row/column
  429.         DX = cursor position
  430.         Return: AH = display row
  431.             AL = display column
  432.         001Bh find next field
  433.         DX = initial cursor position
  434.         Return: AX = field cursor position
  435.         001Ch find previous field
  436.         DX = initial cursor position
  437.         Return: AX = field cursor position
  438.         001Dh find next unprotected field
  439.         DX = initial cursor position
  440.         Return: AX = field cursor position
  441.         001Eh find previous unprotected field
  442.         DX = initial cursor position
  443.         Return: AX = field cursor position
  444.         001Fh find next protected field
  445.         DX = initial cursor position
  446.         Return: AX = field cursor position
  447.         0020h find previous protected field
  448.         DX = initial cursor position
  449.         Return: AX = field cursor position
  450.         0021h masked search forward
  451.         DH = mask
  452.         DL = search pattern
  453.         Return: AX = cursor position or 0000h
  454.         0022h masked search backward
  455.         DH = mask
  456.         DL = search pattern
  457.         Return: AX = cursor position or 0FFFh
  458.         0023h find field length
  459.         DX = cursor position
  460.         Return: AX = field length
  461.         0024h read field
  462.         DS:DX -> buffer for field contents
  463.         Return: AX = status word (see #1977)
  464.         0025h read screen
  465.         DS:DX -> buffer for screen contents
  466.         Return: AX = status word (see #1977)
  467.         0026h read buffer untranslated
  468.         DX = cursor position
  469.         Return: AX = buffer code
  470.             CX:BX -> 3278/79 device buffer image
  471.         0027h enable/disable keyboard
  472.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  473.         Return: nothing
  474.         0028h select host session
  475.         DL = session short name
  476.         Return: AX = session information
  477.         0029h retrieve host session name
  478.         AX = short name (DFT) or 0000h (not available, CUT mode)
  479.         002Ah get current device buffer size
  480.         Return: AX = device buffer size
  481.             CX = segment of EAB
  482.         002Bh arm modified location trigger
  483.         DX = cursor position
  484.         Return: AX = status (0000h not available, 0001h successful)
  485.  
  486. Bitfields for PCOX status word:
  487. Bit(s)    Description    (Table 1977)
  488.  0,1    cursor type
  489.  2    cursor inhibited
  490.  3    display inhibited
  491.  4    feature step inhibited
  492.  5    480-character format code
  493.  6,7    unused
  494.  8-10    model number (2-5)
  495.  11    unit has been reset by controller (cleared after status returned)
  496.  12    buffer has been written into (cleared after status returned)
  497.  13    alarm has been sounded (cleared after status returned)
  498.  14-15    monitor type (01 mono, 10 color, 11 hybrid)
  499. --------N-6F00-------------------------------
  500. INT 6F - 10NET - LOGIN
  501.     AH = 00h
  502.     DS:DX -> login record (see #1978)
  503. Return: CL = security level
  504.     AX = status (see #1979)
  505. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  506.  
  507. Format of 10NET login record:
  508. Offset    Size    Description    (Table 1978)
  509.  00h  8 BYTEs    user name
  510.  08h  8 BYTEs    password
  511.  10h 12 BYTEs    name of SuperStation
  512.  
  513. (Table 1979)
  514. Values for 10NET status:
  515.  0000h    successful
  516.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  517.  02FFh    "NET_NERR" network (hardware) error
  518.  03FFh    "PAS_NERR" invalid password
  519.  04FFh    "LRN_NERR" local resource not available
  520.  05FFh    "SRN_NERR" server resource not available
  521.  06FFh    "LNM_NERR" already logged in under different name
  522.  07FFh    "LSF_NERR" login security failure (node)
  523.  08FFh    "NLI_NERR" not logged in
  524.  09FFh    "DIVZ_NERR" position calc error
  525.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  526.  0BFFh    "RFNC_NERR" request function not in range
  527.  0CFFh    "NSFH_NERR" no more server file handle entries left
  528.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  529.  0EFFh    "NUFH_NERR" no more user file handle entries left
  530.  0FFFh    "CHAT_NERR" chat permit not on
  531.  10FFh    "NSRV_NERR" not a server on request
  532.  11FFh    "NOBD_NERR" no transporter board error
  533.  12FFh    "STO_NERR" time out on send
  534.  13FFh    "INF_NERR" item not found (spool item not on queue)
  535.  14FFh    "DACS_NERR" DOS access incompatible
  536.  15FFh    "RLOCK_NERR" record already locked
  537.  16FFh    "IVP_NERR" invalid parameter
  538.  17FFh    "RLTO_NERR" record lock time out error
  539.  18FFh    "CSPL_NERR" currently spooling to named device
  540.  19FFh    "DRP_NERR" dropped receive message (throttle)
  541.  1AFFh    "SOPV_NERR" open sharing violation
  542.  1BFFh    "NTUF_NERR" no more tuf entries left
  543.  1CFFh    "NOWN_NERR" not file owner on open
  544.  1DFFh    "RSEC_NERR" read security not passed
  545.  1EFFh    "WSEC_NERR" write security not passed
  546.  1FFFh    "GSEC_NERR" group security not passed
  547.  20FFh    "SEC1_NERR" security file failure
  548.  21FFh    "ACT1_NERR" activity file failure
  549.  22FFh    "SPL1_NERR" spool control file failure
  550.  23FFh    "NMT_NERR" device not mounted (spooling)
  551.  24FFh    "RSPL_NERR" spool file has not been terminated
  552.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  553.  26FFh    "DUP_NERR" duplicate node ID
  554.  27FFh    "FNF_NERR" file not found error
  555.  28FFh    "NMF_NERR" no more files
  556.  29FFh    "UN_NERR" unknown internal system error
  557.  2AFFh    "QCP_NERR" print queue is full or corrupted
  558.  2BFFh    "IFNC_NERR" invalid function
  559.  2CFFh    "IVH_NERR" invalid handle
  560.  2DFFh    "TOF_NERR" too many files opened
  561.  2EFFh    "PNF_NERR" path not found
  562.  2FFFh    "SACT_NERR" named file is active
  563. ---10NET v5.0+ ---
  564.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  565.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  566.  32FFh    "RECV_NERR" driver could not be put in receive mode
  567.  33FFh    "NRLT_NERR" no more RLTAB entries left
  568.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  569.  35FFh    "IVD_NERR" invalid device
  570.  36FFh    "NALV_NERR" netname access level violated
  571.  37FFh    "NPIDNF_NERR" network path not found
  572.  38FFh    "SP_NERR" server is paused
  573.  39FFh    "TMNM_NERR" too many remote user names
  574.  3AFFh    "DUPD_NERR" duplicate network device
  575.  3BFFh    "DIU_NERR" shared device in use, can't delete
  576.  3CFFh    "NNWD_NERR" network name was deleted
  577.  3DFFh    "NPFS_NERR" not enough space for print file
  578.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  579.  3FFFh    "NB_NERR" network busy
  580.  40FFh    "NDNLE_NERR" network device no longer exists
  581.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  582.  42FFh    "FINT24_NERR" Fail on INT 24h
  583.  43FFh    "PEXP_NERR" password expired
  584.  44FFh    "NPUP_NERR" new password error
  585.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  586.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  587. SeeAlso: #1990
  588. Index:    error codes;10Net|10Net;error codes
  589. --------N-6F01-------------------------------
  590. INT 6F - 10NET - LOGOFF
  591.     AH = 01h
  592.     DS:DX -> superstation ID or nulls (12 bytes)
  593. Return: CX = number of files closed
  594.     AX = status (see also #1979)
  595.         08FFh superstation ID not already logged in
  596. SeeAlso: AH=00h,AH=81h
  597. --------N-6F02-------------------------------
  598. INT 6F - 10NET - STATUS OF NODE
  599.     AH = 02h
  600.     DS:DX -> 512-byte status record (see #1981)
  601. Return:    CF clear if successful
  602.     CF set on error
  603.         AX = error code (see #1979)
  604. SeeAlso: INT 21/AX=5E01h"10NET"
  605.  
  606. (Table 1980)
  607. Values for 10NET station type:
  608.  00h    workstation
  609.  01h    superstation
  610.  02h    gateway station
  611.  03h    gateway active
  612.  04h    logged into multiple superstations
  613.  05h    reserved
  614.  
  615. Format of 10NET node status record:
  616. Offset    Size    Description    (Table 1981)
  617.  00h  8 BYTEs    user name (0 if none)
  618.  08h    BYTE    station type (see #1980)
  619.  09h 24 BYTEs    list of superstations logged into more than one superstation
  620.  21h 12 BYTEs    node ID
  621.  2Dh    WORD    message count for this station (send for user node, receive for
  622.           superstations)
  623. ---for superstations only---
  624.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  625.  31h    BYTE    user service flags (see #1982)
  626.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  627.  33h    BYTE    number of unprinted spool files
  628.  34h    BYTE    number of opened files
  629.  35h    BYTE    number of logged on nodes
  630.  36h    BYTE    primary drive (1=A:)
  631.  37h    BYTE    reserved
  632.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  633. 1F4h  3 BYTEs    time: sec/min/hrs
  634. 1F7h  3 BYTEs    date: day/mon/year-1980
  635.  
  636. Bitfields for 10NET user service flags:
  637. Bit(s)    Description    (Table 1982)
  638.  7    gate
  639.  6    print permit on
  640.  4    SUBMIT is on
  641.  3    mail waiting for node
  642.  2    calendar waiting for you
  643.  1    news waiting for you
  644.  0    mail waiting for you
  645. --------W-6F0204-----------------------------
  646. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  647.     AX = 0204h
  648. Return: AX = status
  649.         0000h switch is allowed
  650.         other switch not allowed
  651. Note:    intercepting this call will allow a DOS application to ensure that
  652.       Windows will not switch away from it.
  653. --------N-6F03-------------------------------
  654. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  655.     AH = 03h
  656.     DS:DI -> node ID (optional)
  657. Return: ES:BX -> configuration table (see #1983)
  658. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  659.  
  660. Format of 10NET configuration table:
  661. Offset    Size    Description    (Table 1983)
  662. -41    WORD    local device table address
  663. -39    WORD    extended network error mapping table address
  664. -37    WORD    shared device table address
  665. -35    WORD    mounted device table address
  666. -33    BYTE    receive buffer counter
  667. -32    BYTE    collect buffer counter
  668. -31    WORD    TUF address
  669. -29    BYTE    enable flag
  670. -28    BYTE    FCB keep flag
  671. -27    WORD    reserved
  672. ---up to here, 10NET v3.3---
  673. -25    WORD    count of dropped Send6F
  674. -23    WORD    buffer start address
  675. -21    WORD    comm driver base address
  676. -19    WORD    send/receive retry count
  677. -17    BYTE    number of 550ms loops before timeout
  678. -16    WORD    UFH address
  679. -14    WORD    CDIR address
  680. -12    WORD    LTAB address
  681. -10    WORD    SFH address
  682. -8    WORD    FTAB address
  683. -6    WORD    RLTAB address
  684. -4    WORD    SMI address
  685. -2    WORD    NTAB address
  686.  00h    WORD    address of first CT_DRV
  687.  02h    BYTE    number of DRV entries
  688.  03h  8 BYTEs    login name
  689.  0Bh 12 BYTEs    node ID (blank-padded)
  690.  17h  6 BYTEs    node address
  691.  1Dh    BYTE    flag
  692.  1Eh    BYTE    CT_CFLG (chat permit)
  693.         bit 1: sound bell
  694.         bit 0: CHAT permit
  695.  1Fh    BYTE    CT_PSFLG (see #1984)
  696.  20h    BYTE    in 10Net flag
  697.  21h    WORD    receive message count
  698.  23h    WORD    send message count
  699.  25h    WORD    retry count
  700.  27h    WORD    failed count
  701.  29h    WORD    driver errors
  702.  2Bh    WORD    dropped responses/CHATs
  703.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  704.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  705.  3Ch    BYTE    active CB channel
  706.  3Dh    BYTE    received 6F messages on queue
  707.  3Eh  9 BYTEs    activity counters for channels 1-9
  708. ---beyond here, 10NET v3.3---
  709.  47h    BYTE    bit 0: RS232 gate
  710.         bit 1: Send6F gate (user set)
  711.  48h    DWORD    pointer into gate (user set)
  712.  4Ch    DWORD    pointer into 10Net send
  713.  50h  N WORDs    addresses of timer blocks
  714.  
  715. Bitfields for CT_PSFLG:
  716. Bit(s)    Description    (Table 1984)
  717.  5    PRINT permit
  718.  4    KB initiated
  719.  3    CHAT called FOXPTRM
  720.  2    SUBMIT active
  721.  1    SUBMIT received
  722.  0    SUBMIT permit
  723. --------N-6F04-------------------------------
  724. INT 6F - 10NET - SEND
  725.     AH = 04h
  726.     DS:BX -> send record (see #1985)
  727.     DS:DX -> data (max 1024 bytes)
  728. Return:    CF clear if successful
  729.     CF set on error
  730.         AX = error code (see #1979)
  731. SeeAlso: AH=05h,AH=09h,AH=0Ah
  732.  
  733. Format of 10NET send record:
  734. Offset    Size    Description    (Table 1985)
  735.  00h 12 BYTEs    receiving node's ID
  736.         if first byte has high-order bit set, message is directed to
  737.           the CT_RGATE vector at the receiver
  738.         if second byte is 00h, first byte is taken as a CB
  739.           channel number and delivered to all nodes on same channel
  740.  0Ch    WORD     length of data at DX
  741. --------N-6F05-------------------------------
  742. INT 6F - 10NET - RECEIVE
  743.     AH = 05h
  744.     CX = number of seconds before timeout
  745.     DS:DX -> receive buffer (see #1986)
  746. Return:    CF clear if successful
  747.         AH = FEh if dequeued message is a CB message
  748.     CF set on error
  749.         AX = error code (see #1979)
  750. SeeAlso: AH=04h
  751.  
  752. Format of 10NET receive buffer:
  753. Offset    Size    Description    (Table 1986)
  754.  00h 12 BYTEs    sending node's ID
  755.  0Ch    WORD    length of message
  756.  0Eh  N BYTEs    message (maximum 1024 bytes)
  757. --------N-6F07-------------------------------
  758. INT 6F - 10NET - LOCK HANDLE
  759.     AH = 07h
  760.     BX = file handle
  761.     CX:DX = starting offset in file
  762.     SI = record length
  763. Return:    CF clear if successful
  764.     CF set on error
  765.         AX = error code (see also AH=00h)
  766.         0002h file not found
  767. SeeAlso: AH=08h,AH=0Fh,INT 21/AH=5Ch
  768. --------N-6F08-------------------------------
  769. INT 6F - 10NET - UNLOCK HANDLE
  770.     AH = 08h
  771.     BX = file handle
  772.     AL = mode
  773.         00h unlock all
  774.         01h unlock record at CX:DX
  775. Return:    CF clear if successful
  776.     CF set on error
  777.         AX = error code (see also AH=00h)
  778.         0002h file not found
  779. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  780. --------N-6F09-------------------------------
  781. INT 6F - 10NET - SUBMIT
  782.     AH = 09h
  783.     DS:BX -> submit record (see #1987)
  784. SeeAlso: AH=04h
  785.  
  786. Format of 10NET submit record:
  787. Offset    Size    Description    (Table 1987)
  788.  00h 12 BYTEs    destination node ID (must be logged in)
  789.  0Ch    WORD    length+2 of following 'command line' text
  790.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  791. --------N-6F0A-------------------------------
  792. INT 6F - 10NET - CHAT
  793.     AH = 0Ah
  794.     DS:BX -> control parameters (see #1988)
  795.     DS:DX -> chat message (see #1989)
  796. SeeAlso: AH=04h,AH=8Ah
  797.  
  798. Format of 10NET chat control parameters:
  799. Offset    Size    Description    (Table 1988)
  800.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  801.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  802.  10h 12 BYTEs    destination node ID
  803.  
  804. Format of 10NET chat message:
  805. Offset    Size    Description    (Table 1989)
  806.  00h    WORD    length+2 of following text
  807.  02h  N BYTEs    text, max 101 bytes
  808. --------N-6F0B-------------------------------
  809. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  810.     AH = 0Bh
  811.     AL = drive number or 0
  812.     ES:SI = Ethernet address or 0
  813.     DS:BX -> 31-byte ASCIZ semaphore name
  814. Return: AL = status (see #1990)
  815. Note:    same as INT 60/AH=12h
  816. SeeAlso: AH=0Ch,INT 60/AH=12h
  817.  
  818. (Table 1990)
  819. Values for 10NET status:
  820.  00h    successful
  821.  01h    semaphore currently locked
  822.  02h    server not responding
  823.  03h    invalid semaphore name
  824.  04h    semaphore list is full
  825.  05h    invalid drive ID
  826.  06h    invalid Ethernet address
  827.  07h    not logged in
  828.  08h    write to network failed
  829.  09h    semaphore already logged in this CPU
  830. SeeAlso: #1979
  831. Index:    error codes;10-Net|10-Net;error codes
  832. --------N-6F0C-------------------------------
  833. INT 6F - 10NET - UNLOCK SEMAPHORE
  834.     AH = 0Ch
  835.     AL = drive number or 0
  836.     ES:SI = Ethernet address or 0
  837.     DS:BX -> 31-byte ASCIZ semaphore name
  838. Return: AL = status (see also #1990)
  839.         01h semaphore not locked
  840. Note:    same as INT 60/AH=13h
  841. SeeAlso: AH=0Bh,INT 60/AH=13h
  842. --------N-6F0D-------------------------------
  843. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  844.     AH = 0Dh
  845.     AL = type code
  846.         01h return superstations only
  847.         02h return non-superstations only
  848.         otherwise return all
  849.     CX = length of data buffer
  850.     DS:DX -> array of records to be filled (see #1991)
  851. Return: CL = number of records returned (responding stations)
  852. SeeAlso: AH=16h,AH=8Dh
  853.  
  854. Format of station record:
  855. Offset    Size    Description    (Table 1991)
  856.  00h 12 BYTEs    node ID
  857.  0Ch    BYTE    station flags (see #1992)
  858. ---if AL = 01h---
  859.  0Dh    BYTE    version number
  860.  0Eh    WORD    level number of 10Net software in responding node
  861. ---if AL = 02h---
  862.  0Dh  8 BYTEs    user ID
  863.  15h    BYTE    version number
  864.  16h    WORD    level number
  865.  
  866. Bitfields for station flags:
  867. Bit(s)    Description    (Table 1992)
  868.  1    workstation
  869.  2    superstation
  870.  3    xgate
  871.  4    active gate
  872. --------N-6F0E-------------------------------
  873. INT 6F - 10NET - SPOOL/PRINT
  874.     AH = 0Eh
  875.     DS:DX -> spool/print record (see #1994)
  876. Return:    CF clear if successful
  877.     CF set on error
  878.         AX = error code (see also #1979)
  879.         17FFh device not mounted
  880.         18FFh already spooling to named device
  881.  
  882. (Table 1993)
  883. Values for 10NET spooler operation code:
  884.  0000h    initiate spool
  885.  0001h    abort print
  886.  0002h    close spool
  887.  0003h    delete spool
  888.  0004h    print
  889.  0005h    get report info
  890.  0006h    set chat template
  891.  0007h    queue
  892.  0008h    return queue
  893.  0009h    queue non-spooled file for printing
  894.  
  895. Format of 10NET Spool/Print record:
  896. Offset    Size    Description    (Table 1994)
  897.  00h    WORD    operation code (see #1993)
  898.  02h 11 BYTEs    file name in FCB format
  899. ---if operation code = 00h or 06h---
  900.  0Dh    BYTE    notification flags (see #1995)
  901.  0Eh    BYTE    days to keep (FFh=forever)
  902.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  903.         bits 4-7: remote drive to store spool file (1=A,...)
  904.  10h    WORD    length of following data area
  905.  12h  N BYTEs    up to 64 bytes of description
  906. ---if operation code = 03h---
  907.  0Dh  8 BYTEs    user ID to associate with filename
  908. ---if operation code = 04h---
  909.  0Dh    WORD    block number
  910.  0Fh  8 BYTEs    user ID to associate with filename
  911. ---if operation code = 05h---
  912.  0Dh    BYTE    RRN to start retrieve
  913.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  914.         bit 3: if set, return entries for all users
  915.  0Fh    WORD    length of following area
  916.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  917. ---if operation code = 07h---
  918.  0Dh    BYTE    queue number
  919.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  920.  0Fh    WORD    number of bytes of test print to be done
  921.  11h    BYTE    code:
  922.         01h print device
  923.         02h test print count
  924.         03h prn
  925. ---if operation code = 08h---
  926.  0Dh    BYTE    queue location or $SCNTL location to start access
  927.         returns next item for access:
  928.             00h-7Fh queued items
  929.             80h-FEh non-queued, non-printed items
  930.             FFh    no more items
  931.  0Eh    WORD    unused
  932.  10h    WORD    length of following area
  933.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records
  934. ---if operation code = 09h---
  935.  0Dh  3 BYTEs    unused
  936.  10h  N BYTEs    path to non-spooled file to be queued for printing
  937.  
  938. Bitfields for notification flags:
  939. Bit(s)    Description    (Table 1995)
  940.  7    queue to top
  941.  6    do ID page
  942.  5    no form feed
  943.  4    reserved
  944.  3    explicit queuing only
  945.  2    notify at print completion
  946.  1    notify server operator, with reply
  947.  0    notify at print start
  948.  
  949. Format of 10NET $SCNTL record:
  950. Offset    Size    Description    (Table 1996)
  951.  00h  8 BYTEs    user ID
  952.  08h 11 BYTEs    filename in FCB format
  953.  13h  6 BYTEs    node ID
  954.  19h  3 BYTEs    creation date
  955.  1Ch    BYTE    notification flags (see #1995)
  956.  1Dh    BYTE    retention time in days
  957.  1Eh    BYTE    printing device (LPTx)
  958.  1Fh  3 BYTEs    date last printed (0 = never)
  959.  22h    BYTE    device containing spoolfile
  960.  23h    WORD    bytes to print for test print
  961.  25h    WORD    block number to start print
  962.  27h    BYTE    reserved
  963. --------N-6F0F-------------------------------
  964. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  965.     AH = 0Fh
  966.     ???
  967. Return: ???
  968. SeeAlso: AH=07h,AH=08h
  969. --------N-6F10-------------------------------
  970. INT 6F - 10NET - ATTACH/DETACH PRINTER
  971.     AH = 10h
  972.     AL = subfunction
  973.         00h initiate spooling if LPT1 is mounted
  974.         01h terminate spooling if LPT1 is mounted
  975. SeeAlso: INT 21/AX=5D08h
  976. --------N-6F11-------------------------------
  977. INT 6F - 10NET - LOCK FCB
  978.     AH = 11h
  979.     AL = mode
  980.         01h sequential
  981.         02h random
  982.         03h random block
  983.         CX = number of records
  984.     DS:DX -> FCB (see #0469 at INT 21/AH=0Fh)
  985. Return:    CF clear if successful
  986.     CF set on error
  987.         AX = error code (see also #1979)
  988.         0002h file not found
  989. SeeAlso: AH=12h,INT 21/AH=0Fh
  990. --------N-6F12-------------------------------
  991. INT 6F - 10NET - UNLOCK FCB
  992.     AH = 12h
  993.     AL = mode
  994.         00h sequential
  995.         01h random
  996.         02h random block
  997.         CX = number of records
  998.     DS:DX -> FCB (see #0469 at INT 21/AH=0Fh)
  999. Return:    CF clear if successful
  1000.     CF set on error
  1001.         AX = error code (see also #1979)
  1002.         0002h file not found
  1003. SeeAlso: AH=11h
  1004. --------N-6F13-------------------------------
  1005. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  1006.     AH = 13h
  1007.     DS:DX -> node ID, 12 bytes blank-padded
  1008. Return:    CF clear if successful
  1009.         ES:BX = configuration table address on given machine
  1010.     CF set on error
  1011.         AX = error code (see #1979)
  1012. SeeAlso: AH=03h
  1013. --------N-6F14-------------------------------
  1014. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  1015.     AH = 14h
  1016.     BX:SI = address of remote memory
  1017.     CX = length (<=1024 bytes)
  1018.     DS:DX -> node ID, 12 bytes blank-padded
  1019.     DS:DI -> area to receive remote memory image
  1020. Return:    CF clear if successful
  1021.         CX = amount of memory copied to DS:SI
  1022.     CF set on error
  1023.         AX = error code (see #1979)
  1024. --------N-6F1501-----------------------------
  1025. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  1026.     AX = 1501h
  1027.     BX = zero-based index
  1028.     DS:SI -> node ID, 12 bytes blank-padded
  1029.     ES:DI -> 85-byte buffer for shared device table entry (see #1997)
  1030. Return:    CF clear if successful
  1031.         ES:DI buffer contains shared device table entry of BXth device
  1032.     CF set on error
  1033.         AX = error code (see #1979)
  1034. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  1035.  
  1036. Format of 10NET shared device table entry:
  1037. Offset    Size    Description    (Table 1997)
  1038.  00h  8 BYTEs    device
  1039.  08h  8 BYTEs    alias
  1040.  10h 64 BYTEs    path
  1041.  50h  8 BYTEs    password
  1042.  58h    BYTE    access
  1043.  59h  4 BYTEs    mask
  1044. --------N-6F1502-----------------------------
  1045. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  1046.     AX = 1502h
  1047.     DS:SI -> node ID, 12 bytes blank-padded
  1048.     ES:DI -> valid shared device table entry
  1049. Return:    CF clear if successful
  1050.     CF set on error
  1051.         AX = error code (see #1979)
  1052. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  1053. --------N-6F1503-----------------------------
  1054. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  1055.     AX = 1503h
  1056.     BX = zero-based index
  1057.     DS:SI -> node ID, 12 bytes blank-padded
  1058. Return:    CF clear if successful
  1059.     CF set on error
  1060.         AX = error code (see #1979)
  1061. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  1062. --------N-6F16-------------------------------
  1063. INT 6F - 10NET v5.0 - "GL WHO" - ???
  1064.     AH = 16h
  1065.     ???
  1066. Return: ???
  1067. SeeAlso: AH=0Dh
  1068. --------N-6F17-------------------------------
  1069. INT 6F - 10NET v3.3+ - MOUNT
  1070.     AH = 17h
  1071.     AL = local drive number (0=A:)
  1072.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  1073.     DS:DX -> node ID, 12 bytes blank-padded
  1074. Return:    CF clear if successful
  1075.     CF set on error
  1076.         AX = error code (see #1979)
  1077. SeeAlso: AH=18h
  1078. --------N-6F18-------------------------------
  1079. INT 6F - 10NET v3.3+ - UNMOUNT
  1080.     AH = 18h
  1081.     AL = local drive number (0=A:)
  1082.     BL = type
  1083.         00h        disk
  1084.         01h-03h LPTn
  1085.         04h,05h COMx
  1086. Return:    CF clear if successful
  1087.     CF set on error
  1088.         AX = error code (see #1979)
  1089. SeeAlso: AH=17h
  1090. --------N-6F19-------------------------------
  1091. INT 6F U - 10NET v5.0 - AUDIT
  1092.     AH = 19h
  1093.     ???
  1094. Return: ???
  1095. SeeAlso: AH=99h
  1096. --------N-6F1A-------------------------------
  1097. INT 6F U - 10NET v5.0 - "BULL" - ???
  1098.     AH = 1Ah
  1099.     ???
  1100. Return: ???
  1101. --------N-6F1B-------------------------------
  1102. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  1103.     AH = 1Bh
  1104.     ???
  1105. Return: ???
  1106. --------N-6F1C-------------------------------
  1107. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  1108.     AH = 1Ch
  1109.     ???
  1110. Return: ???
  1111. --------N-6F1D-------------------------------
  1112. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  1113.     AH = 1Dh
  1114.     ???
  1115. Return: ???
  1116. --------N-6F1E-------------------------------
  1117. INT 6F U - 10NET v5.0 - "SCHED" - ???
  1118.     AH = 1Eh
  1119.     ???
  1120. Return: ???
  1121. --------N-6F1F-------------------------------
  1122. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  1123.     AH = 1Fh
  1124.     ???
  1125. Return: ???
  1126. --------N-6F20-------------------------------
  1127. INT 6F U - 10NET v5.0 - ???
  1128.     AH = 20h
  1129.     ???
  1130. Return: ???
  1131. --------N-6F21-------------------------------
  1132. INT 6F U - 10NET v5.0 - ???
  1133.     AH = 21h
  1134.     ???
  1135. Return: ???
  1136. --------N-6F22-------------------------------
  1137. INT 6F U - 10NET v5.0 - ???
  1138.     AH = 22h
  1139.     ???
  1140. Return: ???
  1141. --------b-6F22--BP0012-----------------------
  1142. INT 6F - HP HIL Vectras - EXTENDED BIOS - READ CMOS MEMORY
  1143.     AH = 22h
  1144.     BP = 0012h (ID of V_SYSTEM driver)
  1145.     BL = address of CMOS byte to read
  1146. Return: AH = status
  1147.     AL = byte read
  1148.     BP, DS destroyed
  1149. Note:    supported by ES, QS, and RS series HP Vectras
  1150. SeeAlso: BP=0012h/AH=24h
  1151. --------b-6F24--BP0012-----------------------
  1152. INT 6F - HP HIL Vectras - EXTENDED BIOS - WRITE CMOS MEMORY
  1153.     AH = 24h
  1154.     BP = 0012h (ID of V_SYSTEM driver)
  1155.     BL = address of CMOS byte to write
  1156.     AL = new value
  1157. Return: AH = status
  1158.     BP, DS destroyed
  1159. SeeAlso: BP=0012h/AH=22h
  1160. --------N-6F80-------------------------------
  1161. INT 6F - 10NET v5.0 - LOGIN
  1162.     AH = 80h
  1163.     DS:DX -> login record (see #1998)
  1164. Return: CF clear if successful
  1165.         BL = number of days until password expires (00h = never)
  1166.         CL = security level
  1167.     CF set on error
  1168.         AX = status (see #1979)
  1169. SeeAlso: AH=00h,AH=81h
  1170.  
  1171. Format of 10NET login record:
  1172. Offset    Size    Description    (Table 1998)
  1173.  00h  8 BYTEs    user name
  1174.  08h  8 BYTEs    password
  1175.  10h 15 BYTEs    server node ID
  1176.  1Fh  8 BYTEs    new password
  1177.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  1178. --------N-6F81-------------------------------
  1179. INT 6F - 10NET v5.0 - LOGOUT
  1180.     AH = 81h
  1181.     DS:DX -> server node ID (DX=0000h for universal logout)
  1182. Return: AX = status (see #1979)
  1183. SeeAlso: AH=01h,AH=80h
  1184. --------N-6F8A-------------------------------
  1185. INT 6F - 10NET v5.0 - CHAT
  1186.     AH = 8Ah
  1187.     DS:BX -> chat parameters (see #1999)
  1188.     DS:DX -> chat message (see #2000)
  1189. Return: CF clear if successful
  1190.     CF set on error
  1191.         AX = status (see #1979)
  1192. SeeAlso: AH=0Ah
  1193.  
  1194. Format of 10NET chat parameters:
  1195. Offset    Size    Description    (Table 1999)
  1196.  00h  8 BYTEs    sender's user name
  1197.  08h  8 BYTEs    destination user name
  1198.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  1199.  
  1200. Format of 10NET chat message:
  1201. Offset    Size    Description    (Table 2000)
  1202.  00h    WORD    message length
  1203.  02h  N BYTEs    chat message contents
  1204. --------N-6F8D-------------------------------
  1205. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  1206.     AH = 8Dh
  1207.     BX = service mask (see #2001)
  1208.     CX = length of buffer
  1209.     DS:DX -> buffer for array of Who data structures (see #2002)
  1210. Return: CF clear if successful
  1211.         CX = number of nodes matching service mask
  1212.         DS:DX buffer filled
  1213.     CF set on error
  1214.         AX = status (see #1979)
  1215. SeeAlso: AH=0Dh
  1216.  
  1217. Bitfields for 10NET service mask:
  1218. Bit(s)    Description    (Table 2001)
  1219.  0    workstation
  1220.  1    file server
  1221.  2    print server
  1222.  3    de-spool server
  1223.  
  1224. Format of 10NET Who data structure:
  1225. Offset    Size    Description    (Table 2002)
  1226.  00h  8 BYTEs    user name
  1227.  08h 15 BYTEs    node ID
  1228.  17h  3 BYTEs    unique portion of Ethernet address
  1229.  1Ah    BYTE    Who group number
  1230.  1Bh    WORD    service mask (see #2001)
  1231.  1Dh    DWORD    serial number
  1232.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  1233.  22h    BYTE    chat mask (see #2003)
  1234.  23h    BYTE    internal system bits (see #2004)
  1235.  24h  9 BYTEs    version number in format MM.mm.xxx
  1236.  2Dh    BYTE    number of shared directories
  1237.  2Eh    BYTE    number of shared printer queues
  1238.  
  1239. Bitfields for 10NET chat mask:
  1240. Bit(s)    Description    (Table 2003)
  1241.  0    chat permitted
  1242.  1    bell enabled
  1243.  2    chat keyboard initiated
  1244.  3    in INT 16 handler
  1245.  4    in Get Input
  1246.  5    display has timed out
  1247.  6    chat is idle
  1248.  
  1249. Bitfields for 10NET internal system bits:
  1250. Bit(s)    Description    (Table 2004)
  1251.  0    submit permitted
  1252.  1    submit initiated
  1253.  2    submit executing
  1254.  3    internal client call/chat/spool/autospool
  1255.  4    in spool termination
  1256.  5    print permitted
  1257.  6    waiting for keyboard input
  1258. --------N-6F9501-----------------------------
  1259. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  1260.     AX = 9501h
  1261.     BX = zero-based index
  1262.     DS:SI -> server's node ID
  1263.     ES:DI -> buffer for shared device structure (see #2005)
  1264. Return: CF clear if successful
  1265.     CF set on error
  1266.         AX = status (see #1979)
  1267. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  1268.  
  1269. Format of 10NET shared device structure:
  1270. Offset    Size    Description    (Table 2005)
  1271.  00h  8 BYTEs    alias
  1272.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  1273.  09h    BYTE    access rights
  1274.         bit 0: read
  1275.         bit 1: write
  1276.         bit 2: create
  1277.  0Ah  8 BYTEs    password
  1278.  12h 32 BYTEs    comment
  1279. ---directory---
  1280.  32h 64 BYTEs    pathname of shared directory
  1281. ---print queue---
  1282.  32h    BYTE    notification bit mask (see #2006)
  1283.  33h    BYTE    job control bit mask (see #2007)
  1284.  34h    WORD    number of days to retain file
  1285.  36h    WORD    test print length
  1286.  38h    BYTE    number of copies to print
  1287.  39h    BYTE    compression algorithm
  1288.  3Ah    BYTE    tab width (00h = don't expand)
  1289.  3Bh    BYTE    priority
  1290.  3Ch    WORD    time to open queue (FFFFh = always)
  1291.  3Eh    WORD    time to close queue
  1292.  40h    WORD    pause following queue switch, in clock ticks
  1293.  42h    WORD    pause between print jobs, in clock ticks
  1294.  44h    BYTE    associate queue file existence mask
  1295.         bit 0: queue switch file exists
  1296.         bit 1: initiate file exists
  1297.         bit 2: abort file exists
  1298.  45h  6 BYTEs    character sequence for page eject
  1299.  4Bh    BYTE    status of print queue
  1300.         bit 0: queue is closed
  1301.  4Ch    WORD    number of jobs on queue
  1302.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  1303.  50h    BYTE    number of print devices in printer pool
  1304.  51h    WORD    offset of first print device structure (FFFFh if empty)
  1305.  
  1306. Bitfields for notification flags:
  1307. Bit(s)    Description    (Table 2006)
  1308.  0    user at print start
  1309.  1    operator at start, with reply
  1310.  2    user at print completion
  1311.  3    operator at completion, with reply
  1312.  4    user on queue switch
  1313.  5    operator on queue switch, with reply
  1314.  6    user on print error
  1315.  
  1316. Bitfields for 10NET job control mask:
  1317. Bit(s)    Description    (Table 2007)
  1318.  0    print banner page
  1319.  1    eject page at end of job
  1320.  2    mark as "held" (queue but don't print)
  1321.  3    rush job (queue at top)
  1322.  4    overwrite file with zeros before deletion
  1323.  5    hyperspool if possible
  1324. --------N-6F9502-----------------------------
  1325. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  1326.     AX = 9502h
  1327.     DS:SI -> server's node ID
  1328.     ES:DI -> shared device structure (see #2005)
  1329. Return: CF clear if successful
  1330.     CF set on error
  1331.         AX = status (see #1979)
  1332. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  1333. --------N-6F9503-----------------------------
  1334. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  1335.     AX = 9503h
  1336.     BX = zero-based index
  1337.     DS:SI -> server's node ID
  1338. Return: CF clear if successful
  1339.     CF set on error
  1340.         AX = status (see #1979)
  1341. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  1342. --------N-6F9504-----------------------------
  1343. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  1344.     AX = 9504h
  1345.     BX = zero-based shared device index
  1346.     CX = zero-based user index
  1347.     DS:SI -> server's node ID
  1348. Return: CF clear if successful
  1349.         ES:DI -> node ID of the CX'th user of the BX'th device
  1350.     CF set on error
  1351.         AX = status (see #1979)
  1352. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  1353. --------N-6F99-------------------------------
  1354. INT 6F - 10NET v5.0 - AUDIT
  1355.     AH = 99h
  1356.     DS:SI -> server's node ID
  1357.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  1358. Return: CF clear if successful
  1359.     CF set on error
  1360.         AX = status (see #1979)
  1361. SeeAlso: AH=19h,AH=9Ch
  1362. --------N-6F9C-------------------------------
  1363. INT 6F - 10NET v5.0 - GET LOGIN LIST
  1364.     AH = 9Ch
  1365.     BX = zero-based index
  1366. Return: CF clear if successful
  1367.         DS:DI -> BX'th node ID that caller's machine is logged into
  1368.     CF set on error
  1369.         AX = status (see #1979)
  1370. --------H-70---------------------------------
  1371. INT 70 - IRQ8 - CMOS REAL-TIME CLOCK
  1372. Desc:    this interrupt is called when the real-time clock chip generates an
  1373.       alarm or periodic interrupt, among others.  The periodic interrupt
  1374.       occurs 1024 times per second.
  1375. Nots:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  1376.       unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
  1377.     may be masked by setting bit 0 on I/O port A1h
  1378. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  1379. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview"
  1380. --------v-70---------------------------------
  1381. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  1382. Note:    the virus sets this interrupt to be the same as INT 21, and then
  1383.       performs only INT 70 calls; since INT 70 is also generated by the
  1384.       real-time clock on the PC/AT and higher, this could cause random
  1385.       actions on an infected system
  1386. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  1387. --------H-71---------------------------------
  1388. INT 71 - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  1389. Notes:    may be masked by setting bit 1 on I/O port A1h
  1390.     the default BIOS handler invokes INT 0A for compatibility, since the
  1391.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  1392.       AT expansion bus.
  1393.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1394.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1395.       process
  1396. SeeAlso: INT 0A,INT 59
  1397. --------H-72---------------------------------
  1398. INT 72 - IRQ10 - RESERVED
  1399. Note:    may be masked by setting bit 2 on I/O port A1h
  1400. SeeAlso: INT 5A
  1401. --------H-73---------------------------------
  1402. INT 73 - IRQ11 - RESERVED
  1403. Note:    may be masked by setting bit 3 on I/O port A1h
  1404. SeeAlso: INT 5B
  1405. --------H-74---------------------------------
  1406. INT 74 - IRQ12 - POINTING DEVICE (PS)
  1407. Notes:    may be masked by setting bit 4 on I/O port A1h
  1408.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1409.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1410.       process
  1411. SeeAlso: INT 33,INT 5C
  1412. --------H-75---------------------------------
  1413. INT 75 - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  1414. Desc:    redirected to INT 02 by the BIOS, for compatibility with the PC
  1415. Notes:    may be masked by setting bit 5 on I/O port A1h
  1416.     not all clones wire the coprocessor to generate this IRQ; some systems
  1417.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  1418.       (see INT 10"COPROCESSOR")
  1419.     under DESQview, only the INT 15h vector and BASIC segment address (the
  1420.       word at 0000h:0510h) may be assumed to be valid for the handler's
  1421.       process
  1422. SeeAlso: INT 10"COPROCESSOR",INT 5D
  1423. --------H-76---------------------------------
  1424. INT 76 - IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE (AT and later)
  1425. Notes:    may be masked by setting bit 6 on I/O port A1h
  1426.     on the PS/2, this interrupt is designed to be shared with other
  1427.       devices that produce an operation-complete interrupt, though
  1428.       the only current user is the hard disk
  1429. SeeAlso: INT 0E"IRQ6",INT 15/AH=91h,INT 5E
  1430. --------H-77---------------------------------
  1431. INT 77 - IRQ15 - RESERVED (AT,PS)
  1432. Note:    may be masked by setting bit 7 on I/O port A1h
  1433. SeeAlso: INT 5F
  1434. --------H-77---------------------------------
  1435. INT 77 - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  1436. Note:    may be masked by setting bit 7 on I/O port A1h
  1437. SeeAlso: INT 15/AX=4600h,INT 5F
  1438. --------E-78---------------------------------
  1439. INT 78 - UofSalford DBOS DOS extender - API
  1440.     AH = function
  1441.         00h (PB) display 32-bit memory specified by command argument
  1442.         01h (PT) display 32-bit instruction(s) specified by command arg
  1443.         02h specify offset to subsequent PB and PT commands
  1444.         03h switch to protected mode
  1445.         DWORD following INT instruction point to map; protected-mode
  1446.               entry point is immediately following the DWORD
  1447.         Return: never
  1448.         Note:    if bit 31 of the map address is set, only a stub was
  1449.               loaded by DOS and DBOS will load the entire program
  1450.         04h specify that subsequent load (AH=03h) should leave program in
  1451.           memory
  1452.         05h release program from memory
  1453.         06h set break point at address and option count from commandline
  1454.         07h resume program execution
  1455.         08h single-step program
  1456.         09h set read/write breakpoint using 386 debug registers
  1457.         0Ah set write breakpoint using 386 debug register
  1458.         0Bh set memory byte to new value
  1459.         0Ch display CPU registers
  1460.         0Dh run until specified program address reached
  1461.         0Fh print trace from program map
  1462.         10h specify an offset using a map symbol
  1463.         14h print memory without any offset
  1464.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  1465.         1Dh get address of real/protected-mode communication buffer
  1466.         Return: ES:BP -> comm buffer
  1467.         1Eh set real-mode memory size (specify how much real-mode memory
  1468.           to leave free when running FTN77 programs)
  1469.         22h uninstall DBOS
  1470.         24h force DBOS to emulate coprocessor instructions
  1471.         26h set named DBOS switches from commandline
  1472.         27h reset named DBOS switched from commandline
  1473.         2Ah set list of dynamic link libraries to contents of commandline
  1474.           file
  1475.         35h specify that subsequent load (AH=03h) should stop at first
  1476.           instruction
  1477. Return: ???
  1478. Notes:    DBOS supports functions 00h through 50h; many of these functions
  1479.       provide a low-level debugging interface
  1480.     command arguments are read from the calling program's PSP
  1481. SeeAlso: INT 79"DBOS"
  1482. Index:    uninstall;DBOS DOS extender
  1483. --------E-78---------------------------------
  1484. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  1485. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  1486.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  1487. Note:    this vector is overwritten when GO32 starts but is not restored by
  1488.       early versions of the extender
  1489. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  1490. --------A-78---------------------------------
  1491. INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
  1492.     AX = function
  1493.         0001h begin plot
  1494.         BX = file level
  1495.             0000h ASCII file
  1496.             0001h binary file
  1497.             0002h AutoCAD DXB file
  1498.             0003h installed ADI driver
  1499.         0002h end plot (close plotter)
  1500.         0003h move (pen up)
  1501.         BX = new X position
  1502.         CX = new Y position
  1503.         0004h move (pen down)
  1504.         BX = new X position
  1505.         CX = new Y position
  1506.         0005h select pen
  1507.         BX = pen number
  1508.         0006h select drawing speed
  1509.         BX = drawing speed N
  1510.         0007h select line style
  1511.         BX = line style N
  1512.         0008h raise pen
  1513.         0009h abort plot
  1514. Return: AX = 0000h (may be used for driver status in future releases)
  1515. SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"
  1516. --------d-78---------------------------------
  1517. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  1518. SeeAlso: INT 79"ADP-60"
  1519. --------d-7800-------------------------------
  1520. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  1521.     AH = 00h
  1522.     DX = interface board I/O port
  1523. Return: CF set on error
  1524.         AL = error code (see #2008)
  1525. Note:    if this routine is not called, the port is the driver's default
  1526.       (usually 0280h or 0300h)
  1527.     an installation check is performed by TARGA.DEV upon initialization
  1528.       by checking for the string "SCSI" at offset 03h into the interrupt
  1529.       handler
  1530. SeeAlso: AH=01h,AH=02h
  1531. Index:    installation check;TARGA.DEV
  1532.  
  1533. (Table 2008)
  1534. Values for TARGA.DEV error code:
  1535.  00h    illegal command given to SCSI code
  1536.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  1537.       an 8-port boundary)
  1538.  02h    invalid DMA channel specified (must be from 1 to 3)
  1539.  03h    invalid SCSI board number specified (must be from 0 to 7)
  1540.  04h    error from data register test during self-test
  1541.  05h    SCSI input signals not all 0 when SCSI RST activated
  1542.  06h    SCSI input signals not all 0 before selecting a SCSI device
  1543.  07h    BSY signal is active; SCSI bus is busy
  1544.  08h    SCSI board not selected, BSY signal did not come on in response to
  1545.       raising SEL
  1546.  09h    time-out waiting for status state, signifying end of DMA transfer
  1547. --------d-7801-------------------------------
  1548. INT 78 - TARGA.DEV - GET I/O PORT
  1549.     AH = 01h
  1550. Return: DX = current interface board I/O port
  1551. SeeAlso: AH=00h,AH=03h"TARGA"
  1552. --------d-7802-------------------------------
  1553. INT 78 - TARGA.DEV - SET DMA CHANNEL
  1554.     AH = 02h
  1555.     AL = interface board DMA channel
  1556. Return: CF set on error
  1557.     AL = error code (see #2008)
  1558. Note:    if this routine is not called, the DMA channel is the driver's default
  1559.       (usually 3)
  1560. SeeAlso: AH=00h,AH=03h"TARGA"
  1561. --------d-7803-------------------------------
  1562. INT 78 - TARGA.DEV - GET DMA CHANNEL
  1563.     AH = 03h
  1564. Return: AL = current interface board DMA channel
  1565. SeeAlso: AH=01h,AH=02h
  1566. --------d-7804-------------------------------
  1567. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  1568.     AH = 04h
  1569.     AL = SCSI device number
  1570. Return: CF set on error
  1571.     AL = error code (see #2008)
  1572. Note:    if this routine is not called, the device number used is the driver's
  1573.       default (usually 0)
  1574. SeeAlso: AH=02h,AH=05h
  1575. --------d-7805-------------------------------
  1576. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  1577.     AH = 05h
  1578. Return: AL = current SCSI device number
  1579. SeeAlso: AH=03h"TARGA",AH=04h
  1580. --------d-7806-------------------------------
  1581. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  1582.     AH = 06h
  1583.     AL = new state
  1584.         00h clear early return mode
  1585.         01h set early return mode
  1586. Note:    if early return mode is set then SCSI will return with no errors
  1587.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  1588.     if this routine is not called, early return mode is cleared
  1589. SeeAlso: AH=13h,AH=14h,AH=15h
  1590. --------d-7808-------------------------------
  1591. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  1592.     AH = 08h
  1593. Return: CF set on error
  1594.     AL = error code (see #2008)
  1595. Note:    the SCSI bus is also reset
  1596. SeeAlso: AH=09h
  1597. --------d-7809-------------------------------
  1598. INT 78 - TARGA.DEV - RESET SCSI BUS
  1599.     AH = 09h
  1600. Return: AL = error code if carry set (see #2008)
  1601. SeeAlso: AH=08h
  1602. --------d-7810-------------------------------
  1603. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  1604.     AH = 10h
  1605.     DS:SI -> command bytes
  1606. Return: AH = SCSI status byte
  1607.     CF clear if successful
  1608.         AL = SCSI message byte
  1609.     CF set on error
  1610.         AL = error code (see #2008)
  1611. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  1612.  
  1613. Format of SCSI Command:
  1614. Offset    Size    Description    (Table 2009)
  1615.  00h    BYTE    length of command
  1616.  01h    ???    command bytes
  1617. --------d-7811-------------------------------
  1618. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  1619.     AH = 11h
  1620.     DS:SI -> command bytes
  1621.     ES:BX -> data storage area
  1622.     CX = number of data bytes to transfer
  1623. Return: AH = SCSI status byte
  1624.     CF clear if successful
  1625.         AL = SCSI message byte
  1626.     CF set on error
  1627.         AL = error code (see #2008)
  1628. Note:    this command receives data internally one byte at a time
  1629. SeeAlso: AH=10h,AH=13h
  1630.  
  1631. Format of TARGA.DEV SCSI Command:
  1632. Offset    Size    Description    (Table 2010)
  1633.  00h    BYTE    length of command
  1634.  01h    ???    command bytes
  1635. --------d-7812-------------------------------
  1636. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  1637.     AH = 12h
  1638.     DS:SI -> command bytes
  1639.     ES:BX -> data storage area
  1640.     CX = number of data bytes to transfer
  1641. Return: AH = SCSI status byte
  1642.     CF clear if successful
  1643.         AL = SCSI message byte
  1644.     CF set on error
  1645.         AL = error code (see #2008)
  1646. Note:    this command sends data internally one byte at a time
  1647. SeeAlso: AH=14h
  1648.  
  1649. Format of TARGA.DEV SCSI Command:
  1650. Offset    Size    Description    (Table 2011)
  1651.  00h    BYTE    length of command
  1652.  01h    ???    command bytes
  1653. --------d-7813-------------------------------
  1654. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  1655.     AH = 13h
  1656.     DS:SI -> command bytes
  1657.     ES:BX -> data storage area
  1658.     DX:CX = number of data bytes to transfer
  1659. Return: AH = SCSI status byte (if early return mode is clear)
  1660.     CF clear if successful
  1661.         AL = SCSI message byte (if early return mode is clear)
  1662.     CF set on error
  1663.         AL = error code (see #2008)
  1664. Note:    this command receives data using DMA
  1665. SeeAlso: AH=11h,AH=12h
  1666.  
  1667. Format of TARGA.DEV SCSI Command:
  1668. Offset    Size    Description    (Table 2012)
  1669.  00h    BYTE    length of command
  1670.  01h    ???    command bytes
  1671. --------d-7814-------------------------------
  1672. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  1673.     AH = 14h
  1674.     DS:SI -> command bytes
  1675.     ES:BX -> data storage area
  1676.     DX:CX = number of data bytes to transfer
  1677. Return: AH = SCSI status byte (if early return mode is clear)
  1678.     CF clear if successful
  1679.         AL = SCSI message byte (if early return mode is clear)
  1680.     CF set on error
  1681.         AL = error code (see #2008)
  1682. Note:    this command sends data using DMA
  1683. SeeAlso: AH=12h,AH=13h
  1684.  
  1685. Format of TARGA.DEV SCSI Command:
  1686. Offset    Size    Description    (Table 2013)
  1687.  00h    BYTE    length of command
  1688.  01h    ???    command bytes
  1689. --------d-7815-------------------------------
  1690. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  1691.     AH = 15h
  1692. Return: AH = SCSI status byte
  1693.     CF clear if successful
  1694.         AL = SCSI message byte
  1695.     CF set on error
  1696.         AL = error code (see #2008)
  1697. Note:    if AH=06h was previously called to set the early return mode, this
  1698.       function finishes a command AH=13h or AH=14h which returned before
  1699.       the last DMA transfer was finished
  1700. SeeAlso: AH=06h,AH=13h,AH=14h
  1701. --------V-79---------------------------------
  1702. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  1703. Return: CF set if no keystroke available
  1704.         AX = FFFFh
  1705.     CF clear if key pressed
  1706.         AX = keystroke
  1707. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  1708.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  1709. Note:    if a keystroke is available, it is removed from the keyboard buffer
  1710.       before being returned
  1711. SeeAlso: INT 29
  1712. --------E-79---------------------------------
  1713. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  1714. Note:    this vector is overwritten when GO32 starts but is not restored by
  1715.       early versions of the extender
  1716. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  1717. --------d-79---------------------------------
  1718. INT 79 U - ADP-60 IDE adapter - ???
  1719. SeeAlso: INT 78"ADP-60"
  1720. --------E-79---------------------------------
  1721. INT 79 - DBOS DOS Extender
  1722.     details not available
  1723. Desc:    this interrupt is used by an MS Windows virtual device driver with
  1724.       which the DBOS extender communicates when run inside a Windows
  1725.       Enhanced Mode DOS box
  1726. SeeAlso: INT 78"DBOS"
  1727. --------A-790001-----------------------------
  1728. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  1729.     AX = 0001h
  1730.     BX = interface level (0001h)
  1731. Return: AX = status (0000h initialization failed, 0001h init successful)
  1732.     BX = digitizer type
  1733.         0000h relative pointing device (mouse, etc.)
  1734.         0001h digitizing tablet
  1735.     CX = digitizer dataflow type
  1736.         0000h continuous
  1737.         0001h pauses between packets
  1738. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  1739. --------A-790002-----------------------------
  1740. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  1741.     AX = 0002h
  1742. SeeAlso: AX=0001h,AX=0003h
  1743. --------A-790003-----------------------------
  1744. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  1745.     AX = 0003h
  1746. Return: AX = status
  1747.         0000h nothing
  1748.         0002h tracking point (no button pressed)
  1749.         BX = X coordinate
  1750.         CX = Y coordinate
  1751.         0003h picked point (button 0,A,B,C,D pressed)
  1752.         BX = X coordinate
  1753.         CX = Y coordinate
  1754.         0004h button pick
  1755.         BX = button number
  1756.         0005h button and coordinates
  1757.         BX = button number
  1758.         CX = X coordinate
  1759.         DX = Y coordinate
  1760. SeeAlso: AX=0001h,AX=0002h
  1761. --------N-7A---------------------------------
  1762. INT 7A U - Topware Network Operating System - ???
  1763.     AL = ???
  1764.     ???
  1765. Return: ???
  1766. SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00h
  1767. --------N-7A---------------------------------
  1768. INT 7A - X.PC Packet software interface
  1769.     ES:BX -> parameter block
  1770. SeeAlso: INT 60/AX=01FFh
  1771. --------E-7A---------------------------------
  1772. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  1773. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  1774.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  1775. Note:    this vector is overwritten when GO32 starts but is not restored by
  1776.       early versions of the extender
  1777. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  1778. --------P-7A---------------------------------
  1779. INT 7A O - PRINDIR - API (moved to INT 7C)
  1780. SeeAlso: INT 7C"PRINDIR"
  1781. --------N-7A---------------------------------
  1782. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  1783. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  1784.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  1785.       entry point even though INT 7A still exists.    For both INT 7A and
  1786.       the FAR entry point, BX contains the function number; IPX is
  1787.       sometimes called internally with BX bit 15 set, which causes the
  1788.       handler to bypass some initial checks and an optional call to the
  1789.       IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  1790.       (see #1432)
  1791. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  1792. --------N-7A----BX0000-----------------------
  1793. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  1794.     BX = 0000h
  1795.     AL = socket longevity
  1796.         00h open until close or terminate
  1797.         FFh open until close
  1798.     DX = socket number (high byte in DL)
  1799.         0000h dynamic allocation
  1800.         else  socket to open (see #2014)
  1801. Return: AL = return code
  1802.         00h success
  1803.         DX = socket number
  1804.         FEh socket table full
  1805.         FFh socket already open
  1806. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  1807.       programs should normally use AL=00h
  1808.     IPX can be configured to support up to 150 open sockets on a
  1809.       workstation, and defaults to 20
  1810.     this function is supported by Advanced NetWare 1.02+
  1811. SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h
  1812.  
  1813. (Table 2014)
  1814. Values for IPX socket number:
  1815.  0451h    File Service (NetWare Core Protocol)
  1816.  0452h    Service Advertising Protocol
  1817.  0453h    Routing Information Packet
  1818.  0455h    NetBIOS Packet
  1819.  0456h    diagnostics
  1820.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  1821.  4000h-7FFFh used for dynamic allocation
  1822.  4444h    Brightwork Development's SiteLock server
  1823.  5555h    Brightwork Development's SiteLock client (workstation)
  1824.  8000h-FFFFh assigned by Novell
  1825. Note:    SiteLock is an application metering product using IPX to communicate
  1826.       between the application and the license server
  1827. --------N-7A----BX0001-----------------------
  1828. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  1829.     BX = 0001h
  1830.     DX = socket number (high byte in DL)
  1831. Notes:    also cancels events set by any Event Control Blocks for the socket
  1832.     the program must close all open sockets before terminating
  1833.     this function is supported by Advanced NetWare 1.02+
  1834. SeeAlso: BX=0000h
  1835. --------N-7A----BX0002-----------------------
  1836. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  1837.     BX = 0002h
  1838.     ES:SI -> target internetwork address (see INT 7A/BX=000Bh)
  1839.     ES:DI -> 6-byte buffer for local target
  1840. Return: AL = return code
  1841.         00h success
  1842.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  1843.               packet
  1844.            ES:DI -> local target
  1845.         FAh unsuccessful (no path to destination)
  1846. Notes:    the internetwork address consists of a 4-byte network address followed
  1847.       by a 6-byte node address.  The local target is only a 6-byte node
  1848.       address.  If the target is in the same network, the local target is
  1849.       just the node address of target; otherwise, the local target is the
  1850.       node address of the bridge that leads to the target.
  1851.     this function may be called from inside IPX and AES Event Service
  1852.       Routines, but not from other interrupt handlers
  1853.     this function is supported by Advanced NetWare 1.02+
  1854. SeeAlso: BX=0009h
  1855. --------N-7A----BX0003-----------------------
  1856. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  1857.     BX = 0003h
  1858.     ES:SI -> Event Control Block (see #2015,#2016)
  1859. Notes:    returns immediately; IPX attempts to send the packet in the background
  1860.     this function is supported by Advanced NetWare 1.02+
  1861.     this function is nearly identical to BX=000Fh, except that it always
  1862.       copies the source address into the IPX header assumed to be at the
  1863.       beginning of the first fragment
  1864. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  1865.  
  1866. Format of IPX Event Control Block:
  1867. Offset    Size    Description    (Table 2015)
  1868.  00h    DWORD    Link
  1869.  04h    DWORD    -> Event Service Routine (00000000h if none)
  1870.  08h    BYTE    in use flag (see #2017)
  1871.  09h    BYTE    completion code (see #2018)
  1872.  0Ah    WORD    (big-endian) socket number (see INT 7A/BX=0000h)
  1873.  0Ch  4 BYTEs    IPX workspace
  1874.  10h 12 BYTEs    driver workspace
  1875.  1Ch  6 BYTEs    immediate local node address
  1876.  22h    WORD    fragment count
  1877.  24h    var    fragment descriptors
  1878.         Offset    Size    Description
  1879.          00h    DWORD    -> fragment data
  1880.          04h    WORD    size of fragment in bytes.
  1881. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  1882.       On call, the in use flag is zero if the ECB has been handled,
  1883.       non-zero otherwise. If the flag is zero, the completion code holds
  1884.       the result of the event.
  1885.     the first fragment should start with an IPX header
  1886.     all fragments are concatenated and sent in one piece
  1887.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  1888.  
  1889. Format of AES-ECB:
  1890. Offset    Size    Description    (Table 2016)
  1891.  00h    DWORD    Link
  1892.  04h    DWORD    ESR address
  1893.  08h    BYTE    in use flag (see #2017)
  1894.  09h  5 BYTEs    AES workspace
  1895.  
  1896. (Table 2017)
  1897. Values for ECB in use flag:
  1898.  00h    available
  1899.  E0h    AES temporary
  1900.  F6h    \ special IPX/SPX processing for v3.02+
  1901.  F7h    /
  1902.  F8h    IPX in critical section
  1903.  F9h    SPX listening
  1904.  FAh    processing
  1905.  FBh    holding
  1906.  FCh    AES waiting
  1907.  FDh    AES couting down delay time
  1908.  FEh    awaiting packet reception
  1909.  FFh    sending packet
  1910.  
  1911. (Table 2018)
  1912. Values for ECB completion code:
  1913.  00h    success
  1914.  ECh    remote terminated connection without acknowledging packet
  1915.  EDh    abnormal connection termination
  1916.  EEh    invalid connection ID
  1917.  EFh    SPX connection table full
  1918.  F9h    event should not be cancelled
  1919.  FAh    cannot establish connection with specified destination
  1920.  FCh    cancelled
  1921.  FDh    malformed packet
  1922.  FEh    packet undeliverable
  1923.  FFh    physical error
  1924.  
  1925. (Table 2019)
  1926. Values event Service Routine is called with:
  1927.     AL = caller's identity (00h = AES, FFh = IPX)
  1928.     ES:SI -> event control block
  1929.     interrupts disabled
  1930.  
  1931. Format of IPX header:
  1932. Offset    Size    Description    (Table 2020)
  1933.  00h    WORD    (big-endian) checksum
  1934.  02h    WORD    (big-endian) length in bytes of total packet
  1935.  04h    BYTE    transport control
  1936.  05h    BYTE    packet type (see #2021)
  1937.  06h 10 BYTEs    destination internetwork address
  1938.  10h    WORD    (big-endian) destination socket
  1939.  12h 10 BYTEs    source internetwork address
  1940.  1Ch    WORD    (big-endian) source socket
  1941.  
  1942. (Table 2021)
  1943. Values for IPX packet type:
  1944.  00h    unknown packet type
  1945.  01h    routing information packet
  1946.  02h    echo packet
  1947.  03h    error packet
  1948.  04h    packet exchange packet (always use this one)
  1949.  05h    SPX packet
  1950.  11h    NetWare Core Protocol
  1951.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  1952.  15h-1Eh experimental protocols
  1953.  
  1954. Format of Service Advertising Protocol Service Query Packet:
  1955. Offset    Size    Description    (Table 2022)
  1956.  00h 30 BYTEs    IPX header
  1957.  1Eh    WORD    (big-endian) query type
  1958.         0001h general find service
  1959.         0003h find nearest server
  1960.  20h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  1961.  
  1962. Format of Service Advertising Protocol Server Identification Packet:
  1963. Offset    Size    Description    (Table 2023)
  1964.  00h 30 BYTEs    IPX header
  1965.  1Eh    WORD    (big-endian) response type
  1966.         0002h general service
  1967.         0004h nearest service
  1968.  20h 64N BYTEs    server entries (1-7) (see #2024)
  1969.  
  1970. Format of SAP server entry:
  1971. Offset    Size    Description    (Table 2024)
  1972.  00h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  1973.  02h 48 BYTEs    ASCIZ server name
  1974.  32h  2 WORDs    (big-endian) network number
  1975.  34h  3 WORDs    (big-endian) node number
  1976.  3Ch    WORD    (big-endian) socket number
  1977.  3Eh    WORD    (big-endian) number of hops between caller and server
  1978.  
  1979. Format of IPX Routing Information packet:
  1980. Offset    Size    Description    (Table 2025)
  1981.  00h 30 BYTEs    IPX header
  1982.  1Eh    WORD    operation (0001h request, 0002h response)
  1983.  20h 8N BYTEs    network entries (1-50) (see #2026)
  1984.  
  1985. Format of RIP network entry:
  1986. Offset    Size    Description    (Table 2026)
  1987.  00h    DWORD    network number (FFFFFFFFh = general request)
  1988.  04h    WORD    (response) number of hops
  1989.  06h    WORD    (response) number of clock ticks to reach destination
  1990. --------N-7A----BX0004-----------------------
  1991. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  1992.     BX = 0004h
  1993.     ES:SI -> Event Control Block (see BX=0003h)
  1994. Return: AL = status
  1995.         00h successful
  1996.         FFh no listening socket for packet
  1997. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  1998.       does not wait for a packet to arrive
  1999. Notes:    the application must open a socket and initialize the ECB's ESR
  2000.       address, socket number, fragment count, and fragment descriptor
  2001.       fields before invoking this function
  2002.     there is no limit on the number of ECBs which may simultaneously be
  2003.       listening on a socket
  2004.     this function is supported by Advanced NetWare 1.02+
  2005. SeeAlso: BX=0000h,BX=0003h
  2006. --------N-7A----BX0005-----------------------
  2007. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  2008.     BX = 0005h
  2009.     AX = delay time in clock ticks
  2010.     ES:SI -> Event Control Block (see BX=0003h)
  2011. Note:    this function is supported by Advanced NetWare 1.02+
  2012. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  2013. --------N-7A----BX0006-----------------------
  2014. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  2015.     BX = 0006h
  2016.     ES:SI -> Event Control Block (see BX=0003h)
  2017. Return: AL = return code (see #2027)
  2018. Notes:    cannot cancel packets which the node's driver has already sent
  2019.     this function is supported by Advanced NetWare 1.02+
  2020. SeeAlso: BX=0005h
  2021.  
  2022. (Table 2027)
  2023. Values for IPX return code:
  2024.  00h    success
  2025.  F9h    event in use
  2026.  FCh    event cancelled
  2027.  FFh    unsuccessful, event not in use, or unrecognized ECB flag
  2028. --------N-7A----BX0007-----------------------
  2029. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  2030.     BX = 0007h
  2031.     AX = delay time
  2032.     ES:SI -> Event Control Block (see BX=0003h)
  2033. Note:    this function is supported by Advanced NetWare 1.02+
  2034. SeeAlso: BX=0006h
  2035. --------N-7A----BX0008-----------------------
  2036. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  2037.     BX = 0008h
  2038. Return: AX = interval marker in clock ticks
  2039. Notes:    may be used to measure the time elapsed between two events, up to one
  2040.       hour
  2041.     this function is supported by Advanced NetWare 1.02+
  2042. SeeAlso: BX=0005h
  2043. --------N-7A----BX0009-----------------------
  2044. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  2045.     BX = 0009h
  2046.     ES:SI -> buffer for own internetwork address (see #2028)
  2047. Return: ES:SI buffer filled
  2048.     SI destroyed
  2049. Note:    this function is supported by Advanced NetWare 1.02+
  2050. SeeAlso: BX=0002h,BX=000Bh
  2051.  
  2052. Format of internetwork address:
  2053. Offset    Size    Description    (Table 2028)
  2054.  00h  4 BYTEs    (big-endian) network number
  2055.  04h  6 BYTEs    (big-endian) node number within network
  2056. --------N-7A----BX000A-----------------------
  2057. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  2058.     BX = 000Ah
  2059. Desc:    this call indicates that the application is idle and permits the IPX
  2060.       driver to do some work
  2061. Note:    this function is supported by Advanced NetWare 1.02+
  2062. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  2063. --------N-7A----BX000B-----------------------
  2064. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  2065.     BX = 000Bh
  2066.     ES:SI -> internetwork address (see #2029)
  2067. Notes:    this function permits the network software on the remote machine to
  2068.       remove any virtual connection with the calling machine
  2069.     only use in point-to-point networks
  2070.     should never be called from within an Event Service Routine
  2071.     this function is supported by Advanced NetWare 1.02+
  2072. SeeAlso: BX=0002h,BX=0009h
  2073.  
  2074. Format of internetwork address:
  2075. Offset    Size    Description    (Table 2029)
  2076.  00h  4 BYTEs    (big-endian) destination network
  2077.  04h  6 BYTEs    (big-endian) destination node
  2078.  0Ah  2 BYTEs    (big-endian) destination socket
  2079. --------N-7A----BX000C-----------------------
  2080. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  2081.     BX = 000Ch
  2082.     CX:DX = global network address (see INT 7A/BX=0002h)
  2083.     ES:DI -> "OSINCRITICALSECTION" flag
  2084.     DS:SI -> current mode for socket
  2085. Note:    the address cannot be changed once it has been initialized
  2086. --------N-7A----BX000D-----------------------
  2087. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  2088.     BX = 000Dh
  2089. Return: AX = maximum packet size
  2090.     CX = retry count
  2091. SeeAlso: BX=001Ah
  2092. --------N-7A----BX000E-----------------------
  2093. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  2094.     BX = 000Eh
  2095. Return: nothing
  2096. Note:    this function terminates all sockets opened with the current mode; this
  2097.       may be intended for future enhancements as the socket mode never
  2098.       changes in v2.15
  2099. --------N-7A----BX000F-----------------------
  2100. INT 7A U - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  2101.     BX = 000Fh
  2102.     ES:SI -> Event Control Block (see BX=0003h)
  2103. Note:    nearly identical to function 0003h, but does not copy address into
  2104.       the first fragment
  2105. SeeAlso: BX=0003h
  2106. --------N-7A----BX0010-----------------------
  2107. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  2108.     BX = 0010h
  2109.     AL = 00h
  2110. Return: AL = FFh if SPX loaded
  2111.         BH = SPX major version
  2112.         BL = SPX minor version
  2113.         CX = maximum SPX connections
  2114.         DX = SPX connections available
  2115. Notes:    this function is supported by Advanced NetWare 2.1+
  2116.     this interrupt is used for IPX/SPX access in NetWare versions through
  2117.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  2118.       entry point even though INT 7A still exists.    For both INT 7A and
  2119.       the FAR entry point, BX contains the function number
  2120.     IPX is sometimes called internally with BX bit 15 set, which causes the
  2121.       entry point handler to bypass some checks and an optional call to
  2122.       the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  2123.       (see #1432)
  2124. SeeAlso: BX=0015h
  2125. --------N-7A----BX0011-----------------------
  2126. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  2127.     BX = 0011h
  2128.     AL = retry count
  2129.     AH = watchdog flag
  2130.     ES:SI -> Event Control Block (see BX=0003h)
  2131. Return: AL = status (see #2030)
  2132.     DX = assigned connection ID number
  2133. Desc:    attempt to establish a connection with a listening socket
  2134. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2135.       that NetWare can perform its internal packet exchanges
  2136.     the first fragment should start with a SPX header.  Fill in all
  2137.       destination addresses.
  2138.     this function is supported by Advanced NetWare 2.1+
  2139. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  2140.  
  2141. (Table 2030)
  2142. Values for SPX function status:
  2143.  00h    attempting to contact destination socket
  2144.  EFh    local connection table full
  2145.  FDh    buffer size not 42 or fragment count not 1
  2146.  FFh    sending socket not open
  2147.  
  2148. Format of SPX header:
  2149. Offset    Size    Description    (Table 2031)
  2150.  00h    WORD    (big-endian) checksum
  2151.  02h    WORD    (big-endian) length in bytes of total packet
  2152.  04h    BYTE    transport control
  2153.  05h    BYTE    packet type (see INT 7A/BX=0003h)
  2154.  06h 10 BYTEs    destination internet address
  2155.  10h    WORD    (big-endian) destination socket
  2156.  12h 10 BYTEs    source internet address
  2157.  1Ch    WORD    (big-endian) source socket
  2158.  1Eh    BYTE    connection control (see #2032)
  2159.  1Fh    BYTE    datastream type
  2160.         FEh terminate connection request packet
  2161.         FFh terminate connection acknowledgement packet
  2162.         other user-defined, ignored by SPX
  2163.  20h    WORD    (big-endian) source connection ID
  2164.  22h    WORD    (big-endian) destination connection ID
  2165.  24h    WORD    (big-endian) sequence number
  2166.  26h    WORD    (big-endian) acknowledge number
  2167.  28h    WORD    (big-endian) allocation number
  2168.  
  2169. Bitfields for connection control:
  2170. Bit(s)    Description    (Table 2032)
  2171.  3-0    unused???
  2172.  4    end of message
  2173.  5    reserved
  2174.  6    acknowledgement required
  2175.  7    system packet
  2176. --------N-7A----BX0012-----------------------
  2177. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  2178.     BX = 0012h
  2179.     AH = watchdog flag (00h disabled, 01h enabled)
  2180.     AL = retry count (00h = default)
  2181.     ES:SI -> Event Control Block (see BX=0003h)
  2182. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  2183.       that NetWare can perform its internal packet exchanges
  2184.     this function is supported by Advanced NetWare 2.1+
  2185. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  2186. --------N-7A----BX0013-----------------------
  2187. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  2188.     BX = 0013h
  2189.     DX = connection ID to terminate
  2190.     ES:SI -> Event Control Block (see BX=0003h)
  2191. Note:    this function is supported by Advanced NetWare 2.1+
  2192. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  2193. --------N-7A----BX0014-----------------------
  2194. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  2195.     BX = 0014h
  2196.     DX = connection ID to terminate
  2197. Notes:    this function is supported by Advanced NetWare 2.1+
  2198.     this function does not tell the other side that the connection has been
  2199.       terminated
  2200.     also aborts any outstanding Establish Connection, Terminate Connection,
  2201.       and Send Sequenced Packet commands
  2202. SeeAlso: BX=0011h,BX=0013h
  2203. --------N-7A----BX0015-----------------------
  2204. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  2205.     BX = 0015h
  2206.     DX = connection ID
  2207.     ES:SI -> status buffer (see #2033)
  2208. Return: AL = return code
  2209.         00h connection still valid
  2210.         ES:SI -> status buffer filled
  2211.         EEh no such connection
  2212. Note:    this function is supported by Advanced NetWare 2.1+
  2213. SeeAlso: BX=0010h,BX=0011h
  2214.  
  2215. Format of status buffer:
  2216. Offset    Size    Description    (Table 2033)
  2217.  00h    BYTE    connection state
  2218.         01h waiting to establish connection
  2219.         02h starting (attempting to create connection)
  2220.         03h connection established
  2221.         04h terminating
  2222.  01h    BYTE    watchdog flag
  2223.         bit 0: used internally by SPX
  2224.         bit 1: SPX watchdog is monitoring connection
  2225.         bits 2-7 used internally by SPX
  2226.  02h    WORD    (big-endian) source connection ID
  2227.  04h    WORD    (big-endian) destination connection ID
  2228.  06h    WORD    (big-endian) sequence number of next packet sent
  2229.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  2230.           next received packet
  2231.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  2232.           without ACK from local SPX
  2233.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  2234.           remote SPX expects to receive
  2235.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  2236.           local SPX may send
  2237.  10h    WORD    (big-endian) connection socket
  2238.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  2239.  18h 10 BYTEs    destination internetwork address (see INT 7A/BX=000Bh)
  2240.  22h    WORD    (big-endian) retransmit count
  2241.  24h    WORD    (big-endian) estimated roundtrip delay
  2242.  26h    WORD    (big-endian) retransmitted packets
  2243.  28h    WORD    (big-endian) suppressed packets
  2244.  2Ah 12 BYTEs    ??? (v2.15)
  2245. --------N-7A----BX0016-----------------------
  2246. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  2247.     BX = 0016h
  2248.     DX = connection ID
  2249.     ES:SI -> Event Control Block (see BX=0003h)
  2250. Notes:    this function is supported by Advanced NetWare 2.1+
  2251.     CX may need to be 0001h ???
  2252. SeeAlso: BX=0011h,BX=0017h
  2253. --------N-7A----BX0017-----------------------
  2254. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  2255.     BX = 0017h
  2256.     DX = connection ID (unused in v2.15)
  2257.     ES:SI -> Event Control Block (see BX=0003h)
  2258. Notes:    this function is supported by Advanced NetWare 2.1+
  2259.     CX may need to be 0001h ???
  2260. SeeAlso: BX=0011h,BX=0016h
  2261. --------N-7A----BX0018-----------------------
  2262. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  2263.     BX = 0018h
  2264.     ES:SI -> diagnostic element (see #2034) to be added to Diagnostic Queue
  2265. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2266.       supports it on workstations
  2267. SeeAlso: BX=0019h
  2268.  
  2269. Format of diagnostic element:
  2270. Offset    Size    Description    (Table 2034)
  2271.  00h    DWORD    pointer to next diagnostic element
  2272.  04h    DWORD    pointer to function for ???
  2273.  08h    DWORD    pointer to function for ???
  2274. --------N-7A----BX0019-----------------------
  2275. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  2276.     BX = 0019h
  2277.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  2278. Note:    this function is supported on file servers only under v2.15; v3.02 also
  2279.       supports it on workstations
  2280. SeeAlso: BX=0018h
  2281. --------N-7A----BX001A-----------------------
  2282. INT 7A - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  2283.     BX = 001Ah
  2284. Return: AX = packet size with preamble
  2285.     CX = IPX retry count
  2286. Note:    this function is has existed since November 1989; it is documented in
  2287.       Novell document FYI.A.3709, 03May91
  2288. SeeAlso: BX=000Dh
  2289. --------N-7A----BX001B-----------------------
  2290. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  2291.     BX = 001Bh
  2292.     ???
  2293. Return: ???
  2294. Notes:    this function is supported on file servers only under v2.15; v3.02 also
  2295.       supports it on workstations
  2296.     used by NetWare Access Server
  2297. --------N-7A----BX001C-----------------------
  2298. INT 7A U - Novell NetWare - NetWare Access Server - ???
  2299.     BX = 001Ch to 001Eh
  2300.     ???
  2301. Return: ???
  2302.     BX corrupted
  2303. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  2304. SeeAlso: INT 2F/AX=7AF1h
  2305. --------N-7A----BX001F-----------------------
  2306. INT 7A U - Novell NetWare - IPXODI v2.12+ - GET ???
  2307.     BX = 001Fh
  2308. Return: AX = ???
  2309.     BX:CX -> ??? entry point (see #2035)
  2310.     DX = flags
  2311.         bit 0: IPXODI rather than dedicated IPX
  2312.         bit 1: checksumming functions 0020h-0022h supported
  2313.     ES:SI -> ???
  2314. Note:    IPXODI v2.12 is distributed as part of the Personal NetWare system
  2315.       bundled with Novell DOS 7
  2316. SeeAlso: BX=0020h,INT 2F/AX=7A2Fh
  2317.  
  2318. (Table 2035)
  2319. Call entry point with:
  2320.     ES:SI -> ??? data (offset 24h is far pointer to ??? data)
  2321. --------N-7A----BX0020-----------------------
  2322. INT 7A U - Novell NetWare - IPXODI v2.12+ - ??? CHECKSUMMING
  2323.     BX = 0020h
  2324.     ES:SI -> ??? data (see #2036)
  2325. Return: ???
  2326.     BX,BP corrupted
  2327. SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh
  2328.  
  2329. Format of data:
  2330. Offset    Size    Description    (Table 2036)
  2331.  00h  8 BYTEs    ???
  2332.  08h    BYTE    (return) ???
  2333.  09h    BYTE    (return) ???
  2334.  0Ah    WORD    ???
  2335.  0Ch 16 BYTEs    ???
  2336.  1Ch  3 WORDs    ???
  2337.  22h    WORD    number of records at offset 28h
  2338.  24h    DWORD    -> ???
  2339.  28h 6N BYTEs    ??? records
  2340. --------N-7A----BX0021-----------------------
  2341. INT 7A U - Novell NetWare - IPXODI v2.12+ - ??? CHECKSUMMING
  2342.     BX = 0021h
  2343.     ES:SI -> ??? data (see BX=0020h)
  2344. Return: ???
  2345.     BX,BP corrupted
  2346. SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh
  2347. --------N-7A----BX0022-----------------------
  2348. INT 7A U - Novell NetWare - IPXODI v2.12+ - ??? CHECKSUMMING
  2349.     BX = 0022h
  2350.     ES:SI -> ??? data (see BX=0020h)
  2351.     ???
  2352. Return: ???
  2353.     BX,BP corrupted
  2354. SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh
  2355. --------N-7A----BX0023-----------------------
  2356. INT 7A U - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET
  2357.     BX = 0023h
  2358.     AL = ???
  2359.     DX = socket number
  2360.     ES:SI -> Look Ahead handler
  2361. Return: AL = 00h if successful
  2362.     BX corrupted
  2363. Note:    the socket will always be long-lived, and must thus be explicitly
  2364.       closed with INT 7A/BX=0001h before the Look Ahead handler code is
  2365.       removed from memory (i.e. the program terminates)
  2366. SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h
  2367. --------A-7A0001-----------------------------
  2368. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  2369.     AX = 0001h
  2370.     BX = configuration
  2371.     CX = interface level (0001h)
  2372. Return: AX = status
  2373.         0000h initialization failed
  2374.         0001h pre-v4.0 driver initialized successfully
  2375.         0003h post-v3.1 driver initialized successfully (driver truncates
  2376.           excessivly long packets)
  2377.     BX = width of graphics area in pixels, or 0000h if using packet
  2378.           communication
  2379.     DX:CX -> packet-mode entry point (see #2037)
  2380. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  2381. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  2382.  
  2383. (Table 2037)
  2384. Call packet-mode entry point with:
  2385. STACK:    DWORD    pointer to request packet (see #2038)
  2386.     WORD    length of packet
  2387.  
  2388. Format of request packet:
  2389. Offset    Size    Description    (Table 2038)
  2390.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  2391. --------A-7A0200BX0000-----------------------
  2392. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  2393.     AX = 0200h
  2394.     BX = 0000h
  2395.     CX = interface level (0001h)
  2396. Return: BX = 0000h (driver uses packet communication)
  2397.     DX:CX -> packet-mode entry point (see #2037)
  2398. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  2399. --------I-7A04-------------------------------
  2400. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  2401.     AH = 04h
  2402.     ???
  2403. Return: ???
  2404. SeeAlso: AH=06h
  2405. --------I-7A06-------------------------------
  2406. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  2407.     AH = 06h
  2408.     ???
  2409. Return: ???
  2410. SeeAlso: AH=04h
  2411. ----------7A07D0-----------------------------
  2412. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  2413.     AX = 07D0h
  2414. Return: AX = ??? (0003h)
  2415.     BX = 0000h
  2416.     DX:CX -> ADI entry point (see AX=0001h)
  2417. SeeAlso: AX=0001h
  2418. --------I-7A09--BX8020-----------------------
  2419. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  2420.     AH = 09h
  2421.     BX = 8020h (synchronous request)
  2422.     CX = 0000h
  2423.     DX = ID of session manager (SESSMGR)
  2424.     AL = service (see #2039)
  2425.     ES:DI -> control block
  2426. Return: ???
  2427.  
  2428. (Table 2039)
  2429. Values for service:
  2430.  01h    get session ID
  2431.  02h    get session info
  2432.  04h    dettach from session
  2433.  05h    attach to session
  2434.  06h    get list of windows available
  2435.  07h    get environment of window
  2436.  08h    get 'PIF' (program information file) info
  2437.  0Ah    get base window ID
  2438.  0Bh    get cursor info
  2439. --------I-7A09--BX8020-----------------------
  2440. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  2441.     AH = 09h
  2442.     BX = 8020h (synchronous request)
  2443.     CX = 0000h
  2444.     DX = ID of keyboard manager
  2445.     AL = service number (see #2040)
  2446.     ES:DI -> control block
  2447. Return: ???
  2448.  
  2449. (Table 2040)
  2450. Values for 3270 Workstation Program keyboard service:
  2451.  01h    connect to keyboard
  2452.  02h    disconnect from keyboard
  2453.  03h    read from keyboard
  2454.  04h    send keystroke to session
  2455.  05h    disable input
  2456.  06h    enable input
  2457.  07h    update status code
  2458. --------I-7A09--BX8020-----------------------
  2459. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  2460.     AH = 09h
  2461.     BX = 8020h (synchronous request)
  2462.     CX = 00FFh
  2463.     DX = ID of window service controller (WSCTRL)
  2464.     AL = service number (see #2041)
  2465.     ES:DI -> control block
  2466. Return: ???
  2467.  
  2468. (Table 2041)
  2469. Values for 3270 Workstation Program window service:
  2470.  01h    connect to WS control
  2471.  02h    disconnect from WS control
  2472.  03h    add a window
  2473.  04h    change window's position on screen
  2474.  05h    change window's size
  2475.  06h    change window's color
  2476.  07h    change window's position in the presentation space
  2477.  08h    hide/unhide toggle
  2478.  09h    enlarge/reduce toggle
  2479.  0Ah    change screen background color
  2480.  0Bh    get window's position on screen
  2481.  0Ch    get window's size
  2482.  0Dh    get window's color
  2483.  0Eh    get window's position in the presentation space
  2484.  0Fh    determine whether hidden
  2485.  10h    determine whether enlarged
  2486.  11h    get background color
  2487.  12h    get window names
  2488.  13h    delete all windows from profile
  2489.  14h    pick active window
  2490.  15h    redraw screen
  2491.  16h    redraw window
  2492.  17h    delete a window from profile
  2493.  18h    get active window
  2494.  19h    get active screen
  2495.  1Ah    get window data
  2496.  1Bh    change window data
  2497.  1Ch    select active screen
  2498. --------I-7A09--BX8020-----------------------
  2499. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  2500.     AH = 09h
  2501.     BX = 8020h
  2502.     CX = 00FFh
  2503.     DX = ID of PCPSM
  2504.     AL = service
  2505.         01h define presentation space
  2506.         02h delete presentation space
  2507.         03h display presentation space
  2508.         04h position cursor in presentation space
  2509.         05h change default presentation space
  2510.     ES:DI -> control block
  2511. Return: ???
  2512. --------I-7A09--BX8020-----------------------
  2513. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  2514.     AH = 09h
  2515.     BX = 8020h
  2516.     CX = 00FFh
  2517.     DX = ID of 3270EML
  2518.     AL = service
  2519.         01h connect
  2520.         02h disconnect
  2521.     ES:DI -> control block
  2522. Return: ???
  2523. --------I-7A09--BX8020-----------------------
  2524. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  2525.     AH = 09h
  2526.     BX = 8020h
  2527.     CX = 00FFh
  2528.     DX = ID of OIAM
  2529.     AL = service
  2530.         01h read Operator Information Area
  2531.         02h read OIA subset
  2532.     ES:DI -> control block
  2533. Return: ???
  2534. Note: the OIA is the 25th line on the Host session
  2535. --------I-7A09--BX8020-----------------------
  2536. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  2537.     AH = 09h
  2538.     BX = 8020h
  2539.     CX = 00FFh
  2540.     DX = ID of XLATE
  2541.     AL = service
  2542.         01h translate from host characters to ASCII and vice versa
  2543.         (determined by control block byte 11)
  2544.     ES:DI -> control block
  2545. Return: ???
  2546. --------I-7A09--BX8020-----------------------
  2547. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  2548.     AH = 09h
  2549.     BX = 8020h
  2550.     CX = 00FFh
  2551.     DX = ID of copy service
  2552.     AL = service
  2553.         01h copy string from one presentation space to another
  2554.         02h copy block from one presentation space to another
  2555.         03h connect to PC session for copy
  2556.         04h disconnect PC session from copy
  2557.     ES:DI -> control block
  2558. Return: ???
  2559. --------I-7A09--BX8020-----------------------
  2560. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  2561.     AH = 09h
  2562.     BX = 8020h
  2563.     CX = 00FFh
  2564.     ES:DI -> control block
  2565.     DX = ID of INDJQRY
  2566.         get environment size
  2567.        = ID of INDJASY
  2568.         request DOS functions from workstation
  2569.        = ID of MEMORY
  2570.         AL = function
  2571.             01h allocate memory
  2572.             02h deallocate memory
  2573.             03h modify allocated size
  2574. Return: ???
  2575. --------I-7A09-------------------------------
  2576. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  2577.     AH = 09h
  2578.     BX = request type (4000h async, 8028h synchronous)
  2579.     CX = 0000h
  2580.     DX = ID of MFIC
  2581.     AL = service (see #2042)
  2582.     ES:DI -> control block
  2583.  
  2584. (Table 2042)
  2585. Values for 3270 Workstation Program host service:
  2586.  01h    connect to host
  2587.  02h    disconnect from host
  2588.  03h    read DFT structured data from host
  2589.  04h    write DFT structured data to host
  2590.  05h    create a host buffer
  2591. --------I-7A13-------------------------------
  2592. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  2593.     AH = 13h
  2594.     ???
  2595. Return: ???
  2596. ----------7A7A-------------------------------
  2597. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  2598.     AH = 7Ah
  2599.     ???
  2600. Return: AX = status
  2601.         0000h success
  2602.         000Eh undefined function code
  2603. Range:    unknown, selected by device driver commandline arguments
  2604. --------I-7A81-------------------------------
  2605. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  2606.     AH = 81h
  2607.     ES:DI -> 8-char blank-padded gate name (see #2043)
  2608. Return: DX = gate ID
  2609.  
  2610. (Table 2043)
  2611. Values for 3270 Workstation Program gate name:
  2612.  "SESSMGR "
  2613.  "KEYBOARD"
  2614.  "WSCTRL  "
  2615.  "MFIC    "
  2616.  "PCPSM      "
  2617.  "3270EML "
  2618.  "COPY    "
  2619.  "XLATE      "
  2620.  "OIAM    "
  2621.  "MEMORY  "
  2622.  "INDJQRY "
  2623.  "INDJASY "
  2624. --------I-7A83-------------------------------
  2625. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  2626.     AH = 83h
  2627.     ???
  2628. Return: ???
  2629. --------I-7AFDCB-----------------------------
  2630. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  2631.     AX = FDCBh
  2632. Return: DX:AX -> PCS/3270 signature block if loaded (see #2044)
  2633.  
  2634. Format of Personal Communications/3270 signature block:
  2635. Offset    Size    Description    (Table 2044)
  2636.  04h    WORD    PCS/3270 signature (5741h)
  2637.  06h    WORD    version (0501h = PCS/3270 v1.0)
  2638. --------I-7AFE01-----------------------------
  2639. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  2640.     AX = FE01h
  2641.     ???
  2642. Return: ???
  2643. SeeAlso: AX=FE02h
  2644. --------I-7AFE02-----------------------------
  2645. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  2646.     AX = FE02h
  2647.     ???
  2648. Return: ???
  2649. SeeAlso: AX=FE01h
  2650. --------I-7AFF01-----------------------------
  2651. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  2652.     AX = FF01h
  2653.     ES:DI -> API function handler routine
  2654. Return: CX = 1200h
  2655. SeeAlso: AX=FF02h,AX=FF03h
  2656. --------I-7AFF02-----------------------------
  2657. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  2658.     AX = FF02h
  2659. Return: CX = 1200h
  2660. SeeAlso: AX=FF01h
  2661. --------I-7AFF03-----------------------------
  2662. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  2663.     AX = FF03h
  2664.     ES:DI -> send/receive function handler routine
  2665. Return: CX = 1200h
  2666. SeeAlso: AX=FF01h
  2667. --------I-7AFF04-----------------------------
  2668. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  2669.     AX = FF04h
  2670.     ES:DI -> ???
  2671. Return: CX = 1200h
  2672. --------f-7B---------------------------------
  2673. INT 7B - Btrieve API (single user)
  2674.     DS:DX -> 38-byte parameter record (see #2045)
  2675. Return: return code field set
  2676. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  2677.       check
  2678. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  2679.  
  2680. Format of Btrieve parameter record:
  2681. Offset    Size    Description    (Table 2045)
  2682.  00h    DWORD    pointer to data buffer
  2683.  04h    WORD    data buffer length
  2684.  06h    DWORD    pointer to 90-byte record containing positioning info
  2685.         (should be same for all calls for same file)
  2686.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  2687.         (should be same for all calls for same file)
  2688.  0Eh    WORD    function code (see #2046)
  2689.  10h    DWORD    pointer to file name/key buffer
  2690.  14h    BYTE    key length
  2691.  15h    BYTE    key number
  2692.  16h    DWORD    pointer to status code (see #2047)
  2693.  1Ah    WORD    interface code (version specific)
  2694.         6176h version 5.10
  2695.  
  2696. (Table 2046)
  2697. Values for function code:
  2698.  00h    open
  2699.  01h    close
  2700.  02h    insert
  2701.  03h    update
  2702.  04h    delete
  2703.  05h    get_equal
  2704.  06h    get_next
  2705.  07h    get_prev
  2706.  08h    get_greater
  2707.  09h    get_gr_eql
  2708.  0Ah    get_less
  2709.  0Bh    get_less_eq
  2710.  0Ch    get_first
  2711.  0Dh    get_last
  2712.  0Eh    create
  2713.  0Fh    stat
  2714.  10h    extend
  2715.  11h    set_dir: set directory information
  2716.  12h    get_dir: get directory information
  2717.  13h    begin_trans
  2718.  14h    end_trans
  2719.  15h    abort_trans
  2720.  16h    get_pos: get record position number
  2721.  17h    get_direct: get data by sending record position
  2722.  18h    step_next
  2723.  19h    stop
  2724.  1Ah    version
  2725.  1Bh    unlock
  2726.  1Ch    reset
  2727.  1Dh    set owner
  2728.  1Eh    clear owner
  2729.  1Fh    create supplemental index
  2730.  20h    drop supplemental index
  2731.  21h    step first
  2732.  22h    step last
  2733.  23h    step previous
  2734.  24h    get next extended: get multiple records using a filter
  2735.  25h    get previous extended: get multiple records using a filter
  2736.  26h    step next extended: get multiple records using a filter
  2737.  27h    step previous extended: get multiple records using a filter
  2738.  28h    insert extended: insert one or more records
  2739.  31h    ???
  2740. Notes:    add 50 (32h) to any "get" operation to just return the key data
  2741.     add 100 (64h) for a single-record wait lock (automatically released
  2742.       on next get)
  2743.     add 200 (C8h) for a single-record nowait lock (nowait lock returns
  2744.       error 54h or 55h if record already locked)
  2745.     add 300 (12Ch) for a multiple-record wait lock (not released until
  2746.       unlock called)
  2747.     add 400 (190h) for a multiple-record nowait lock (nowait lock returns
  2748.       error 54h or 55h if record already locked)
  2749.  
  2750. (Table 2047)
  2751. Values for Btrieve status code:
  2752.  00h    successful
  2753.  01h    invalid operation
  2754.  02h    I/O error
  2755.  03h    file not open
  2756.  04h    key value not found
  2757.  05h    duplicate key value
  2758.  06h    invalid key number
  2759.  07h    different key number
  2760.  08h    invalid positioning
  2761.  09h    end of file
  2762.  0Ah    modifiable key value error
  2763.  0Bh    invalid file name
  2764.  0Ch    file not found
  2765.  0Dh    extended file error
  2766.  0Eh    pre-image open error
  2767.  0Fh    pre-image I/O error
  2768.  10h    expansion error
  2769.  11h    close error
  2770.  12h    disk full
  2771.  13h    unrecoverable error
  2772.  14h    record manager inactive
  2773.  15h    key buffer too short
  2774.  16h    data buffer length overrun
  2775.  17h    position block length
  2776.  18h    page size error
  2777.  19h    create I/O error
  2778.  1Ah    number of keys
  2779.  1Bh    invalid key position
  2780.  1Ch    invalid record length
  2781.  1Dh    invalid key length
  2782.  1Eh    not a Btrieve file
  2783.  1Fh    file already extended
  2784.  20h    extended I/O error
  2785.  22h    invalid extension name
  2786.  23h    directory error
  2787.  24h    transaction error
  2788.  25h    transaction is active
  2789.  26h    transaction control file I/O error
  2790.  27h    end/abort transaction error
  2791.  28h    transaction max files
  2792.  29h    operation not allowed
  2793.  2Ah    incomplete accelerated access
  2794.  2Bh    invalid record address
  2795.  2Ch    null key path
  2796.  2Dh    inconsistent key flags
  2797.  2Eh    access to file denied
  2798.  2Fh    maximum open files
  2799.  30h    invalid alternate sequence definition
  2800.  31h    key type error
  2801.  32h    owner already set
  2802.  33h    invalid owner
  2803.  34h    error writing cache
  2804.  35h    invalid interface
  2805.  36h    variable page error
  2806.  37h    autoincrement error
  2807.  38h    incomplete index
  2808.  39h    expanded memory error
  2809.  3Ah    compression buffer too short
  2810.  3Bh    file already exists
  2811.  3Ch    reject count reached
  2812.  3Dh    work space too small
  2813.  3Eh    incorrect descriptor
  2814.  3Fh    invalid extended insert
  2815.  40h    filter limit reached
  2816.  41h    incorrect field offset
  2817.  4Ah    automatic transaction abort
  2818.  4Dh    Btrieve engine busy or resource locked by another user
  2819.  4Eh    deadlock detected
  2820.  50h    conflict
  2821.  51h    lock error
  2822.  52h    lost position
  2823.  53h    read outside transaction
  2824.  54h    record in use
  2825.  55h    file in use
  2826.  56h    file table full
  2827.  57h    handle table full
  2828.  58h    incompatible open mode
  2829.  5Ah    redirected device table full
  2830.  5Bh    server error
  2831.  5Ch    transaction table full
  2832.  5Dh    incompatible lock type
  2833.  5Eh    permission error
  2834.  5Fh    session no longer valid
  2835.  60h    communications environment error
  2836.  61h    data message too small
  2837.  62h    internal transaction error
  2838. --------I-7B---------------------------------
  2839. INT 7B - Eicon Access API (3270/5250 gateways)
  2840. SeeAlso: INT 5C"NetBIOS"
  2841. --------E-7B---------------------------------
  2842. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  2843. Note:    this vector is overwritten when GO32 starts but is not restored by
  2844.       early versions of the extender
  2845. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  2846. --------A-7B---------------------------------
  2847. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  2848.     AX = data length (0000h-7FFFh)
  2849.     CX:BX -> data to be plotted
  2850.     DX = vertical position of line on page
  2851. Return: nothing
  2852. Notes:    This interrupt is called by AutoCAD to perform its output
  2853.     A data length of 0000h indicates that a blank line is to be output
  2854. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  2855. ----------7B---------------------------------
  2856. INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
  2857.     DS:DX -> parameter block (see #2048)
  2858. Return: parameter block updated
  2859.  
  2860. (Table 2048)
  2861. Values for Novell XQL function number:
  2862.  00h    log in
  2863.  01h    log out
  2864.  02h    "tNewFcn"
  2865.  03h    "tFreeFcn"
  2866.  04h    "tMoveFldFcn"
  2867.  05h    "tFieldFcn"
  2868.  06h    "tDescribeFcn"
  2869.  07h    "tFetchFcn"
  2870.  08h    "tComputeFcn"
  2871.  09h    "tOrderFcn"
  2872.  0Ah    "tRestrictFcn"
  2873.  0Bh    "tJoinFcn"
  2874.  0Ch    "tInsertFcn"
  2875.  0Dh    "tUpdateFcn"
  2876.  0Eh    "tUpdallFcn"
  2877.  0Fh    "tRemoveFcn"
  2878.  10h    "tRemallFcn"
  2879.  11h    "tResetFcn"
  2880.  12h    "tTransFcn"
  2881.  13h    "tStatFcn"
  2882.  14h    "tDDCreFcn"
  2883.  15h    "tStoreFcn"
  2884.  16h    "tRecallFcn"
  2885.  17h    "tStopFcn"
  2886.  18h    "tDDFileFcn"
  2887.  19h    "tDDFieldFcn"
  2888.  1Ah    "tDDIndexFcn"
  2889.  1Bh    "tDDModFcn"
  2890.  1Ch    "tDDViewFcn"
  2891.  1Dh    "tDDDrpFcn"
  2892.  1Eh    "tDDPathFcn"
  2893.  1Fh    "tDDAttrFcn"
  2894.  20h    "tDDFcn"
  2895.  21h    "tSecurFcn"
  2896.  22h    "tUserFcn"
  2897.  23h    "tAccessFcn"
  2898.  24h    "tPswdFcn"
  2899.  25h    "tCharFcn"
  2900.  26h    "tVersionFcn"
  2901.  27h    "tCnvFcn"
  2902.  28h    "tValFcn"
  2903.  29h    "tMaskFcn"
  2904.  
  2905. Format of XQL parameter block:
  2906. Offset    Size    Description    (Table 2049)
  2907.  00h  4 BYTEs    signature "XQLP"
  2908.  04h    WORD    function number (see #2048)
  2909.  06h    WORD    handle
  2910.  08h    WORD    status
  2911.  0Ah    WORD    session ID
  2912.  0Ch    var    data record (varies by function)
  2913. ---function 00h---
  2914.  0Ch    DWORD    -> user name
  2915.  10h    DWORD    -> password
  2916.  14h    DWORD    -> dictionary
  2917.  18h    DWORD    -> filepath
  2918.  1Ch    DWORD    -> machine name
  2919.  20h    WORD    process ID
  2920. ---function 01h---
  2921.  no additional fields???
  2922. ---function 02h---
  2923.  0Ch    DWORD    -> filename
  2924.  10h    DWORD    -> owner name
  2925.  14h    WORD    open mode
  2926. ---function 03h---
  2927.  no additional fields???
  2928. ---function 04h---
  2929.  0Ch    WORD    "frompos"
  2930.  0Eh    WORD    "topos"
  2931. ---function 05h---
  2932.  0Ch    WORD    subfunction
  2933.  0Eh    WORD    position
  2934.  10h    WORD    count
  2935.  12h    DWORD    -> field list
  2936. ---function 06h---
  2937.  0Ch    WORD    subfunction
  2938.  0Eh    WORD    length of description
  2939.  10h    WORD    position
  2940.  12h    WORD    count
  2941.  14h    DWORD    pointer to description list
  2942. ---function 07h---
  2943.  0Ch    WORD    data length
  2944.  0Eh    WORD    "op"
  2945.  10h    DWORD    "select"
  2946.  14h    DWORD    "reject"
  2947.  18h    DWORD    pointer to data buffer
  2948. ---function 08h---
  2949.  0Ch    DWORD    -> field name
  2950.  10h    WORD    field type
  2951.  12h    WORD    field size
  2952.  14h    WORD    "flddec"
  2953.  16h    WORD    "explen"
  2954.  18h    DWORD    pointer to "expbuf"
  2955. ---function 09h---
  2956.  0Ch    WORD    count
  2957.  0Eh    DWORD    -> field list
  2958. ---function 0Ah---
  2959.  0Ch    WORD    "newexp"
  2960.  0Eh    WORD    "explen"
  2961.  10h    DWORD    -> "expbuf"
  2962. ---function 0Bh---
  2963.  0Ch    DWORD    -> filename
  2964.  10h    DWORD    -> owner name
  2965.  14h    WORD    type of join
  2966.  16h    WORD    "pCount"
  2967.  18h    DWORD    -> "pNames"
  2968.  1Ch    WORD    "sCount"
  2969.  1Eh    DWORD    -> "sNames"
  2970. ---functions 0Ch, 0Dh, 0Fh---
  2971.  0Ch    WORD    file count
  2972.  0Eh    DWORD    -> file list
  2973.  12h    DWORD    count
  2974.  16h    DWORD    -> buffer
  2975. ---function 0Eh---
  2976.  0Ch    WORD    file count
  2977.  0Eh    DWORD    -> file list
  2978.  12h    WORD    "op"
  2979.  14h    DWORD    "select"
  2980.  18h    DWORD    "reject"
  2981.  1Ch    WORD    count
  2982.  1Eh    DWORD    -> "res"
  2983.  22h    DWORD    -> "comp"
  2984. ---function 10h---
  2985.  0Ch    WORD    file count
  2986.  0Eh    DWORD    -> file list
  2987.  12h    WORD    "op"
  2988.  14h    DWORD    "select"
  2989.  18h    DWORD    "reject"
  2990. ---function 11h---
  2991.  0Ch    DWORD    machine name
  2992. ---function 12h---
  2993.  0Ch    WORD    option
  2994. ---function 13h---
  2995.  0Ch    WORD    subfunction
  2996.  0Eh    WORD    length of buffer
  2997.  10h    DWORD    -> buffer
  2998. ---function 14h---
  2999.  0Ch    WORD    subfunction
  3000.  0Eh    DWORD    -> filename
  3001.  12h    WORD    "create"
  3002.  14h    DWORD    -> pathname
  3003.  18h    DWORD    -> owner name
  3004.  1Ch    WORD    owner access restrictions
  3005.  1Eh    WORD    number of fields
  3006.  20h    DWORD    -> field list
  3007.  24h    WORD    number of keys
  3008.  28h    DWORD    -> key list
  3009.  2Ch    WORD    "buflen"
  3010.  2Eh    DWORD    -> create parameters
  3011. ---function 15h---
  3012.  0Ch    DWORD    -> "StoreName"
  3013.  10h    WORD    length of buffer
  3014.  12h    DWORD    -> buffer
  3015. ---function 16h---
  3016.  0Ch    DWORD    -> "RecallName"
  3017.  10h    WORD    owner number
  3018.  12h    DWORD    -> owner list
  3019.  16h    WORD    open mode
  3020.  18h    WORD    length of buffer
  3021.  1Ah    DWORD    -> buffer
  3022. ---function 17h---
  3023.  no additional fields???
  3024. ---function 18h---
  3025.  0Ch    WORD    "rtype"
  3026.  0Eh    WORD    count
  3027.  10h    DWORD    -> "filebuf"
  3028.  14h    WORD    length of following buffer
  3029.  16h    DWORD    -> output buffer
  3030. ---functions 19h, 1Ah---
  3031.  0Ch    WORD    "rtype"
  3032.  0Eh    WORD    count
  3033.  10h    DWORD    -> field buffer
  3034.  14h    WORD    length of following buffer
  3035.  16h    DWORD    -> output buffer
  3036. ---function 1Bh---
  3037.  0Ch    WORD    subfunction
  3038.  0Eh    DWORD    -> filename
  3039.  12h    WORD    "create"
  3040.  14h    DWORD    -> pathname
  3041.  18h    DWORD    -> owner name
  3042.  1Ch    WORD    owner access restrictions
  3043.  1Eh    WORD    field count
  3044.  20h    DWORD    -> field list
  3045.  24h    WORD    number of keys
  3046.  26h    DWORD    -> list of keys
  3047. ---function 1Ch---
  3048.  0Ch    WORD    count
  3049.  0Eh    DWORD    -> view name
  3050.  12h    WORD    length of following buffer
  3051.  14h    DWORD    -> output buffer
  3052. ---function 1Dh---
  3053.  0Ch    DWORD    -> filename
  3054.  10h    WORD    file type
  3055.  12h    WORD    "deletepath"
  3056. ---function 1Eh---
  3057.  0Ch    WORD    "dirtype"
  3058.  0Eh    DWORD    -> pathname
  3059. ---function 1Fh---
  3060.  0Ch    WORD    function
  3061.  0Eh    DWORD    -> field name
  3062.  12h    WORD    attribute
  3063.  14h    WORD    size of buffer
  3064.  16h    DWORD    -> buffer for attributes
  3065. ---function 20h---
  3066.  0Ch    DWORD    -> directory path
  3067.  10h    WORD    function
  3068. ---function 21h---
  3069.  0Ch    DWORD    -> master password
  3070.  10h    WORD    "securityflag"
  3071. ---function 22h---
  3072.  0Ch    DWORD    -> master password
  3073.  10h    WORD    function (add/modify/remove)
  3074.  12h    DWORD    -> user name
  3075.  16h    DWORD    -> password
  3076.  1Ah    WORD    global rights
  3077.  1Ch    WORD    count
  3078.  1Eh    WORD    length of following buffer
  3079.  20h    DWORD    -> "userbuf"
  3080. ---function 23h---
  3081.  0Ch    DWORD    -> master password
  3082.  10h    DWORD    -> user name
  3083.  14h    WORD    function (allow/deny/getrights)
  3084.  16h    WORD    rights
  3085.  18h    DWORD    -> filename
  3086.  1Ch    WORD    number of field names in following buffer
  3087.  1Eh    DWORD    -> field names
  3088.  22h    WORD    maximum buffer length
  3089.  24h    DWORD    -> output buffer
  3090. ---function 24h---
  3091.  0Ch    DWORD    -> user name
  3092.  10h    DWORD    -> password
  3093. ---function 25h---
  3094.  0Ch    WORD    "charFcn"
  3095.  0Eh    WORD    "charType"
  3096.  10h    WORD    "charValue"
  3097. ---function 26h---
  3098.  0Ch    DWORD    -> buffer
  3099. ---function 27h---
  3100.  0Ch    WORD    option
  3101.  0Eh    WORD    type
  3102.  10h    WORD    size
  3103.  12h    WORD    "dec"
  3104.  14h    WORD    "dsize"
  3105.  16h    DWORD    -> value
  3106.  1Ah    DWORD    -> "retval"
  3107.  1Eh    DWORD    -> mask
  3108.  22h    WORD    "justify"
  3109. ---function 28h---
  3110.  0Ch    DWORD    -> field name
  3111.  10h    WORD    length of buffer
  3112.  12h    DWORD    -> buffer for data
  3113. ---function 29h---
  3114.  0Ch    WORD    option
  3115.  0Eh    WORD    type
  3116.  10h    WORD    size
  3117.  12h    WORD    "dec"
  3118.  14h    WORD    length of mask
  3119.  16h    DWORD    -> mask
  3120. --------A-7B8001-----------------------------
  3121. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  3122.     AX = 8001h
  3123.     BX = file level
  3124.         0000h binary file
  3125.         0001h CAD/camera image file
  3126.         0002h installed ADI driver
  3127.     CX = horizontal size in pixels
  3128.     DX = vertical size in pixels
  3129. Return: AX = status (0000h initialization failed, 0001h init successful)
  3130.     BX = allowed output format
  3131.         0000h monochrome
  3132.         0001h color (4 bits per pixel)
  3133. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  3134. --------A-7B8002-----------------------------
  3135. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  3136.     AX = 8002h
  3137. SeeAlso: AX=8001h,AX=8003h
  3138. --------A-7B8003-----------------------------
  3139. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  3140.     AX = 8003h
  3141. SeeAlso: AX=8001h,AX=8002h
  3142. --------r-7C---------------------------------
  3143. INT 7C U - IBM REXX88PC command language
  3144.     ???
  3145. --------E-7C---------------------------------
  3146. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  3147. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3148.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3149. Note:    this vector is overwritten when GO32 starts but is not restored by
  3150.       early versions of the extender
  3151. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  3152. --------P-7C---------------------------------
  3153. INT 7C - PRINDIR v8.02+ - API
  3154.     AH = function
  3155.        00h set output to Invisible mode
  3156.        01h set output to LPT1
  3157.        02h set output to LPT2
  3158.        03h set output to LPT3
  3159.        04h set output to COM1
  3160.        05h set output to COM2
  3161.        06h set output to COM3
  3162.        07h set output to COM4
  3163.        08h set output to screen
  3164.        09h set output to file
  3165.        0Ah change file path
  3166.            ES:DI -> new path
  3167.            CX = length of path (max 41, but not range-checked)
  3168.        0Bh change file name
  3169.            ES:DI -> new filename
  3170.            CX = length of new name (max 41, but not range-checked)
  3171.        0Ch set redirected device
  3172.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  3173.        0Dh force buffer dump
  3174.        0Eh set display color
  3175.            AL = new color attribute (see INT 10/AH=08h)
  3176.        0Fh set popup hotkey
  3177.            AL = hotkey scancode
  3178.        10h toggle byte display
  3179.            AL = new state (00h off, 01h on)
  3180.        11h change buffer flush delay
  3181.            AL = timer ticks before flush
  3182. Return: AX = status
  3183.         0000h successful
  3184.         0001h invalid function or nothing in buffer to be dumped
  3185.         (documented as "nonzero = error")
  3186. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  3187.       Creations
  3188. Notes:    the installation check consists of testing for the ASCIZ signature
  3189.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  3190.       the start of the interrupt handler
  3191.     prior versions of PRINDIR used INT 7A instead of INT 7C
  3192. SeeAlso: INT 7A"PRINDIR"
  3193. Index:    hotkeys;PRINDIR
  3194. --------A-7C---------------------------------
  3195. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  3196. Note:    this is the default interrupt vector for rendering hardcopy drivers
  3197.       instead of INT 7A used by AutoCAD drivers
  3198. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  3199. --------N-7C---------------------------------
  3200. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  3201. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3202.       which provides an API on top of it Data Link Interface, allowing the
  3203.       use of any of several network transport layers; this product is
  3204.       called SK-PASSPORT in the USA.
  3205. Notes:    The installation check consists of testing for the ASCII signature
  3206.       string "UPPS_DLI" immediately preceding the interrupt handler.
  3207.     To find the service interrupt being used by the driver, an application
  3208.       should scan through the interrupt table until it finds an interrupt
  3209.       vector with the "UPPS_DLI" string.
  3210.     There may be more than one DLI loaded, each having its own service
  3211.       interrupt.
  3212. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  3213. Index:    installation check;SK-UPPS
  3214. --------N-7C0000-----------------------------
  3215. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  3216.     AX = 0000h
  3217. Return: AH = major DLI version
  3218.     AL = minor DLI version
  3219.     DX = OEM signature (see #2050)
  3220.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  3221. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  3222.  
  3223. (Table 2050)
  3224. Values for SK-UPPS Data Link Interface OEM signature (defined by SK):
  3225.  0001h        experimental
  3226.  3343h    ('3C')    3COM
  3227.  4942h    ('IB')    IBM
  3228.  4943h    ('IC')    Intellicom
  3229.  494Eh    ('IN')    Intel
  3230.  4B4Fh    ('KO')    Kodiak
  3231.  4D41h    ('MA')    Madge
  3232.  4E45h    ('NE')    Novell
  3233.  4F43h    ('OC')    Olicom
  3234.  5349h    ('SI')    Siemens
  3235.  534Bh    ('SK')    Schneider & Koch (SysKonnect)
  3236.  5744h    ('WD')    Western Digital
  3237. --------N-7C0001-----------------------------
  3238. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  3239.     AX = 0001h
  3240. Return: AX = completion code (see #2051)
  3241. Note:    the DLI will refuse to unload if there are any protocols
  3242.       (see AX=0007h) or clients (see AX=0010h) active.
  3243. Index:    uninstall;SK-UPPS Data Link Interface
  3244.  
  3245. (Table 2051)
  3246. Values for SK-UPPS completion code:
  3247.  0000h    SUCCESS
  3248.  0005h    INVALID_MULTICAST
  3249.  0006h    BUFFER_TOO_SMALL
  3250.  0007h    NO_BUFFERS_LEFT
  3251.  0008h    NO_RESOURCES_LEFT
  3252.  000Bh    ILLEGAL_PROTOCOL_ID
  3253.  000Ch    PROTOCOL_IN_USE
  3254.  000Dh    NO_MULTICAST_ADDRESS
  3255.  000Fh    PROTOCOLS_ACTIVE
  3256.  0010h    CLIENTS_ACTIVE
  3257.  001Bh    INVALID_MODE
  3258.  001Ch    MODE_NOT_SUPPORTED
  3259.  FFFFh    UNKNOWN_SERVICE
  3260. --------N-7C0002-----------------------------
  3261. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  3262.     AX = 0002h
  3263.     ES:DI -> Status Information Block (SIB) (see #2063)
  3264. Return: AX = completion code (see #2051)
  3265. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  3266. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  3267. --------N-7C0003-----------------------------
  3268. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  3269.     AX = 0003h
  3270.     ES:DI -> new node address (6 bytes)
  3271. Return: AX = completion code (see #2051)
  3272. Note:    the DLI will refuse to change the address if any protocols
  3273.       (see AX=0007h) are active
  3274. SeeAlso: AX=0001h,AX=000Eh
  3275. --------N-7C0004-----------------------------
  3276. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  3277.     AX = 0004h
  3278.     DX = protocol ID (see AX=0007h,#2054)
  3279. Return: AX = completion code (see also #2051)
  3280.         0000h successful
  3281.         ES:BX -> Memory Buffer (Mbuf) (see #2052)
  3282. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  3283.       protocol and later call the protocol's Event Upcall with
  3284.       EV_BUFFER_AVAILABLE (see #2058,#2059) as soon as an Mbuf becomes
  3285.       available.  There will only be one "buffer available" Upcall, even
  3286.       if this function has been called several times before.
  3287. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  3288.  
  3289. Format of SK-UPPS Memory Buffer (Mbuf):
  3290. Offset    Size    Description    (Table 2052)
  3291.  00h    DWORD    -> NEXT Mbuf (linked list)
  3292.  04h    WORD    OFFSET of actual data within DATA area
  3293.  06h  2 BYTEs    reserved (currently unused)
  3294.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  3295.  0Ah  2 BYTEs    reserved (currently unused)
  3296.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  3297.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  3298.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  3299.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  3300. --------N-7C0005-----------------------------
  3301. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  3302.     AX = 0005h
  3303.     ES:BX -> Mbuf (see #2052)
  3304. Return: nothing
  3305. SeeAlso: AX=0004h
  3306. --------N-7C0006-----------------------------
  3307. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  3308.     AX = 0006h
  3309.     ES:BX -> Mbuf (see #2052)
  3310. Return: nothing
  3311. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  3312.       at OFFSET. A complete and valid frame must be stored there. The DLI
  3313.       will only copy the current node address (see AX=0003h) to the
  3314.       source node field of the frame's MAC header.
  3315.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  3316.       of the value found in the LENGTH field.
  3317.     This function returns immediately; the DLI will call the protocol's
  3318.       Transmit Upcall (see #2053) when the frame has been sent.
  3319.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  3320.       Transmit Upcall.
  3321. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  3322.  
  3323. (Table 2053)
  3324. Values SK-UPPS Transmit Upcall is called with:
  3325.     ES:BX -> Mbuf (NEXT field destroyed)
  3326.     interrupts disabled
  3327. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  3328.       header have been bit-swapped to physical address format.
  3329. --------N-7C0007-----------------------------
  3330. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  3331.     AX = 0007h
  3332.     ES:BX -> Protocol Control Block (see #2054)
  3333. Return: AX = completion code (see #2051)
  3334. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3335.       which provides an API on top of its Data Link Interface, allowing the
  3336.       use of any of several network transport layers
  3337. SeeAlso: AX=0008h,AX=000Bh
  3338.  
  3339. Format of SK-UPPS Protocol Control Block (PCB):
  3340. Offset    Size    Description    (Table 2054)
  3341.  00h    WORD    (big-endian) protocol type
  3342.  02h    WORD    protocol mode (see #2055)
  3343.  04h    DWORD    -> Receive Upcall routine
  3344.  08h    DWORD    -> Transmit Upcall routine
  3345.  0Ch    DWORD    -> Event Upcall routine
  3346.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  3347.  14h    WORD    protocol ID will be returned here (always non-zero)
  3348.  
  3349. Bitfields for SK-UPPS protocol mode:
  3350. Bit(s)    Description    (Table 2055)
  3351.  0    promiscuous mode; protocol receives all frames regardless of their
  3352.       destination (PROTOCOL TYPE must be FFFFh)
  3353.  1    if set, protocol's Event Upcall will be called on entry and exit of the
  3354.       DLI's Interrupt Service Routine (see event codes below)
  3355.  2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  3356.       this station (PROTOCOL TYPE must be FFFFh)
  3357.  3    DLI 2.3+ receive error frames (only valid in promiscuous mode (0))
  3358.  4-5    DLI 2.5+ frame type:
  3359.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  3360.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  3361.           (offset 0) of PROCOTOL TYPE field; LSB must be zero
  3362.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  3363.           field (high-low)
  3364.     11 reserved (currently unused)
  3365.  6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  3366.       EV_BUFFER_WANTED, when DLI runs out of Mbufs
  3367.  7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  3368.       be shared with other clients
  3369.  8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  3370.  9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  3371.  10-15    reserved (currently unused; must be zero)
  3372. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  3373.       mode is set, the protocol receives all frames that did not match
  3374.       any registered frame type (demultiplexor mode).
  3375.     Protocols using "promiscuous", "hook" or "chain" mode should always
  3376.       return from the Receive Upcall with the received Mbuf in ES:BX and
  3377.       the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  3378.       BUFFER function (see AX=000Fh).
  3379.     Some DLIs do not support all or even any of the "promiscuous",
  3380.       "receive non-LLC" and "receive all multicasts" mode bits.
  3381.  
  3382. (Table 2056)
  3383. Values SK-UPPS Receive Upcall is called with:
  3384.  ES:BX -> Mbuf
  3385.  AX = receive status (see #2057) (also stored in Mbuf's RECEIVE STATUS field)
  3386.  interrupts disabled
  3387.  
  3388. Bitfields for SK-UPPS receive status:
  3389. Bit(s)    Description    (Table 2057)
  3390.  0-2    reserved (0), currently unused
  3391.  3    frame check sequence (FCS) error
  3392.  4    overflow (frame too long)
  3393.  5    framing error
  3394.  6    reserved (0), currently unused
  3395.  7    non-LLC frame (see 8 of PCB's protocol mode field)
  3396.  8-15    reserved (0), currently unused
  3397. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  3398.       matching the specified frame type is received. A received frame is
  3399.       passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  3400.       is LENGTH bytes.
  3401.     The receive status passed to the Receive Upcall in register AL is
  3402.       always zero, except for protocols using "non-LLC" mode (8 of PCB's
  3403.       protocol mode field) or "promiscuous" mode together with "receive
  3404.       error frames" (0 & 3).
  3405.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  3406.       Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  3407.       must point to an Mbuf, which the DLI will then pass to the RELEASE
  3408.       BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  3409.  
  3410. (Table 2058)
  3411. Values SK-UPPS Event Upcall is called with:
  3412.  AX = event code (see #2059)
  3413. Note:    All Event Upcalls may be ignored by the protocol.
  3414.  
  3415. (Table 2059)
  3416. Values for SK-UPPS Event Upcall event code:
  3417.  00h    EV_BUFFER_AVAILABLE client may now call REQUEST BUFFER (AX=0004h)
  3418.  01h    EV_ISR_START        start of Interrupt Service Routine
  3419.  02h    EV_ISR_END        end of ISR (see bit 1 in PCB's protocol mode field)
  3420.  03h    EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  3421.  04h    EV_NETWORK_STATUS   DLI 2.8+ network status (DX=status; see below)
  3422.  05h    EV_IO_CONTROL        DLI 2.8+ I/O control (DX=subfunction; see AX=0016h)
  3423.  
  3424. Bitfields for EV_NETWORK_STATUS in register DX:
  3425. Bit(s)    Description    (Table 2060)
  3426.     Token-Ring        FDDI
  3427.  15    SIGNAL_LOSS        SIGNAL_LOSS
  3428.  14    HARD_ERROR        HARD_ERROR
  3429.  13    SOFT_ERROR        SOFT_ERROR
  3430.  12    TRANSMIT_BEACON        TRANSMIT_BEACON
  3431.  11    LOBE_WIRE_FAULT        PATH_TEST_FAILED
  3432.  10    AUTO_REMOVAL        SELF_TEST_REQUIRED
  3433.  9    reserved        reserved
  3434.  8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  3435.  7    COUNTER_OVERFLOW    reserved
  3436.  6    SINGLE_STATION        DUPLICATE_ADDRESS
  3437.  5    RING_RECOVERY        NO_RING_OP_STATUS
  3438.  4    reserved        VERSION_MISMATCH
  3439.  3    reserved        STUCK_BYPASS
  3440.  2    reserved        FDDI_EVENT
  3441.  1    reserved        RING_OP_CHANGE
  3442.  0    reserved        reserved
  3443. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  3444. --------N-7C0008-----------------------------
  3445. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  3446.     AX = 0008h
  3447.     BX = protocol ID (see #2054)
  3448. Return: AX = completion code (see #2051)
  3449. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  3450.       they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  3451.     all multicast addresses registered for this protocol will be disabled.
  3452.     after this function returns, the protocol's Upcall routines will no
  3453.       longer be called.
  3454. SeeAlso: AX=0007h,AX=000Bh
  3455. --------N-7C0009-----------------------------
  3456. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  3457.     AX = 0009h
  3458.     BX = protocol ID (see #2054)
  3459.     ES:DI -> multicast address (6 bytes)
  3460. Return: AX = completion code (see #2051)
  3461. Notes:    The broadcast address is always enabled.
  3462.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  3463.       (AX=0007h) to receive all multicast frames.
  3464. SeeAlso: AX=000Ah,AX=0014h
  3465. --------N-7C000A-----------------------------
  3466. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  3467.     AX = 000Ah
  3468.     BX = protocol ID (see #2054)
  3469.     ES:DI -> multicast address (6 bytes)
  3470. Return: AX = completion code (see #2051)
  3471. SeeAlso: AX=0009h,AX=0014h
  3472. --------N-7C000B-----------------------------
  3473. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  3474.     AX = 000Bh
  3475.     ES:DI -> protocol ID buffer
  3476.     CX = number of 2-byte protocol IDs that may be stored in buffer
  3477. Return: AX = completion code (see #2051)
  3478.     CX = number of active protocols (regardless of value returned in AX)
  3479.     protocol ID buffer filled with active protocol IDs
  3480. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3481.       which provides an API on top of its Data Link Interface, allowing the
  3482.       use of any of several network transport layers
  3483. Note:    If the buffer supplied is too small, CX still contains the total number
  3484.       of active protocols and the buffer has been filled until full.
  3485. SeeAlso: AX=000Ch,AX=0014h
  3486. --------N-7C000C-----------------------------
  3487. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  3488.     AX = 000Ch
  3489.     BX = protocol ID (see #2054,AX=000Bh)
  3490.     ES:DI -> Protocol Status Block (see #2061)
  3491. Return: AX = completion code (see #2051)
  3492. SeeAlso: AX=000Bh,AX=0014h
  3493.  
  3494. Format of SK-UPPS Protocol Status Block (PSB):
  3495. Offset    Size    Description    (Table 2061)
  3496.  00h    DWORD    -> ASCIZ protocol name
  3497.  04h    WORD    protocol mode (see #2055)
  3498.  06h    WORD    protocol type (see AX=0007h)
  3499.  08h    WORD    number of registered multicasts (see AX=0009h,AX=0014h)
  3500. --------N-7C000D-----------------------------
  3501. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  3502.     AX = 000Dh
  3503.     BX = flag: 0=don't clear statistics, 1=clear statistics
  3504.     ES:DI -> Statistics Data Block (see #2062)
  3505. Return: AX = completion code (see #2051)
  3506. SeeAlso: AX=0002h,AX=0015h
  3507.  
  3508. Format of SK-UPPS Statistics Data Block (SDB):
  3509. Offset    Size    Description    (Table 2062)
  3510.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  3511.  04h    DWORD    bytes received
  3512.  08h    DWORD    bytes transmitted
  3513.  0Ch    DWORD    frames received
  3514.  10h    DWORD    frames transmitted
  3515.  14h    DWORD    multicast bytes received
  3516.  18h    DWORD    multicast frames received
  3517.  1Ch    DWORD    unrecognized frames
  3518.  20h    WORD    missed frames
  3519.  22h    WORD    frame check sequence (FCS) errors
  3520.  24h    WORD    framing errors
  3521.  26h    WORD    babbling errors
  3522.  28h    WORD    late collision errors
  3523.  2Ah    WORD    loss of carrier errors
  3524.  2Ch    WORD    16 retries failed errors
  3525.  2Eh    WORD    overflow errors
  3526. Note:    fields 26h through 2Ch are always zero, except in some very old
  3527.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  3528.       more detailed information.
  3529. --------N-7C000E-----------------------------
  3530. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  3531.     AX = 000Eh
  3532.     ES:DI -> Driver Information Block (see #2063)
  3533.     BX = offset of 1st field within DIB to be returned
  3534.     CX = number of bytes to be returned
  3535. Return: AX = completion code (see #2051)
  3536.     CX = number of bytes copied (regardless of value returned in AX)
  3537. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3538.       which provides an API on top of its Data Link Interface, allowing the
  3539.       use of any of several network transport layers
  3540. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  3541.  
  3542. Format of SK-UPPS Driver Information Block (DIB):
  3543. Offset    Size    Description    (Table 2063)
  3544.  00h  6 BYTEs    physical node address (from adapter's ROM)
  3545.  06h  6 BYTEs    current node address (see AX=0003h)
  3546.  0Ch    BYTE    adapter id (defined by OEM)
  3547.  0Dh    BYTE    IRQ line (FFh if none)
  3548.  0Eh    DWORD    -> shared memory (zero if none)
  3549.  12h    DWORD    size of shared memory (zero if none)
  3550.  16h    WORD    base I/O port (zero if none)
  3551.  18h    BYTE    DMA line (FFh if none)
  3552.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  3553.  1Ah    WORD    size of an Mbuf's DATA area (see #2052)
  3554.  1Ch  2 BYTEs    reserved (currently unused)
  3555.  1Eh    WORD    total number of Mbufs the DLI has
  3556.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  3557.           BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  3558.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  3559.  22h    DWORD    -> ASCIZ adapter name
  3560.  26h    WORD    number of I/O ports used (zero if none)
  3561.  28h    DWORD    line speed in bits/sec.
  3562. --------N-7C000F-----------------------------
  3563. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  3564.     AX = 000Fh
  3565.     ES:BX -> Mbuf (see #2052)
  3566. Return: nothing
  3567. Notes:    A protocol may call this function instead of returning the Mbuf
  3568.       directly from the Receive Upcall if it is running in "promiscuous",
  3569.       "hook" or "chain" mode.
  3570. SeeAlso: AX=0007h
  3571. --------N-7C0010-----------------------------
  3572. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  3573.     AX = 0010h
  3574. Return: nothing
  3575. Notes:    An application having no active protocols may call this function to
  3576.       prevent the DLI from unloading.
  3577. SeeAlso: AX=0001h,AX=0011h
  3578. --------N-7C0011-----------------------------
  3579. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  3580.     AX = 0011h
  3581. Return: nothing
  3582. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3583.       which provides an API on top of its Data Link Interface, allowing the
  3584.       use of any of several network transport layers
  3585. SeeAlso: AX=0010h
  3586. --------N-7C0012-----------------------------
  3587. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  3588.     AX = 0012h
  3589.     DX = protocol ID (see #2054)
  3590. Return: AX = completion code (see #2051)
  3591.     if AX=0000h: ES:BX -> Mbuf (see #2052)
  3592. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  3593.       REQUEST BUFFER (AX=0004h) should be used instead.
  3594. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  3595. --------N-7C0013-----------------------------
  3596. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  3597.     AX = 0013h
  3598.     ES:BX -> Mbuf (see #2052)
  3599. Return: nothing
  3600. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  3601.     The Mbuf may no more be used by the protocol in any way (i.e. the
  3602.       Mbuf's IN USE field may not be polled).
  3603. SeeAlso: AX=0004h,AX=0013h
  3604. --------N-7C0014-----------------------------
  3605. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  3606.     AX = 0014h
  3607.     BX = protocol ID (see #2054,AX=000Bh)
  3608.     ES:DI -> multicast address buffer
  3609.     CX = number of 6-byte multicast addresses that may be stored in buffer
  3610. Return: AX = completion code (see #2051)
  3611.     CX = number of registered multicast addresses for this protocol
  3612.       (regardless of value returned in AX)
  3613.     multicast address buffer filled with multicast addresses registered for
  3614.       this protocol
  3615. Note:    If the buffer supplied is too small, CX still contains the total number
  3616.       of registered multicast addresses for this protocol and the buffer
  3617.       has been completely filled
  3618. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  3619. --------N-7C0015-----------------------------
  3620. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  3621.     AX = 0015h
  3622.     ES:DI -> media-specific statistics buffer (see #2064,#2065,#2066)
  3623.     BX = offset of 1st field within MSS to be returned
  3624.     CX = number of bytes to be returned
  3625. Return: AX = completion code (see #2051)
  3626.     CX = number of bytes copied (regardless of value returned in AX)
  3627. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  3628. SeeAlso: AX=0000h,AX=000Dh
  3629.  
  3630. Format of SK-UPPS media-specific statistics for Ethernet:
  3631. Offset    Size    Description    (Table 2064)
  3632.  00h    DWORD    alignment errors
  3633.  04h    DWORD    frame check sequence (FCS) errors
  3634.  08h    DWORD    single collision frames
  3635.  0Ch    DWORD    multiple collision frames
  3636.  10h    DWORD    signal quality error (SQE) test errors
  3637.  14h    DWORD    deferred transmissions
  3638.  18h    DWORD    late collisions
  3639.  1Ch    DWORD    excessive collisions
  3640.  20h    DWORD    internal MAC transmit errors
  3641.  24h    DWORD    carrier sense errors
  3642.  28h    DWORD    excessive deferrals
  3643.  2Ch    DWORD    frame too longs
  3644.  30h    DWORD    in range length errors
  3645.  34h    DWORD    out of range length fields
  3646.  38h    DWORD    internal MAC receive errors
  3647.  
  3648. Format of SK-UPPS media-specific statistics for FDDI:
  3649. Offset    Size    Description    (Table 2065)
  3650.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  3651.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  3652.           5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  3653.  08h    DWORD    SMT frames sent
  3654.  0Ch    DWORD    SMT frames received
  3655.  10h    DWORD    SMT ring up count
  3656.  14h  6 BYTEs    MAC upstream neighbour
  3657.  1Ah  6 BYTEs    MAC downstream neighbour
  3658.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  3659.  24h    DWORD    MAC error counter ( " )
  3660.  28h    DWORD    MAC lost counter ( " )
  3661.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  3662.           is reported as the absolute value of the exponent)
  3663.  2Dh    BYTE    port 2 link error estimate ( " )
  3664.  2Eh  2 BYTEs    reserved (currently unused)
  3665.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  3666.           2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  3667.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  3668.  
  3669. Format of SK-UPPS media-specific statistics for Token-Ring:
  3670. Offset    Size    Description    (Table 2066)
  3671.  00h  6 BYTEs    upstream neighbour
  3672.  06h    WORD    local ring number
  3673.  08h    DWORD    ring up count
  3674.  0Ch    DWORD    signal loss errors
  3675.  10h    DWORD    lobe wire faults
  3676.  14h    DWORD    ring recovery count
  3677.  18h    DWORD    line errors
  3678.  1Ch    DWORD    burst errors
  3679.  20h    DWORD    ARI/FCI errors
  3680.  24h    DWORD    lost frame errors
  3681.  28h    DWORD    receive congestion errors
  3682.  2Ch    DWORD    frame copied errors
  3683.  30h    DWORD    token errors
  3684.  34h    DWORD    DMA bus errors
  3685.  38h    DWORD    DMA parity errors
  3686.  3Ch    DWORD    receive overflow errors
  3687. --------N-7C0016-----------------------------
  3688. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  3689.     AX = 0016h
  3690.     DX = subfunction; bits 14-15 specify direction of I/O:
  3691.         00 no data at all (ES:BX undefined)
  3692.         01 driver -> application (GET)
  3693.         10 application -> driver (SET)
  3694.         11 both directions (GET/SET)
  3695.     ES:BX -> I/O buffer (optional)
  3696.     CX = size of buffer (if ES:BX valid)
  3697. Return: AX = completion code; defined by OEM
  3698. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  3699.       which provides an API on top of its Data Link Interface, allowing the
  3700.       use of any of several network transport layers
  3701. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  3702.     subfunction codes are defined by OEMs
  3703. SeeAlso: AX=0001h
  3704. --------N-7C0017-----------------------------
  3705. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  3706.     AX = 0017h
  3707. Return: AX = completion code (see #2051)
  3708. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  3709.     must be called with interrupts disabled; when the client re-enables
  3710.       interrupts, an interrupt will be generated and reported to the client
  3711.       through an Event Upcall (see AX=0007h [EV_ISR_START/EV_ISR_END])
  3712. SeeAlso: AX=0007h
  3713. --------t-7D---------------------------------
  3714. INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  3715. Note:    this interface has been moved to INT 2D; there are no known
  3716.       implementations on INT 7D
  3717. SeeAlso: INT 2D,INT 2F
  3718. --------S-7D---------------------------------
  3719. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  3720. SeeAlso: INT 7E"YTERM"
  3721. --------E-7D---------------------------------
  3722. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  3723. Note:    this vector is overwritten when GO32 starts but is not restored by
  3724.       early versions of the extender
  3725. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  3726. --------U-7D---------------------------------
  3727. INT 7D - HyperPAD v2.2 - API ACCESS
  3728. Note:    this vector is hooked but immediately passed on (without checking
  3729.       whether the previous handler was 0000h:0000h).  The sole purpose of
  3730.       this vector is to provide the address of the data area described
  3731.       below.
  3732.  
  3733. Format of HyperPAD data area:
  3734. Offset    Size    Description    (Table 2067)
  3735.  -16h    DWORD    pointer to ??? FAR function
  3736.  -12h    DWORD    pointer to callback setting function
  3737.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  3738.  -0Eh 6 BYTEs    signature "BRC001"
  3739.  -08h    DWORD    pointer to previous INT 7D handler
  3740.  -04h    DWORD    pointer to ??? data
  3741.  00h        HyperPAD INT 7D handler
  3742. ----------7D---------------------------------
  3743. INT 7D - IBM DOS 6.1 E.EXE - ???
  3744. Note:    E.EXE checks whether this interrupt is in use (not 0000h:0000h),
  3745.       and if it is used, attempts to load E55VGA.EX instead of the 
  3746.       default E.EX overlay.     However, E55VGA.EX is not included in
  3747.       IBM DOS 6.1.
  3748. ----------7D00-------------------------------
  3749. INT 7D - SCSILink - RESET SCSI BUS
  3750.     AH = 00h
  3751. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  3752.       cross assemblers and similar products to communicate with Cross
  3753.       Products hardware debuggers
  3754. Desc:    reset all devices on the SCSI bus
  3755. Note:    the installation check is the signature "SCSILINK" immediately prior
  3756.       to the interrupt handler
  3757. Index:    installation check;SCSILink
  3758. ----------7D01-------------------------------
  3759. INT 7D - SCSILink - CONNECT TO TARGET
  3760.     AH = 01h
  3761.     AL = target ID
  3762. Return: CF clear if successful
  3763.     CF set on error
  3764.         AL = initiator error
  3765.         AH = target error
  3766. Desc:    arbitrate the use of the bus and select the specified target device
  3767. ----------7D02-------------------------------
  3768. INT 7D - SCSILink - SEND COMMAND
  3769.     AH = 02h
  3770.     ES:BX -> parameter block (see #2068)
  3771. Return: CF clear if successful
  3772.     CF set on error
  3773.         AL = initiator error
  3774.         AH = target error
  3775. Desc:    send the specified command block to the target device and perform any
  3776.       related I/O
  3777.  
  3778. Format of SCSILink parameter block:
  3779. Offset    Size    Description    (Table 2068)
  3780.  00h    DWORD    size of command block
  3781.  04h    DWORD    address of command block (see #2069)
  3782.  08h    DWORD    size of buffer
  3783.  0Ch    DWORD    address of buffer
  3784.  
  3785. Format of SCSILink command block:
  3786. Offset    Size    Description    (Table 2069)
  3787.  00h        info not yet available
  3788. ----------7D03-------------------------------
  3789. INT 7D - SCSILink - SET TIMEOUT
  3790.     AH = 03h
  3791.     AL = timeout selector (see #2070)
  3792.     BX = new value in 55ms ticks
  3793. Desc:    change an internal timeout value to allow communication with very
  3794.       slow targets
  3795.  
  3796. (Table 2070)
  3797. Values for SCSILink timeout selector:
  3798.  00h    time to wait for bus (default 18)
  3799.  01h    time to wait for new phase (default 5)
  3800.  02h    maximum time to send/receive block (default 18)
  3801.  03h    time to wait for reselect (default 180)
  3802. ----------7D04-------------------------------
  3803. INT 7D - SCSILink - GET ERROR STRING
  3804.     AH = 04h
  3805.     AL = error number
  3806. Return: ES:BX -> ASCIZ error string for error number
  3807. ----------7D05-------------------------------
  3808. INT 7D - SCSILink - GET ADDRESS
  3809.     AH = 05h
  3810. Return: AL = DMA channel
  3811.     AH = initiator ID
  3812.     BX = card address
  3813. Desc:    determine the current hardware configuration
  3814. ----------7D06-------------------------------
  3815. INT 7D - SCSILink - PUT DATA
  3816.     AH = 06h
  3817.     CX = number of bytes to store (0001h-0100h)
  3818.     ES:BX -> data to be saved
  3819. Return: CF clear if successful
  3820.     CF set on error
  3821.         AL = error code (01h = too much data)
  3822. Note:    the specified data is stored in SCSILink's PSP
  3823. SeeAlso: AH=07h
  3824. ----------7D07-------------------------------
  3825. INT 7D - SCSILink - GET DATA
  3826.     AH = 07h
  3827.     CX = number of bytes to retrieve (0001h-0100h)
  3828.     ES:BX -> buffer for data
  3829. Return: CF clear if successful
  3830.     CF set on error
  3831.         AL = error code (01h = too much data)
  3832. Note:    retrieve data previously stored with AH=06h
  3833. SeeAlso: AH=06h
  3834. ----------7D08-------------------------------
  3835. INT 7D - SCSILink - TERMINATE SESSION
  3836.     AH = 08h
  3837. Desc:    indicate to any other programs that intercept INT 7D that the program
  3838.       has finished with the link
  3839. Note:    the program should call this function even if a SCSI error caused its
  3840.       termination
  3841. ----------7D09-------------------------------
  3842. INT 7D - SCSILink - POLL REQUEST
  3843.     AH = 09h
  3844.     AL = target ID
  3845. Return: AL = status
  3846.         FEh resident driver experienced SCSI error
  3847.         FFh resident driver handleded event
  3848. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  3849.       not specifically handled by the calling program
  3850. Notes:    this service exists so that resident disk servers, etc. can continue
  3851.       running even while debuggers and profilers are active
  3852.     the resident driver assumes that a connection has been established and
  3853.       attempts to leave the target connected
  3854. --------*-7E---------------------------------
  3855. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  3856. --------S-7E---------------------------------
  3857. INT 7E U - YTERM 1.4 - ???
  3858. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  3859. --------E-7E---------------------------------
  3860. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  3861. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3862.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3863. Note:    this vector is overwritten when GO32 starts but is not restored by
  3864.       early versions of the extender
  3865. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  3866. --------m-7E5857BL57-------------------------
  3867. INT 7E - XLOAD - INSTALLATION CHECK
  3868.     AX = 5857h
  3869.     BL = 57h
  3870. Return: AX = 0000h if installed
  3871. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  3872. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  3873. --------m-7E5857BL5A-------------------------
  3874. INT 7E - XLOAD - GET ???
  3875.     AX = 5857h
  3876.     BL = 5Ah
  3877. Return: AX = 0000h
  3878.     CX = ???
  3879.     DS:SI -> ???
  3880. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  3881. --------m-7E5857BL5B-------------------------
  3882. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  3883.     AX = 5857h
  3884.     BL = 5Bh
  3885. Return: AX = 0000h
  3886.     CX = segment of XLOAD TSR
  3887.     DX = size of memory block in which XLOAD TSR is located
  3888. SeeAlso: AX=5857h/BL=57h/AX=5857h/BL=5Ah
  3889. --------V-7F---------------------------------
  3890. INT 7F - IBM XGA - ???
  3891. --------V-7F---------------------------------
  3892. INT 7F - Halo88 - API
  3893.     BX = function number (see #2071)
  3894.     additional parameters on stack
  3895. Return: ???
  3896. Program: Halo88 is a suite of graphics routines
  3897. Note:    according to Stuart Kemp, the code appears to make no provisions for
  3898.        chaining
  3899.  
  3900. (Table 2071)
  3901. Values for Halo88 API function:
  3902.  64h    arc
  3903.  65h    bar
  3904.  66h    box
  3905.  67h    circle
  3906.  68h    clr
  3907.  69h    default hatch style
  3908.  6Ah    default line style
  3909.  6Bh    delhcur
  3910.  6Ch    delln / deltcur
  3911.  6Dh    ellipse
  3912.  6Eh    fill
  3913.  6Fh    flood
  3914.  70h    flood2
  3915.  71h    init graphics
  3916.  72h    init hcur
  3917.  73h    init marker
  3918.  74h    init tcur
  3919.  75h    inqarc
  3920.  76h    inqbknd
  3921.  77h    inqclr
  3922.  78h    inqerr
  3923.  79h    inqgcur
  3924.  7Ah    inqhcur
  3925.  7Bh    inqmarker
  3926.  7Dh    inqtcur
  3927.  7Eh    inqtext
  3928.  7Fh    lnabs
  3929.  80h    lnrel
  3930.  81h    markerabs
  3931.  82h    markerrel
  3932.  83h    moveabs
  3933.  84h    movehcurabs
  3934.  85h    movehcurrel
  3935.  86h    moverel
  3936.  87h    movetcurabs
  3937.  88h    movetcurrel
  3938.  89h    movefrom
  3939.  8Ah    moveto
  3940.  8Bh    pie
  3941.  8Ch    polylnabs
  3942.  8Dh    polylnrel
  3943.  8Eh    ptabs
  3944.  8Fh    ptrel
  3945.  91h    setasp
  3946.  92h    set color
  3947.  93h    set font
  3948.  94h    set hatch    style
  3949.  95h    set line style
  3950.  97h    settext
  3951.  98h    set text color
  3952.  99h    btext
  3953.  9Ah    setseg
  3954.  9Bh    display
  3955.  9Ch    setscreen
  3956.  9Eh    close graphics
  3957.  9Fh    ftinit
  3958.  A0h    ftlocate
  3959.  A1h    ftext
  3960.  A5h    set viewport
  3961.  A6h    set window
  3962.  A7h    set world
  3963.  AAh    ftcolor
  3964.  ACh    initlp
  3965.  ADh    inqasp
  3966.  AEh    inqdev
  3967.  AFh    inqdisplay
  3968.  B0h    inqft
  3969.  B1h    inqftcolor
  3970.  B2h    inqinterlace
  3971.  B3h    inqlpa
  3972.  B4h    inqlpg
  3973.  B5h    inqmode
  3974.  B6h    inqscreen
  3975.  B7h    inqversion
  3976.  B8h    roam
  3977.  B9h    scroll
  3978.  BAh    setieee
  3979.  BBh    set interlace
  3980.  BCh    shift
  3981.  BDh    start graphics
  3982.  BEh    vpan
  3983.  CBh    gwrite
  3984.  CCh    gread
  3985.  CDh    setxor
  3986.  CEh    rbox
  3987.  CFh    rcir
  3988.  D0h    rlnabs
  3989.  D1h    rlnrel
  3990.  D2h    delbox
  3991.  D3h    delcir
  3992.  D5h    setseg2
  3993.  DCh    worldoff
  3994.  DDh    mapwtod
  3995.  DEh    mapdtow
  3996.  DFh    mapwton
  3997.  E0h    mapntow
  3998.  E1h    mapdton
  3999.  E2h    mapntod
  4000.  E3h    inqworld
  4001.  E4h    inqviewport
  4002.  E5h    set line width
  4003.  E6h    lnjoint
  4004.  E7h    set locator
  4005.  E8h    read locator
  4006.  E9h    setdev
  4007.  EBh    setstext
  4008.  ECh    setstclr
  4009.  EDh    setstang
  4010.  EEh    stext
  4011.  EFh    inqstext
  4012.  F0h    setdegree
  4013.  F1h    inqstsize
  4014.  F2h    polyfabs
  4015.  F3h    polyfrel
  4016.  F4h    inqdrange
  4017.  F5h    inqstang
  4018.  F6h    orglocator
  4019.  F7h    inqlocator
  4020.  F8h    inqarea
  4021.  F9h    setipal
  4022.  FAh    setborder
  4023.  FBh    inqcrange
  4024.  FEh    setclip
  4025.  FFh    fcir
  4026. 100h    setcrange
  4027. 101h    setdrange
  4028. 102h    setlattr
  4029. 103h    polycabs
  4030. 104h    polycrel
  4031. 108h    memcom
  4032. 109h    memexp
  4033. 10Ah    memmov
  4034. 10Eh    movefx
  4035. 10Fh    movetx
  4036. 110h    inqrgb
  4037. 111h    save image
  4038. 112h    restore image
  4039. 113h    setapal
  4040. 114h    setxpal
  4041. 118h    inqtsize
  4042. 12Eh    gprint
  4043. 130h    setprn
  4044. 131h    setpattr
  4045. 133h    setbattr
  4046. 135h    pexpand
  4047. 136h    ptnorm
  4048. 137h    pfnorm
  4049. 13Bh    inqprn
  4050. 13Ch    lopen
  4051. 13Dh    lclose
  4052. 13Eh    lappend
  4053. 13Fh    lrecord
  4054. 140h    lswitch
  4055. 142h    inqfun
  4056. 15Dh    lsetup
  4057. 15Eh    lrest
  4058. 15Fh    lsave
  4059. --------N-7F---------------------------------
  4060. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  4061.     AL = request ID
  4062.         01h "Request"/"RequestDirect"
  4063.         ES:BX -> pRq
  4064.         DX ignored
  4065.         04h "Wait"
  4066.         ES:BX -> ppMsgRet
  4067.         DX = exchange
  4068.         05h "AllocExch"
  4069.         ES:BX -> pExchRet
  4070.         06h "DeAllocExch"
  4071.         DX = exchange
  4072.         07h "Check"
  4073.         ES:BX -> ppMsgRet
  4074.         DX = exchange
  4075.     CX = 4354h ('CT')
  4076. Return: AX = status
  4077.         0000h successful
  4078. --------S-7F---------------------------------
  4079. INT 7F - Telebit ACS SERIAL I/O
  4080.     ES:SI-> parameter block (see #2072)
  4081. Return: CF set on error
  4082.     CF clear on success
  4083. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  4084.       handler; this serves as the installation check
  4085. Index:    installation check;Telebit ACS Serial I/O
  4086.  
  4087. Format of Telebit ACS parameter block:
  4088. Offset    Size    Description    (Table 2072)
  4089.  00h    BYTE    command (see #2073)
  4090.  01h    BYTE    gateway number
  4091.  02h    BYTE    reserved
  4092.  03h    BYTE    port
  4093.  04h 17 BYTEs    auxiliary buffer
  4094.  15h    BYTE    session
  4095.  16h    WORD    count of bytes passed to API
  4096.  18h    DWORD    buffer pointer passed to/from API
  4097.  1Ch    WORD    count of bytes passed from API
  4098.  1Eh    BYTE    return code (see #2074)
  4099.  
  4100. (Table 2073)
  4101. Values for Telebit ACS command:
  4102.  3Ch    status
  4103.  3Dh    connect
  4104.  3Eh    disconnect
  4105.  3Fh    read
  4106.  40h    data/command write
  4107.  41h    clear receive buffer
  4108.  42h    get configuration
  4109.  43h    get receiver status
  4110.  44h    raw write
  4111.  45h    search servers
  4112.  46h    set transmit buffer size
  4113.  
  4114. (Table 2074)
  4115. Values for Telebit ACS return code:
  4116.  00h    success
  4117.  01h    invalid session
  4118.  05h    servername invalid
  4119.  06h    NetWare fileserver bindery is locked
  4120.  07h    communication server not active
  4121.  08h    general failure in NetWare fileserver
  4122.  09h    not logged into a fileserver
  4123.  10h    connection table full
  4124.  11h    no response from communication server
  4125.  12h    connection attempt terminated abnormally
  4126.  13h    connection refused - no sessions available
  4127.  14h    gateway number/port already in use
  4128.  15h    invalid connection response
  4129.  16h    port invalid
  4130.  17h    incorrect version in server response
  4131.  18h    gateway number/port combination not configured
  4132.  19h    initialization has not been completed
  4133.  20h    no more sockets are available
  4134.  21h    no active poolname
  4135.  23h    FATAL internal interface error
  4136.  24h    registration of host workstation failed - name is already in use
  4137.  25h    registration of host workstation failed - workstation name table full
  4138.  26h    registration of host workstation failed - only one session may be
  4139.       registered for dial-in
  4140.  FFh    Telebit ACS API is busy - retry later
  4141. --------N-7F---------------------------------
  4142. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  4143. Notes:    the installation check consists of checking for the signature "Lynn"
  4144.       in the four bytes preceding the interrupt handler; if present, the
  4145.       current program is running as a DOS task on a non-dedicated NetWare
  4146.       2.x file server.
  4147.     Before placing the server into "console" mode, it is recommended that
  4148.       NetWare broadcast messages be disabled with INT 21/AX=DE00h.
  4149. SeeAlso: INT 21/AX=DE00h
  4150. Index:    installation check;non-dedicated NetWare server
  4151. --------S-7F---------------------------------
  4152. INT 7F U - YTERM - ???
  4153. SeeAlso: INT 7E"YTERM"
  4154. --------E-7F---------------------------------
  4155. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  4156. Note:    this vector is overwritten when GO32 starts but is not restored by
  4157.       early versions of the DOS extender
  4158. SeeAlso: INT 0F,INT 7E"GO32"
  4159. ----------7F---------------------------------
  4160. INT 7F - Canon IXHND2 Scanner Interface
  4161. --------N-7F---------------------------------
  4162. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  4163. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  4164.       MW386 multitasking system is present (i.e. signature "NXNX")
  4165.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  4166.       load time.  To determine the actual vector used, open the device
  4167.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  4168.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  4169.       be the actual interrupt number being used; the other interrupts may
  4170.       be found with INT 7F/AH=09h/CL=03h
  4171. --------N-7F---------------------------------
  4172. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  4173. Note:    a program may determine that it is running on an ANSK Slave by checking
  4174.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  4175.       address is RAM, and should not be written.  However, the above check
  4176.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  4177.       device driver
  4178. --------N-7F00-------------------------------
  4179. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  4180.     AH = 00h
  4181.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4182. Return: AL = status (see #2075)
  4183.     AH = semaphore owner if status=02h
  4184. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  4185.  
  4186. (Table 2075)
  4187. Values for Alloy function status:
  4188.  00h    successful
  4189.  01h    invalid function
  4190.  02h    semaphore already locked
  4191.  03h    unable to lock/unlock semaphore
  4192.  04h    semaphore space exhausted
  4193.  05h    host/target PC did not respond (NTNX)
  4194. --------N-7F00-------------------------------
  4195. INT 7F - G8BPQ - proposed addition - GET NODE/SWITCH VERSION AND DESCRIPTION
  4196.     AH = 00h
  4197.     ES:SI -> buffer for "USERS" text string
  4198. Return: AH = major version
  4199.     AL = minor version
  4200.     CX = length of returned string
  4201. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4202.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4203. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  4204. --------N-7F01-------------------------------
  4205. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  4206.     AH = 01h
  4207.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4208. Return: AL = status (see #2075)
  4209.     AH = semaphore owner if status=02h
  4210. SeeAlso: AH=00h,AH=02h,AH=41h
  4211. --------V-7F01-------------------------------
  4212. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  4213.     AH = 01h
  4214. Return: BX = 1234h if installed
  4215.         DX:AX -> array of FAR entry points
  4216.         CH = driver major version
  4217.         CL = driver minor version
  4218. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  4219. SeeAlso: AX=1234h,AX=4321h
  4220. --------N-7F01-------------------------------
  4221. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  4222.     AH = 01h
  4223.     AL = stream number (01h-40h)
  4224.     CL = new application flags
  4225.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  4226.     DL = new application mask
  4227. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4228.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4229. Note:    INT 7Fh is the default, which may be changed in the configuration file
  4230.       for v4.03+
  4231. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  4232. --------I-7F0104BX0000-----------------------
  4233. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  4234.     AX = 0104h (HLLAPI gate ID)
  4235.     BX = 0000h
  4236.     DS:SI -> parameter control block (see #2076)
  4237. Return: parameter control block updated
  4238. Note:    the installation check for the Novell HLLAPI TSR is the signature
  4239.       string "CXI" (for the company Novell bought) immediately prior to
  4240.       the interrupt handler
  4241. SeeAlso: AX=0105h,AX=ABCDh
  4242.  
  4243. Format of HLLAPI parameter control block:
  4244. Offset    Size    Description    (Table 2076)
  4245.  00h  3 BYTEs    signature = 'PCB'
  4246.  03h    BYTE    function number (see #2077,#2078)
  4247.  04h    WORD    segment of control string
  4248.  06h    WORD    offset of control string
  4249.  08h    WORD    length of control string, unless explicit end-of-str char set
  4250.  0Ah    BYTE    unused (IBM)
  4251.         ControlString[0] (Rabbit)
  4252.  0Bh    WORD    return code (see #2080)
  4253.  0Dh    WORD    maximum length of control string (IBM)
  4254.         unused (Rabbit)
  4255.  
  4256. (Table 2077)
  4257. Values for HLLAPI function number:
  4258.  00h    OEM function (Query system for Attachmate implementation)
  4259.  01h    Connect presentation space
  4260.  02h    Disconnect presentation space
  4261.  03h    Send string of keystrokes as if typed from keyboard
  4262.  04h    Wait ~60s, returns status of presentation space
  4263.  05h    Copy current presentation space into a user-defined buffer
  4264.  06h    Search presentation space for first occurrence of a specified string
  4265.  07h    Query cursor location in current presentation space
  4266.  08h    Copy part or all of current presentation space into user buffer
  4267.  09h    Set session parameters; parameters vary by vendor (see #2079)
  4268.  0Ah    Get info on sessions currently connected
  4269.  0Bh    Lock current presentation space
  4270.  0Ch    Unlock previously locked presentation space
  4271.  0Dh    Return copy of operator info area (OIA) of current presentation space
  4272.  0Eh    get attribute byte for given position in the current presentation space
  4273.  0Fh    copy string of characters to the current presentation space
  4274.  10h    workstation control functions
  4275.  11h    storage manager functions, intended primarily for BASIC applications
  4276.     (not implemented by Rabbit)
  4277.  12h    set delay period in half-second intervals
  4278.  14h    get info on level of workstation support used
  4279.  15h    reset session parameters to default values
  4280.  16h    get detailed info on the current session
  4281.  17h    start host notification to application on presentation sp or OIA update
  4282.  18h    check host update when host notification enabled
  4283.  19h    stop host notification
  4284.  1Eh    search field within current presentation space for string
  4285.  1Fh    get first positionof a selected field in the current presentation space
  4286.  20h    get length of specified field
  4287.  21h    copy string into a specified field
  4288.  22h    copy specified field into a user-defined buffer
  4289.  23h    create alternate presentation space (IBM only), don't use with BASIC
  4290.  24h    switch to alternate presentation space (IBM only), not with BASIC
  4291.  25h    display cursor in specified area (IBM only), don't use with BASIC
  4292.  26h    display alternate presentation space (IBM only), don't use with BASIC
  4293.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  4294.  28h    set cursor
  4295.  29h    start Close Intercept
  4296.  2Ah    query Close Intercept
  4297.  2Bh    stop Close Intercept
  4298.  32h    start intercepting keystrokes to allow filtering
  4299.  33h    get keystrokes after turning on interception
  4300.  34h    notify operator when keystroke rejected by filter subroutine
  4301.  35h    stop intercepting keystrokes
  4302.  5Ah    send file
  4303.  5Bh    receive file
  4304.  5Ch    run a program (not implemented by Rabbit)
  4305.  5Dh    execute DOS command (not implemented by Rabbit)
  4306.  63h    change presentation space position to PC display row/col or vice versa
  4307.  65h    connect to Window Services
  4308.  66h    disconnect from Window Services
  4309.  67h    set/query window coordinates
  4310.  68h    set/query window status
  4311.  69h    change presentation space name
  4312.  78h    connect Structured Fields
  4313.  79h    disconnect Structured Fields
  4314.  7Ah    query size of communications buffer
  4315.  7Bh    allocate communications buffer
  4316.  7Ch    free communications buffer
  4317.  7Dh    get request completion state
  4318.  7Eh    read Structured Fields
  4319.  7Fh    write Structured Fields
  4320.  FFh    Get info on DCA implementation
  4321.  
  4322. (Table 2078)
  4323. Values for LLAPI function number:
  4324.  80h    initialize LLAPI (internal call)
  4325.  83h    set Session ID (one-character ID)
  4326.  84h    read Session ID (one-character ID)
  4327.  85h    lock 327x keyboard
  4328.  86h    unlock 327x keyboard
  4329.  87h    wait for Clear to Send
  4330.  88h    type ASCII character
  4331.  89h    type 327x key
  4332.  8Ah    read keyboard lock state
  4333.  8Fh    force screen update
  4334.  90h    view session
  4335.  91h    relinquish (suspend foreground until background becomes idle)
  4336.  92h    poke screen character
  4337.  93h    poke translated character
  4338.  94h    peek screen character
  4339.  95h    peek translated character
  4340.  96h    set cursor position
  4341.  97h    send scan code (Rabbit only)
  4342.  98h    synchronize (returns after keystroke queue empty)
  4343.  99h    type PC key (Rabbit only)
  4344.  
  4345. (Table 2079)
  4346. Values for HLLAPI Function 09h Session Parameters:
  4347.  ASCII        ??? (Rabbit only)
  4348.  ATTRIB        return attributes in hex
  4349.  NOATTRIB    return attributes as blanks
  4350.  CONPHYS    make physical connection
  4351.  CONLOG        only make logical connection
  4352.  EAB        copy extended attribute bytes along with data
  4353.  NOEAB        copy data only
  4354.  ESC=n        set escape character to "n" (default '@')
  4355.  EOT=n        set end of string character (default 00h)
  4356.  FPAUSE        full-duration pause
  4357.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  4358.  FTWAIT        wait for file transfer to complete (Rabbit only)
  4359.  IPAUSE        interruptable pause
  4360.  RABESC        ??? (Rabbit only)
  4361.  NORABESC    ??? (Rabbit only)
  4362.  SCANCODE    ??? (Rabbit only)
  4363.  STRLEN        use explicit string lengths
  4364.  STREOT        use terminated strings
  4365.  SRCHALL    search entire presentation space
  4366.  SRCHFROM    search from specified offset
  4367.  SRCHFRWD    search forward from position 1
  4368.  SRCHBKWD    search backward from last position in presentation space
  4369.  TIMEOUT=n    ??? (Rabbit only)
  4370.  TWAIT        wait specified time for keyboard ready
  4371.  LWAIT        wait until keyboard ready
  4372.  NWAIT        no wait
  4373.  TRON        enable tracing
  4374.  TROFF        disable tracing
  4375.  AUTORESET    send reset before sending keys with function 03h
  4376.  NORESET    don't send reset
  4377.  QUIET        don't display messages sent with INT 21/AH=09h
  4378.  NOQUIET    allow messages to be displayed
  4379.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  4380.  XLATE        translate extended attribute bytes
  4381.  NOXLATE    don't translate
  4382.  NEWRET        use HLLAPI v3.0 return code conventions
  4383.  OLDRET        use HLLAPI v2.0 return code conventions
  4384.  
  4385. (Table 2080)
  4386. Values for Windows HLLAPI return code:
  4387.  00h    successful
  4388.  01h    Presentation Space not connected/requested size unavailable
  4389.  02h    invalid function or parameter error/invalid block ID
  4390.  03h    file transfer complete
  4391.  04h    file transfer complete (segmented)/Presentation Space busy
  4392.  05h    inhibited or keyboard locked
  4393.  06h    data truncated
  4394.  07h    invalid Presentation Space position
  4395.  08h    operation not available
  4396.  09h    system error
  4397.  0Ah    blocking error
  4398.  0Bh    resource not available
  4399.  0Ch    session stopped
  4400.  14h    undefined key combination
  4401.  15h    OIA updated
  4402.  16h    Presentation Space updated
  4403.  17h    both Presentation Space and OIA updated
  4404.  18h    no such field
  4405.  19h    no keystrokes available
  4406.  1Ah    Presentation Space or Operator Information Area changed
  4407.  1Bh    file transfer aborted
  4408.  1Ch    zero-length field
  4409.  1Eh    cursor type invalid
  4410.  1Fh    keystroke overflow
  4411.  20h    another application is already connected
  4412.  22h    message sent to host cancelled
  4413.  23h    transmission from host cancelled
  4414.  24h    lost contact with host
  4415.  25h    function successful
  4416.  26h    function incomplete
  4417.  27h    a DDM session is already connected
  4418.  28h    disconnected, but asynchronous requests still pending
  4419.  29h    buffer already in use
  4420.  2Ah    no matching request found
  4421. 12Dh    invalid function number
  4422. 12Eh    file not found
  4423. 131h    access denied
  4424. 134h    out of memory
  4425. 136h    environment invalid
  4426. 137h    format invalid
  4427. 270Eh (9998) invalid Presentation Space ID
  4428. 270Fh (9999) invalid row or column code
  4429. ---Windows HLLAPI extensions---
  4430. F000h    asynchronous call already in progress
  4431. F001h    invalid asynchronous task ID
  4432. F002h    blocking call cancelled
  4433. F003h    underlying subsystem not started
  4434. F004h    unsupported application version
  4435. --------V-7F0105-----------------------------
  4436. INT 7F - HDILOAD.EXE - 8514/A VIDEO CONTROLLER INTERFACE
  4437.     AX = 0105h
  4438. Return: CF set on error
  4439.     CF clear if successful
  4440.         CX:DX -> array of FAR pointers to entry points (see #2081)
  4441. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  4442.       and then performing a FAR call via the appropriate vector of the
  4443.       entry point array
  4444. SeeAlso: AX=0104h,AX=ABCDh
  4445.  
  4446. (Table 2081)
  4447. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  4448.  08h    HOPEN
  4449.  10h    HINT
  4450.  13h    HLDPAL
  4451.  15h    HBBW
  4452.  17h    HBBR
  4453.  18h    HBBCHN
  4454.  1Dh    HQMODE
  4455.  22h    HCLOSE
  4456.  30h    HINIT
  4457.  31h    HSYNC
  4458.  39h    HSPAL
  4459.  3Ah    HRPAL
  4460. --------N-7F02-------------------------------
  4461. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  4462.     AH = 02h
  4463.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  4464. Return: AL = status (see #2075)
  4465.     AH = semaphore owner if status=02h
  4466. SeeAlso: AH=00h,AH=01h,AH=42h
  4467. --------N-7F02-------------------------------
  4468. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  4469.     AH = 02h
  4470.     AL = stream number (01h-40h)
  4471.     CX = length of frame
  4472.     ES:SI -> frame to be sent
  4473. SeeAlso: AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  4474. --------f-7F0200-----------------------------
  4475. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  4476.     AX = 0200h
  4477. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  4478. --------N-7F03-------------------------------
  4479. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  4480.     AH = 03h
  4481. Return: AL = user number
  4482.     AH = machine number (MW386)
  4483. Note:    this function call is the recommended method for a CPU-bound process to
  4484.       prevent its priority from being lowered
  4485. SeeAlso: AH=04h,AH=05h,AH=A1h
  4486. --------N-7F03-------------------------------
  4487. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  4488.     AH = 03h
  4489.     AL = stream number (01h-40h)
  4490.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  4491.           bytes is usually sufficient)
  4492. Return:    BX = number of pending frames (0000h if returned frame was last avail)
  4493.     CX = length of received frame
  4494. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  4495. --------N-7F04-------------------------------
  4496. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  4497.     AH = 04h
  4498. Return: AL = total number of users on currrent machine (MW386)
  4499.     AL = number of slaves on system (NTNX)
  4500. SeeAlso: AH=03h
  4501. --------N-7F04-------------------------------
  4502. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  4503.     AH = 04h
  4504.     AL = stream number (01h-40h)
  4505. Return: CX = state (0000h disconnected, 0001h connected)
  4506.     DX = delta state (0000h no change, 0001h changed since last check)
  4507. SeeAlso: AH=02h"G8BPQ",AH=05h"G8BPQ"
  4508. --------N-7F05-------------------------------
  4509. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  4510.     AH = 05h
  4511.     AL = function
  4512.         00h lock system (disable slave services)
  4513.         01h unlock system
  4514.         02h enable spooler
  4515.         03h disable spooler
  4516.         04h enable slave timer update
  4517.         05h disable slave timer update
  4518.         06h enable form feeds
  4519.         07h disable form feeds
  4520. SeeAlso: INT 17/AH=A4h
  4521. --------N-7F05-------------------------------
  4522. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  4523.     AH = 05h
  4524.     DX:DI -> buffer for user information record (see #2082)
  4525. Notes:    MW386 provides this function for backward compatibility only, and sets
  4526.       many of the fields to zero because they are meaningless under MW386
  4527.     this function has no effect when called by the host (user 0)
  4528. SeeAlso: AH=03h
  4529.  
  4530. Format of Alloy user information record:
  4531. Offset    Size    Description    (Table 2082)
  4532.  00h    WORD    segment of video RAM
  4533.  02h    WORD    segment of secondary copy of video RAM
  4534.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  4535.         flag nonzero if update needed
  4536.  06h    WORD    video NMI enable port
  4537.         (not used by MW386, set to 0000h)
  4538.  08h    WORD    video NMI disable port
  4539.         (not used by MW386, set to 0000h)
  4540.  0Ah    BYTE    processor type
  4541.         00h 8088
  4542.         01h V20
  4543.         02h 8086
  4544.         03h V30
  4545.         06h 80386
  4546.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  4547.         (not used by MW386, set to 0000h)
  4548.  0Dh    WORD    offset of terminal driver
  4549.         (not used by MW386, set to 0000h)
  4550.  0Fh    BYTE    port for console I/O
  4551.         (not used by MW386, set to 0000h)
  4552.  10h    WORD    offset of processor communication busy flag
  4553.         bit 7 set when slave communicating with host
  4554.  12h    WORD    pointer to FAR NX system call
  4555.         (not used by MW386, set to 0000h)
  4556.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  4557.  16h    WORD    offset of command/status word
  4558.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  4559.         nonzero if screen must be repainted
  4560.  1Ah    WORD    offset of screen repaint flag
  4561.  1Ch    WORD    pointer to NEAR NX system call
  4562.         (not used by MW386, set to 0000h)
  4563.  1Eh    WORD    offset for intercept flags
  4564.         (not used by MW386, set to 0000h)
  4565.         intercept flag = FFh if MS-DOS intercepts should be disabled
  4566.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  4567.         lock flag = FFh if backgrnd screen updates should be suspended
  4568.  22h 26 BYTEs    reserved
  4569. --------N-7F05-------------------------------
  4570. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  4571.     AH = 05h
  4572.     AL = stream number (01h-40h)
  4573. Note:    this function must be called in order to receive a report of another
  4574.       status change
  4575. SeeAlso: AH=04h"G8BPQ"
  4576. --------N-7F06-------------------------------
  4577. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  4578.     AH = 06h
  4579.     AL = drive number (1=A:, 2=B:, etc)
  4580.     ES:DI -> drive info record (see #2083)
  4581. Return: AX = status
  4582.         0000h successful
  4583.         ES:DI buffer filled
  4584.         0001h not shared drive
  4585.  
  4586. Format of Alloy drive info record:
  4587. Offset    Size    Description    (Table 2083)
  4588.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  4589.  02h    WORD    segment of allocation map (owner table)
  4590.         one byte per FAT entry, containing user ID owning that entry
  4591.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  4592.  06h    WORD    pointer to configuration file
  4593.  08h    WORD    total number of clusters
  4594.  0Ah    WORD    bytes per sector
  4595.  0Ch    WORD    sectors per cluster
  4596.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  4597. --------N-7F06-------------------------------
  4598. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  4599.     AH = 06h
  4600.     DL = drive number (1=A:,2=B:,etc)
  4601.     CX = number of clusters to allocate
  4602. Return: AH = status
  4603.         00h successful
  4604.         CX = number of clusters still free
  4605.         10h invalid shared drive request
  4606.         CL = first and second shared drives
  4607.         11h invalid cluster count (must be 01h-FFh)
  4608. --------N-7F06-------------------------------
  4609. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  4610.     AH = 06h
  4611.     AL = stream number (01h-40h)
  4612.     CX = subfunction
  4613.         0000h connect to node
  4614.         DL bit 0: use BBS callsign instead of Node Call
  4615.         0001h connect ot node
  4616.         use BBS Call if APPLMASK=1
  4617.         0002h disconnect
  4618.         0003h return user to node
  4619. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  4620. --------N-7F07-------------------------------
  4621. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  4622.     AH = 07h
  4623. Return: ES:DI -> shared drive list (see #2084)
  4624. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  4625.       be returned as shared
  4626.  
  4627. Format of Alloy shared drive list:
  4628. Offset    Size    Description    (Table 2084)
  4629.  00h    BYTE    string length
  4630.  01h    BYTE    number of shared drives
  4631.  02h  N BYTEs    one byte per shared drive
  4632. --------N-7F07-------------------------------
  4633. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  4634.     AH = 07h
  4635.     AL = stream number (01h-40h)
  4636. Return: BX = number of pending receive frames
  4637.     CX = number of unacknowledged sent frames
  4638.     DX = number of buffers available
  4639. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  4640. --------N-7F08-------------------------------
  4641. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  4642.     AH = 08h
  4643.     CL = function
  4644.         00h get original interrupt vector
  4645.         01h get Network Executive interrrupt
  4646.     AL = interrupt number
  4647.     DX:SI -> DWORD to hold interrupt vector
  4648. Return: AL = status
  4649.         00h successful
  4650.         01h interrupt vector not used by network executive
  4651.         02h invalid subfunction
  4652. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  4653.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  4654. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  4655. --------N-7F08--CL02-------------------------
  4656. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  4657.     AH = 08h
  4658.     CL = 02h
  4659.     DX = timeout in seconds
  4660. Return: AL = status
  4661.         00h successful
  4662.         02h invalid subfunction
  4663. --------N-7F08-------------------------------
  4664. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  4665.     AH = 08h
  4666.     AL = stream number (01h-40h)
  4667. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  4668.     ---v4.05+ ---
  4669.     AL = radio port to which channel is connected (level 2)
  4670.     AH = session type (see #2085)
  4671.     BX = L2 paclen for session
  4672.     CX = maximum frame size
  4673.     DX = L4 window size or 0000h if not L4 circuit
  4674. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4675.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4676. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  4677.  
  4678. Bitfields for G8BPQ session type:
  4679. Bit(s)    Description    (Table 2085)
  4680.  0    L2LINK
  4681.  1    SESSION
  4682.  2    UPLINK
  4683.  3    DOWNLIND
  4684.  5    BPQHOST
  4685. --------T-7F09-------------------------------
  4686. INT 7F - MultiLink Advanced - SET TASK PRIORITY
  4687.     AH = 09h
  4688.     AL = priority (0-7)
  4689. Note:    the installation check consists of ensuring that the interrupt vector
  4690.       is not pointing at segment 0000h, then checking whether the byte
  4691.       at offset 0000h in the interrupt handler's segment is E9h
  4692. Index:    installation check;MultiLink Advanced
  4693. --------N-7F09-------------------------------
  4694. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  4695.     AH = 09h
  4696.     AL = application
  4697.         00h node
  4698.         01h BBS
  4699.         02h HOST
  4700.         03h SYSOP
  4701.     BL = what to get (00h callsign, 01h application name)
  4702.     ES:SI -> buffer for callsign/name string
  4703. Return: CX = length of returned string
  4704. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  4705. --------N-7F09-------------------------------
  4706. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  4707.     AH = 09h
  4708.     CL = function
  4709.         00h enable checking of RTNX.MUD file
  4710.         01h disable RTNX.MUD checking
  4711. --------N-7F09--CL02-------------------------
  4712. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  4713.     AH = 09h
  4714.     CL = 02h
  4715. Note:    in dedicated mode, the host will only poll for I/O requests from the
  4716.       slave processors, and not provide workstation services
  4717. --------N-7F09--CL03-------------------------
  4718. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  4719.     AH = 09h
  4720.     CL = 03h
  4721.     AL = default interrupt number (67h,7Fh,etc)
  4722. Return: CL = actual interrupt which handles specified interrupt's calls
  4723. SeeAlso: AH=08h
  4724. --------N-7F0A--CL00-------------------------
  4725. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  4726.     AH = 0Ah
  4727.     CL = 00h
  4728.     ES:DI -> buffer for system flags (see #2086)
  4729. Return: ES:DI buffer filled
  4730. Notes:    on a slave, only the NX_Busy flag is returned
  4731.     all three flags are at fixed positions, so this function only needs to
  4732.       be called once
  4733.     an interrupt handler should only perform DOS or device accesses when
  4734.       all three flags are 00h
  4735.  
  4736. Format of Alloy system flags:
  4737. Offset    Size    Description    (Table 2086)
  4738.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  4739.  04h    DWORD    pointer to device driver busy flag
  4740.  08h    DWORD    pointer to InTimer flag
  4741. --------N-7F0A-------------------------------
  4742. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  4743.     AH = 0Ah
  4744.     AL = radio port
  4745.     ES:SI -> buffer containing data to be sent
  4746.     CX = number of bytes to send
  4747. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  4748. --------N-7F0B--CL02-------------------------
  4749. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  4750.     AH = 0Bh
  4751.     CL = 02h
  4752.     AL = slave ID number
  4753.     CH = DOS to activate
  4754.         00h graphics DOS
  4755.         01h character DOS
  4756. Return: AL = status
  4757.         00h successful
  4758.         01h nothing done, proper DOS type already loaded
  4759. --------N-7F0B-------------------------------
  4760. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  4761.     AH = 0Bh
  4762.     ES:DI -> buffer for received data (see #2087)
  4763. Return: CX = number of bytes received
  4764. Note:    the specified buffer must be large enough to receive a full frame
  4765. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  4766.  
  4767. Format of G8BPQ received data:
  4768. Offset    Size    Description    (Table 2087)
  4769.  00h    WORD    internal control information
  4770.  02h    BYTE    port number (bit 7 set if transmitted frame)
  4771.  03h    WORD    frame length including this header
  4772.  05h    var    user data
  4773. --------N-7F0C-------------------------------
  4774. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  4775.     AH = 0Ch
  4776.     DX = function
  4777.         0001h update beacon text
  4778.         CX = length of data
  4779.         ES:SI -> data to be sent in beacons
  4780. SeeAlso: AH=09h"G8BPQ"
  4781. --------N-7F0F-------------------------------
  4782. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  4783.     AH = 0Fh
  4784. Return: AX = time marker (clock ticks modulo 64K)
  4785. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  4786.       John Wiseman which allows a PC to act as a node in an AX.25 network
  4787. SeeAlso: AH=01h"G8BPQ",INT 1A/AH=00h
  4788. --------N-7F10--CL00-------------------------
  4789. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  4790.     AH = 10h
  4791.     CL = 00h
  4792.     AL = channel number
  4793.     DX:DI -> channel buffer
  4794. Return: AL = status (00h-03h,0Dh) (see #2088)
  4795. Note:    may not be invoked from within a hardware interrupt handler
  4796. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  4797.  
  4798. (Table 2088)
  4799. Values for Alloy function status:
  4800.  00h    successful
  4801.  01h    busy
  4802.  02h    channel range error (not 00h-3Fh)
  4803.  03h    invalid subfunction
  4804.  0Ah    channel not open
  4805.  0Ch    channel already locked
  4806.  0Dh    unable to open
  4807. --------N-7F10--CL01-------------------------
  4808. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  4809.     AH = 10h
  4810.     CL = 01h
  4811.     AL = channel number
  4812. Return: AL = status (00h-03h,0Ah) (see #2088)
  4813. Note:    may not be invoked from within a hardware interrupt handler
  4814. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  4815. --------N-7F10--CL02-------------------------
  4816. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  4817.     AH = 10h
  4818.     CL = 02h
  4819.     AL = channel number
  4820. Return: AL = status (00h-03h,0Ah,0Ch) (see #2088)
  4821. Note:    may not be invoked from within a hardware interrupt handler
  4822. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  4823. --------N-7F10--CL03-------------------------
  4824. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  4825.     AH = 10h
  4826.     CL = 03h
  4827.     AL = channel number
  4828. Return: AL = status (00h-03h,0Ah) (see #2088)
  4829. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  4830.       locked by receipt of a datagram
  4831.     may not be invoked from within a hardware interrupt handler
  4832. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  4833. --------N-7F10--CL04-------------------------
  4834. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  4835.     AH = 10h
  4836.     CL = 04h
  4837.     AL = channel number
  4838. Return: AL = status (00h-03h) (see #2088)
  4839. Notes:    unlocks buffer after received datagram has been processed
  4840.     may not be invoked from within a hardware interrupt handler
  4841. SeeAlso: AH=10h/CL=00h
  4842. --------N-7F10--CL05-------------------------
  4843. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  4844.     AH = 10h
  4845.     CL = 05h
  4846. Return: AL = status (00h-03h) (see #2088)
  4847. Notes:    clears all pending datagrams and clears buffer pointers before closing
  4848.       the channels
  4849.     may not be invoked from within a hardware interrupt handler
  4850. SeeAlso: AH=10h/CL=01h
  4851. --------N-7F10--CL06-------------------------
  4852. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  4853.     AH = 10h
  4854.     CL = 06h
  4855. Return: AL = status (00h-03h) (see #2088)
  4856. Note:    may not be invoked from within a hardware interrupt handler
  4857. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  4858. --------N-7F10--CL07-------------------------
  4859. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  4860.     AH = 10h
  4861.     CL = 07h
  4862. Return: AL = status (00h-03h) (see #2088)
  4863. Notes:    unlocks all locked channels which have no pending datagrams
  4864.     may not be invoked from within a hardware interrupt handler
  4865. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  4866. --------N-7F10--CL08-------------------------
  4867. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  4868.     AH = 10h
  4869.     CL = 08h
  4870.     DX = maximum channel number to lock
  4871. Return: AL = status (00h-03h) (see #2088)
  4872. Notes:    locks channels numbered 00h through the value in DX
  4873.     may not be invoked from within a hardware interrupt handler
  4874. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  4875. --------N-7F10--CL09-------------------------
  4876. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  4877.     AH = 10h
  4878.     CL = 09h
  4879.     DX = maximum channel number to unlock
  4880. Return: AL = status (00h-03h) (see #2088)
  4881. Notes:    unlocks channels numbered 00h through the value in DX
  4882.     may not be invoked from within a hardware interrupt handler
  4883. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  4884. --------N-7F11-------------------------------
  4885. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  4886.     AH = 11h
  4887.     DX:SI -> request block (see #2090)
  4888. Return: AL = status (see #2089)
  4889. Note:    if wildcard channel FFh used, actual channel number will be filled in
  4890. SeeAlso: AH=12h
  4891.  
  4892. (Table 2089)
  4893. Values for Alloy function status:
  4894.  00h    successful
  4895.  01h    busy
  4896.  02h    channel range error (not 00h-3Fh)
  4897.  03h    invalid subfunction
  4898.  0Ah    packet too large (or <2 bytes if NTNX)
  4899.  0Bh    can't send packet to itself
  4900.  0Ch    invalid number of destinations
  4901.  0Dh    destination channel number out of range
  4902.  0Eh    destination user is busy
  4903.  0Fh    destination user has locked channel
  4904.  10h    channel not open
  4905.  11h    no datagram server on destination (NTNX)
  4906.  
  4907. Format of Alloy request block:
  4908. Offset    Size    Description    (Table 2090)
  4909.  00h    DWORD    pointer to packet to send
  4910.  04h    WORD    packet size in bytes (1-4096)
  4911.  06h    BYTE    number of destinations for packet (max 1Fh)
  4912.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  4913.  26h 31 BYTEs    destination channels (FFh = first available channel)
  4914.  45h 31 BYTEs    return destination statuses
  4915. --------N-7F12-------------------------------
  4916. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  4917.     AH = 12h
  4918.     AL = channel number being acknowledged
  4919.     DI:DX = 32-bit status to return to sender
  4920. Return: AL = status (see #2091)
  4921. Note:    also unlocks the channel, allowing the next datagram to be received
  4922. SeeAlso: AH=11h,AH=15h/CL=04h
  4923.  
  4924. (Table 2091)
  4925. Values for Alloy function status:
  4926.  00h    successful
  4927.  01h    busy
  4928.  02h    channel range error (not 00h-3Fh)
  4929.  03h    invalid subfunction
  4930.  0Ah    channel not open
  4931.  0Bh    no message in channel
  4932.  0Ch    destination slave busy--retry (NTNX)
  4933.  0Dh    destination user not active
  4934.  0Eh    destination slave not active (NTNX)
  4935.  0Fh    destination disabled datagram service
  4936. --------V-7F1234-----------------------------
  4937. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  4938.     AX = 1234h
  4939. SeeAlso: AX=4321h
  4940. --------N-7F13--CL00-------------------------
  4941. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  4942.     AH = 13h
  4943.     CL = 00h
  4944. Note:    clears all pending datagrams and removes all channels opened in NTNX
  4945.       compatibility mode
  4946. --------N-7F14--CL00-------------------------
  4947. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  4948.     AH = 14h
  4949.     CL = 00h
  4950.     DX:DI -> application FAR receive service routine (see #2092)
  4951. Return: AL = status (00h-03h) (see #2091)
  4952. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  4953.  
  4954. (Table 2092)
  4955. Values Alloy receive service routine is called with:
  4956.     DH = sender ID
  4957.     DL = channel with datagram
  4958.     interrupts disabled
  4959. Return: AL = response code
  4960.         00h leave buffer locked, set channel status, and repeat call later
  4961.         01h release channel buffer
  4962.         02h change buffer pointer to DX:DI
  4963.     AH,CX,DX,DI,SI may be destroyed
  4964. --------N-7F14--CL01-------------------------
  4965. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  4966.     AH = 14h
  4967.     CL = 01h
  4968.     DX:DI -> application FAR acknowledge service routine (see #2093)
  4969. Return: AL = status (00h-03h) (see #2091)
  4970. Note:    the service routine will be called as soon as an acknowledgment arrives
  4971. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  4972.  
  4973. (Table 2093)
  4974. Values Alloy acknowledge service routine is called with:
  4975.     DS:SI -> acknowledge structure (see #2097)
  4976. Return: AL = response code
  4977.         00h application busy, network executive should call again later
  4978.         01h acknowledge accepted
  4979.     AH,DX,SI may be destroyed
  4980. --------N-7F14--CL02-------------------------
  4981. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  4982.     AH = 14h
  4983.     CL = 02h
  4984.     AL = channel number
  4985.     DX:DI -> receive buffer
  4986. Return: AL = status (00h-03h) (see #2091)
  4987. Note:    may be called from within a receive ISR or when a datagram is pending
  4988. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  4989. --------N-7F14--CL03-------------------------
  4990. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  4991.     AH = 14h
  4992.     CL = 03h
  4993. Return: DX:DI -> current receive ISR
  4994. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  4995. --------N-7F14--CL04-------------------------
  4996. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  4997.     AH = 14h
  4998.     CL = 04h
  4999. Return: DX:DI -> current acknowledge ISR
  5000. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  5001. --------N-7F14--CL05-------------------------
  5002. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  5003.     AH = 14h
  5004.     CL = 05h
  5005.     DX:DI -> buffer for busy structure (see #2094)
  5006. Return: DX:DI buffer filled
  5007.  
  5008. Format of Alloy busy structure:
  5009. Offset    Size    Description    (Table 2094)
  5010.  00h    DWORD    pointer to busy flag byte
  5011.  04h    WORD    fixed port address (FF00h)
  5012. --------N-7F15--CL00-------------------------
  5013. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  5014.     AH = 15h
  5015.     CL = 00h
  5016.     AL = channel number
  5017.     DX:DI -> status structure (see #2095)
  5018. Return: AL = status (00h-03h) (see #2091)
  5019. SeeAlso: AH=15h/CL=01h
  5020.  
  5021. Format of Alloy channel status structure:
  5022. Offset    Size    Description    (Table 2095)
  5023.  00h    BYTE    channel status
  5024.         bit 0: channel open
  5025.         bit 1: channel buffer contains received data
  5026.         bit 7: channel locked
  5027.  01h    BYTE    sender ID
  5028. --------N-7F15--CL01-------------------------
  5029. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  5030.     AH = 15h
  5031.     CL = 01h
  5032.     DX:DI -> full-channel structure (see #2096)
  5033. Return: AL = status
  5034.         00h successful
  5035.         01h busy
  5036.         0Ah no datagrams available
  5037. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  5038.       and NTNX return the oldest datagram
  5039. SeeAlso: AH=15h/CL=00h
  5040.  
  5041. Format of Alloy full-channel structure:
  5042. Offset    Size    Description    (Table 2096)
  5043.  00h    BYTE    number of channel with oldest datagram
  5044.  01h    BYTE    sender ID
  5045. --------N-7F15--CL02-------------------------
  5046. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  5047.     AH = 15h
  5048.     CL = 02h
  5049. Return: AH = number of channels available (40h for MW386)
  5050. Note:    the application may always assume at least 32 channels available
  5051. SeeAlso: AH=15h/CL=03h
  5052. --------N-7F15--CL03-------------------------
  5053. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  5054.     AH = 15h
  5055.     CL = 03h
  5056.     DX:DI -> WORD for return value
  5057. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  5058. SeeAlso: AH=15h/CL=02h
  5059. --------N-7F15--CL04-------------------------
  5060. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  5061.     AH = 15h
  5062.     CL = 04h
  5063.     DX:DI -> status structure (see #2097)
  5064. Return: AL = status
  5065.         00h successful
  5066.         DX:DI structure filled
  5067.         01h busy
  5068.         0Ah no acknowledgement has arrived
  5069. SeeAlso: AH=12h,AH=14h/CL=01h
  5070.  
  5071. Format of Alloy status structure:
  5072. Offset    Size    Description    (Table 2097)
  5073.  00h    BYTE    sender ID
  5074.  01h    BYTE    channel number
  5075.  02h  4 BYTEs    receiver status (see #2091)
  5076. --------N-7F16-------------------------------
  5077. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  5078.     AH = 16h
  5079.     DX:SI -> transfer structure (see #2098)
  5080. Return: AL = status
  5081.         00h successful
  5082.         0Ah source or destination out of range
  5083.         0Bh transfer kernal busy--try again
  5084. Notes:    this call transfers memory contents directly between users; both source
  5085.       and destination user IDs may differ from the caller's ID
  5086.     no segment wrap is allowed
  5087.  
  5088. Format of Alloy transfer structure:
  5089. Offset    Size    Description    (Table 2098)
  5090.  00h    WORD    bytes to transfer
  5091.  02h    BYTE    source ID
  5092.         FEh = caller
  5093.  03h    DWORD    source address
  5094.  07h    BYTE    destination ID
  5095.         FFh = all slaves except caller
  5096.         FEh = caller
  5097.  08h    DWORD    destination address
  5098. --------N-7F21-------------------------------
  5099. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  5100.     AH = 21h
  5101.     AL = sender's user ID
  5102.     DS:DX -> control packet (see #2099)
  5103. Note:    messages or commands are ignored if disabled by the destination user
  5104. SeeAlso: AH=22h
  5105.  
  5106. Format of Alloy control packet:
  5107. Offset    Size    Description    (Table 2099)
  5108.  00h    BYTE    packet type
  5109.         00h message
  5110.         01h NTNX command
  5111.         02h MW386 command
  5112.  01h    BYTE    destination user ID or 'A' for all users
  5113.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  5114.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  5115. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  5116. --------N-7F22-------------------------------
  5117. INT 7F - Alloy NTNX - GET MESSAGE
  5118.     AH = 22h
  5119. Return: pending messages displayed on user's screen
  5120. SeeAlso: AH=21h
  5121. --------N-7F24-------------------------------
  5122. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  5123.     AH = 24h
  5124.     CL = function
  5125.         00h attach
  5126.         01h release
  5127.     CH = drive (0=A:,1=B:,etc)
  5128. Return: AX = status (see #2100)
  5129. Note:    only drives on the current machine may be attached
  5130.  
  5131. (Table 2100)
  5132. Values for Alloy function status:
  5133.  00h    successful
  5134.  01h    invalid request
  5135.  02h    already attached
  5136.  03h    not attached
  5137.  04h    lock table full
  5138. --------N-7F24-------------------------------
  5139. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  5140.     AH = 24h
  5141.     CL = function
  5142.         02h attach host
  5143.         03h release host
  5144. Return: AX = status (see #2100)
  5145. Note:    the host processor may be attached in order to perform I/O via the host
  5146. --------N-7F25--CL00-------------------------
  5147. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  5148.     AH = 25h
  5149.     CL = 00h
  5150. Return: AH = version suffix letter
  5151.     CH = major version number
  5152.     CL = minor version number
  5153. SeeAlso: AH=25h/CL=01h
  5154. --------N-7F25--CL01-------------------------
  5155. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  5156.     AH = 25h
  5157.     CL = 01h
  5158. Return: CL = executive type (see #2101)
  5159. SeeAlso: AH=25h/CL=00h
  5160.  
  5161. (Table 2101)
  5162. Values for Alloy network executive type:
  5163.  00h    RTNX
  5164.  01h    ATNX
  5165.  02h    NTNX
  5166.  03h    BTNX
  5167.  04h    MW386
  5168.  05h    ANSK
  5169. ----------7F2525-----------------------------
  5170. INT 7F - TIGA Communications Driver v2.05 - ???
  5171.     AX = 2525h
  5172.     BX = ???
  5173. Return: ???
  5174. SeeAlso: AX=4321h,AX=5555h
  5175. --------N-7F26--CL00-------------------------
  5176. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  5177.     AH = 26h
  5178.     CL = 00h
  5179. Return: AX = file mode bits (see #2102)
  5180. Note:    MW386 does not support file modes, and always returns AX=001Fh
  5181. SeeAlso: AH=26h,AH=26h/CL=06h
  5182.  
  5183. Bitfields for Alloy file mode bits:
  5184. Bit(s)    Description    (Table 2102)
  5185.  0    directory protection enabled
  5186.  1    extended open enabled
  5187.  2    flush on every disk write
  5188.  3    flush on every disk write in locked interval
  5189.  4    flush on reads from simultaneously opened file
  5190. --------N-7F26-------------------------------
  5191. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  5192.     AH = 26h
  5193.     CL = check type to set/reset
  5194.         01h directory protection
  5195.         02h extended open
  5196.         03h flush on every disk write
  5197.         04h flush on disk write if any lock set during write
  5198.         05h flush on all reads if file written
  5199.     AL = new state (00h off, 01h on)
  5200. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  5201. --------N-7F26--CL06-------------------------
  5202. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  5203.     AH = 26h
  5204.     CL = 06h
  5205. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  5206. SeeAlso: AH=26h/CL=00h
  5207. --------N-7F30-------------------------------
  5208. INT 7F - Alloy MW386 - GET PORT INFORMATION
  5209.     AH = 30h
  5210.     CX = MW386 port number
  5211. Return: AL = result
  5212.         FFh if port not found
  5213.         else driver unit number
  5214.         BL = port mode
  5215.         BH = port type
  5216.             02h remote
  5217.         DH = owner's machine ID
  5218.         DL = owner's user ID
  5219. SeeAlso: INT 17/AH=8Bh
  5220. --------N-7F31-------------------------------
  5221. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  5222.     AH = 31h
  5223.     ???
  5224. Return: ???
  5225. --------N-7F37-------------------------------
  5226. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  5227.     AH = 37h
  5228. Return: ES:AX -> semaphore table
  5229. --------N-7F37-------------------------------
  5230. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  5231.     AH = 37h
  5232.     DS:DX -> ASCIZ string to display
  5233. Note:    if the string is empty, a terminal update will be forced
  5234. --------N-7F38-------------------------------
  5235. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  5236.     AH = 38h
  5237.     AL = new terminal driver number
  5238.         FFh dummy driver
  5239.         FEh current driver
  5240.         FDh load new driver
  5241.         DS:SI -> new driver
  5242. SeeAlso: AH=39h
  5243. --------N-7F39-------------------------------
  5244. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  5245.     AH = 39h
  5246.     AL = new terminal driver number
  5247.         FFh dummy driver
  5248.         FEh current driver
  5249.         FDh load new driver
  5250.         DS:SI -> new driver
  5251.     DL = user number (FFh = caller)
  5252.     DH = machine number if DL <> FFh
  5253. Return: CF set if invalid user number
  5254.     CF clear if successful
  5255. Notes:    only available to supervisors
  5256.     the new driver number will not take effect until the user is rebooted
  5257. SeeAlso: AH=38h
  5258. --------N-7F3A-------------------------------
  5259. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  5260.     AH = 3Ah
  5261.     DL = user number (FFh = caller)
  5262.     DH = machine number
  5263. Return: CF clear if successful
  5264.         AH = terminal driver number
  5265.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  5266.         CL = parity (00h none, 01h even, 02h odd)
  5267.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5268.     CF set if invalid user number
  5269. SeeAlso: AH=3Bh
  5270. --------N-7F3B-------------------------------
  5271. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  5272.     AH = 3Bh
  5273.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  5274.     CL = parity (00h none, 01h even, 02h odd)
  5275.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  5276.     DL = user number (FFh = caller)
  5277.     DH = machine number for user
  5278. Return: CF set if invalid user number
  5279. Notes:    only available to supervisors
  5280.     the new parameters will take effect immediately if the user's terminal
  5281.       has not been started, else AH=3Dh must be called to post the changes
  5282. SeeAlso: AH=3Ah,AH=3Dh
  5283. --------N-7F3C-------------------------------
  5284. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  5285.     AH = 3Ch
  5286.     AL = new state (00h disabled, 01h enabled)
  5287.     DL = user number (FFh = caller)
  5288.     DH = machine number for user
  5289. Return: CF set if invalid user number
  5290. Note:    only available to supervisors
  5291. SeeAlso: AH=3Dh
  5292. --------N-7F3D-------------------------------
  5293. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  5294.     AH = 3Dh
  5295. Note:    should be called whenever a program changes the terminal type or its
  5296.       parameters
  5297. SeeAlso: AH=3Bh
  5298. --------N-7F41-------------------------------
  5299. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  5300.     AH = 41h
  5301.     AL = user ID
  5302.     DS:DX -> ASCIZ filename
  5303. Return: AL = status (see #2103)
  5304. Note:    requests exclusive read/write access to file
  5305. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  5306.  
  5307. (Table 2103)
  5308. Values for Alloy function status:
  5309.  00h    successful
  5310.  01h    invalid function
  5311.  02h    already locked
  5312.  03h    unable to lock
  5313.  04h    lock table full or semaphore space exhausted
  5314. --------N-7F41-------------------------------
  5315. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  5316.     AH = 41h
  5317.     AL = user ID
  5318.     DS:DX -> ASCIZ semaphore name
  5319. Return: AL = status (see #2103)
  5320. SeeAlso: AH=00h,AH=42h"MW386"
  5321. --------N-7F42-------------------------------
  5322. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  5323.     AH = 42h
  5324.     AL = user ID
  5325.     DS:DX -> ASCIZ filename
  5326. Return: AL = status (see #2103)
  5327. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  5328. --------N-7F42-------------------------------
  5329. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  5330.     AH = 42h
  5331.     AL = user ID
  5332.     DS:DX -> ASCIZ semaphore name
  5333. Return: AL = status
  5334.         00h successful
  5335.         01h invalid function
  5336.         03h unable to unlock semaphore
  5337. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  5338. ----------7F4321-----------------------------
  5339. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  5340.     AX = 4321h
  5341. Return: AX = 0000h if installed
  5342. Note:    INT 7F is the default, but may be overridden
  5343. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  5344. --------N-7F4E-------------------------------
  5345. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  5346.     AH = 4Eh
  5347.     AL = error mode flags
  5348.         bit 0: display critical disk errors
  5349.         bit 1: display sharing errors
  5350.     DX = 4E58h ("NX")
  5351. Return: AL = status
  5352.         00h successful
  5353. SeeAlso: AH=4Fh
  5354. --------N-7F4F-------------------------------
  5355. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  5356.     AH = 4Fh
  5357.     AL = FCB mode
  5358.         02h read/write compatibility
  5359.         42h read/write shared
  5360.     DX = 4E58h ("NX")
  5361. Return: AL = status
  5362.         00h successful
  5363. --------V-7F5555-----------------------------
  5364. INT 7F - TIGA Communications Driver v2.05 - ???
  5365.     AX = 5555h
  5366.     BX = ???
  5367. Return: ???
  5368. SeeAlso: AX=4321h
  5369. --------N-7F81-------------------------------
  5370. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  5371.     AH = 81h
  5372.     AL = user ID
  5373.     DS:DX -> ASCIZ device name
  5374. SeeAlso: AH=82h
  5375. --------N-7F82-------------------------------
  5376. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  5377.     AH = 82h
  5378.     AL = user ID
  5379.     DS:DX -> ASCIZ device name
  5380. SeeAlso: AH=81h
  5381. --------N-7FA0-------------------------------
  5382. INT 7F - Alloy MW386 - GET USER NAME
  5383.     AH = A0h
  5384.     DL = user number (FFh = caller)
  5385.     DH = machine number for user
  5386.     ES:DI -> 17-byte buffer for ASCIZ user name
  5387. Return: CF set if invalid user number
  5388. SeeAlso: AH=03h,AH=A1h
  5389. --------N-7FA1-------------------------------
  5390. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  5391.     AH = A1h
  5392. Return: AL = process number
  5393.     DL = user number
  5394.     DH = machine number
  5395. SeeAlso: AH=03h,AH=A0h,AH=A2h
  5396. --------N-7FA2-------------------------------
  5397. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  5398.     AH = A2h
  5399.     DL = user number (FFh = caller)
  5400.     DH = machine number for user
  5401. Return: CF clear if successful
  5402.         AL = privilege level
  5403.         00h supervisor
  5404.         01h high
  5405.         02h medium
  5406.         03h low
  5407.     CF set if invalid user number
  5408. SeeAlso: AH=A1h,AH=A3h
  5409. --------N-7FA3-------------------------------
  5410. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  5411.     AH = A3h
  5412.     DL = user number
  5413.     DH = machine number for user
  5414. Return: CF clear if successful
  5415.         AL = login state
  5416.         00h never logged in
  5417.         01h currently logged out
  5418.         03h currently logged in
  5419.     CF set if invalid user number or user not active
  5420. SeeAlso: AH=A2h
  5421. --------N-7FA4-------------------------------
  5422. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  5423.     AH = A4h
  5424.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  5425. Return: AL = status
  5426.         00h  accepted
  5427.         else invalid password
  5428. --------N-7FA500-----------------------------
  5429. INT 7F - Alloy MW386 - GET USER STATUS
  5430.     AX = A500h
  5431.     DI = machine number and user number
  5432. Return: CF clear if successful
  5433.         BX = user flags
  5434.         bit 5: allow messages
  5435.         CL = scan code for task manager hotkey
  5436.         CH = scan code for spooler hotkey
  5437.         DL = scan code for task swapper hotkey
  5438.         DH = modifier key status
  5439.     CF set if invalid user number
  5440. SeeAlso: AX=A501h
  5441. Index:    hotkeys;Alloy MW386
  5442. --------N-7FA501-----------------------------
  5443. INT 7F - Alloy MW386 - SET USER STATUS
  5444.     AX = A501h
  5445.     BX = user flags (see AX=A500h)
  5446.     CL = scan code for task manager hotkey
  5447.     CH = scan code for spooler hotkey
  5448.     DL = scan code for task swapper hotkey
  5449.     DH = modifier key status
  5450.     DI = machine number and user number
  5451. Return: CF set if invalid user number
  5452. Note:    must have supervisor privilege to set another user's status
  5453. SeeAlso: AX=A500h
  5454. Index:    hotkeys;Alloy MW386
  5455. --------V-7FABCDBX0000-----------------------
  5456. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  5457.     AX = ABCDh
  5458.     BX = 0000h
  5459. Return: AX = total number of functions available
  5460.     ES:BX -> entry point array (see #2104)
  5461. SeeAlso: AX=0104h,AX=0105h
  5462.  
  5463. (Table 2104)
  5464. Values for 8516 Touch Screen function number:
  5465.  00h    check initialization and reset (see #2105)
  5466.  14h    set user-defined subroutine (see #2106)
  5467. Notes:    each driver function takes two stack parameters using Pascal calling
  5468.       conventions: address of parameter block and address of results buffer
  5469.     all pointers are FAR pointers
  5470.     on return, AX contains the status of the call:
  5471.         AX = 0000h successful
  5472.          0001h invalid input
  5473.          0002h interface error
  5474.          0003h unable to perform function
  5475.  
  5476. Format of 8516 Touch Screen Function 00h parameter block:
  5477. Offset    Size    Description    (Table 2105)
  5478.  00h    WORD    0000h (function number)
  5479. Note:    this function should be called before any other device driver functions
  5480.  
  5481. Format of 8516 Touch Screen Function 00h results buffer:
  5482. Offset    Size    Description    (Table 2106)
  5483.  00h    WORD    touch screen status
  5484.         0000h unavailable
  5485.         0001h uncalibrated
  5486.         FFFFh available
  5487.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  5488. Notes:    the following driver parameters will have been reset to zero:
  5489.       touchdown counter, liftoff counter, position at last touch, position
  5490.       at last lift, int call mask, select on count, select off count,
  5491.       pos select on count, pos select off count.
  5492.     the following driver parameters will have been reset as listed:
  5493.       mouse emulation mode: left on
  5494.       thresholds: 46 on screen, 96 push harder, 80 push release
  5495.       x, y hysteresis: 400
  5496.       data repeat rate: 40/sec
  5497.       select mechanism: push-harder - first-touch
  5498.       coordinate origin: upper left corner
  5499.       filter frequency: medium
  5500.       data block mask: all enabled
  5501.       click lock: on
  5502. --------N-7FB0-------------------------------
  5503. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  5504.     AH = B0h
  5505.     AL = user number
  5506.     DS = code segment
  5507. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  5508.       or INT 7F locking functions
  5509. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  5510. --------N-7FB1--SF00-------------------------
  5511. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  5512.     AH = B1h subfn 00h
  5513.     AL = (bits 7-5) 000
  5514.          (bits 4-0) user ID
  5515. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  5516.       INT 7F locking functions
  5517. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  5518. --------N-7FB2--SF01-------------------------
  5519. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  5520.     AH = B2h subfn 01h
  5521.     AL = (bits 7-5) 001
  5522.          (bits 4-0) user ID
  5523. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  5524. --------N-7FB3--SF02-------------------------
  5525. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  5526.     AH = B3h subfn 02h
  5527.     AL = (bits 7-5) 010
  5528.          (bits 4-0) user ID
  5529. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  5530. --------N-7FB4-------------------------------
  5531. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  5532.     AH = B4h
  5533.     AL = user ID
  5534. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  5535. --------N-7FC3-------------------------------
  5536. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  5537.     AH = C3h
  5538.     AL = byte to write
  5539. Return: CF clear if successful
  5540.     CF set on error
  5541. SeeAlso: AH=C6h
  5542. --------N-7FC5-------------------------------
  5543. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  5544.     AH = C5h
  5545.     AL = new console mode
  5546.         00h keyboard indirect
  5547.         01h keyboard direct
  5548.         02h data handshake enforced
  5549.         03h no data handshake
  5550. Return: CF clear if successful
  5551.         AL = prior console mode
  5552.     CF set on error (caller is not remote user)
  5553. Note:    modes 2 and 3 may be used for input through the console port; no video
  5554.       output should be performed in these modes
  5555. --------N-7FC6-------------------------------
  5556. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  5557.     AH = C6h
  5558.     AL = byte to write
  5559. Return: CF clear if successful
  5560.     CF set on error (caller is not remote user)
  5561. Note:    any terminal driver data translation will be bypassed
  5562. SeeAlso: AH=C3h,AH=C7h
  5563. --------N-7FC7-------------------------------
  5564. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  5565.     AH = C7h
  5566. Return: CF clear if successful
  5567.         AL = byte read
  5568.     CF set on error (no data available or caller is not remote user)
  5569. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  5570. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  5571. --------N-7FC8-------------------------------
  5572. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  5573.     AH = C8h
  5574.     AL = maximum bytes to read
  5575.     ES:DI -> buffer for console data
  5576. Return: CF clear if successful
  5577.         CX = number of bytes read
  5578.     CF set on error (caller is not remote user)
  5579. SeeAlso: AH=C7h
  5580. --------N-7FCF-------------------------------
  5581. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  5582.     AH = CFh
  5583.     DS:DX -> ASCIZ string containing user number to be reset
  5584. SeeAlso: AH=D6h
  5585. --------N-7FD6-------------------------------
  5586. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  5587.     AH = D6h
  5588.     DS:DX -> reset packet (see #2107)
  5589. Return: never if successful
  5590. Note:    all users will be shut down immediately if successful
  5591. SeeAlso: AH=CFh
  5592.  
  5593. Format of Alloy MW386 reset packet:
  5594. Offset    Size    Description    (Table 2107)
  5595.  00h    DWORD    reset code (60606060h)
  5596.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  5597. --------N-7FD7-------------------------------
  5598. INT 7F - Alloy MW386 - POST EVENT
  5599.     AH = D7h
  5600.     AL = user number (if local event)
  5601.     DX = event number
  5602. --------N-7FD8-------------------------------
  5603. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  5604.     AH = D8h
  5605. Return: CF set on error
  5606. Note:    forces all disk buffers to be written out immediately
  5607. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  5608. --------N-7FDB-------------------------------
  5609. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  5610.     AH = DBh
  5611. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  5612. --------N-7FE0-------------------------------
  5613. INT 7F - Alloy MW386 - CREATE DOS TASK
  5614.     AH = E0h
  5615.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5616.     DS:DX -> ASCIZ task name (max 16 bytes)
  5617. Return: CF clear if successful
  5618.         AL = task create ID
  5619.     CF set on error
  5620. Note:    only foreground DOS tasks can use this function
  5621. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  5622. --------N-7FE1-------------------------------
  5623. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  5624.     AH = E1h
  5625.     AL = create ID (from AH=E0h)
  5626. Return: AL = DOS process number
  5627.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5628. Note:    this function should not be called immediately after creating a new
  5629.       DOS task, since the new task is being initialized by a concurrent
  5630.       process
  5631. SeeAlso: AH=E0h,AH=E2h
  5632. --------N-7FE2-------------------------------
  5633. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  5634.     AH = E2h
  5635.     AL = DOS process number (from AH=E1h)
  5636. Return: CF set on error (invalid process number or caller not foreground task)
  5637. Notes:    specified task becomes the foreground task and current task is placed
  5638.       in the background
  5639.     may only be called by a foreground task
  5640. SeeAlso: AH=E0h,AH=E1h
  5641. --------N-7FE3-------------------------------
  5642. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  5643.     AH = E3h
  5644.     DS:DX -> ASCIZ task name
  5645. ---v1.x---
  5646.     AL = user number
  5647. ---v2+---
  5648.     BH = user number
  5649.     BL = task number
  5650. Return: CF clear if successful
  5651.     CF set on error (invalid process number)
  5652. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  5653. --------N-7FE4-------------------------------
  5654. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  5655.     AH = E4h
  5656.     ES:DI -> buffer for task name
  5657. ---v1.x---
  5658.     AL = user number
  5659. ---v2+---
  5660.     BH = user number
  5661.     BL = task number
  5662. Return: CF clear if successful
  5663.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5664.         DX = task flags
  5665.         bit 7: MS-DOS process
  5666.         ES:DI buffer filled
  5667.     CF set on error (invalid process number)
  5668. SeeAlso: AH=E3h,AH=E5h
  5669. --------N-7FE5-------------------------------
  5670. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  5671.     AH = E5h
  5672.     DS:DX -> ASCIZ task name
  5673.     BH = user number
  5674. Return: CF clear if successful
  5675.         AL = DOS process number
  5676.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  5677.     CF set on error (no match for name)
  5678. SeeAlso: AH=E3h,AH=E4h
  5679. --------N-7FE6-------------------------------
  5680. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  5681.     AH = E6h
  5682. Return: AX = number of processes available to current user
  5683. SeeAlso: AH=E0h
  5684. --------N-7FE7-------------------------------
  5685. INT 7F - Alloy MW386 - REMOVE DOS TASK
  5686.     AH = E7h
  5687.     AL = DOS process number
  5688. Return:    CF clear if successful
  5689.     CF set on error (invalid process number or first process)
  5690. Note:    can only be called by a foreground task
  5691. SeeAlso: AH=E0h
  5692. --------N-7FE8-------------------------------
  5693. INT 7F - Alloy MW386 - DOS TASK DELAY
  5694.     AH = E8h
  5695.     CX = delay time in milliseconds
  5696. Note:    a delay of 0 may be used to surrender the current time slice
  5697. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  5698. SeeAlso: INT 2F/AX=1680h
  5699. --------N-7FF0-------------------------------
  5700. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  5701.     AH = F0h
  5702.     AL = group number
  5703.     DS:DX -> ASCIZ directory name
  5704. Return: CF clear if successful
  5705.         AX = status
  5706.         0002h directory not found
  5707.         0003h directory not found
  5708.         0005h directory in use, cannot be restricted
  5709.         02xxh restricted to group xxh
  5710.     CF set on error
  5711. Note:    the restriction on the directory may be removed by calling this
  5712.       function with group 0, then using AH=F1h to assign the directory to
  5713.       group 0
  5714. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  5715. --------N-7FF1-------------------------------
  5716. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  5717.     AH = F1h
  5718.     AL = group number
  5719.     DS:DX -> ASCIZ directory name
  5720. Notes:    performs permanent assignment to a group; no immediate action is taken
  5721.       unless the directory has been restricted with AH=F0h
  5722.     may be used to restrict a nonexistent directory
  5723. SeeAlso: AH=F0h
  5724. --------N-7FF2-------------------------------
  5725. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  5726.     AH = F2h
  5727.     CX = entry number
  5728.     ES:DI -> 64-byte buffer
  5729. Return: CF clear if successful
  5730.         buffer filled with 63-byte directory info and 1-byte group number
  5731.     CF set on error (invalid entry)
  5732. SeeAlso: AH=F0h,AH=F3h
  5733. --------N-7FF3-------------------------------
  5734. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  5735.     AH = F3h
  5736.     AL = group number
  5737.     CX = entry number
  5738.     ES:DI -> 64-byte buffer
  5739. Return: CF clear if successful
  5740.         CX = next entry number
  5741.         buffer filled with 63-byte directory info and 1-byte group number
  5742.     CF set on error (no more matching entries)
  5743. Note:    like AH=F2h, but only returns directories belonging to the specified
  5744.       group
  5745. SeeAlso: AH=F2h
  5746. --------N-7FF8-------------------------------
  5747. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  5748.     AH = F8h
  5749.     AL = group number
  5750.     DL = user number
  5751.     DH = machine number (currently 00h)
  5752. Return: CF clear if successful
  5753.     CF set on error (user already in maximum number of groups)
  5754. Note:    each user is allowed eight group assignments
  5755. SeeAlso: AH=F9h,AH=FAh
  5756. --------N-7FF9-------------------------------
  5757. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  5758.     AH = F9h
  5759.     AL = group number
  5760.     DL = user number
  5761.     DH = machine number (currently 00h)
  5762. Return: CF clear if successful
  5763.     CF set if failed
  5764. SeeAlso: AH=F8h,AH=FAh
  5765. --------N-7FFA-------------------------------
  5766. INT 7F - Alloy MW386 - GET USER GROUP LIST
  5767.     AH = FAh
  5768.     DL = user number
  5769.     DH = machine number (currently 00h)
  5770.     ES:DI -> 16-byte buffer for group list
  5771. Return: CX = number of groups
  5772.     ES:DI buffer filled with group numbers
  5773. SeeAlso: AH=F8h,AH=F9h
  5774. --------N-7FFB-------------------------------
  5775. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  5776.     AH = FBh
  5777.     CL = group number
  5778.     ES:DI -> ASCIZ group name (max 17 bytes)
  5779. SeeAlso: AH=FCh
  5780. --------N-7FFC-------------------------------
  5781. INT 7F - Alloy MW386 - GET GROUP NAME
  5782.     AH = FCh
  5783.     CL = group number
  5784.     ES:DI -> 17-byte buffer for ASCIZ name
  5785. Return: ES:DI buffer filled
  5786. Note:    if the group has not been named, "(unnamed)" is returned
  5787. SeeAlso: AH=FBh
  5788. ----------80---------------------------------
  5789. INT 80 - Q-PRO4 - ???
  5790. --------r-80---------------------------------
  5791. INT 80 - reserved for BASIC
  5792. Note:    this vector and INT 81 through INT ED are modified but not restored by
  5793.       Direct Access v4.0, and may be left dangling by other programs
  5794.       written with the same version of compiled BASIC
  5795. SeeAlso: INT 81"BASIC",INT 86"BASIC",INT EF"BASIC"
  5796. --------s-80----BL00-------------------------
  5797. INT 80 - SBSIM - "STARTSND" - START SOUND ON SPECIFIED DRIVER
  5798.     BL = 00h
  5799.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5800. Return: AX = initialization result (see #2108)
  5801. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  5802.       which provides access to multiple drivers for the SoundBlaster
  5803.       board through a single interface
  5804. Range:    INT 80h to INT BFh, selected automatically
  5805. Note:    the SBSIM installation check consists of testing for the signature
  5806.       "SBSIM" at offset 103h in the interrupt handler's segment.
  5807. SeeAlso: INT 80/BL=01h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=03h"SBSIM"
  5808. SeeAlso: INT 80/BX=0000h"SBSIM"
  5809.  
  5810. (Table 2108)
  5811. Values for SBSIM error code:
  5812.  01h    busy--currently in use
  5813.  02h    bad driver specified
  5814.  03h    invalid function
  5815.  04h    voice process already active
  5816.  05h    couldn't start CT-VOICE
  5817.  06h    couldn't start CTVDSK
  5818.  07h    invalid SBSIM handle
  5819.  08h    buffer not initialized yet
  5820.  09h    bad filename
  5821.  0Ah    bad file handle
  5822.  0Bh    driver not started yet
  5823.  0Ch    XMS driver not installed
  5824.  0Dh    no free SBSIM handles
  5825.  0Eh    bad file type
  5826.  0Fh    couldn't free XMS block
  5827.  10h    invalid source selected
  5828.  11h    get pan position failed
  5829.  12h    set pan position failed
  5830.  13h    set volume failed
  5831.  14h    couldn't start fade/pan
  5832.  15h    couldn't stop fade/pan
  5833.  16h    couldn't pause fade/pan
  5834.  17h    not a fade/pan operation
  5835.  18h    bad mode for fade/pan
  5836.  19h    couldn't start fade/pan
  5837.  1Ah    source not fading/panning
  5838.  1Bh    FM or MIDI already playing
  5839.  1Ch    bad MIDI mapper format
  5840. --------s-80----BL01-------------------------
  5841. INT 80 - SBSIM - "PLAYSND" - PLAY MUSIC/VOICE ON SELECTED DRIVER
  5842.     BL = 01h
  5843.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5844. Return: AX = result (see #2108)
  5845. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  5846. --------s-80----BL02-------------------------
  5847. INT 80 - SBSIM - "STOPSND" - STOP MUSIC/VOICE ON SELECTED DRIVER
  5848.     BL = 02h
  5849.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5850. Return: nothing
  5851. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  5852. --------s-80----BL03-------------------------
  5853. INT 80 - SBSIM - "PAUSESND" - TEMPORARILY PAUSE PLAYBACK ON SELECTED DRIVER
  5854.     BL = 03h
  5855.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5856. Return: nothing
  5857. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=02h"SBSIM",INT 80/BL=04h"SBSIM"
  5858. SeeAlso: INT 80/BL=05h
  5859. --------s-80----BL04-------------------------
  5860. INT 80 - SBSIM - "RESUMESND" - RESTART PLAYBACK ON SELECTED DRIVER
  5861.     BL = 04h
  5862.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5863. Return: nothing
  5864. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=03h"SBSIM",INT 80/BL=05h"SBSIM"
  5865. --------s-80----BL05-------------------------
  5866. INT 80 - SBSIM - "GETSNDSTAT" - GET DRIVER'S STATUS
  5867.     BL = 05h
  5868.     BH = driver number (01h = FM, 02h=DDBV, 03h=memvoice, 05h=MIDI)
  5869. Return: AX = status
  5870. SeeAlso: INT 80/BL=00h"SBSIM",INT 80/BL=01h"SBSIM",INT 80/BL=03h"SBSIM"
  5871. --------s-80----BX0000-----------------------
  5872. INT 80 - SoundBlaster SBFM driver - GET VERSION
  5873.     BX = 0000h
  5874. Return: ???
  5875. Note:    SBFM installs at a free interrupt in the range 80h through BFh
  5876. SeeAlso: BX=0008h"SBFM",INT 2F/AX=FBFBh
  5877. --------s-80----BX0000-----------------------
  5878. INT 80 - SBSIM - "QUERYVERSION" - GET VERSION
  5879.     BX = 0000h
  5880. Return: AX = version (AH = major, AL = minor)
  5881. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  5882.       which provides access to multiple drivers for the SoundBlaster
  5883.       board through a single interface
  5884. Range:    INT 80h to INT BFh, selected automatically
  5885. Note:    the SBSIM installation check consists of testing for the signature
  5886.       "SBSIM" at offset 103h in the interrupt handler's segment.
  5887. SeeAlso: BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  5888. Index:    installation check;SBSIM|installation check;SoundBlaster
  5889. --------s-80----BX0001-----------------------
  5890. INT 80 - SoundBlaster SBFM driver - SET MUSIC STATUS BYTE ADDRESS
  5891.     BX = 0001h
  5892.     DX:AX -> music status byte
  5893. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0003h"SBFM"
  5894. --------s-80----BX0001-----------------------
  5895. INT 80 - SBSIM - "QUERYDRIVERS" - CHECK DRIVERS INSTALLED
  5896.     BX = 0001h
  5897. Return: AX = bit flags for loaded drivers (see #2109)
  5898. SeeAlso: BX=0000h"SBSIM",BX=0002h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  5899.  
  5900. Bitfields for SBSIM loaded drivers:
  5901. Bit(s)    Description    (Table 2109)
  5902.  0    FM
  5903.  1    double disk-buffered voice driver (DDBV)
  5904.  2    memory voice driver
  5905.  3    auxiliary driver (mixer)
  5906.  4    MIDI
  5907. --------s-80----BX0002-----------------------
  5908. INT 80 - SoundBlaster SBFM driver - SET INSTRUMENT TABLE
  5909.     BX = 0002h
  5910.     CX = number of instruments
  5911.     DX:AX -> instrument table
  5912. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0005h"SBFM"
  5913. --------s-80----BX0002-----------------------
  5914. INT 80 - SBSIM - GETADDRESS" - GET SELECTED DRIVER'S ENTRY POINT
  5915.     BX = 0002h
  5916.     AX = driver (00h = FM,01h = DDBV,02h = memvoice,03h = mixer,04h = MIDI)
  5917. Return: CF clear if successful
  5918.         DX:AX -> entry point
  5919.     CF set on error
  5920. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0005h"SBSIM",INT 80/BL=00h"SBSIM"
  5921. --------s-80----BX0003-----------------------
  5922. INT 80 - SoundBlaster SBFM driver - SET SYSTEM CLOCK RATE
  5923.     BX = 0003h
  5924.     AX = clock rate divisor (1193180 / desired frequency in Hertz)
  5925.         FFFFh to restore to 18.2 Hz
  5926. SeeAlso: BX=0000h"SBFM",BX=0001h"SBFM",BX=0004h"SBFM"
  5927. --------s-80----BX0004-----------------------
  5928. INT 80 - SoundBlaster SBFM driver - SET DRIVER CLOCK RATE
  5929.     BX = 0004h
  5930.     AX = driver clock rate divisor (1193180 / frequency in Hertz)
  5931. Note:    default frequency is 96 Hz
  5932. SeeAlso: BX=0000h"SBFM",BX=0003h"SBFM"
  5933. --------s-80----BX0005-----------------------
  5934. INT 80 - SoundBlaster SBFM driver - TRANSPOSE MUSIC
  5935.     BX = 0005h
  5936.     AX = semi-tone offset
  5937. SeeAlso: BX=0000h"SBFM",BX=0002h"SBFM",BX=0006h"SBFM"
  5938. --------s-80----BX0005-----------------------
  5939. INT 80 - SBSIM - "GETBUFFERINFO" - GET DRIVER'S BUFFER ADDRESS
  5940.     BX = 0005h
  5941.     AX = driver (00h = FM, 01h = DDB Voice, 04h = MIDI)
  5942. Return: CF clear if successful
  5943.         DX:AX -> buffer
  5944.         CX = buffer size in K
  5945.     CF set on error
  5946. Program: SBSIM is Creative Labs' SoundBlaster Simplified Interface Module,
  5947.       which provides access to multiple drivers for the SoundBlaster
  5948.       board through a single interface
  5949. Range:    INT 80h to INT BFh, selected automatically
  5950. Note:    the SBSIM installation check consists of testing for the signature
  5951.       "SBSIM" at offset 103h in the interrupt handler's segment.
  5952. SeeAlso: BX=0000h"SBSIM",BX=0001h"SBSIM",BX=0002h"SBSIM",INT 80/BL=00h"SBSIM"
  5953. --------s-80----BX0006-----------------------
  5954. INT 80 - SoundBlaster SBFM driver - PLAY MUSIC
  5955.     BX = 0006h
  5956.     DX:AX -> music block
  5957. Return: AX = status
  5958.         0000h successful
  5959.         0001h music already active
  5960. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF04h
  5961. --------s-80----BX0007-----------------------
  5962. INT 80 - SoundBlaster SBFM driver - STOP MUSIC
  5963.     BX = 0007h
  5964. Return: AX = status
  5965.         0000h successful
  5966.         0001h music not active
  5967. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM",INT 1A/AX=FF05h
  5968. --------s-80----BX0008-----------------------
  5969. INT 80 - SoundBlaster SBFM driver - RESET DRIVER
  5970.     BX = 0008h
  5971. Return: AX = status
  5972.         0000h successful
  5973.         0001h music is active
  5974. SeeAlso: BX=0000h"SBFM"
  5975. --------s-80----BX0009-----------------------
  5976. INT 80 - SoundBlaster SBFM driver - PAUSE MUSIC
  5977.     BX = 0009h
  5978. Return: AX = status
  5979.         0000h successful
  5980.         0001h no music active
  5981. SeeAlso: BX=0000h"SBFM",BX=0007h"SBFM",BX=000Ah"SBFM",INT 1A/AX=FF01h
  5982. --------s-80----BX000A-----------------------
  5983. INT 80 - SoundBlaster SBFM driver - RESUME MUSIC
  5984.     BX = 000Ah
  5985. Return: AX = status
  5986.         0000h successful
  5987.         0001h no music paused
  5988. SeeAlso: BX=0000h"SBFM",BX=0006h"SBFM",BX=0009h"SBFM"
  5989. --------s-80----BX000B-----------------------
  5990. INT 80 - SoundBlaster SBFM driver - SET USER-DEF TRAP FOR SYSTEM-EXCLUSIVE CMDS
  5991.     BX = 000Bh
  5992.     DX:AX -> trap routine
  5993. SeeAlso: BX=0000h"SBFM"
  5994. --------s-80----BX0400-----------------------
  5995. INT 80 - SBSIM - "GETVOLUME" - GET SOURCE'S VOLUME
  5996.     BX = 0400h
  5997.     AX = sound source (see #2110)
  5998. Return: CF clear if successful
  5999.         AX = volume
  6000.     CF set on error
  6001.         AX = error code (see INT 80/BL=00h)
  6002. SeeAlso: BX=0401h"SBSIM"
  6003.  
  6004. (Table 2110)
  6005. Values for SBSIM sound source:
  6006.  00h    master volume
  6007.  01h    voice
  6008.  02h    FM
  6009.  03h    CD
  6010.  04h    line in
  6011.  05h    microphone
  6012. --------s-80----BX0401-----------------------
  6013. INT 80 - SBSIM - "SETVOLUME" - SET SOURCE'S VOLUME
  6014.     BX = 0401h
  6015.     AX = sound source (see INT 80/BX=0400h)
  6016.     DX = new volume
  6017. Return: AX = result (0000h = success) (see also INT 80/BL=00h)
  6018. SeeAlso: BX=0400h"SBSIM"
  6019. --------N-8001-------------------------------
  6020. INT 80 - QPC Software PKTINT.COM - INITIALIZE
  6021.     AH = 01h
  6022. Return: AX = 0000h
  6023.     CX = FFFFh
  6024.     DX = FFFFh
  6025. Notes:    this interrupt is the WinQVTNet protected mode interface to Windows 3.0
  6026.     all buffer pointers are reset back to 0
  6027. --------N-8002-------------------------------
  6028. INT 80 - QPC Software PKTINT.COM - GET BUFFER ADDRESSES
  6029.     AH = 02h
  6030.     BX = extra bytes to allocate per packet
  6031. Return: AX = segment address of 10K buffer (for receives???)
  6032.     BX = segment address of 2K buffer (for sends???)
  6033. SeeAlso: AH=05h
  6034. --------N-8003-------------------------------
  6035. INT 80 - QPC Software PKTINT.COM - GET ENTRY POINT
  6036.     AH = 03h
  6037. Return: CX:DX -> receive call address
  6038. Note:    the returned address can be used in the packet driver calls since it
  6039.       will be a valid address in all DOS boxes
  6040. SeeAlso: AH=06h
  6041. --------N-8004-------------------------------
  6042. INT 80 - QPC Software PKTINT.COM - ENABLE???
  6043.     AH = 04h
  6044.     BX = ???
  6045. Return: ???
  6046. SeeAlso: AH=01h
  6047. --------N-8005-------------------------------
  6048. INT 80 - QPC Software PKTINT.COM - GET RECEIVE STATISTICS
  6049.     AH = 05h
  6050. Return: AX = amount of buffer currently in use
  6051.     BX = current offset in buffer
  6052.     CX = number of times receive has been called
  6053. SeeAlso: AH=02h
  6054. --------N-8006-------------------------------
  6055. INT 80 - QPC Software PKTINT.COM - REMOVE RECEIVED PACKET
  6056.     AH = 06h
  6057. Return: BX = next packet offset
  6058.     CX = number of bytes still buffered
  6059.     DX = size of packet released back into buffer pool
  6060. SeeAlso: AH=03h
  6061. --------r-81---------------------------------
  6062. INT 81 - reserved for BASIC
  6063. Note:    this vector is modified but not restored by Direct Access v4.0, and
  6064.       may be left dangling by other programs written with the same version
  6065.       of compiled BASIC
  6066. SeeAlso: INT 80"BASIC",INT 82"BASIC"
  6067. --------N-81---------------------------------
  6068. INT 81 - IBM TOKEN RING ADAPTER - ???
  6069. SeeAlso: INT 82"TOKEN RING",INT 91"TOKEN RING"
  6070. --------r-82---------------------------------
  6071. INT 82 - reserved for BASIC
  6072. SeeAlso: INT 81"BASIC",INT 83"BASIC"
  6073. --------N-82---------------------------------
  6074. INT 82 - IBM TOKEN RING ADAPTER - ???
  6075.     AH = function
  6076.         00h display message???
  6077.         DS:BX -> string
  6078.     ???
  6079. Return: ???
  6080. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  6081. --------r-83---------------------------------
  6082. INT 83 - reserved for BASIC
  6083. SeeAlso: INT 82"BASIC",INT 84"BASIC"
  6084. --------r-84---------------------------------
  6085. INT 84 - reserved for BASIC
  6086. SeeAlso: INT 83"BASIC",INT 85"BASIC"
  6087. --------r-85---------------------------------
  6088. INT 85 - reserved for BASIC
  6089. Note:    INT 80 through INT ED are modified but not restored by Direct Access
  6090.       v4.0, and may be left dangling by other programs written with the
  6091.       same version of compiled BASIC
  6092. SeeAlso: INT 84"BASIC",INT 86"BASIC"
  6093. --------N-86---------------------------------
  6094. INT 86 - NetBIOS - ORIGINAL INT 18
  6095. Note:    some implementations of NetBIOS reportedly relocate INT 18 here
  6096. SeeAlso: INT 18
  6097. --------r-86---------------------------------
  6098. INT 86 - IBM ROM BASIC - used while in interpreter
  6099. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6100.     BASIC.COM/BASICA.COM do not restore vector on termination
  6101. SeeAlso: INT 85"BASIC",INT 87"BASIC"
  6102. --------r-86---------------------------------
  6103. INT 86 - APL*PLUS/PC - Terminate APL session and return to DOS
  6104. SeeAlso: INT 21/AH=4Ch,INT 87"APL"
  6105. --------r-87---------------------------------
  6106. INT 87 - IBM ROM BASIC - used while in interpreter
  6107. Notes:    called by ROM BASIC
  6108.     BASIC.COM/BASICA.COM do not restore vector on termination
  6109. SeeAlso: INT 86"BASIC",INT 88"BASIC"
  6110. --------r-87---------------------------------
  6111. INT 87 - APL*PLUS/PC - ???
  6112. SeeAlso: INT 86"APL",INT 88/AL=00h
  6113. --------v-87---------------------------------
  6114. INT 87 - VIRUS - "ZeroHunt" - VIRAL CODE (NOT A VECTOR!)
  6115. Note:    the ZeroHunt virus copies its resident code down to 0000h:021Ch and
  6116.       following
  6117. SeeAlso: INT 8B"VIRUS"
  6118. --------r-88---------------------------------
  6119. INT 88 - IBM ROM BASIC - used while in interpreter
  6120. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6121.     BASIC.COM/BASICA.COM do not restore vector on termination
  6122. SeeAlso: INT 87"BASIC",INT 89"BASIC"
  6123. --------r-88--00-----------------------------
  6124. INT 88 - APL*PLUS/PC - CREATE OBJECT OF ARBITRARY RANK OR SHAPE
  6125.     AL = 00h
  6126.     BX = STPTR of the variable to be assigned
  6127.     ES:SI -> model of type, rank, and shape (see #2111)
  6128. Return: ES:DI -> first data byte of object
  6129.     DX:CX = number of elements in the object
  6130. SeeAlso: INT C8"APL"
  6131.  
  6132. Format of APL*PLUS/PC shape model:
  6133. Offset    Size    Description    (Table 2111)
  6134.  00h    BYTE    type
  6135.         01h character (2-byte dimension sizes)
  6136.         02h integer (2-byte dimension sizes)
  6137.         08h floating point (2-byte dimension sizes)
  6138.         11h character (4-byte dimension sizes)
  6139.         12h integer (4-byte dimension sizes)
  6140.         18h floating point (4-byte dimension sizes)
  6141.  01h    BYTE    rank
  6142.  02h    (D)WORD first dimension of shape
  6143.  N    (D)WORD second dimension of shape
  6144.     ...
  6145. --------r-88--01-----------------------------
  6146. INT 88 - APL*PLUS/PC - CREATE CHARACTER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6147.     AL = 01h
  6148.     AH = rank
  6149.     BX = STPTR of the variable to be assigned
  6150.     CX = first dimension (if any)
  6151.     DX = second dimension (if any)
  6152. Return: ES:DI -> object
  6153.     CX = number of elements in the object
  6154. Note:    each dimension must be 32767 or smaller
  6155. SeeAlso: AL=02h,AL=08h,INT C8"APL"
  6156. --------r-88--02-----------------------------
  6157. INT 88 - APL*PLUS/PC - CREATE INTEGER SCALAR/VECTOR/MATRIX <64K IN SIZE
  6158.     AL = 02h
  6159.     AH = rank
  6160.     BX = STPTR of the variable to be assigned
  6161.     CX = first dimension (if any)
  6162.     DX = second dimension (if any)
  6163. Return: ES:DI -> object
  6164.     CX = number of elements in the object
  6165. Note:    each dimension must be 32767 or smaller
  6166. SeeAlso: AL=01h,AL=08h,INT C8"APL"
  6167. --------r-88--08-----------------------------
  6168. INT 88 - APL*PLUS/PC - CREATE FLOATING POINT SCALAR/VECTOR/MATRIX <64K IN SIZE
  6169.     AL = 08h
  6170.     AH = rank
  6171.     BX = STPTR of the variable to be assigned
  6172.     CX = first dimension (if any)
  6173.     DX = second dimension (if any)
  6174. Return: ES:DI -> object
  6175.     CX = number of elements in the object
  6176. Note:    each dimension must be 32767 or smaller
  6177. SeeAlso: AL=01h,AL=02h,INT C8"APL"
  6178. --------r-88--F5-----------------------------
  6179. INT 88 - APL*PLUS/PC - FORCE OBJECT INTO REAL WORKSPACE FROM VIRTUAL
  6180.     AL = F5h
  6181.     BX = STPTR of object
  6182. SeeAlso: INT C8"APL"
  6183. --------r-88--F6-----------------------------
  6184. INT 88 - APL*PLUS/PC - MAKE NAME IMMUNE FROM OUTSWAPPING
  6185.     AL = F6h
  6186.     BX = STPTR of object
  6187. SeeAlso: AL=F7h,AL=F8h,INT C8"APL"
  6188. --------r-88--F7-----------------------------
  6189. INT 88 - APL*PLUS/PC - MAKE NAME ELIGIBLE FOR OUTSWAPPING
  6190.     AL = F7h
  6191.     BX = STPTR of object
  6192. SeeAlso: AL=F6h,AL=F8h,INT C8"APL"
  6193. --------r-88--F8-----------------------------
  6194. INT 88 - APL*PLUS/PC - REPORT WHETHER NAME IS ELIGIBLE FOR OUTSWAPPING
  6195.     AL = F8h
  6196.     BX = STPTR of object
  6197. Return: BX = name's outswapping status
  6198.         0000h eligible
  6199.         0001h not eligible
  6200. SeeAlso: AL=F6h,AL=F7h,INT C8"APL"
  6201. --------r-88--F9-----------------------------
  6202. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6203.     AL = F9h
  6204.     ES:SI -> name
  6205.     CX = length of name
  6206. Return: CF set if name ill-formed or already in use
  6207.         BX = STPTR if already in symbol table
  6208.     CF clear if name is available for use
  6209.         BX = 0000h
  6210. Note:    does not force the name into the workspace
  6211. SeeAlso: AL=FEh,AL=FFh,INT C8"APL"
  6212. --------r-88--FC-----------------------------
  6213. INT 88 - APL*PLUS/PC - DETERMINE IF MEMORY AVAIL WITHOUT GARBAGE COLLECTION
  6214.     AL = FCh
  6215.     BX = amount of memory needed (paragraphs)
  6216. Return: CF clear if memory available
  6217.     CF set if a workspace compaction is required
  6218. SeeAlso: AL=FDh,INT C8"APL"
  6219. --------r-88--FD-----------------------------
  6220. INT 88 - APL*PLUS/PC - PERFORM GARBAGE COLLECTION AND RETURN AVAILABLE MEMORY
  6221.     AL = FDh
  6222. Return: BX = number of paragraphs available in workspace
  6223. SeeAlso: AL=FCh,INT C8"APL"
  6224. --------r-88--FE-----------------------------
  6225. INT 88 - APL*PLUS/PC - CREATE NAME
  6226.     AL = FEh
  6227.     ES:SI -> name
  6228.     CX = length of name
  6229. Return: BX = STPTR of name
  6230.     DX = interpreter's data segment
  6231. SeeAlso: AL=F9h,AL=FFh,INT C8"APL"
  6232. --------r-88--FF-----------------------------
  6233. INT 88 - APL*PLUS/PC - DETERMINE NAME STATUS
  6234.     AL = FFh
  6235.     ES:SI -> name
  6236.     CX = length of name
  6237. Return: CF set if name ill-formed or already in use
  6238.         BX = STPTR if already in symbol table
  6239.     CF clear if name is available for use
  6240.         BX = 0000h
  6241. Note:    forces the name into the workspace and makes it immune from outswapping
  6242. SeeAlso: AL=F9h,AL=FEh,INT C8"APL"
  6243. --------r-89---------------------------------
  6244. INT 89 - IBM ROM BASIC - used while in interpreter
  6245. Notes:    called by ROM BASIC
  6246.     BASIC.COM/BASICA.COM do not restore vector on termination
  6247. SeeAlso: INT 88"BASIC",INT 8A"BASIC"
  6248. --------r-8A---------------------------------
  6249. INT 8A - IBM ROM BASIC - used while in interpreter
  6250. Notes:    called by ROM BASIC
  6251.     BASIC.COM/BASICA.COM do not restore vector on termination
  6252. SeeAlso: INT 89"BASIC",INT 8B"BASIC"
  6253. --------r-8A---------------------------------
  6254. INT 8A - APL*PLUS/PC - PRINT SCREEN
  6255. Note:    same as INT 05
  6256. SeeAlso: INT 05,INT 8C"APL",INT CA"APL"
  6257. --------r-8B---------------------------------
  6258. INT 8B - IBM ROM BASIC - used while in interpreter
  6259. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6260.     BASIC.COM/BASICA.COM do not restore vector on termination
  6261. SeeAlso: INT 8A"BASIC",INT 8C"BASIC"
  6262. --------r-8B---------------------------------
  6263. INT 8B - APL*PLUS/PC - BEEP
  6264. Note:    same as printing a ^G via INT 21/AH=02h
  6265. SeeAlso: INT 21/AH=02h,INT CB"APL"
  6266. --------v-8B---------------------------------
  6267. INT 8B - VIRUS - "ZeroHunt" - INSTALLATION CHECK (NOT A VECTOR!)
  6268. Note:    if the ZeroHunt virus is resident, this vector will contain either
  6269.       EE83h:019Bh (ZH-411) or EE83h:019Fh (ZH-415)
  6270. SeeAlso: INT 70"VIRUS",INT 87"VIRUS",INT 9C"VIRUS"
  6271. --------r-8C---------------------------------
  6272. INT 8C - IBM ROM BASIC - used while in interpreter
  6273. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6274.     BASIC.COM/BASICA.COM do not restore vector on termination
  6275. --------r-8C---------------------------------
  6276. INT 8C - APL*PLUS/PC - CLEAR SCREEN MEMORY
  6277.     AX = flag
  6278.         0000h do not save display attributes
  6279.         0001h save attributes
  6280. SeeAlso: INT CC"APL"
  6281. --------r-8D---------------------------------
  6282. INT 8D - IBM ROM BASIC - used while in interpreter
  6283. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6284.     BASIC.COM/BASICA.COM do not restore vector on termination
  6285. --------r-8E---------------------------------
  6286. INT 8E - IBM ROM BASIC - used while in interpreter
  6287. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6288.     BASIC.COM/BASICA.COM do not restore vector on termination
  6289. --------r-8F---------------------------------
  6290. INT 8F - IBM ROM BASIC - used while in interpreter
  6291. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6292.     BASIC.COM/BASICA.COM do not restore vector on termination
  6293. --------r-90---------------------------------
  6294. INT 90 - IBM ROM BASIC - used while in interpreter
  6295. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6296.     BASIC.COM/BASICA.COM do not restore vector on termination
  6297. --------r-90---------------------------------
  6298. INT 90 - APL*PLUS/PC - USED BY PORT 10 PRINTER DRIVER
  6299. --------r-91---------------------------------
  6300. INT 91 - IBM ROM BASIC - used while in interpreter
  6301. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6302.     BASIC.COM/BASICA.COM do not restore vector on termination
  6303. --------N-91---------------------------------
  6304. INT 91 - IBM TOKEN RING ADAPTER - ???
  6305. SeeAlso: INT 81"TOKEN RING",INT 82"TOKEN RING",INT 93"TOKEN RING"
  6306. --------r-92---------------------------------
  6307. INT 92 - IBM ROM BASIC - used while in interpreter
  6308. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6309.     BASIC.COM/BASICA.COM do not restore vector on termination
  6310. --------N-92---------------------------------
  6311. INT 92 - Sangoma X.25 INTERFACE PROGRAM
  6312.     BX:DX -> control block
  6313. SeeAlso: INT 68"Sangoma"
  6314. --------e-92E1-------------------------------
  6315. INT 92 - Da Vinci eMail Dispatcher INTERFACE
  6316.     AH = E1h
  6317.     AL = function
  6318.     BX = stack count (number of words to push)
  6319.     CX:DX -> stack data (in word-reversed order ready to push)
  6320. Return: AX = status (see #2112)
  6321. Note:    preserves BP, DS, SI, DI; other registers may be destroyed
  6322.  
  6323. (Table 2112)
  6324. Values for Da Vinci eMail function status:
  6325.  0001h    success
  6326.  FF97h    "ERS_NOT_AVAILABLE"
  6327.  FF99h    "ERS_TOO_MANY_NAMES"
  6328.  FF9Ah    "ERS_BAD_NAME_PASSWORD"
  6329.  FFE3h    "ERS_NAME_NOT_FOUND"
  6330.  FFF8h    "ERS_USE_STRING" (call NetGetError to get error string)
  6331.  FFFFh    "ERS_NO_SUCH_FILE"
  6332. --------e-92E100-----------------------------
  6333. INT 92 - Da Vinci eMail Dispatcher - "NetInitStart"
  6334.     AX = E100h
  6335.     BX = size of parameter block in words (000Ah)
  6336.     CX:DX -> parameter block (see #2113)
  6337. Return: AX = 0001h success
  6338. Desc:    this function is used to initialize the dispatcher
  6339. SeeAlso: AX=E101h,AX=E103h
  6340.  
  6341. Format of Da Vinci eMail "NetInitStart" parameter block:
  6342. Offset    Size    Description    (Table 2113)
  6343.  00h    WORD    segment of ???
  6344.  02h    WORD    offset of ???
  6345.  04h    WORD    high part of long ???
  6346.  06h    WORD    low part of long ???
  6347.  08h    WORD    high part of long ???
  6348.  0Ah    WORD    low part of long ???
  6349.  0Ch    WORD    high part of long ???
  6350.  0Eh    WORD    low part of long ???
  6351.  10h    WORD    high part of long ???
  6352.  12h    WORD    low part of long ???
  6353. --------e-92E101BX0000-----------------------
  6354. INT 92 - Da Vinci eMail Dispatcher - "NetInitCheck"
  6355.     AX = E101h
  6356.     BX = 0000h
  6357.     CX:DX ignored
  6358. Return: AX = 0001h success
  6359. SeeAlso: AX=E100h,AX=E180h
  6360. --------e-92E102BX0000-----------------------
  6361. INT 92 - Da Vinci eMail Dispatcher - "NetCheckDriver"
  6362.     AX = E102h
  6363.     BX = 0000h
  6364.     CX:DX ignored
  6365. Return: AX = 0001h success
  6366. Desc:    this function is used to determine if the dispatcher is loaded
  6367. SeeAlso: AX=E10Bh,AX=E180h
  6368. --------e-92E103BX0000-----------------------
  6369. INT 92 - Da Vinci eMail Dispatcher - "NetTerminate"
  6370.     AX = E103h
  6371.     BX = 0000h
  6372.     CX:DX ignored
  6373. Return: AX = status (see #2112)
  6374. SeeAlso: AX=E100h
  6375. --------e-92E104-----------------------------
  6376. INT 92 - Da Vinci eMail Dispatcher - "NetWhereIs"
  6377.     AX = E104h
  6378.     BX = size of parameter block in words (0006h)
  6379.     CX:DX -> parameter block (see #2114)
  6380. Return: AX = status (see #2112)
  6381. Desc:    this function is used to verify node address for usernames
  6382. SeeAlso: AX=E180h
  6383.  
  6384. Format of Da Vinci eMail "NetWhereIs" parameter block:
  6385. Offset    Size    Description    (Table 2114)
  6386.  00h    WORD    segment of node address buffer
  6387.  02h    WORD    offset of node address buffer
  6388.  04h    WORD    segment of uppercase username
  6389.  06h    WORD    offset of uppercase username
  6390.  08h    WORD    segment of "DVSEMAIL"
  6391.  0Ah    WORD    offset of "DVSEMAIL"
  6392. --------e-92E105-----------------------------
  6393. INT 92 - Da Vinci eMail Dispatcher - "NetOpen"
  6394.     AX = E105h
  6395.     BX = size of parameter block in words (0007h)
  6396.     CX:DX -> parameter block (see #2115)
  6397. Return: AX = 0000h Error
  6398.     AX = handle
  6399. Desc:    this function is used to open a submission channel
  6400. SeeAlso: AX=E10Ah,AX=E106h,AX=E108h
  6401.  
  6402. Format of Da Vinci eMail "NetOpen" parameter block:
  6403. Offset    Size    Description    (Table 2115)
  6404.  00h    WORD    operation (1 = read, 2 = write)
  6405.  02h    WORD    segment of uppercase To: username
  6406.  04h    WORD    offset of uppercase To: username
  6407.  06h    WORD    segment of "DVSEMAIL"
  6408.  08h    WORD    offset of "DVSEMAIL"
  6409.  0Ah    WORD    segment of node address
  6410.  0Ch    WORD    offset of node address
  6411. --------e-92E106BX0004-----------------------
  6412. INT 92 - Da Vinci eMail Dispatcher - "NetRead"
  6413.     AX = E106h
  6414.     BX = 0004h
  6415.     CX:DX -> parameter block
  6416. Return: AX = 0001h
  6417. SeeAlso: AX=E108h
  6418. --------e-92E107BX0002-----------------------
  6419. INT 92 - Da Vinci eMail Dispatcher - "NetGetError"
  6420.     AX = E107h
  6421.     BX = 0002h
  6422.     CX:DX -> parameter block
  6423. Return: AX = 0001h
  6424. SeeAlso: AX=E109h,AX=E180h
  6425. --------e-92E108-----------------------------
  6426. INT 92 - Da Vinci eMail Dispatcher - "NetWrite"
  6427.     AX = E108h
  6428.     BX = size of parameter block in words (0004h)
  6429.     CX:DX -> parameter block (see #2116)
  6430. Return: AX = amount written
  6431. Desc:    This function is used to write transactions to the dispatcher.
  6432.       The command block is written first and then another call is used
  6433.       to write the associated data.
  6434. SeeAlso: AX=E106h
  6435.  
  6436. Format of Da Vinci eMail "NetWrite" parameter block:
  6437. Offset    Size    Description    (Table 2116)
  6438.  00h    WORD    buffer count (see #2118)
  6439.  02h    WORD    segment of command buffer (see #2117)
  6440.  04h    WORD    offset of command buffer
  6441.  06h    WORD    handle from NetOpen
  6442.  
  6443. Format of Da Vinci eMail command buffer:
  6444. Offset    Size    Description    (Table 2117)
  6445.  00h    BYTE    command
  6446.         21h '!' Protocol commands for remote control
  6447.         41h 'A' Authorization protocol element
  6448.         42h 'B' Return(back) routing information
  6449.             Associated data is the From: username
  6450.         43h 'C' Carbon Copy list
  6451.             Associated data is a comma delimitted list of usernames
  6452.         44h 'D' Distribution list
  6453.             Associated data is a comma delimitted list of usernames
  6454.         45h 'E' Mail end marker
  6455.             No associated data
  6456.         48h 'H' Mail message header
  6457.             Associated data is a message header buffer
  6458.         4Dh 'M' Mail message
  6459.             Associated data is the body of the message
  6460.         4Fh 'O' Object
  6461.         50h 'P' Paperclip attachment
  6462.         52h 'R' Routing information
  6463.             Associated data is the To: username
  6464.         53h 'S' Subject
  6465.             Associated data is the subject of the message
  6466.         54h 'T' Trail of Reply/Forwards
  6467.  01h    BYTE    subcommand
  6468.  02h    DWORD    length of associated data
  6469.  
  6470. Format of Da Vinci eMail message header buffer:
  6471. Offset    Size    Description    (Table 2118)
  6472.  00h 30 BYTEs    subject line
  6473.  1Eh 24 BYTEs    To
  6474.  36h 24 BYTEs    From
  6475.  4Eh    DWORD    Time
  6476.         BYTE    00h
  6477.         BYTE    hour
  6478.         BYTE    minute
  6479.         BYTE    second
  6480.  52h    DWORD    Date
  6481.         BYTE    00h
  6482.         BYTE    year
  6483.         BYTE    month
  6484.         BYTE    day
  6485.  56h    DWORD    serial number (00000000h)
  6486.  5Ah    WORD    mail types (see #2119)
  6487.  5Ch    WORD    special types (0)
  6488.  
  6489. Bitfields for Da Vinci eMail mail types:
  6490. Bit(s)    Description    (Table 2119)
  6491.  7    blind carbon copy
  6492.  6    carbon copy
  6493.  5    priority
  6494.  4    confidential
  6495.  3    certified
  6496.  2    bulk
  6497.  1-0    class (first, second, third, bulk)
  6498. --------e-92E109-----------------------------
  6499. INT 92 - Da Vinci eMail Dispatcher - "NetErrorFix" (UNUSED)
  6500.     AX = E109h
  6501.     BX = size of parameter block in words (0001h)
  6502.     CX:DX -> parameter block (see #2120)
  6503. Return: AX = FF97h (ERS_NOT_AVAILABLE)
  6504. SeeAlso: AX=E107h,AX=E180h
  6505.  
  6506. Format of Da Vinci eMail "NetErrorFix" parameter block:
  6507. Offset    Size    Description    (Table 2120)
  6508.  00h    WORD    ???
  6509. --------e-92E10A-----------------------------
  6510. INT 92 - Da Vinci eMail Dispatcher - "NetClose"
  6511.     AX = E10Ah
  6512.     BX = size of parameter block in words (0001h)
  6513.     CX:DX -> parameter block (see #2121)
  6514. Return: AX = 0001h
  6515. Desc:    this function is used to close a dispatcher handle
  6516. SeeAlso: AX=E105h
  6517.  
  6518. Format of Da Vinci eMail "NetClose" parameter block:
  6519. Offset    Size    Description    (Table 2121)
  6520.  00h    WORD    handle from NetOpen
  6521. --------e-92E10B-----------------------------
  6522. INT 92 - Da Vinci eMail Dispatcher - "NetCheckQueue"
  6523.     AX = E10Bh
  6524.     BX = size of parameter block in words (0004h)
  6525.     CX:DX -> parameter block (see #2122)
  6526. Return: AX = 0001h
  6527. SeeAlso: AX=E102h,AX=E10Ch
  6528.  
  6529. Format of Da Vinci eMail "NetCheckQueue" parameter block:
  6530. Offset    Size    Description    (Table 2122)
  6531.  00h    WORD    segment of 24-byte username buffer
  6532.  02h    WORD    offset of 24-byte username buffer
  6533.  04h    WORD    segment of 24-byte protocol buffer
  6534.  06h    WORD    offset of 24-byte protocol buffer
  6535. --------e-92E10C-----------------------------
  6536. INT 92 - Da Vinci eMail Dispatcher - "NetReadQueue"
  6537.     AX = E10Ch
  6538.     BX = size of parameter block in words (0002h)
  6539.     CX:DX -> parameter block (see #2123)
  6540. Return: AX = 0001h
  6541. SeeAlso: AX=E10Bh
  6542.  
  6543. Format of Da Vinci eMail "NetReadQueue" parameter block:
  6544. Offset    Size    Description    (Table 2123)
  6545.  00h    WORD    Segment of 128 byte node address buffer
  6546.  02h    WORD    Offset of 128 byte node address buffer
  6547. --------e-92E10D-----------------------------
  6548. INT 92 - Da Vinci eMail Dispatcher - "NetSubmitName"
  6549.     AX = E10Dh
  6550.     BX = size of parameter block in words (0006h)
  6551.     CX:DX -> parameter block (see #2124)
  6552. Return: AX = status (see #2112)
  6553. Desc:    this function is used to verify username/password
  6554. SeeAlso: AX=E10Eh
  6555.  
  6556. Format of Da Vinci eMail "NetSubmitName" parameter block:
  6557. Offset    Size    Description    (Table 2124)
  6558.  00h    WORD    segment of uppercase password string
  6559.  02h    WORD    offset of uppercase password string
  6560.  04h    WORD    segment of uppercase username string
  6561.  06h    WORD    offset of uppercase username string
  6562.  08h    WORD    segment of "DVSEMAIL"
  6563.  0Ah    WORD    offset of "DVSEMAIL"
  6564. --------e-92E10E-----------------------------
  6565. INT 92 - Da Vinci eMail Dispatcher - "NetRemoveName"
  6566.     AX = E10Eh
  6567.     BX = size of parameter block in words (0004h)
  6568.     CX:DX -> parameter block (see #2125)
  6569. Return: AX = 0001h
  6570. Desc:    this function is used to remove a username
  6571. SeeAlso: AX=E10Dh
  6572.  
  6573. Format of Da Vinci eMail "NetRemoveName" parameter block:
  6574. Offset    Type    Description    (Table 2125)
  6575.  00h    WORD    segment of uppercase username
  6576.  02h    WORD    offset of uppercase username
  6577.  04h    WORD    segment of "DVSEMAIL"
  6578.  06h    WORD    offset of "DVSEMAIL"
  6579. --------e-92E10FBX0000-----------------------
  6580. INT 92 - Da Vinci eMail Dispatcher - IS ANYONE THERE? QUERY
  6581.     AX = E10Fh
  6582.     BX = 0000h
  6583.     CX:DX ignored
  6584. Return: AX = 0001h
  6585. SeeAlso: AX=E180h
  6586. --------e-92E110-----------------------------
  6587. INT 92 - Da Vinci eMail Dispatcher - "NetGetAltRoute"
  6588.     AX = E110h
  6589.     BX = size of parameter block in words (0006h)
  6590.     CX:DX -> parameter block (see #2126)
  6591. Return: AX = 0001h
  6592. SeeAlso: AX=E111h,AX=E113h
  6593.  
  6594. Format of Da Vinci eMail "NetGetAltRoute" parameter block:
  6595. Offset    Size    Description    (Table 2126)
  6596.  00h  6 WORDs    ???
  6597. --------e-92E111-----------------------------
  6598. INT 92 - Da Vinci eMail Dispatcher - "NetDeleteAltRoutes"
  6599.     AX = E111h
  6600.     BX = size of parameter block in words (0004h)
  6601.     CX:DX -> parameter block (see #2127)
  6602. Return: AX = 0001h
  6603. SeeAlso: AX=E110h,AX=E113h
  6604.  
  6605. Format of Da Vinci eMail "NetDeleteAltRoutes" parameter block:
  6606. Offset    Size    Description    (Table 2127)
  6607.  00h  4 WORDs    ???
  6608. --------e-92E112-----------------------------
  6609. INT 92 - Da Vinci eMail Dispatcher - "NetChangePassword"
  6610.     AX = E112h
  6611.     BX = size of parameter block in words (0008h)
  6612.     CX:DX -> parameter block (see #2128)
  6613. Return: AX = 0001h
  6614. SeeAlso: AX=E180h
  6615.  
  6616. Format of Da Vinci eMail "NetChangePassword" parameter block:
  6617. Offset    Size    Description    (Table 2128)
  6618.  00h  8 WORDs    ???
  6619. --------e-92E113-----------------------------
  6620. INT 92 - Da Vinci eMail Dispatcher - "NetSetAltRoute"
  6621.     AX = E113h
  6622.     BX = size of parameter block in words (0008h)
  6623.     CX:DX -> parameter block (see #2129)
  6624. Return: AX = 0001h
  6625. SeeAlso: AX=E110h,AX=E111h
  6626.  
  6627. Format of Da Vinci eMail "NetSetAltRoute" parameter block:
  6628. Offset    Size    Description    (Table 2129)
  6629.  00h  8 WORDs    ???
  6630. --------e-92E175-----------------------------
  6631. INT 92 - Da Vinci eMail Dispatcher - BECOME MICRO TSR
  6632.     AX = E175h
  6633. Return: AX = 0012h
  6634.     BX = PSP
  6635. SeeAlso: AX=E180h
  6636. --------e-92E180-----------------------------
  6637. INT 92 - Da Vinci eMail Dispatcher - INSTALLATION CHECK
  6638.     AX = E180h
  6639. Return: AX = 0012h if installed
  6640.     ES:DX -> '$'-terminated driver information string
  6641. SeeAlso: AX=E102h,AX=E105h,AX=E10Fh,AX=E175h
  6642. --------r-93---------------------------------
  6643. INT 93 - IBM ROM BASIC - used while in interpreter
  6644. Notes:    called by ROM BASIC
  6645.     BASIC.COM/BASICA.COM do not restore vector on termination
  6646. --------N-93---------------------------------
  6647. INT 93 - IBM TOKEN RING ADAPTER - ???
  6648. SeeAlso: INT 81"TOKEN RING",INT 91"TOKEN RING"
  6649. --------r-94---------------------------------
  6650. INT 94 - IBM ROM BASIC - used while in interpreter
  6651. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6652.     BASIC.COM/BASICA.COM do not restore vector on termination
  6653. --------s-94----SI0000-----------------------
  6654. INT 94 u - PCM driver - INITIALIZE SOUND
  6655.     SI = 0000h
  6656.     ES:BX -> parameters
  6657. Return: ???
  6658. Program: PCM.COM is a sound driver for Media Vision's Pro Audio Spectrum
  6659.       sound boards
  6660. Note:    the installation check consists of testing for the signature string
  6661.       "PCMDRIVER" immediately preceding the interrupt handler; the word
  6662.       preceding the signature gives the PCM driver's version
  6663. SeeAlso: SI=0001h,SI=0002h,SI=0003h,SI=0004h,SI=0005h,SI=000Ah
  6664. Index:    installation check;PCM driver|PCM.COM;installation check
  6665. Index:    PCM driver;installation check
  6666. --------s-94----SI0001-----------------------
  6667. INT 94 u - PCM driver - INITIALIZE PCM
  6668.     SI = 0001h
  6669.     ES:BX -> parameters
  6670. Return: ???
  6671. SeeAlso: SI=0000h,SI=0002h,SI=0003h,SI=000Ah
  6672. --------s-94----SI0002-----------------------
  6673. INT 94 u - PCM driver - INITIALIZE PCM INFO
  6674.     SI = 0002h
  6675.     ES:BX -> parameters (see #2130)
  6676. Return: ???
  6677. SeeAlso: SI=0000h,SI=0001h,SI=0003h,SI=000Ah
  6678.  
  6679. Format of PCM driver parameters:
  6680. Offset    Size    Description    (Table 2130)
  6681.  00h    DWORD    rate
  6682.  04h    WORD    channel number
  6683.  06h    WORD    "comp"
  6684.  08h    WORD    "dsize"
  6685. --------s-94----SI0003-----------------------
  6686. INT 94 u - PCM driver - INITIALIZE DMA BUFFER
  6687.     SI = 0003h
  6688.     ES:BX -> parameters (see #2131)
  6689. Return: ???
  6690. SeeAlso: SI=0000h,SI=000Ah,SI=000Bh
  6691.  
  6692. Format of PCM driver parameters:
  6693. Offset    Size    Description    (Table 2131)
  6694.  00h    DWORD    -> DMA buffer
  6695.  04h    WORD    size of DMA buffer
  6696.  06h    WORD    number of divisions
  6697. --------s-94----SI0004-----------------------
  6698. INT 94 u - PCM driver - INITIALIZE USER FUNCTION
  6699.     SI = 0004h
  6700.     ES:BX -> parameters (see #2132)
  6701. Return: ???
  6702. SeeAlso: SI=0000h,SI=0001h
  6703.  
  6704. Format of PCM driver parameters:
  6705. Offset    Size    Description    (Table 2132)
  6706.  00h    DWORD    -> user function
  6707. --------s-94----SI0005-----------------------
  6708. INT 94 u - PCM driver - BEGIN AUDIO PLAY
  6709.     SI = 0005h
  6710. Return: ???
  6711. SeeAlso: SI=0000h,SI=0006h,SI=0007h,SI=0009h
  6712. --------s-94----SI0006-----------------------
  6713. INT 94 u - PCM driver - BEGIN AUDIO RECORD
  6714.     SI = 0006h
  6715. Return: ???
  6716. SeeAlso: SI=0005h,SI=0007h,SI=0009h
  6717. --------s-94----SI0007-----------------------
  6718. INT 94 u - PCM driver - PAUSE AUDIO PLAY/RECORD
  6719.     SI = 0007h
  6720. Return: ???
  6721. SeeAlso: SI=0005h,SI=0006h,SI=0008h
  6722. --------s-94----SI0008-----------------------
  6723. INT 94 u - PCM driver - RESUME AUDIO PLAY/RECORD
  6724.     SI = 0008h
  6725. Return: ???
  6726. SeeAlso: SI=0007h
  6727. --------s-94----SI0009-----------------------
  6728. INT 94 u - PCM driver - STOP AUDIO PLAY/RECORD
  6729.     SI = 0009h
  6730. Return: ???
  6731. SeeAlso: SI=0005h,SI=0006h,SI=0007h
  6732. --------s-94----SI000A-----------------------
  6733. INT 94 u - PCM driver - UNHOOK INTERRUPTS AND TURN OFF DMA
  6734.     SI = 000Ah
  6735. Return: ???
  6736. SeeAlso: SI=0000h,SI=0001h,SI=0003h
  6737. Index:    uninstall;PCM driver
  6738. --------s-94----SI000B-----------------------
  6739. INT 94 u - PCM driver - FIND VALID DMA BUFFER IN HUGE MEMORY BLOCK
  6740.     SI = 000Bh
  6741.     ES:BX -> parameters (see #2133)
  6742. Return: ???
  6743. SeeAlso: SI=0003h
  6744.  
  6745. Format of PCM driver parameters:
  6746. Offset    Size    Description    (Table 2133)
  6747.  00h    DWORD    -> memory block to contain DMA buffer
  6748.  04h    WORD    desired size of DMA buffer
  6749. --------s-94----SI000D-----------------------
  6750. INT 94 u - Media Vision PCM.COM - GET STATUS
  6751.     SI = 000Dh
  6752. Return: AX = status (0000h = waiting) (see #2134)
  6753.  
  6754. Bitfields for PCM.COM status:
  6755. Bit(s)    Description    (Table 2134)
  6756.  0    playing
  6757.  1    recording
  6758.  2    SBplaying
  6759.  3    SBrecording
  6760.  14    SBpaused
  6761.  15    paused
  6762. --------s-94----SI8000-----------------------
  6763. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER ADDRESS
  6764.     SI = 8000h
  6765. Return: DX:AX -> DMA buffer
  6766. Program: PCM.COM is a superset of the standard PCM driver which provides
  6767.       additional functions for fine control of the driver
  6768. Note:    the installation check for the Media Vision PCM.COM "shark" functions
  6769.       consists of testing for the signature "PCM-SHARK" at offset 107h in
  6770.       the INT 94 handler's segment
  6771. SeeAlso: SI=8001h,SI=8004h
  6772. Index:    installation check;Media Vision PCM.COM|PCM.COM;installation check
  6773. Index:    Media Vision PCM.COM;"shark" functions
  6774. --------s-94----SI8001-----------------------
  6775. INT 94 u - Media Vision PCM.COM - GET INTERNAL DMA BUFFER SIZE AND DIVISIONS
  6776.     SI = 8001h
  6777. Return: AX = DMA buffer size
  6778.     DX = divisions
  6779. SeeAlso: SI=8000h
  6780. --------s-94----SI8002-----------------------
  6781. INT 94 u - Media Vision PCM.COM - CHECK BOARD ADDRESS
  6782.     SI = 8002h
  6783. Return: AX = status
  6784.         0000h if board not at specified I/O address
  6785.         other if board found
  6786. Note:    the I/O address is specified by ORing the base I/O port shifted left
  6787.       four bits into SI before calling INT 94
  6788. SeeAlso: SI=8000h
  6789. --------s-94----SI8004-----------------------
  6790. INT 94 u - Media Vision PCM.COM - GET INTERNAL NOTE BUFFER
  6791.     SI = 8004h
  6792. Return: AX = offset of note buffer (segment = segment of internal DMA buffer)
  6793.     DX = size of buffer in note structures
  6794. SeeAlso: SI=8000h
  6795. --------s-94----SI8005-----------------------
  6796. INT 94 u - Media Vision PCM.COM - SINGLE-STEP QUEUE
  6797.     SI = 8005h
  6798. Return: ???
  6799. --------s-94----SI8011-----------------------
  6800. INT 94 u - Media Vision PCM.COM - INITIALIZE
  6801.     SI = 8011h
  6802.     ES:BX -> "iobf91" structure
  6803. Return: ???
  6804. --------s-94----SI8012-----------------------
  6805. INT 94 u - Media Vision PCM.COM - LOAD SOUND FOR LATER PLAY THROUGH KEYBOARD
  6806.     SI = 8012h
  6807.     ES:BX -> "i94f92buf" structure
  6808. Return: ???
  6809. SeeAlso: SI=8013h,SI=8014h
  6810. --------s-94----SI8013-----------------------
  6811. INT 94 u - Media Vision PCM.COM - GET INTERNAL SOUND USAGE
  6812.     SI = 8013h
  6813. Return: AX = number of sounds used
  6814.     DX = maximum handles
  6815. --------s-94----SI8014-----------------------
  6816. INT 94 u - Media Vision PCM.COM - GET DATA FOR SPECIFIED SOUND
  6817.     SI = 8014h
  6818.     ES:BX -> "i94f92buf" structure to be filled in
  6819.         sound number field set to desired sound
  6820. Return: AX = status
  6821.         0000h successful
  6822.         FFFFh sound number out of range
  6823. SeeAlso: SI=8012h,SI=8013h
  6824. --------s-94----SI8015-----------------------
  6825. INT 94 u - Media Vision PCM.COM - GET/SET INTERNAL DMA BUFFER
  6826.     SI = 8015h
  6827.     ES:BX -> DMA info structure (see #2135)
  6828. Return: ???
  6829.  
  6830. Format of PCM.COM DMA info structure:
  6831. Offset    Size    Description    (Table 2135)
  6832.  00h    DWORD    -> DMA buffer (offset FFFFh = return current buffer info)
  6833.  04h    WORD    DMA buffer size
  6834.  06h    WORD    divisions
  6835. --------s-94----SI8016-----------------------
  6836. INT 94 u - Media Vision PCM.COM - SIMULATE DOUBLE-SHIFT HOTKEY
  6837.     SI = 8016h
  6838.     AX = hotkey number (01h-08h)
  6839. Return: ???
  6840. SeeAlso: AL=02h/SI=8017h
  6841. --------s-94--01SI8017-----------------------
  6842. INT 94 u - Media Vision PCM.COM - CTRL-G INTERCEPT
  6843.     AL = 01h
  6844.     SI = 8017h
  6845.     AH = new state (00h off, 01h on)
  6846. Return: ???
  6847. SeeAlso: AL=02h/SI=8017h
  6848. --------s-94--02SI8017-----------------------
  6849. INT 94 u - Media Vision PCM.COM - DOUBLE-SHIFT-HOTKEY SOUND FEATURE
  6850.     AL = 02h
  6851.     SI = 8017h
  6852.     AH = new state (00h off, 01h on)
  6853. Return: ???
  6854. --------s-94--04SI8017-----------------------
  6855. INT 94 u - Media Vision PCM.COM - RANDOM SOUND FEATURE
  6856.     AL = 04h
  6857.     SI = 8017h
  6858.     AH = new state
  6859.         00h off
  6860.         01h on
  6861.         CX = minimum delay
  6862.         DX = maximum delay
  6863. Return: ???
  6864. --------s-94--08SI8017-----------------------
  6865. INT 94 u - Media Vision PCM.COM - NO ACTIVITY FEATURE
  6866.     AL = 08h
  6867.     SI = 8017h
  6868.     AH = new state
  6869.         00h off
  6870.         01h on
  6871.         DX:CX = delay
  6872. Return: ???
  6873. SeeAlso: AL=10h/SI=8017h
  6874. --------s-94--10SI8017-----------------------
  6875. INT 94 u - Media Vision PCM.COM - TIMER CONTROL
  6876.     AL = 10h
  6877.     SI = 8017h
  6878.     AH bit 7: set timer
  6879.     AH bit 6: timer active (timer turned off if clear)
  6880.     AH bits 5-0: timer number
  6881.     DX:CX = delay if AH bit 7 set (one-shot if DX bit 15 set)
  6882. Return: ???
  6883. SeeAlso: AL=08h/SI=8017h
  6884. --------s-94----SI8018-----------------------
  6885. INT 94 u - Media Vision PCM.COM - GET INFO
  6886.     SI = 8018h
  6887.     AL = what to get
  6888.         00h "F92state"
  6889.         01h "F92bkgd"
  6890.         02h "I10timer"
  6891.         03h "I08state"
  6892. Return: DX:AX -> desired information
  6893. --------r-95---------------------------------
  6894. INT 95 - IBM ROM BASIC - used while in interpreter
  6895. Notes:    called by ROM BASIC
  6896.     BASIC.COM/BASICA.COM do not restore vector on termination
  6897. --------r-95---------------------------------
  6898. INT 95 - APL*PLUS/PC - DETERMINE R= SPACE
  6899. Note:    use only when the R= option is invoked on entering APL
  6900. --------r-96---------------------------------
  6901. INT 96 - IBM ROM BASIC - used while in interpreter
  6902. Notes:    called by ROM BASIC
  6903.     BASIC.COM/BASICA.COM do not restore vector on termination
  6904. --------r-97---------------------------------
  6905. INT 97 - IBM ROM BASIC - used while in interpreter
  6906. Notes:    called by ROM BASIC
  6907.     BASIC.COM/BASICA.COM do not restore vector on termination
  6908. --------r-98---------------------------------
  6909. INT 98 - IBM ROM BASIC - used while in interpreter
  6910. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6911.     BASIC.COM/BASICA.COM do not restore vector on termination
  6912. --------r-99---------------------------------
  6913. INT 99 - IBM ROM BASIC - used while in interpreter
  6914. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6915.     BASIC.COM/BASICA.COM do not restore vector on termination
  6916. --------r-9A---------------------------------
  6917. INT 9A - IBM ROM BASIC - used while in interpreter
  6918. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6919.     BASIC.COM/BASICA.COM do not restore vector on termination
  6920. SeeAlso: INT 80"BASIC",INT 99,INT 9B
  6921. --------r-9B---------------------------------
  6922. INT 9B - IBM ROM BASIC - used while in interpreter
  6923. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6924.     BASIC.COM/BASICA.COM do not restore vector on termination
  6925. SeeAlso: INT 80"BASIC",INT 9A,INT 9C"BASIC"
  6926. --------r-9C---------------------------------
  6927. INT 9C - IBM ROM BASIC - used while in interpreter
  6928. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6929.     BASIC.COM/BASICA.COM do not restore vector on termination
  6930. SeeAlso: INT 80"BASIC",INT 9B,INT 9D"BASIC"
  6931. --------v-9C---------------------------------
  6932. INT 9C - VIRUS - "INT13" - ORIGINAL INT 13h VECTOR
  6933. SeeAlso: INT 8B"VIRUS",INT 9D"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  6934. --------r-9D---------------------------------
  6935. INT 9D - IBM ROM BASIC - used while in interpreter
  6936. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6937.     BASIC.COM/BASICA.COM do not restore vector on termination
  6938. SeeAlso: INT 80"BASIC",INT 9C"BASIC",INT 9E"BASIC"
  6939. --------v-9D---------------------------------
  6940. INT 9D - VIRUS - "INT13" - ROM INT 13h ENTRY POINT
  6941. Note:    this vector is used by the virus to store the result of a call to
  6942.       INT 2F/AH=13h
  6943. SeeAlso: INT 2F/AH=13h,INT 9C"VIRUS",INT 9E"VIRUS",INT 9F"VIRUS"
  6944. --------r-9E---------------------------------
  6945. INT 9E - IBM ROM BASIC - used while in interpreter
  6946. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6947.     BASIC.COM/BASICA.COM do not restore vector on termination
  6948. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT 9F"BASIC"
  6949. --------v-9E---------------------------------
  6950. INT 9E - VIRUS - "INT13" - ORIGINAL INT 21h VECTOR
  6951. SeeAlso: INT 70"VIRUS",INT 9C"VIRUS",INT 9D"VIRUS",INT E0"VIRUS"
  6952. --------r-9F---------------------------------
  6953. INT 9F - IBM ROM BASIC - used while in interpreter
  6954. Notes:    called by ROM BASIC
  6955.     BASIC.COM/BASICA.COM do not restore vector on termination
  6956. SeeAlso: INT 80"BASIC",INT 9D"BASIC",INT A0"BASIC"
  6957. --------v-9F---------------------------------
  6958. INT 9F - VIRUS - "INT13" - STORAGE FOR USER INT 13h VECTOR
  6959. Note:    while it is infecting a file, the INT13 virus grabs INT 13 and uses
  6960.       this interrupt to store the existing INT 13 vector for later
  6961.       restoration
  6962. SeeAlso: INT 9C"VIRUS",INT 9D"VIRUS"
  6963. --------r-A0---------------------------------
  6964. INT A0 - IBM ROM BASIC - used while in interpreter
  6965. Notes:    called by ROM BASIC
  6966.     BASIC.COM/BASICA.COM do not restore vector on termination
  6967. SeeAlso: INT 80"BASIC",INT 9F"BASIC",INT A1"BASIC"
  6968. --------r-A0---------------------------------
  6969. INT A0 - APL*PLUS/PC - USED BY APL/GSS*CGI GRAPHICS INTERFACE
  6970. SeeAlso: INT 59
  6971. --------r-A1---------------------------------
  6972. INT A1 - IBM ROM BASIC - used while in interpreter
  6973. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6974.     BASIC.COM/BASICA.COM do not restore vector on termination
  6975. SeeAlso: INT 80"BASIC",INT A0"BASIC",INT A2"BASIC"
  6976. --------r-A2---------------------------------
  6977. INT A2 - IBM ROM BASIC - used while in interpreter
  6978. Notes:    called by ROM BASIC
  6979.     BASIC.COM/BASICA.COM do not restore vector on termination
  6980. SeeAlso: INT 80"BASIC",INT A1"BASIC",INT A3"BASIC"
  6981. --------r-A3---------------------------------
  6982. INT A3 - IBM ROM BASIC - used while in interpreter
  6983. Notes:    called by ROM BASIC
  6984.     BASIC.COM/BASICA.COM do not restore vector on termination
  6985. SeeAlso: INT 80"BASIC",INT A2"BASIC",INT A4"BASIC"
  6986. --------r-A4---------------------------------
  6987. INT A4 - IBM ROM BASIC - used while in interpreter
  6988. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  6989.     BASIC.COM/BASICA.COM do not restore vector on termination
  6990. SeeAlso: INT 80"BASIC",INT A3"BASIC",INT A5"BASIC"
  6991. --------U-A4---------------------------------
  6992. INT A4 U - Right Hand Man - API
  6993.     AH = function number (v3.3 supports functions 00h-52h)
  6994. Return: CF set on error
  6995.     CF clear if successful
  6996. Program: Right Hand Man is a TSR desk-top utility originally by Red E Products
  6997.       which has evolved into Futurus Team
  6998. Note:    this interrupt is only hooked while popped up
  6999. SeeAlso: INT 2F/AX=A4E0h
  7000. --------r-A5---------------------------------
  7001. INT A5 - IBM ROM BASIC - used while in interpreter
  7002. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7003.     BASIC.COM/BASICA.COM do not restore vector on termination
  7004. SeeAlso: INT 80"BASIC",INT A4"BASIC",INT A6"BASIC"
  7005. --------r-A6---------------------------------
  7006. INT A6 - IBM ROM BASIC - used while in interpreter
  7007. Notes:    called by ROM BASIC
  7008.     BASIC.COM/BASICA.COM do not restore vector on termination
  7009. SeeAlso: INT 80"BASIC",INT A5"BASIC",INT A7"BASIC"
  7010. --------r-A7---------------------------------
  7011. INT A7 - IBM ROM BASIC - used while in interpreter
  7012. Notes:    called by ROM BASIC
  7013.     BASIC.COM/BASICA.COM do not restore vector on termination
  7014. --------r-A8---------------------------------
  7015. INT A8 - IBM ROM BASIC - used while in interpreter
  7016. Notes:    called by ROM BASIC
  7017.     BASIC.COM/BASICA.COM do not restore vector on termination
  7018. --------r-A9---------------------------------
  7019. INT A9 - IBM ROM BASIC - used while in interpreter
  7020. Notes:    called by ROM BASIC
  7021.     BASIC.COM/BASICA.COM do not restore vector on termination
  7022. --------r-AA---------------------------------
  7023. INT AA - IBM ROM BASIC - used while in interpreter
  7024. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7025.     BASIC.COM/BASICA.COM do not restore vector on termination
  7026. --------r-AB---------------------------------
  7027. INT AB - IBM ROM BASIC - used while in interpreter
  7028. Notes:    called by ROM BASIC
  7029.     BASIC.COM/BASICA.COM do not restore vector on termination
  7030. --------r-AC---------------------------------
  7031. INT AC - IBM ROM BASIC - used while in interpreter
  7032. Notes:    called by ROM BASIC
  7033.     BASIC.COM/BASICA.COM do not restore vector on termination
  7034. --------r-AD---------------------------------
  7035. INT AD - IBM ROM BASIC - used while in interpreter
  7036. Notes:    called by ROM BASIC
  7037.     BASIC.COM/BASICA.COM do not restore vector on termination
  7038. --------r-AE---------------------------------
  7039. INT AE - IBM ROM BASIC - used while in interpreter
  7040. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7041.     BASIC.COM/BASICA.COM do not restore vector on termination
  7042. --------r-AF---------------------------------
  7043. INT AF - IBM ROM BASIC - used while in interpreter
  7044. Notes:    called by ROM BASIC
  7045.     BASIC.COM/BASICA.COM do not restore vector on termination
  7046. --------r-B0---------------------------------
  7047. INT B0 - IBM ROM BASIC - used while in interpreter
  7048. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7049.     BASIC.COM/BASICA.COM do not restore vector on termination
  7050. --------r-B1---------------------------------
  7051. INT B1 - IBM ROM BASIC - used while in interpreter
  7052. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7053.     BASIC.COM/BASICA.COM do not restore vector on termination
  7054. --------r-B2---------------------------------
  7055. INT B2 - IBM ROM BASIC - used while in interpreter
  7056. Notes:    called by ROM BASIC
  7057.     BASIC.COM/BASICA.COM do not restore vector on termination
  7058. --------r-B3---------------------------------
  7059. INT B3 - IBM ROM BASIC - used while in interpreter
  7060. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7061.     BASIC.COM/BASICA.COM do not restore vector on termination
  7062. --------U-B370-------------------------------
  7063. INT B3 - ZIPKEY - GET VERSION
  7064.     AH = 70h
  7065. Return: AH = major version
  7066.     AL = minor version
  7067.     CL = number of states and territories in current database
  7068.     DH = year of current database - 1900
  7069.     DL = month of current database's file date
  7070. Program: ZIPKEY is a resident ZIPCODE database by Eric Isaacson
  7071. Note:    if installed, the string "ZIPKEY" is present at offset 75h in the
  7072.       interrupt handler's segment, and the byte at 7Bh contains the API
  7073.       version number (00h for v1.x, 01h for v2.0)
  7074. --------U-B371-------------------------------
  7075. INT B3 - ZIPKEY - CONVERT TWO-LETTER ABBREVIATION TO STATE CODE
  7076.     AH = 71h
  7077.     BX = abbreviation, in either case (first letter in BL)
  7078. Return: CF set on error
  7079.         AL = FFh
  7080.     CF clear if successful
  7081.         AL = ZIPKEY state code
  7082. SeeAlso: AH=72h
  7083. --------U-B372-------------------------------
  7084. INT B3 - ZIPKEY - CONVERT STATE CODE TO TWO-LETTER ABBREVIATION
  7085.     AH = 72h
  7086.     BL = ZIPKEY state code
  7087. Return: CF set on error
  7088.         AX destroyed
  7089.     CF clear if successful
  7090.         AX = abbreviation, in upper case
  7091. SeeAlso: AH=71h,AH=73h
  7092. --------U-B373-------------------------------
  7093. INT B3 - ZIPKEY - CONVERT STATE CODE TO STATE NAME
  7094.     AH = 73h
  7095.     BL = ZIPKEY state code
  7096.     ES:DI -> buffer for name
  7097. Return: CF set on error
  7098.         AX destroyed
  7099.     CF clear if successful
  7100.         ES:DI points one byte beyond end of name
  7101. SeeAlso: AH=72h
  7102. --------U-B374-------------------------------
  7103. INT B3 - ZIPKEY - CONVERT ZIPCODE TO ASCII DIGITS
  7104.     AH = 74h
  7105.     DX = zipcode region (0-999)
  7106.     CH = last two digits of zipcode (0-99)
  7107.     ES:DI -> buffer
  7108. Return: CF set on error
  7109.         AX destroyed
  7110.     CF clear if successful
  7111.         ES:DI points one byte beyond end of digit string
  7112. --------U-B375-------------------------------
  7113. INT B3 - ZIPKEY - LOOK UP STATE CODE FOR ZIPCODE
  7114.     AH = 75h
  7115.     DX = zipcode region (0-999)
  7116.     CH = last two digits of zipcode (0-99)
  7117. Return: CF set on error (zipcode not found)
  7118.         AL = suggested state code, FFh if none
  7119.     CF clear if successful
  7120.         AL = ZIPKEY state code
  7121.         BX = area code (v2.0+)
  7122. SeeAlso: AH=76h,AH=79h
  7123. --------U-B376-------------------------------
  7124. INT B3 - ZIPKEY - LOOK UP CITY AND STATE FOR ZIPCODE
  7125.     AH = 76h
  7126.     DX = zipcode region (0-999)
  7127.     CH = last two digits of zipcode (0-99)
  7128.     ES:DI -> buffer for name
  7129. Return: CF set on error
  7130.         AL = suggested state code, FFh if none
  7131.         ES:DI buffer filled with suggested city name
  7132.     CF clear if successful
  7133.         AL = ZIPKEY state code
  7134.         BX = area code (v2.0+)
  7135.         ES:DI points one byte beyond end of name
  7136. SeeAlso: AH=75h,AH=78h,AH=7Eh
  7137. --------U-B377-------------------------------
  7138. INT B3 - ZIPKEY - PLAY BACK EXIT KEY FOR ENTRY WITH GIVEN ZIPCODE
  7139.     AH = 77h
  7140.     DX = zipcode region (0-999)
  7141.     CH = last two digits of zipcode (0-99)
  7142.     BX = 16-bit BIOS keycode for a defined ZIPKEY alternate exit key
  7143. Return: CF set on error
  7144.         AX destroyed
  7145.     CF clear if successful
  7146.         zipcode specification as defined by the BX keystroke is placed in
  7147.           keyboard buffer, as if the user had popped up ZIPKEY and exited
  7148.           by pressing the key specified by BX
  7149. --------U-B378-------------------------------
  7150. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN STATE AND CITY
  7151.     AH = 78h
  7152.     BL = ZIPKEY state code
  7153.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7154. Return: BH = number of matching entries (set to 51 if more than 50)
  7155.     DX = zipcode region of first match (0-999)
  7156.     CL = last two digits of first zipcode in the range (0-99)
  7157.     CH = last two digits of last zipcode in the range (0-99)
  7158.     AX destroyed
  7159. SeeAlso: AH=79h,AH=7Ah
  7160. --------U-B379-------------------------------
  7161. INT B3 - ZIPKEY - LOOK UP ZIPCODES FOR A GIVEN CITY
  7162.     AH = 79h
  7163.     BL = ZIPKEY state code of first state to search
  7164.     DS:SI -> city name, terminated with 0Dh if complete name, 00h if prefix
  7165. Return: AL = ZIPKEY state code of first matching state
  7166.     BH = number of matching entries (set to 51 if more than 50)
  7167.     DX = zipcode region of first match (0-999)
  7168.     CL = last two digits of first zipcode in first range (0-99)
  7169.     CH = last two digits of last zipcode in first range (0-99)
  7170. Note:    to find all matching cities, repeat search with BL set to one more than
  7171.       the returned AL
  7172. SeeAlso: AH=78h,AH=7Ah
  7173. --------U-B37A-------------------------------
  7174. INT B3 - ZIPKEY - FETCH AN ENTRY FROM A PREVIOUS LOOKUP
  7175.     AH = 7Ah
  7176.     BL = case number (0 to one less than value returned in BH by lookup)
  7177. Return: AL = ZIPKEY state code
  7178.     DX = zipcode region (0-999)
  7179.     CL = last two digits of first zipcode in the range (0-99)
  7180.     CH = last two digits of last zipcode in the range (0-99)
  7181. SeeAlso: AH=78h,AH=79h
  7182. --------U-B37B-------------------------------
  7183. INT B3 - ZIPKEY - GET VALUES NEEDED TO SAVE ZIPKEY CONTEXT
  7184.     AH = 7Bh
  7185. Return: BL = maximum number of characters for a city name
  7186.     BH = ZIPKEY state code for last city-name search, or FFh if none
  7187.     CX:DX = internal code identifying last city search
  7188.     AX destroyed
  7189. SeeAlso: AH=7Ch
  7190. --------U-B37C-------------------------------
  7191. INT B3 - ZIPKEY - RESTORE ZIPKEY CONTEXT
  7192.     AH = 7Ch
  7193.     BL = maximum number of characters for a city name
  7194.     BH = ZIPKEY state code for last city-name search, or FFh if none
  7195.     CX:DX = internal code returned by AH=7Bh
  7196. Return: CF set on error
  7197.     CF clear if successful
  7198.     AX destroyed
  7199. SeeAlso: AH=7Bh
  7200. --------U-B37D-------------------------------
  7201. INT B3 - ZIPKEY - REQUEST POP UP
  7202.     AH = 7Dh
  7203.     BL = index number to simulate pressing a hotkey
  7204.         FFh for immediate popup with no playback on return
  7205. Return: CF set on error
  7206.         AL = error code
  7207.             FDh already busy with another request
  7208.             FEh illegal function
  7209.     CF clear if successful
  7210.         AX destroyed
  7211.         window popped up and was closed by the user
  7212. SeeAlso: AH=70h
  7213. --------U-B37E-------------------------------
  7214. INT B3 - ZIPKEY - GET NAME OF PRIMARY CITY FOR A ZIPCODE REGION
  7215.     AH = 7Eh
  7216.     DX = zipcode region (0-999)
  7217.     ES:DI -> buffer for name
  7218. Return: CF set on error
  7219.         AL = FFh region does not exist
  7220.     CF clear if successful
  7221.         AL = ZIPKEY state code
  7222.         ES:DI points one byte beyond end of name
  7223. SeeAlso: AH=76h
  7224. --------U-B37F-------------------------------
  7225. INT B3 - ZIPKEY - ENABLE/DISABLE HOTKEYS
  7226.     AH = 7Fh
  7227.     BL = function
  7228.         00h turn off hotkeys
  7229.         01h turn on hotkeys
  7230.         02h return hotkey status
  7231.         03h toggle hotkey status
  7232. Return: AL = hotkey status
  7233.         00h off
  7234.         01h on
  7235. --------U-B380-------------------------------
  7236. INT B3 - ZIPKEY v2.0+ - DETERMINE STATE FOR AREA CODE
  7237.     AH = 80h
  7238.     BX = telephone area code (decimal)
  7239. Return: CF clear if successful
  7240.         AL = ZIPKEY state code
  7241.         DX = first ZIP region for state (03E8h if Canada)
  7242.         CX = number of ZIP regions in state
  7243.     CF set on error
  7244.         AL = FFh
  7245.         DX = 03E9h
  7246. --------r-B4---------------------------------
  7247. INT B4 - IBM ROM BASIC - used while in interpreter
  7248. Notes:    called by ROM BASIC
  7249.     BASIC.COM/BASICA.COM do not restore vector on termination
  7250. --------r-B4---------------------------------
  7251. INT B4 - StackMan - REQUEST NEW STACK
  7252. Return: SS:SP -> new stack
  7253. Program: StackMan is a freeware stack manager by Franz Veldman of ESaSS B.V.
  7254.       which functions as a replacement for the DOS STACK= command as well
  7255.       as permitting multiple TSRs to share a pool of stack space
  7256. Note:    the installation check consists of testing for the string "STACKXXX" at
  7257.       offset 0Ah from the interrupt handler
  7258. SeeAlso: INT 2F/AX=C9FFh,INT B5"STACKMAN"
  7259. Index:    installation check;STACKMAN
  7260. --------r-B5---------------------------------
  7261. INT B5 - IBM ROM BASIC - used while in interpreter
  7262. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7263.     BASIC.COM/BASICA.COM do not restore vector on termination
  7264. SeeAlso: INT 80"BASIC",INT B4"BASIC",INT B6"BASIC"
  7265. --------r-B5---------------------------------
  7266. INT B5 - StackMan - RESTORE ORIGINAL STACK
  7267.     SS:SP -> stack returned by INT B4
  7268. Return: SS:SP restored to value before INT B4
  7269. SeeAlso: INT 2F/AX=C9FFh,INT B4"StackMan"
  7270. --------m-B5---------------------------------
  7271. INT B5 U - Netroom NETSWAP4 - ???
  7272.     ???
  7273. Return: ???
  7274. SeeAlso: INT 31/AH=57h
  7275. --------r-B6---------------------------------
  7276. INT B6 - IBM ROM BASIC - used while in interpreter
  7277. Notes:    called by ROM BASIC
  7278.     BASIC.COM/BASICA.COM do not restore vector on termination
  7279. SeeAlso: INT 80"BASIC",INT B5"BASIC",INT B7"BASIC"
  7280. --------y-B6---------------------------------
  7281. INT B6 - (NOT A VECTOR!) - USED BY TBFENCE
  7282. Program: TBFence is a security program by ESaSS B.V. which transparently
  7283.       encrypts floppies and optionally allows only encrypted diskettes to
  7284.       be accessed
  7285. Note:    the low word of this vector (0000h:02D8h) contains the segment of the
  7286.       TBFence INT 13h code, which starts with the signature word E487h;
  7287.       this forms the installation check
  7288.     the highest byte of this vector contains the start of a FAR JMP
  7289.       instruction to ???
  7290. SeeAlso: INT B7"TBFENCE"
  7291. Index:    installation check;TBFence
  7292. --------r-B7---------------------------------
  7293. INT B7 - IBM ROM BASIC - used while in interpreter
  7294. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7295.     BASIC.COM/BASICA.COM do not restore vector on termination
  7296. SeeAlso: INT 80"BASIC",INT B6"BASIC",INT B8"BASIC"
  7297. --------y-B7---------------------------------
  7298. INT B7 - TBFENCE - ???
  7299. SeeAlso: INT B6"TBFENCE"
  7300. --------r-B8---------------------------------
  7301. INT B8 - IBM ROM BASIC - used while in interpreter
  7302. Notes:    called by ROM BASIC
  7303.     BASIC.COM/BASICA.COM do not restore vector on termination
  7304. SeeAlso: INT 80"BASIC",INT B7"BASIC",INT B9"BASIC"
  7305. --------r-B9---------------------------------
  7306. INT B9 - IBM ROM BASIC - used while in interpreter
  7307. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7308.     BASIC.COM/BASICA.COM do not restore vector on termination
  7309. --------r-BA---------------------------------
  7310. INT BA - IBM ROM BASIC - used while in interpreter
  7311. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7312.     BASIC.COM/BASICA.COM do not restore vector on termination
  7313. --------r-BB---------------------------------
  7314. INT BB - IBM ROM BASIC - used while in interpreter
  7315. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7316.     BASIC.COM/BASICA.COM do not restore vector on termination
  7317. --------r-BC---------------------------------
  7318. INT BC - IBM ROM BASIC - used while in interpreter
  7319. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7320.     BASIC.COM/BASICA.COM do not restore vector on termination
  7321. --------r-BD---------------------------------
  7322. INT BD - IBM ROM BASIC - used while in interpreter
  7323. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7324.     BASIC.COM/BASICA.COM do not restore vector on termination
  7325. --------r-BE---------------------------------
  7326. INT BE - IBM ROM BASIC - used while in interpreter
  7327. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7328.     BASIC.COM/BASICA.COM do not restore vector on termination
  7329. SeeAlso: INT 80"BASIC",INT BD"BASIC",INT BF"BASIC"
  7330. --------Q-BE---------------------------------
  7331. INT BE - DESQview/X - ???
  7332. Note:    points at an IRET
  7333. SeeAlso: INT 15/AX=BFDEh/BX=0006h,INT 63"DESQview"
  7334. --------r-BF---------------------------------
  7335. INT BF - IBM ROM BASIC - used while in interpreter
  7336. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7337.     BASIC.COM/BASICA.COM do not restore vector on termination
  7338. SeeAlso: INT 80"BASIC",INT BE"BASIC",INT C0"BASIC"
  7339. --------r-C0---------------------------------
  7340. INT C0 - IBM ROM BASIC - used while in interpreter
  7341. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7342.     BASIC.COM/BASICA.COM do not restore vector on termination
  7343. SeeAlso: INT 80"BASIC",INT BF"BASIC",INT C1"BASIC"
  7344. --------d-C0---------------------------------
  7345. INT C0 - AMI BIOS - DRIVE 0 DATA
  7346. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  7347.       of the hard disk parameter table
  7348. SeeAlso: INT 41,INT 60"Adaptec",INT C1"AMI",INT C2"AMI",INT C3"AMI",INT C4"AMI"
  7349. --------r-C1---------------------------------
  7350. INT C1 - IBM ROM BASIC - used while in interpreter
  7351. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7352.     BASIC.COM/BASICA.COM do not restore vector on termination
  7353. SeeAlso: INT 80"BASIC",INT C0"BASIC",INT C2"BASIC"
  7354. --------d-C1---------------------------------
  7355. INT C1 - AMI BIOS - DRIVE 0 DATA
  7356. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  7357.       of the hard disk parameter table
  7358. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C2"AMI",INT C3"AMI"
  7359. --------r-C2---------------------------------
  7360. INT C2 - IBM ROM BASIC - used while in interpreter
  7361. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7362.     BASIC.COM/BASICA.COM do not restore vector on termination
  7363. SeeAlso: INT 80"BASIC",INT C1"BASIC",INT C3"BASIC"
  7364. --------d-C2---------------------------------
  7365. INT C2 - AMI BIOS - DRIVE 0 DATA
  7366. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  7367.       of the hard disk parameter table
  7368. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C3"AMI"
  7369. --------r-C3---------------------------------
  7370. INT C3 - IBM ROM BASIC - used while in interpreter
  7371. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7372.     BASIC.COM/BASICA.COM do not restore vector on termination
  7373. SeeAlso: INT 80"BASIC",INT C2"BASIC",INT C4"BASIC"
  7374. --------d-C3---------------------------------
  7375. INT C3 - AMI BIOS - DRIVE 0 DATA
  7376. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  7377.       of the hard disk parameter table
  7378. SeeAlso: INT 41,INT 60"Adaptec",INT C0"AMI",INT C1"AMI",INT C2"AMI"
  7379. --------r-C4---------------------------------
  7380. INT C4 - IBM ROM BASIC - used while in interpreter
  7381. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7382.     BASIC.COM/BASICA.COM do not restore vector on termination
  7383. SeeAlso: INT 80"BASIC",INT C3"BASIC",INT C5"BASIC"
  7384. --------d-C4---------------------------------
  7385. INT C4 - AMI BIOS - DRIVE 1 DATA
  7386. Note:    this vector is used by some AMI BIOSes to store the first four bytes
  7387.       of the second hard disk's parameter table
  7388. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C5"AMI",INT C6"AMI",INT C7"AMI"
  7389. --------r-C5---------------------------------
  7390. INT C5 - IBM ROM BASIC - used while in interpreter
  7391. Notes:    called by ROM BASIC
  7392.     BASIC.COM/BASICA.COM do not restore vector on termination
  7393. SeeAlso: INT 80"BASIC",INT C4"BASIC",INT C6"BASIC"
  7394. --------d-C5---------------------------------
  7395. INT C5 - AMI BIOS - DRIVE 1 DATA
  7396. Note:    this vector is used by some AMI BIOSes to store the second four bytes
  7397.       of the second hard disk's parameter table
  7398. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C6"AMI",INT C7"AMI"
  7399. --------r-C6---------------------------------
  7400. INT C6 - IBM ROM BASIC - used while in interpreter
  7401. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7402.     BASIC.COM/BASICA.COM do not restore vector on termination
  7403. SeeAlso: INT 80"BASIC",INT C5"BASIC",INT C7"BASIC"
  7404. --------r-C6---------------------------------
  7405. INT C6 - APL*PLUS/PC - IDENTICAL TO INT 86
  7406. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7407.       the older interrupts
  7408. SeeAlso: INT 86"APL"
  7409. --------d-C6---------------------------------
  7410. INT C6 - AMI BIOS - DRIVE 1 DATA
  7411. Note:    this vector is used by some AMI BIOSes to store the third four bytes
  7412.       of the second hard disk's parameter table
  7413. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C7"AMI"
  7414. --------r-C7---------------------------------
  7415. INT C7 - IBM ROM BASIC - used while in interpreter
  7416. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7417.     BASIC.COM/BASICA.COM do not restore vector on termination
  7418. SeeAlso: INT 80"BASIC",INT C6"BASIC",INT C8"BASIC"
  7419. --------r-C7---------------------------------
  7420. INT C7 - APL*PLUS/PC - ???
  7421. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7422.       the older interrupts
  7423. SeeAlso: INT 87"APL"
  7424. --------d-C7---------------------------------
  7425. INT C7 - AMI BIOS - DRIVE 1 DATA
  7426. Note:    this vector is used by some AMI BIOSes to store the final four bytes
  7427.       of the second hard disk's parameter table
  7428. SeeAlso: INT 46,INT 64"Adaptec",INT C0"AMI",INT C4"AMI",INT C5"AMI",INT C6"AMI"
  7429. --------r-C8---------------------------------
  7430. INT C8 - IBM ROM BASIC - used while in interpreter
  7431. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7432.     BASIC.COM/BASICA.COM do not restore vector on termination
  7433. SeeAlso: INT 80"BASIC",INT C7"BASIC",INT C9"BASIC"
  7434. --------r-C8---------------------------------
  7435. INT C8 - APL*PLUS/PC - IDENTICAL TO INT 88
  7436. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7437.       the older interrupts
  7438. SeeAlso: INT 88"APL"
  7439. --------r-C9---------------------------------
  7440. INT C9 - IBM ROM BASIC - used while in interpreter
  7441. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7442.     BASIC.COM/BASICA.COM do not restore vector on termination
  7443. SeeAlso: INT 80"BASIC",INT C8"BASIC",INT CA"BASIC"
  7444. --------r-C9---------------------------------
  7445. INT C9 - APL*PLUS/PC - ???
  7446. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7447.       the older interrupts
  7448. SeeAlso: INT 89"APL"
  7449. --------r-CA---------------------------------
  7450. INT CA - IBM ROM BASIC - used while in interpreter
  7451. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7452.     BASIC.COM/BASICA.COM do not restore vector on termination
  7453. SeeAlso: INT 80"BASIC",INT C9"BASIC",INT CB"BASIC"
  7454. --------r-CA---------------------------------
  7455. INT CA - APL*PLUS/PC - PRINT SCREEN
  7456. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7457.       the older interrupts
  7458. SeeAlso: INT 8A"APL"
  7459. --------r-CB---------------------------------
  7460. INT CB - IBM ROM BASIC - used while in interpreter
  7461. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7462.     BASIC.COM/BASICA.COM do not restore vector on termination
  7463. SeeAlso: INT 80"BASIC",INT CA"BASIC",INT CC"BASIC"
  7464. --------r-CB---------------------------------
  7465. INT CB - APL*PLUS/PC - BEEP
  7466. Notes:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7467.       the older interrupts
  7468.     same as printing a ^G via INT 21/AH=02h
  7469. SeeAlso: INT 8B"APL"
  7470. --------r-CC---------------------------------
  7471. INT CC - IBM ROM BASIC - used while in interpreter
  7472. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7473.     BASIC.COM/BASICA.COM do not restore vector on termination
  7474. SeeAlso: INT 80"BASIC",INT CB"BASIC",INT CD"BASIC"
  7475. --------r-CC---------------------------------
  7476. INT CC - APL*PLUS/PC - CLEAR SCREEN MEMORY
  7477.     AX = flag
  7478.         0000h do not save display attributes
  7479.         0001h save attributes
  7480. Note:    STSC moved its interrupts from 86h-8Ch to C6h-CCh, but did not delete
  7481.       the older interrupts
  7482. SeeAlso: INT 8C"APL"
  7483. --------r-CD---------------------------------
  7484. INT CD - IBM ROM BASIC - used while in interpreter
  7485. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7486.     BASIC.COM/BASICA.COM do not restore vector on termination
  7487. SeeAlso: INT 80"BASIC",INT CC"BASIC",INT CE"BASIC"
  7488. --------r-CD---------------------------------
  7489. INT CD - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7490. --------r-CE---------------------------------
  7491. INT CE - IBM ROM BASIC - used while in interpreter
  7492. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7493.     BASIC.COM/BASICA.COM do not restore vector on termination
  7494. SeeAlso: INT 80"BASIC",INT CD"BASIC",INT CF"BASIC"
  7495. --------r-CE---------------------------------
  7496. INT CE - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7497. --------r-CF---------------------------------
  7498. INT CF - IBM ROM BASIC - used while in interpreter
  7499. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7500.     BASIC.COM/BASICA.COM do not restore vector on termination
  7501. SeeAlso: INT 80"BASIC",INT CE"BASIC",INT D0"BASIC"
  7502. --------r-CF---------------------------------
  7503. INT CF - APL*PLUS/PC - DEFAULT LOW-RESOLUTION TIMER FOR QUAD MF FUNCTION
  7504. SeeAlso: INT E0"APL"
  7505. --------r-D0---------------------------------
  7506. INT D0 - IBM ROM BASIC - used while in interpreter
  7507. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7508.     BASIC.COM/BASICA.COM do not restore vector on termination
  7509. SeeAlso: INT 80"BASIC",INT CF"BASIC",INT D1"BASIC"
  7510. --------r-D0---------------------------------
  7511. INT D0 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7512. --------U-D0---------------------------------
  7513. INT D0 - [not a vector!] - NJFRERAM SIGNATURE VECTOR
  7514. Program: NJFRERAM is a resident free-memory display utility by Mike "Nifty
  7515.       James" Blaszczak
  7516. Note:    if NJFRERAM is installed, this vector points at the signature "NJ"
  7517. Index:    installation check;NJFRERAM
  7518. --------r-D1---------------------------------
  7519. INT D1 - IBM ROM BASIC - used while in interpreter
  7520. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7521.     BASIC.COM/BASICA.COM do not restore vector on termination
  7522. SeeAlso: INT 80"BASIC",INT D0"BASIC",INT D2"BASIC"
  7523. --------r-D1---------------------------------
  7524. INT D1 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7525. --------r-D2---------------------------------
  7526. INT D2 - IBM ROM BASIC - used while in interpreter
  7527. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7528.     BASIC.COM/BASICA.COM do not restore vector on termination
  7529. SeeAlso: INT 80"BASIC",INT D1"BASIC",INT D3"BASIC"
  7530. --------r-D2---------------------------------
  7531. INT D2 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7532. --------r-D3---------------------------------
  7533. INT D3 - IBM ROM BASIC - used while in interpreter
  7534. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  7535.     BASIC.COM/BASICA.COM do not restore vector on termination
  7536. SeeAlso: INT 80"BASIC",INT D2"BASIC",INT D4"BASIC"
  7537. --------r-D3---------------------------------
  7538. INT D3 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7539. --------r-D4---------------------------------
  7540. INT D4 - IBM ROM BASIC - used while in interpreter
  7541. Notes:    called by ROM BASIC
  7542.     BASIC.COM/BASICA.COM do not restore vector on termination
  7543. SeeAlso: INT 80"BASIC",INT D3"BASIC",INT D5"BASIC"
  7544. --------r-D4---------------------------------
  7545. INT D4 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  7546. --------O-D400-------------------------------
  7547. INT D4 O - PC-MOS/386 v5.01 - OBSOLETE FUNCTIONS
  7548.     AH = 00h and 01h
  7549. Return: nothing
  7550. Desc:    PC-MOS/386 v5.01 reports that these functions are no longer supported
  7551.       and enters an endless loop
  7552. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7553.       system by The Software Link, Inc.
  7554. --------O-D402-------------------------------
  7555. INT D4 - PC-MOS/386 v3.0+ - GET SYSTEM CONTROL BLOCK POINTER
  7556.     AH = 02h
  7557. Return: AX = 0000h
  7558.     ES:BX -> System Control Block in V86 mode (see #2136)
  7559.     ES:EBX -> System Control Block in native mode (see #2136)
  7560. Note:    superseded by AH=26h
  7561. SeeAlso: AH=04h,AH=10h,AH=26h,AH=28h,AH=29h,AH=2Ah,INT 21/AX=3000h,INT 38
  7562.  
  7563. Format of PC-MOS/386 System Control Block:
  7564. Offset    Size    Description    (Table 2136)
  7565.  00h    WORD    pointer to first TCB in chain
  7566.  02h 17 BYTEs    reserved
  7567.  13h    WORD    pointer to current task's TCB
  7568.  15h    WORD    pointer to TCB of visible (console) task
  7569. --------O-D403-------------------------------
  7570. INT D4 - PC-MOS/386 v5.01 - GET/SET EXTENDED DIRECTORY INFORMATION
  7571.     AH = 03h
  7572.     AL = subfunction (00h get, 01h set)
  7573.     DS:(E)DX -> pathname
  7574.     ES:(E)BX -> 10-byte buffer for directory information (see #2137)
  7575. Return: CF clear if successful
  7576.         AL = permitted access level for file (00h-03h)
  7577.         ES:(E)BX -> modified buffer (AL=01h on entry)
  7578.     CF set on error
  7579.         AX = error code (see #0770 at INT 21/AH=59h)
  7580. Notes:    BX/DX are used in V86 mode, EBX/EDX in native mode
  7581.     the file class cannot be changed for files because it affects the
  7582.       encryption method, but directories can have their classes changed
  7583.  
  7584. Format of PC-MOS/386 directory information:
  7585. Offset    Size    Description    (Table 2137)
  7586.  00h    BYTE    reserved (0)
  7587.  01h    BYTE    file class ('A'-'Z' or 00h)
  7588.  02h    DWORD    user ID of file creator
  7589.  06h    WORD    file creation time (see #0761 at INT 21/AX=5700h)
  7590.  08h    WORD    file creation date (see #0762 at INT 21/AX=5700h)
  7591. --------O-D404-------------------------------
  7592. INT D4 - PC-MOS/386 v3.0+ - GET TASK CONTROL BLOCK
  7593.     AH = 04h
  7594.     BX = task ID or FFFFh for calling task
  7595. Return: CF clear if successful
  7596.         ES = segment of Task Control Block (TCB) (see #2138)
  7597.     CF set on error
  7598.         AX = error code (see #0770 at INT 21/AH=59h)
  7599. Note:    superseded by AH=27h
  7600. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah,INT 38
  7601.  
  7602. Format of PC-MOS/386 Task Control Block:
  7603. Offset    Size    Description    (Table 2138)
  7604.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7605.  01h    BYTE    header block ID, "T" = TCB
  7606.  02h    WORD    length of block in paragraphs
  7607.  04h    WORD    segment address of next header block (0000h if last)
  7608.  06h    WORD    segment address of previous header block (0000h if first)
  7609.  08h    WORD    pointer to next TCB
  7610.  0Ah    WORD    pointer to previous TCB
  7611.  0Ch    WORD    pointer to associated TCB (if applicable)
  7612.  0Eh    WORD    reserved
  7613. ---TCB---
  7614.  10h    WORD    TCB task ID
  7615.  12h    WORD    native context save area
  7616.  14h    WORD    start address of task
  7617.  16h    WORD    end address of task
  7618.  18h    BYTE    task priority
  7619.  19h    BYTE    task time slice
  7620.  1Ah    BYTE    "TCBWAIT" run status of task
  7621.  1Bh    BYTE    "TCBSTAT" what the task is waiting for
  7622.  1Ch    DWORD    address of polling routine
  7623.  20h    BYTE    error code from last function call
  7624.  21h 11 BYTEs    name of currently executing task
  7625.  2Ch  4 BYTEs    ???
  7626.  30h    BYTE    keyboard disabled if bit 1 set
  7627.  31h    BYTE    current shift state and toggles
  7628.  32h  2 BYTEs    ???
  7629.  34h    BYTE    current video mode
  7630.  35h    BYTE    current video page
  7631.  36h    BYTE    number of text columns per screen
  7632.  37h    BYTE    number of text rows per screen
  7633.  38h    WORD    length of video buffer
  7634.  3Ah    WORD    video page length
  7635.  3Ch    WORD    apge start address in video RAM
  7636.  3Eh  4 WORDs    current cursor positions for four screen pages
  7637.  46h  8 BYTEs    ???
  7638.  4Eh    WORD    current cursor type
  7639.  50h    BYTE    current palette setting
  7640.  51h    BYTE    original video mode
  7641.  52h    BYTE    start CRT row (00h or 01h)
  7642.  53h    BYTE    video RAM in task active
  7643.  54h    WORD    handle of video save area
  7644.  56h    WORD    page count of video save area
  7645.  58h    WORD    segment address of video save area
  7646.  5Ah    WORD    poitner to first Task File Block (see #2141)
  7647.  5Ch    WORD    pointer to first Current Directory Block (see #2144)
  7648.  5Eh    WORD    pointer to active Current Directory Block (see #2144)
  7649.  60h    BYTE    number of drives
  7650.  61h    BYTE    current drive (0=A:, etc.)
  7651.  62h    DWORD    disk transfer address
  7652.  66h  4 BYTEs    ???
  7653.  6Ah    BYTE    verify flag (nonzero = on)
  7654.  6Bh    BYTE    break flag (nonzero = on)
  7655.  6Ch    WORD    share/lock retry count
  7656.  6Eh    WORD    ticks between share/lock retries
  7657.  70h    BYTE    remote printer flags (see #2139)
  7658.  71h    BYTE    ETX/ACK delay count
  7659.  72h    WORD    spooler segment address
  7660.  74h  2 BYTEs    ???
  7661.  76h  3 BYTEs    remote printer redirection for LPT1 through LPT3 (see #2140)
  7662.  79h  2 BYTEs    ???
  7663.  7Bh    DWORD    offset of username in TCB
  7664.  7Fh    BYTE    current output class
  7665.  80h  7 BYTEs    protection access rights, 2 bits per class (writeable!)
  7666.  87h 122 BYTEs    ???
  7667. 101h    BYTE    TCB sleep downcounter value
  7668. 102h 20 BYTEs    ???
  7669. 116h    BYTE    last scan code
  7670.     ...
  7671. 5D0h    DWORD    far pointer to Device Driver Terminal's entry point
  7672. 5D4h    WORD    offset of logical screen
  7673. 5D6h    WORD    segment of logical screen
  7674. 5D8h    WORD    cursor offset within page
  7675. 5DAh    BYTE    screen columns
  7676. 5DBh    WORD    async port number (0000h = none)
  7677. 5DDh    DWORD    physical baudrate
  7678. 5E1h 19 BYTEs    reserved for Device Driver Terminal (DDT)
  7679.     ...
  7680. 7A6h    DWORD    far pointer to unregister calling chain
  7681.  
  7682. Bitfields for PC-MOS/386 remote printer flags:
  7683. Bit(s)    Description    (Table 2139)
  7684.  0    LPT1 to terminal
  7685.  1    LPT2 to terminal
  7686.  2    LPT3 to terminal
  7687.  3    escape to printer pending
  7688.  4    use XON/XOFF
  7689.  5    use ETX/ACK
  7690.  6    waiting for ACK or XON
  7691.  7    transparent printing on
  7692.  
  7693. (Table 2140)
  7694. Values for PC-MOS/386 remote printer redirection:
  7695.  00h    not redirected
  7696.  01h    redirected to COM1
  7697.  ...
  7698.  18h    redirected to COM24
  7699.  51h    redirected to LPT1
  7700.  52h    redirected to LPT2
  7701.  53h    redirected to LPT3
  7702.  
  7703. Format of PC-MOS/386 Task File Block:
  7704. Offset    Size    Description    (Table 2141)
  7705.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7706.  01h    BYTE    header block ID, "F" = task file block
  7707.  02h    WORD    length of block in paragraphs
  7708.  04h    WORD    segment address of next header block (0000h if last)
  7709.  06h    WORD    segment address of previous header block (0000h if first)
  7710.  08h    WORD    pointer to next TCB
  7711.  0Ah    WORD    pointer to previous TCB
  7712.  0Ch    WORD    pointer to associated TCB (if applicable)
  7713.  0Eh    WORD    reserved
  7714. ---TFB---
  7715.  10h    WORD    segment address of next TFB
  7716.  12h    WORD    segment address of previous TFB
  7717.  14h    WORD    segment address of TFB's Global File Block (see #2143)
  7718.  16h    WORD    segment address of owner's PSP
  7719.  18h    WORD    file handle
  7720.  1Ah  3 BYTEs    ???
  7721.  1Dh    DWORD    file position
  7722.  21h  4 BYTEs    ???
  7723.  25h    BYTE    IOCTL flags (see #2142)
  7724.  26h  2 BYTEs    ???
  7725.  
  7726. Bitfields for PC-MOS/386 IOCTL flags:
  7727. Bit(s)    Description    (Table 2142)
  7728.  0    stdin
  7729.  1    stdout
  7730.  2    null device
  7731.  3    clock device
  7732.  4    reserved
  7733.  5    ASCII mode instead of binary
  7734.  6    EOF encountered on input
  7735.  7    device rather than file
  7736.  
  7737. Format of PC-MOS/386 Global File Block:
  7738. Offset    Size    Description    (Table 2143)
  7739.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7740.  01h    BYTE    header block ID, "G" = global file block
  7741.  02h    WORD    length of block in paragraphs
  7742.  04h    WORD    segment address of next header block (0000h if last)
  7743.  06h    WORD    segment address of previous header block (0000h if first)
  7744.  08h    WORD    pointer to next TCB
  7745.  0Ah    WORD    pointer to previous TCB
  7746.  0Ch    WORD    pointer to associated TCB (if applicable)
  7747.  0Eh    WORD    reserved
  7748. ---GFB---
  7749.  10h 10 BYTEs    ???
  7750.  1Ah    WORD    file attribute
  7751.  1Ch    BYTE    ???
  7752.  1Dh    DWORD    address of device driver
  7753.  21h    WORD    first cluster
  7754.  23h    WORD    time of last modification
  7755.  25h    WORD    date of last modification
  7756.  27h    DWORD    size of file in bytes
  7757.  2Bh 11 BYTEs    ???
  7758.  36h 11 BYTEs    device name or FCB-format filename
  7759.  41h    WORD    segment address of TFB list
  7760.  43h    WORD    segment address of first RLB (see #2146) (0000h = none)
  7761.  45h    BYTE    flag: nonzero if GFB refers to character device
  7762.  46h    WORD    address of Block Device Block (see #2145)
  7763.  48h    WORD    sector of file's directory entry
  7764.  4Ah    WORD    high word of file's directory entry
  7765.  4Ch    WORD    ofsset of directory entry within sector
  7766.  
  7767. Format of PC-MOS/386 Current Directory Block:
  7768. Offset    Size    Description    (Table 2144)
  7769.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7770.  01h    BYTE    header block ID, "C" = current directory block
  7771.  02h    WORD    length of block in paragraphs
  7772.  04h    WORD    segment address of next header block (0000h if last)
  7773.  06h    WORD    segment address of previous header block (0000h if first)
  7774.  08h    WORD    pointer to next TCB
  7775.  0Ah    WORD    pointer to previous TCB
  7776.  0Ch    WORD    pointer to associated TCB (if applicable)
  7777.  0Eh    WORD    reserved
  7778. ---CDB---
  7779.  10h    BYTE    drive number
  7780.  11h    BYTE    ???
  7781.  12h 64 BYTEs    directory name
  7782.  52h    WORD    first directory cluster (0000h = root)
  7783.  
  7784. Format of PC-MOS/386 Block Device Block:
  7785. Offset    Size    Description    (Table 2145)
  7786.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7787.  01h    BYTE    header block ID, "B" = block device block
  7788.  02h    WORD    length of block in paragraphs
  7789.  04h    WORD    segment address of next header block (0000h if last)
  7790.  06h    WORD    segment address of previous header block (0000h if first)
  7791.  08h    WORD    pointer to next TCB
  7792.  0Ah    WORD    pointer to previous TCB
  7793.  0Ch    WORD    pointer to associated TCB (if applicable)
  7794.  0Eh    WORD    reserved
  7795. ---BDB---
  7796.  10h    BYTE    logical drive
  7797.  11h    BYTE    unit passed to driver
  7798.  12h    WORD    sector size
  7799.  14h    BYTE    cluster mask
  7800.  15h    BYTE    cluster shift count
  7801.  16h    WORD    starting sector of first FAT
  7802.  18h    BYTE    number of FATs
  7803.  19h    WORD    number of root directories
  7804.  1Bh    WORD    sector number of first data sector (cluster 0002h)
  7805.  1Dh    WORD    number of clusters + 1 (number of highest data cluster)
  7806.  1Fh    BYTE    number of sectors in FAT
  7807.  20h    WORD    beginning root directory sector number
  7808.  22h    DWORD    device driver address
  7809.  26h    BYTE    media descriptor byte
  7810.  27h  5 BYTEs    ???
  7811.  2Ch    BYTE    flag: volume > 32MB
  7812.  2Dh    BYTE    ???
  7813.  2Eh    BYTE    number of sectors per cluster
  7814.  2Fh    WORD    number of clusters on device
  7815.  31h    WORD    number of free clusters (FFFFh = unknown)
  7816.  33h    WORD    root directory cluster number
  7817.  35h    WORD    pointer to alias/subst string
  7818.  37h    WORD    TCB segment address of owner (0000h = none)
  7819.  
  7820. Format of PC-MOS/386 Record Lock Block:
  7821. Offset    Size    Description    (Table 2146)
  7822.  00h    BYTE    signature byte "H" if allocated from system memory pool
  7823.  01h    BYTE    header block ID, "R" = record lock block
  7824.  02h    WORD    length of block in paragraphs
  7825.  04h    WORD    segment address of next header block (0000h if last)
  7826.  06h    WORD    segment address of previous header block (0000h if first)
  7827.  08h    WORD    pointer to next TCB
  7828.  0Ah    WORD    pointer to previous TCB
  7829.  0Ch    WORD    pointer to associated TCB (if applicable)
  7830.  0Eh    WORD    reserved
  7831. ---RLB---
  7832.  10h    WORD    segment address of owner's PSP
  7833.  12h    WORD    segment address of Global File Block (see #2143)
  7834.  14h    WORD    segment address of owner's Task File Block (see #2141)
  7835.  16h    DWORD    file offset of locked region start
  7836.  1Ah    DWORD    length of locked region
  7837.  1Eh    WORD    owner's handle for file
  7838. --------O-D407-------------------------------
  7839. INT D4 - PC-MOS/386 v3.0+ - WAIT FOR EVENT
  7840.     AH = 07h
  7841.     AL = events to monitor (see #2147)
  7842.     BX = number of timer ticks until timeout if AL bit 1 set
  7843.     CX = bitmap of IRQs to monitor if AL bit 2 set
  7844.         (bit 0 = IRQ0 .. bit 15 = IRQ15)
  7845.     DX = port to monitor if AL bit 3 set
  7846. Return: CF clear if successful
  7847.         AL = type of event which woke up task (see above)
  7848.         CX = IRQ (if any) which awakened task
  7849.         DX = port (if any) which awakened task
  7850.     CF set on error
  7851.         AX = error code (see #0770 at INT 21/AH=59h)
  7852. Note:    a device driver may make this call with AL=00h, which indicates that
  7853.       the driver is responsible for setting and clearing the TCBWAIT field
  7854.       in the TCB.  To put task to sleep, set TCBWAIT bits 2-0 to 001; to
  7855.       reawaken it, set bit 1 (leaving other bits unchanged)
  7856. SeeAlso: AH=04h,INT 16/AH=00h,INT 38
  7857.  
  7858. Bitfields for PC-MOS/386 events to monitor:
  7859. Bit(s)    Description    (Table 2147)
  7860.  0    keystroke
  7861.  1    timeout
  7862.  2    IRQ
  7863.  3    port access
  7864.  7    return status of user poll routine (other ignored if set)
  7865. --------O-D410-------------------------------
  7866. INT D4 - PC-MOS/386 v3.0+ - ENTER/LEAVE NATIVE 386 EXECUTION MODE
  7867.     AH = 10h
  7868.     AL = direction (00h return to V86 mode, 01h enter native mode)
  7869.     CX = length in bytes of Native Context Area ( >=1024 )
  7870.     DX = segment of Native Context Area
  7871. Return: CF clear if successful
  7872.         running in desired mode at instruction following INT D4 call
  7873.         all segment registers converted to appropriate selectors/segments
  7874.     CF set on error
  7875.         AX = error code (see #0770 at INT 21/AH=59h)
  7876. Note:    MS-DOS calls are available in protected mode
  7877. SeeAlso: AH=11h,AH=12h,AH=13h,INT 2F/AX=1687h,INT 67/AX=DE0Ch,INT 38
  7878. --------O-D411-------------------------------
  7879. INT D4 - PC-MOS/386 v3.0+ - ALLOCATE NATIVE MODE MEMORY BLOCK
  7880.     AH = 11h
  7881.     EBX = block length in bytes
  7882. Return: CF clear if successful
  7883.         EBX = number of bytes actually allocated
  7884.         ES = selector for allocated block
  7885.     CF set on error
  7886.         AX = error code (see #0770 at INT 21/AH=59h)
  7887. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7888.       system by The Software Link, Inc.
  7889. Note:    the memory must be released before the program terminates
  7890. SeeAlso: AH=10h,AH=12h,INT 38
  7891. --------O-D412-------------------------------
  7892. INT D4 - PC-MOS/386 v3.0+ - FREE NATIVE MODE MEMORY BLOCK
  7893.     AH = 12h
  7894.     ES = selector for block to free
  7895. Return: CF clear if successful
  7896.     CF set on error
  7897.         AX = error code (see #0770 at INT 21/AH=59h)
  7898. SeeAlso: AH=10h,AH=11h,AH=13h,INT 38
  7899. --------O-D413-------------------------------
  7900. INT D4 - PC-MOS/386 v5.01 - GET ALIAS FOR SELECTOR (NATIVE MODE ONLY)
  7901.     AH = 13h
  7902.     AL = type of alias selector (00h data, 01h stack, 02h code)
  7903.     BX = selector
  7904. Return: CF clear if successful
  7905.         AX = new selector or 0000h if BX selector not found
  7906.     CF set on error
  7907.         AX = error code (see #0770 at INT 21/AH=59h)
  7908. SeeAlso: AH=11h,AH=12h
  7909. --------O-D416-------------------------------
  7910. INT D4 - PC-MOS/386 v5.01 - SET/CLEAR IRQ RESERVATION
  7911.     AH = 16h
  7912.     AL = function (00h clear, 01h set reservation)
  7913.     CX = IRQ number
  7914. Return: AX = status
  7915.         (0000h successful, 0001h currently reserved by another task)
  7916. SeeAlso: AH=07h,INT 14/AH=11h"PC-MOS"
  7917. --------O-D419-------------------------------
  7918. INT D4 - PC-MOS/386 v5.01 - GET TASK ID
  7919.     AH = 19h
  7920. Return: BX = caller's task ID
  7921. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7922.       system by The Software Link, Inc.
  7923. SeeAlso: AH=1Dh,AH=1Eh
  7924. --------O-D41A-------------------------------
  7925. INT D4 - PC-MOS/386 v5.01 - GET/SET TASK PRIORITY
  7926.     AH = 1Ah
  7927.     AL = subfunction (00h read, 01h set, 02h get and set)
  7928.     BX = task ID (FFFFh for current task)
  7929.     CL = new priority value
  7930. Return: CF clear if successful
  7931.         CL = current priority value
  7932.     CF set on error
  7933.         AX = error code (see #0770 at INT 21/AH=59h)
  7934. SeeAlso: AH=1Bh,AH=1Ch
  7935. --------O-D41B-------------------------------
  7936. INT D4 - PC-MOS/386 v5.01 - GET/SET TIME SLICE
  7937.     AH = 1Bh
  7938.     AL = subfunction (00h read, 01h set, 02h get and set)
  7939.     BX = task ID (FFFFh for current task) (see AH=19h)
  7940.     CL = new time slice value
  7941. Return: CF clear if successful
  7942.         CL = current time slice value
  7943.     CF set on error
  7944.         AX = error code (see #0770 at INT 21/AH=59h)
  7945. SeeAlso: AH=1Ah,AH=1Ch
  7946. --------O-D41C-------------------------------
  7947. INT D4 - PC-MOS/386 v5.01 - GET/SET KEYBOARD MODE
  7948.     AH = 1Ch
  7949.     AL = subfunction (00h enable, 01h disable, 02h get mode)
  7950.     BX = task ID (FFFFh for current task)
  7951. Return: CF clear if successful
  7952.         CL = current keyboard state
  7953.     CF set on error
  7954.         AX = error code (INT 21/AH=59h)
  7955. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7956.       system by The Software Link, Inc.
  7957. SeeAlso: AH=1Ah,AH=1Bh
  7958. --------O-D41D-------------------------------
  7959. INT D4 - PC-MOS/386 v5.01 - GET CURRENT PROGRAM NAME
  7960.     AH = 1Dh
  7961.     BX = task ID (FFFFh for current task) (see AH=19h)
  7962.     ES:DI -> buffer for program name (see #2148)
  7963. Return: CF clear if successful
  7964.         ES:DI buffer filled
  7965.     CF set on error
  7966.         AX = error code (see #0770 at INT 21/AH=59h)
  7967. SeeAlso: AH=19h,AH=1Eh
  7968.  
  7969. Format of PC-MOS/386 program name buffer:
  7970. Offset    Size    Description    (Table 2148)
  7971.  00h  8 BYTEs    filename
  7972.  08h  3 BYTEs    extension
  7973. --------O-D41E-------------------------------
  7974. INT D4 - PC-MOS/386 v5.01 - GET CURRENT USERNAME AND SECURITY CLASS
  7975.     AH = 1Eh
  7976.     BX = task ID (FFFFh for current task)
  7977.     ES:DI -> 4-byte buffer for username
  7978. Return: CF clear if successful
  7979.         CL = security class
  7980.         20h (' ') none
  7981.         41h-5Ah ('A'-'Z') security level
  7982.         ES:DI buffer filled
  7983.     CF set on error
  7984.         AX = error code (see #0770 at INT 21/AH=59h)
  7985. SeeAlso: AH=19h,AH=1Dh
  7986. --------O-D41F-------------------------------
  7987. INT D4 - PC-MOS/386 v5.01 - GET TASK PARTITION INFORMATION
  7988.     AH = 1Fh
  7989.     BX = task ID (FFFFh for current task) (see AH=19h)
  7990. Return: CF clear if successful
  7991.         CX = start segment of task
  7992.         DX = ending segment of task
  7993.     CF set on error
  7994.         AX = error code (see #0770 at INT 21/AH=59h)
  7995. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  7996.       system by The Software Link, Inc.
  7997. SeeAlso: AH=2Dh
  7998. --------O-D420-------------------------------
  7999. INT D4 - PC-MOS/386 v5.01 - GET PORT AND BAUDRATE INFORMATION
  8000.     AH = 20h
  8001.     BX = task ID (FFFFh for current task) (see AH=19h)
  8002. Return: CF clear if successful
  8003.         CX = port number (0000h if none)
  8004.         DI:SI = baudrate (if CX nonzero)
  8005.     CF set on error
  8006.         AX = error code (see #0770 at INT 21/AH=59h)
  8007. SeeAlso: INT 14/AH=0Ch"FOSSIL"
  8008. --------O-D421-------------------------------
  8009. INT D4 - PC-MOS/386 v5.01 - REMOVE A TASK
  8010.     AH = 21h
  8011.     BX = task ID (FFFFh for current task) (see AH=19h)
  8012. Return: CF clear if successful
  8013.         AX = ASCII percentage of System Memory Pool used
  8014.         (AH = tens digit, AL = ones digit)
  8015.         DS,SI destroyed
  8016.     CF set on error
  8017.         AX = error code (see #0770 at INT 21/AH=59h)
  8018. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8019.       system by The Software Link, Inc.
  8020. SeeAlso: AH=22h
  8021. --------O-D422-------------------------------
  8022. INT D4 - PC-MOS/386 v5.01 - ADD A TASK TO THE SYSTEM
  8023.     AH = 22h
  8024.     DS:SI -> addtask data structure (see #2150)
  8025. Return: CF clear if successful
  8026.         ES = segment address of the new task's TCB data structure
  8027.     CF set on error
  8028.         AX = error code (see #2149)
  8029. SeeAlso: AH=21h
  8030.  
  8031. (Table 2149)
  8032. Values for PC-MOS/386 error code:
  8033.  08h    insufficient memory
  8034.  0Bh    invalid addtask structure format
  8035.  12h    insufficient available space in system memory pool
  8036.  1Fh    general failure
  8037.  55h    already allocated
  8038.  57h    if task already in use or invalid parameter
  8039.  
  8040. Format of PC-MOS/386 addtask data structure:
  8041. Offset    Size    Description    (Table 2150)
  8042.  00h    WORD    task size in KB (min 16KB)
  8043.  02h    WORD    task ID (0000h for automatic selection)
  8044.  04h    BYTE    task class (' ' or 'A'-'Z')
  8045.  05h    DWORD    -> ASCIZ name of task startup batchfile
  8046.  09h    DWORD    -> task's terminal driver (0000000h = background task)
  8047.  0Dh    WORD    task port
  8048.  0Fh    DWORD    task baud rate
  8049.  13h    DWORD    (return) total extended memory
  8050.  17h    DWORD    (return) number of 4K extended memory pages allocated
  8051.  1Bh    WORD    (return) paragraphs of system memory pool allocated
  8052.  1Dh    WORD    (return) system memory pool size in paragraphs
  8053.  1Fh    WORD    (return) ASCII task percentage of system memory pool
  8054.  21h  3 BYTEs    reserved
  8055. --------O-D423-------------------------------
  8056. INT D4 - PC-MOS/386 v5.01 - CHANGE TERMINAL DRIVER
  8057.     AH = 23h
  8058.     BX = task ID (FFFFh for current task)
  8059.     DS:SI -> entry point of the new Device Driver Terminal
  8060. Return: CF clear if successful
  8061.     CF set on error
  8062.         AX = error code (see #0770 at INT 21/AH=59h)
  8063. --------O-D424-------------------------------
  8064. INT D4 U - PC-MOS/386 v5.01 - GET OPERATING SYSTEM SERIAL NUMBER
  8065.     AH = 24h
  8066. Return: DS:DX -> '$'-terminated string containing the serial number
  8067. --------O-D425-------------------------------
  8068. INT D4 - PC-MOS/386 v5.01 - IDENTIFY LOAD ADDRESS OF DEVICE DRIVER LOCATION
  8069.     AH = 25h
  8070.     DX = driver's CS value
  8071. Return: AX = segment address of driver in system memory pool
  8072.         (0000h if the driver is not within the system memory pool)
  8073. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8074.       system by The Software Link, Inc.
  8075. --------O-D426-------------------------------
  8076. INT D4 - PC-MOS/386 v5.01 - GET SYSTEM CONTROL BLOCK SEGMENT/SELECTOR
  8077.     AH = 26h
  8078. Return: DX = segment/selector of the System Control Block (see #2136)
  8079. Note:    this function supersedes AH=02h
  8080. SeeAlso: AH=02h,AH=27h,AH=28h,AH=29h,AH=2Ah
  8081. --------O-D427-------------------------------
  8082. INT D4 - PC-MOS/386 v5.01 - GET TASK CONTROL BLOCK SEGMENT/SELECTOR
  8083.     AH = 27h
  8084.     BX = task ID (FFFFh if current task) (see AH=19h)
  8085. Return: CF clear if successful
  8086.         DX = segment/selector for the Task Control Block (see #2138)
  8087.     CF set on error
  8088.         AX = error code (INT 21/AH=59h)
  8089. Note:    this function supersedes AH=04h
  8090. SeeAlso: AH=26h,AH=28h,AH=29h,AH=2Ah
  8091. --------O-D428-------------------------------
  8092. INT D4 - PC-MOS/386 v5.01 - GET CONTROL BLOCK DATA FROM SCB OR TCB
  8093.     AH = 28h
  8094.     BX = offset into control block at which to start reading
  8095.     CX = number of bytes to read
  8096.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8097.     ES:DI -> buffer for data
  8098. Return: CF clear if successful
  8099.     CF set on error
  8100.         AX = error code (see also INT 21/AH=59h)
  8101.         05h access denied due to an invalid segment/selector
  8102. SeeAlso: AH=26h,AH=27h,AH=29h,AH=2Ah
  8103. --------O-D429-------------------------------
  8104. INT D4 - PC-MOS/386 v5.01 - WRITE CONTROL BLOCK DATA INTO SCB OR TCB
  8105.     AH = 29h
  8106.     BX = offset into control block at which to start writing
  8107.     CX = number of bytes to write
  8108.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8109.     DS:SI -> buffer containing data to be written
  8110. Return: CF clear if successful
  8111.     CF set on errro
  8112.         AX = error code (see also INT 21/AH=59h)
  8113.         05h access denied due to an invalid segment/selector
  8114. Note:     this function performs no bounds checking
  8115. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8116.       system by The Software Link, Inc.
  8117. SeeAlso: AH=26h,AH=27h,AH=28h,AH=2Ah
  8118. --------O-D42A-------------------------------
  8119. INT D4 - PC-MOS/386 v5.01 - SWAP CONTROL BLOCK DATA OF SCB OR TCB
  8120.     AH = 2Ah
  8121.     BX = offset into control block at which to start swap
  8122.     CX = number of bytes to swap
  8123.     DX = segment/selector of control block obtained via AH=26h or AH=27h
  8124.     DS:SI -> buffer containing new data and to receive current data
  8125. Return: CF clear if successful
  8126.     CF set on error
  8127.         AX = error code (see also INT 21/AH=59h)
  8128.         05h access denied due to an invalid segment/selector
  8129. Note:    the interrupts are disabled during the swap to prevent corruption
  8130. SeeAlso: AH=26h,AH=27h,AH=28h,AH=29h
  8131. --------O-D42C-------------------------------
  8132. INT D4 - PC-MOS/386 v5.01 - GET/SET SPOOLER PARAMETERS
  8133.     AH = 2Ch
  8134.     AL = function
  8135.         00h set spooler timeout
  8136.         CX = timout value in seconds
  8137.         01h get spooler timeout
  8138.         Return: CX = current timeout in seconds
  8139.         02h get spooler parameters
  8140.         Return: CH = priority (00h-09h)
  8141.             CL = disposition (d, h, i, n, s)
  8142.             SI = class (a - z)
  8143.         03h set spooler parameters
  8144.         CH = priority (00h-09h)
  8145.         CL = disposition (d, h, i, n, s)
  8146.         SI = class (a - z)
  8147.         BX = task ID (FFFFh for current task)
  8148.         DX = LPT number
  8149. Return: CF clear if successful
  8150.     CF set on error
  8151.         AX = error code (see #0770 at INT 21/AH=59h)
  8152. SeeAlso: AH=00h,AH=02h,AH=03h
  8153. --------O-D42D-------------------------------
  8154. INT D4 - PC-MOS/386 v5.01 - GET MAXIMUM TASK SIZE
  8155.     AH = 2Dh
  8156. Return: DX = maximum task size in paragraphs
  8157.     BX = start address of task space
  8158. Program: PC-MOS/386 is a multitasking/multiuser MS-DOS-compatible operating
  8159.       system by The Software Link, Inc.
  8160. SeeAlso: AH=1Fh,AH=22h
  8161. --------r-D5---------------------------------
  8162. INT D5 - IBM ROM BASIC - used while in interpreter
  8163. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8164.     BASIC.COM/BASICA.COM do not restore vector on termination
  8165. SeeAlso: INT 80"BASIC",INT D4"BASIC",INT D6"BASIC"
  8166. --------r-D5---------------------------------
  8167. INT D5 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8168. --------r-D6---------------------------------
  8169. INT D6 - IBM ROM BASIC - used while in interpreter
  8170. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8171.     BASIC.COM/BASICA.COM do not restore vector on termination
  8172. SeeAlso: INT 80"BASIC",INT D5"BASIC",INT D7"BASIC"
  8173. --------r-D6---------------------------------
  8174. INT D6 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8175. --------r-D7---------------------------------
  8176. INT D7 - IBM ROM BASIC - used while in interpreter
  8177. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8178.     BASIC.COM/BASICA.COM do not restore vector on termination
  8179. SeeAlso: INT 80"BASIC",INT D6"BASIC",INT D8"BASIC"
  8180. --------r-D7---------------------------------
  8181. INT D7 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8182. --------r-D8---------------------------------
  8183. INT D8 - IBM ROM BASIC - used while in interpreter
  8184. Notes:    called by ROM BASIC
  8185.     BASIC.COM/BASICA.COM do not restore vector on termination
  8186. SeeAlso: INT 80"BASIC",INT D7"BASIC",INT D9"BASIC"
  8187. --------r-D8---------------------------------
  8188. INT D8 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8189. --------H-D8---------------------------------
  8190. INT D8 - Screen Thief v1.00 - RELOCATED IRQ0
  8191. Range:    INT 78h to INT E0h, selected by commandline switch
  8192. Note:    Screen Thief relocates IRQs 0 through 7 to INT D8 to INT DF by default,
  8193.       but may be directed via a commandline switch to use any range
  8194.       starting at a multiple of 8 between 78h and E0h
  8195. SeeAlso: INT 08"IRQ0",INT 2D/AL=10h"Screen Thief",INT 50"DESQview"
  8196. SeeAlso: INT D9"Screen Thief"
  8197. --------r-D9---------------------------------
  8198. INT D9 - IBM ROM BASIC - used while in interpreter
  8199. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8200.     BASIC.COM/BASICA.COM do not restore vector on termination
  8201. SeeAlso: INT 80"BASIC",INT D8"BASIC",INT DA"BASIC"
  8202. --------r-D9---------------------------------
  8203. INT D9 - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8204. --------H-D9---------------------------------
  8205. INT D9 - Screen Thief v1.00 - RELOCATED IRQ1
  8206. Range:    INT 79h to INT E1h, selected by commandline switch
  8207. Note:    (see INT D8"Screen Thief")
  8208. SeeAlso: INT 09"IRQ1",INT D8"Screen Thief",INT DA"Screen Thief"
  8209. --------r-DA---------------------------------
  8210. INT DA - IBM ROM BASIC - used while in interpreter
  8211. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  8212.     BASIC.COM/BASICA.COM do not restore vector on termination
  8213. SeeAlso: INT 80"BASIC",INT D9"BASIC",INT DB"BASIC"
  8214. --------r-DA---------------------------------
  8215. INT DA - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8216. --------H-DA---------------------------------
  8217. INT DA - Screen Thief v1.00 - RELOCATED IRQ2
  8218. Range:    INT 7Ah to INT E2h, selected by commandline switch
  8219. Note:    (see INT D8"Screen Thief")
  8220. SeeAlso: INT 0A"IRQ2",INT D9"Screen Thief",INT DB"Screen Thief"
  8221. --------r-DB---------------------------------
  8222. INT DB - IBM ROM BASIC - used while in interpreter
  8223. Notes:    called by ROM BASIC
  8224.     BASIC.COM/BASICA.COM do not restore vector on termination
  8225. SeeAlso: INT 80"BASIC",INT DA"BASIC",INT DC"BASIC"
  8226. --------r-DB---------------------------------
  8227. INT DB - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8228. --------H-DB---------------------------------
  8229. INT DB - Screen Thief v1.00 - RELOCATED IRQ3
  8230. Range:    INT 7Bh to INT E3h, selected by commandline switch
  8231. Note:    (see INT D8"Screen Thief")
  8232. SeeAlso: INT 0B"IRQ3",INT DA"Screen Thief",INT DC"Screen Thief"
  8233. --------u-DC---------------------------------
  8234. INT DC - PC/370 v4.1- - API
  8235. SeeAlso: INT 60"PC/370"
  8236. --------r-DC---------------------------------
  8237. INT DC - IBM ROM BASIC - used while in interpreter
  8238. Notes:    called by ROM BASIC
  8239.     BASIC.COM/BASICA.COM do not restore vector on termination
  8240. SeeAlso: INT 80"BASIC",INT DB"BASIC",INT DD"BASIC"
  8241. --------r-DC---------------------------------
  8242. INT DC - STSC APL*PLUS/PC - MAY BE USED IN FUTURE RELEASES
  8243. --------H-DC---------------------------------
  8244. INT DC - Screen Thief v1.00 - RELOCATED IRQ4
  8245. Range:    INT 7Ch to INT E4h, selected by commandline switch
  8246. Note:    (see INT D8"Screen Thief")
  8247. SeeAlso: INT 0C"IRQ4",INT DB"Screen Thief",INT DD"Screen Thief"
  8248. --------r-DD---------------------------------
  8249. INT DD - IBM ROM BASIC - used while in interpreter
  8250. Notes:    called by ROM BASIC
  8251.     BASIC.COM/BASICA.COM do not restore vector on termination
  8252. SeeAlso: INT 80"BASIC",INT DC"BASIC",INT DE"BASIC"
  8253. --------r-DD---------------------------------
  8254. INT DD - STSC APL*PLUS/PC v9.0 - PLACE KEYSTROKE EVENTS IN INPUT BUFFER
  8255.     BX = where to place keystrokes
  8256.         FFFFh insert before current buffer contents
  8257.         0000h replace current contents
  8258.         0001h insert after current contents
  8259.     CX = number of keystroke events to insert
  8260.     ES:SI -> data to be placed into buffer (list of WORD key codes)
  8261.         4000h + N = normal ASCII keystroke N (N = 00h to FFh)
  8262.         4100h + N = extended ASCII keystroke N (N = 03h to 84h)
  8263. SeeAlso: INT 16/AH=05h
  8264. --------H-DD---------------------------------
  8265. INT DD - Screen Thief v1.00 - RELOCATED IRQ5
  8266. Range:    INT 7Dh to INT E5h, selected by commandline switch
  8267. Note:    (see INT D8"Screen Thief")
  8268. SeeAlso: INT 0D"IRQ5",INT DC"Screen Thief",INT DE"Screen Thief"
  8269. --------r-DE---------------------------------
  8270. INT DE - IBM ROM BASIC - used while in interpreter
  8271. Notes:    called by ROM BASIC
  8272.     BASIC.COM/BASICA.COM do not restore vector on termination
  8273. SeeAlso: INT 80"BASIC",INT DD"BASIC",INT DF"BASIC"
  8274. --------r-DE---------------------------------
  8275. INT DE - APL*PLUS/PC - ???
  8276. Note:    appears to be the same as INT 16
  8277. --------H-DE---------------------------------
  8278. INT DE - Screen Thief v1.00 - RELOCATED IRQ6
  8279. Range:    INT 7Eh to INT E6h, selected by commandline switch
  8280. Note:    (see INT D8"Screen Thief")
  8281. SeeAlso: INT 0E"IRQ6",INT DD"Screen Thief",INT DF"Screen Thief"
  8282. --------b-DF---------------------------------
  8283. INT DF - Victor 9000 - SuperBIOS
  8284. --------r-DF---------------------------------
  8285. INT DF - IBM ROM BASIC - used while in interpreter
  8286. Notes:    called by ROM BASIC
  8287.     BASIC.COM/BASICA.COM do not restore vector on termination
  8288. SeeAlso: INT 80"BASIC",INT DE"BASIC",INT E0"BASIC"
  8289. --------r-DF---------------------------------
  8290. INT DF - APL*PLUS/PC - SAME AS INT 10
  8291. SeeAlso: INT 10
  8292. --------H-DF---------------------------------
  8293. INT DF - Screen Thief v1.00 - RELOCATED IRQ7
  8294. Range:    INT 7Fh to INT E7h, selected by commandline switch
  8295. Note:    (see INT D8"Screen Thief")
  8296. SeeAlso: INT 0F"IRQ7",INT DE"Screen Thief"
  8297. --------r-E0---------------------------------
  8298. INT E0 - IBM ROM BASIC - used while in interpreter
  8299. Notes:    called by ROM BASIC
  8300.     BASIC.COM/BASICA.COM do not restore vector on termination
  8301. SeeAlso: INT 80"BASIC",INT DF"BASIC",INT E1"BASIC"
  8302. --------r-E0---------------------------------
  8303. INT E0 - APL*PLUS/PC - RESTIME HIGH-RESOLUTION TIMER FOR QUAD MF FUNCTION
  8304. SeeAlso: INT CF"APL"
  8305. --------v-E0---------------------------------
  8306. INT E0 - VIRUS - "Micro-128" - ???
  8307. Note:    Micro-128 also overwrites the upper half of the interrupt table
  8308. SeeAlso: INT 9E"VIRUS",INT F1"VIRUS"
  8309. --------O-E0---------------------------------
  8310. INT E0 - CP/M-86, Concurrent CP/M, DR Multiuser DOS - FUNCTION CALLS
  8311.     CL = function number
  8312.     DS,DX = parameters
  8313. Return: as appropriate for function
  8314. Notes:    several functions are covered in more detail in following entries
  8315.     most of these calls are also supported by Digital Research's DOS Plus
  8316.       v2.1; the unsupported functions are 26h,29h-2Bh,3Ah,3Dh-62h,71h-8Ch,
  8317.       90h-92h,94h-97h,9Bh-ABh, and AEh-FFh
  8318. SeeAlso: INT 21/AX=4459h,INT 21/AH=E0h"DOS Plus"
  8319.  
  8320. (Table 2151)
  8321. Values for CP/M-86,DR Multiuser DOS function number:
  8322.  00h    terminate calling process (see also INT 21/AH=00h)
  8323.  01h    read a character
  8324.  02h    write character to default console (see also INT 21/AH=02h)
  8325.  03h    read character from default AUX (see also INT 21/AH=03h)
  8326.  04h    write character to default AUX (see also INT 21/AH=04h)
  8327.  05h    write character to default list device (see also INT 21/AH=05h)
  8328.  06h    perform raw I/O on default console (see also INT 21/AH=06h)
  8329.  07h    return default AUX input status
  8330.  08h    return default AUX output status
  8331.  09h    write string to default console (see also INT 21/AH=09h)
  8332.  0Ah    read string from default console (see also INT 21/AH=0Ah)
  8333.  0Bh    return default console input status (see also INT 21/AH=0Bh)
  8334.  0Ch    get BDOS release ID
  8335.  0Dh    reset all disk drives (see also INT 21/AH=0Dh)
  8336.  0Eh    set default drive (see also INT 21/AH=0Eh)
  8337.  0Fh    open file via FCB (see also INT 21/AH=0Fh,#0469)
  8338.  10h    close file via FCB (see also INT 21/AH=10h)
  8339.  11h    search for first matching file with FCB (see also INT 21/AH=11h)
  8340.  12h    search for next matching file with FCB (see also INT 21/AH=12h)
  8341.  13h    delete file via FCB (see also INT 21/AH=13h)
  8342.  14h    sequential read via FCB (see also INT 21/AH=14h)
  8343.  15h    sequential write via FCB (see also INT 21/AH=15h)
  8344.  16h    create file via FCB (see also INT 21/AH=16h)
  8345.  17h    rename file via FCB (see also INT 21/AH=17h)
  8346.  18h    get bit map of logged drives
  8347.  19h    get default drive (see also INT 21/AH=19h)
  8348.  1Ah    set DMA address offset
  8349.  1Bh    get default disk allocation vector (see also INT 21/AH=1Bh)
  8350.  1Ch    set default drive to read-only
  8351.  1Dh    get bit map of read-only drives
  8352.  1Eh    set file attributes via FCB (see also INT 21/AX=4301h)
  8353.  1Fh    get address of disk parameter block (see also INT 21/AH=1Fh)
  8354.  20h    get/set default user number
  8355.  21h    read random record via FCB (see also INT 21/AH=21h)
  8356.  22h    write random record via FCB (see also INT 21/AH=22h)
  8357.  23h    compute file size with FCB (see also INT 21/AH=23h)
  8358.  24h    get FCB random record number (see also INT 21/AH=24h)
  8359.  25h    reset specified drives
  8360.  26h    access specified drives (not in DR DOS Plus v2.1)
  8361.  27h    free specified drives
  8362.  28h    write random with FCB, zero fill (see also also INT 21/AH=28h)
  8363.  2Ah    lock records in FCB file (see also INT 21/AH=5Ch)
  8364.  2Bh    unlock records in FCB file (see also INT 21/AH=5Ch)
  8365.  2Ch    set BDOS multisector count
  8366.  2Dh    set BDOS error mode
  8367.  2Eh    get free space on disk
  8368.  2Fh    load, initialize, and jump to process (see also INT 21/AH=4Bh)
  8369.  30h    flush write-deferred buffers
  8370.  31h    get/set system variable (DOS Plus v2.1)
  8371.  32h    call BIOS (XIOS) character routine (see #2152)
  8372.  33h    set DMA address segment
  8373.  34h    get DMA buffer address
  8374.  35h    CP/M-86 allocate maximum memory
  8375.  36h    allocate maximum memory at specified segment
  8376.  37h    CP/M-86 allocate memory segment (see also INT 21/AH=48h)
  8377.  38h    allocate memory at specified segment
  8378.  39h    CP/M-86 free specified memory segment (see also INT 21/AH=49h)
  8379.  3Ah    CP/M-86 free all memory (not in DOS Plus v2.1)
  8380.  3Bh    load .CMD file into memory
  8381.  3Ch    (DOS Plus v2.1) call RSX program
  8382.  40h    (DR-NET) log on a server
  8383.  41h    (DR-NET) log off a server
  8384.  42h    (DR-NET) send a message
  8385.  43h    (DR-NET) receive a message
  8386.  44h    (DR-NET) get network status
  8387.  45h    (DR-NET) get requestor configuration table
  8388.  46h    (DR-NET) set compatibility attributes
  8389.  47h    (DR-NET) get server configuration table
  8390.  48h    (DR-NET) set network error mode
  8391.  49h    (DR-NET) attach network
  8392.  4Ah    (DR-NET) detach network
  8393.  4Bh    (DR-NET) set default password
  8394.  4Ch    (DR-NET) get-set long timeout
  8395.  4Dh    (DR-NET) get parameter table
  8396.  50h    (DR-NET) get network information
  8397.  53h    get current time (see also INT 21/AH=2Ch)
  8398.  54h    set current time (see also INT 21/AH=2Dh)
  8399.  55h    get binary system date (see also INT 21/AH=2Ah)
  8400.  56h    set system date (see also INT 21/AH=2Bh)
  8401.  57h    allocate system flag
  8402.  58h    deallocate system flag
  8403.  59h    reserve memory in global area
  8404.  5Ah    lock physical drive
  8405.  5Bh    unlock physical drive
  8406.  5Ch    search path for executable file
  8407.  5Dh    load and execute command (see also INT 21/AH=4Bh)
  8408.  5Eh    get/set process exit code
  8409.  5Fh    set country information
  8410.  60h    get country information
  8411.  63h    truncate FCB file (see also INT 21/AH=28h)
  8412.  64h    create/update directory label
  8413.  65h    get directory label
  8414.  66h    get FCB date stamp and password mode
  8415.  67h    write extended FCB
  8416.  68h    set system date and time
  8417.  69h    get system date and time in binary
  8418.  6Ah    establish password for file access
  8419.  6Bh    get OS serial number
  8420.  6Ch    (DOS Plus v2.1) get/set program return code
  8421.  6Dh    get/set console mode
  8422.  6Eh    get/set string delimiter
  8423.  6Fh    write block to default console
  8424.  70h    write block to default list device
  8425.  71h    execute DOS-compatible function
  8426.  74h    set FCB time and date stamps
  8427.  80h    allocate memory
  8428.  82h    deallocate memory
  8429.  83h    poll I/O device
  8430.  84h    wait on system flag
  8431.  85h    set system flag
  8432.  86h    create message queue
  8433.  87h    open message queue
  8434.  88h    delete message queue
  8435.  89h    read from message queue
  8436.  8Ah    conditionally read from message queue
  8437.  8Bh    write to message queue
  8438.  8Ch    conditionally write to message queue
  8439.  8Dh    delay calling process
  8440.  8Eh    call process dispatcher (yield CPU)
  8441.  8Fh    terminate calling process (same as function 00h)
  8442.  90h    create a process
  8443.  91h    set calling process' priority
  8444.  92h    attach to default console
  8445.  93h    detach from default console
  8446.  95h    assign default console to process
  8447.  96h    interpret and execute commandline
  8448.  97h    resident procedure library
  8449.  98h    parse ASCII string into FCB (see also INT 21/AH=29h)
  8450.  99h    return default console
  8451.  9Ah    get address of system data (SYSDAT)
  8452.  9Bh    get system time and date
  8453.  9Ch    return calling process' descriptor
  8454.  9Dh    terminate process by name or PD address
  8455.  9Eh    attach to default list device
  8456.  9Fh    detach from default list device
  8457.  A0h    select default list device
  8458.  A1h    conditionally attach to default list device
  8459.  A2h    conditionally attach to default console
  8460.  A3h    get OS version number
  8461.  A4h    get default list device
  8462.  A5h    attach to default AUX
  8463.  A6h    detach from default AUX
  8464.  A7h    conditionally attach to default AUX
  8465.  A8h    set default AUX
  8466.  A9h    return default AUX
  8467.  ACh    read block from default AUX
  8468.  ADh    (DOS Plus v2.1) write block to default AUX
  8469.  B0h    configure default AUX
  8470.  B1h    get/set device control parameters
  8471.  B2h    send Break through default AUX
  8472.  B3h    allocate physical memory
  8473.  B4h    free physical memory
  8474.  B5h    map physical memory
  8475.  B6h    nondestructive message queue read
  8476.  B7h    timed wait on system flag
  8477.  B8h    get/set I/O port mapping
  8478.  B9h    set list device timeout
  8479.  BAh    set AUX timeout value
  8480.  BBh    execute XIOS service
  8481.  BDh    (DR Multiuser DOS) delay
  8482.  FFh    return 80386 to native mode
  8483.  
  8484. (Table 2152)
  8485. Values for DOS Plus v2.1 XIOS functions:
  8486.  00h    terminate program
  8487.  01h    ???
  8488.  02h    check for console input status
  8489.  03h    read character from console
  8490.  04h    write character to console
  8491.  05h    write character to list device
  8492.  06h    write character to auxiliary device
  8493.  07h    read cahracter from auxiliary device
  8494.  0Fh    get list device status
  8495.  10h-14h reserved
  8496.  15h    device initialization
  8497.  16h    check console output status
  8498.  17h-7Fh reserved
  8499. ---BBC Acorn---
  8500.  80h    get XIOS version
  8501.  81h    get Tube semaphore
  8502.  82h    release Tube semaphore
  8503.  83h    select text/graphics
  8504.  84h    update B&W graphics rectangle
  8505.  85h    update color graphics rectangle
  8506.  86h    get/release/update mouse
  8507.  87h    get system error info
  8508.  88h    entry in CLOCK called by WatchDog RSP
  8509.  89h    BBC OSBYTE function
  8510.  8Ah    BBC OSWORD function
  8511.  
  8512. (Table 2153)
  8513. Values for DR Multiuser DOS Error Return Code:
  8514.  00h    no error
  8515.  01h    system call not implemented
  8516.  02h    illegal system call number
  8517.  03h    cannot find memory
  8518.  04h    illegal flag number
  8519.  05h    flag overrun
  8520.  06h    flag underrun
  8521.  07h    no unused Queue Descriptors
  8522.  08h    no free queue buffer
  8523.  09h    cannot find queue
  8524.  0Ah    queue in use
  8525.  0Ch    no free Process Descriptors
  8526.  0Dh    no queue access
  8527.  0Eh    empty queue
  8528.  0Fh    full queue
  8529.  10h    CLI queue missing
  8530.  11h    no 8087 in system
  8531.  12h    no unused Memory Descriptors
  8532.  13h    illegal console number
  8533.  14h    no Process Descriptor match
  8534.  15h    no console match
  8535.  16h    no CLI process
  8536.  17h    illegal disk number
  8537.  18h    illegal filename
  8538.  19h    illegal filetype
  8539.  1Ah    character not ready
  8540.  1Bh    illegal Memory Descriptor
  8541.  1Ch    bad return from BDOS load
  8542.  1Dh    bad return from BDOS read
  8543.  1Eh    bad return from BDOS open
  8544.  1Fh    null command
  8545.  20h    not owner of resource
  8546.  21h    no CSEG in load file
  8547.  22h    process Descriptor exists on Thread Root
  8548.  23h    could not terminate process
  8549.  24h    cannot attach to process
  8550.  25h    illegal list device number
  8551.  26h    illegal password
  8552.  28h    external termination occurred
  8553.  29h    fixup error upon load
  8554.  2Ah    flag set ignored
  8555.  2Bh    illegal auxilliary device number
  8556. --------O-E0----CL03-------------------------
  8557. INT E0 - DR Multiuser DOS - "A_READ" - READ CHARACTER FROM AUX DEVICE
  8558.     CL = 03h
  8559. Return: AL = ASCII character
  8560. Notes:    A_READ reads the next 8-bit character from the logical auxilliary
  8561.       input device (AUXn:); control is not returned to the calling
  8562.       process until a character has been read.
  8563.     if another process owns AUX, this call blocks until the device becomes
  8564.       available
  8565. SeeAlso: INT 21/AH=03h,INT E0/CL=04h,INT E0/CL=07h,INT E0/CL=A5h,INT E0/CL=ACh
  8566. --------O-E0----CL04-------------------------
  8567. INT E0 - DR Multiuser DOS - "A_WRITE" - WRITE CHARACTER TO AUX DEVICE
  8568.     CL = 04h
  8569.     DL = ASCII character
  8570. Return: nothing
  8571. Note:    if another process owns AUX, this call blocks until the device becomes
  8572.       available
  8573. SeeAlso: INT 21/AH=04h,INT E0/CL=03h,INT E0/CL=08h,INT E0/CL=A5h,INT E0/CL=ADh
  8574. --------O-E0----CL07-------------------------
  8575. INT E0 - DR Multiuser DOS - "A_STATIN" - GET INPUT STATUS OF AUX DEVICE
  8576.     CL = 07h
  8577. Return: AL = status
  8578.         00h not ready
  8579.         FFh character available
  8580. Desc:    determine whether the current AUX device has input available
  8581. SeeAlso: INT E0/CL=03h,INT E0/CL=08h
  8582. --------O-E0----CL08-------------------------
  8583. INT E0 - DR Multiuser DOS - "A_STATOUT" - GET OUTPUT STATUS OF AUX DEVICE
  8584.     CL = 08h
  8585. Return: AL = status
  8586.         00h not ready
  8587.         FFh ready for output
  8588. Desc:    determine whether the current AUX device is able to accept more output
  8589. SeeAlso: INT E0/CL=04h,INT E0/CL=07h
  8590. --------O-E0----CL59-------------------------
  8591. INT E0 - ConcCP/M,DR Multiuser DOS - "S_MEMORY" - RESERVE MEMORY IN GLOBAL AREA
  8592.     CL = 59h
  8593.     DX = size in bytes
  8594. Return: AX = status
  8595.         FFFFh failed
  8596.         other successful
  8597.         ES:BX -> reserved memory
  8598. --------O-E0----CL86-------------------------
  8599. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_MAKE" - CREATE MESSAGE QUEUE
  8600.     CL = 86h
  8601.     DS:DX -> queue descriptor (see #2154)
  8602. Return: AX = status (0000h success, FFFFh failure)
  8603.     CX = error code (see #2153)
  8604. SeeAlso: INT E0/CL=87h
  8605.  
  8606. Format of DR Multiuser DOS queue descriptor:
  8607. Offset    Size    Description    (Table 2154)
  8608.  00h  2 WORDs    internal use, initialize to zeros
  8609.  04h    WORD    flags
  8610.  06h  8 BYTEs    queue name
  8611.  0Eh    WORD    length of message
  8612.  10h    WORD    number of messages
  8613.  12h  4 WORDs    internal use, initialize to zeros
  8614.  1Ah    WORD    offset in system area of buffer for messages
  8615. --------O-E0----CL87-------------------------
  8616. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_OPEN" - OPEN MESSAGE QUEUE
  8617.     CL = 87h
  8618.     DS:DX -> queue parameter block (see #2155)
  8619. Return: AX = status (0000h success, FFFFh failure)
  8620.     CX = error code (see #2153)
  8621. SeeAlso: INT E0/CL=86h,INT E0/CL=89h
  8622.  
  8623. Format of DR Multiuser DOS queue parameter block:
  8624. Offset    Size    Description    (Table 2155)
  8625.  00h    WORD    internal use, initialize to zero
  8626.  02h    WORD    queue ID (set by INT E0/CL=87h)
  8627.  04h    WORD    internal use, initialize to zero
  8628.  06h    WORD    offset of queue message buffer
  8629.  08h  8 BYTEs    queue name
  8630. --------O-E0----CL89-------------------------
  8631. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_READ" - READ MESSAGE QUEUE
  8632.     CL = 89h
  8633.     DS:DX -> queue parameter block (see #2155)
  8634. Return: AX = status (0000h success, FFFFh failure)
  8635.     CX = error code (see #2153)
  8636. SeeAlso: INT E0/CL=87h,INT E0/CL=8Ah,INT E0/CL=8Bh
  8637. --------O-E0----CL8A-------------------------
  8638. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CREAD" - CONDITIONALLY READ MSG QUEUE
  8639.     CL = 8Ah
  8640.     DS:DX -> queue parameter block (see #2155)
  8641. Return: AX = status (0000h success, FFFFh failure)
  8642.     CX = error code (see #2153)
  8643. SeeAlso: INT E0/CL=87h,INT E0/CL=89h,INT E0/CL=8Ch
  8644. --------O-E0----CL8B-------------------------
  8645. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_WRITE" - WRITE MESSAGE QUEUE
  8646.     CL = 8Bh
  8647.     DS:DX -> queue parameter block (see #2155)
  8648. Return: AX = status (0000h success, FFFFh failure)
  8649.     CX = error code (see #2153)
  8650. SeeAlso: INT E0/CL=89h,INT E0/CL=8Ch
  8651. --------O-E0----CL8C-------------------------
  8652. INT E0 - ConcCP/M,DR Multiuser DOS - "Q_CWRITE" - CONDITIONALLY WRITE MSG QUEUE
  8653.     CL = 8Ch
  8654.     DS:DX -> queue parameter block (see #2155)
  8655. Return: AX = status (0000h success, FFFFh failure)
  8656.     CX = error code (see #2153)
  8657. SeeAlso: INT E0/CL=8Ah,INT E0/CL=8Bh
  8658. --------O-E0----CL8E-------------------------
  8659. INT E0 - ConcCP/M,DR Multiuser DOS - "P_DISPATCH" - CALL DISPATCHER
  8660.     CL = 8Eh
  8661.     DX = FFFFh (optional) to force dispatch
  8662. Return: nothing
  8663. Desc:    allow other processes of the same or higher priority to run if they
  8664.       are ready
  8665. Note:    if DX=FFFFh, a dispatch is forced even if no other process is ready
  8666. SeeAlso: INT E0/CL=91h
  8667. --------O-E0----CL91-------------------------
  8668. INT E0 - ConcCP/M,DR Multiuser DOS - "P_PRIORITY" - SET PROCESS PRIORITY
  8669.     CL = 91h
  8670.     DL = new priority (00h highest to FFh lowest)
  8671. Note:    sets priority of calling process; transient processes are initialized
  8672.       to priority C8h
  8673. SeeAlso: INT E0/CL=8Eh
  8674. --------O-E0----CL93-------------------------
  8675. INT E0 - ConcCP/M,DR Multiuser DOS - "C_DETACH" - DETACH FROM DEFAULT CONSOLE
  8676.     CL = 93h
  8677. Return: AX = status
  8678.         0000h successfully detached
  8679.         FFFFh detach failed
  8680. SeeAlso: INT E0/CL=A6h
  8681. --------O-E0----CLA5-------------------------
  8682. INT E0 - DR Multiuser DOS - "A_ATTACH" - ATTACH AUX DEVICE
  8683.     CL = A5h
  8684. Desc:    attaches the default auxiliary device to the calling process unless
  8685.       it is already attached to another process, in which case the call
  8686.       blocks until the device becomes available
  8687. Note:    this call should be used before attempting to read or write from
  8688.       the AUX device; however, the I/O calls internally call this function
  8689.       to ensure device ownership
  8690. SeeAlso: INT E0/CL=03h,INT E0/CL=04h,INT E0/CL=A6h,INT E0/CL=A7h,INT E0/CL=A8h
  8691. SeeAlso: INT E0/CL=ACh,INT E0/CL=ADh,INT E0/CL=B0h
  8692. --------O-E0----CLA6-------------------------
  8693. INT E0 - DR Multiuser DOS - "A_DETACH" - DETACH FROM AUX DEVICE
  8694.     CL = A6h
  8695. Return: AX = status
  8696.         0000h successfully detached
  8697.         FFFFh detach failed
  8698.     CX = error code
  8699. SeeAlso: INT E0/CL=93h,INT E0/CL=A5h,INT E0/CL=A7h
  8700. --------O-E0----CLA7-------------------------
  8701. INT E0 - DR Multiuser DOS - "A_CATTACH" - CONDITIONALLY ATTACH TO AUX DEVICE
  8702.     CL = A7h
  8703. Return: AX = status
  8704.         0000h attached
  8705.         FFFFh unable to attach
  8706. Desc:    attaches the default auxiliary device to the calling process if it is
  8707.       available
  8708. Note:    does not block if the device is already in use
  8709. SeeAlso: INT E0/CL=A5h,INT E0/CL=A6h,INT E0/CL=A8h,INT E0/CL=B0h
  8710. --------O-E0----CLA8-------------------------
  8711. INT E0 - DR Multiuser DOS - "A_SET" - SET DEFAULT AUX DEVICE NUMBER
  8712.     CL = A8h
  8713.     DL = auxiliary device number
  8714. Return: AX = status
  8715.         0000h successful
  8716.         FFFFh failed
  8717.     CX = error code
  8718. Desc:    specify which physical device will become AUX
  8719. SeeAlso: INT E0/CL=A5h,INT E0/CL=A9h
  8720. --------O-E0----CLA9-------------------------
  8721. INT E0 - DR Multiuser DOS - "A_GET" - GET DEFAULT AUX DEVICE NUMBER
  8722.     CL = A9h
  8723. Return: AL = current default auxiliary device number
  8724. Desc:    determine which physical device is currently AUX
  8725. SeeAlso: INT E0/CL=A8h
  8726. --------O-E0----CLAC-------------------------
  8727. INT E0 - DR Multiuser DOS - "A_READBLK" - READ STRING FROM AUX DEVICE
  8728.     CL = ACh
  8729.     DS:DX -> character control block (CHCB) (see #2156)
  8730. Return: AX = number of characters read
  8731. Desc:    read characters from the default auxiliary (AUXn:) device into a buffer
  8732.       until the buffer is full or the device is no longer ready
  8733. Notes:    if the device is initially not ready, blocks until at least one
  8734.       character has been read
  8735.     if another process owns AUX, this call blocks until the device becomes
  8736.       available
  8737. SeeAlso: INT E0/CL=03h,INT E0/CL=A5h,INT E0/CL=ADh
  8738.  
  8739. Format of DR Multiuser DOS character control block (CHCB):
  8740. Offset    Size    Description    (Table 2156)
  8741.  00h    DWORD    pointer to character buffer
  8742.  04h    WORD    length of character buffer
  8743. --------O-E0----CLAD-------------------------
  8744. INT E0 - DR Multiuser DOS - "A_WRITEBLK" - WRITE STRING TO AUX DEVICE
  8745.     CL = ADh
  8746.     DS:DX -> character control block (see INT E0/CL=ACh)
  8747. Return: AX = number of characters written
  8748. Note:    does not return until at least one character has been written
  8749. SeeAlso: INT E0/CL=04h,INT E0/CL=A5h,INT E0/CL=ACh
  8750. --------O-E0----CLB0-------------------------
  8751. INT E0 - DR Multiuser DOS - "A_CONFIG" - GET/SET AUX DEVICE PARAMETERS
  8752.     CL = B0h
  8753.     DX:DX -> AUX device parameter block (see #2157)
  8754. Return: AX = status
  8755.         0000h successful
  8756.         parameter block updated
  8757.         FFFFh failed
  8758.         CX = error code
  8759. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  8760.  
  8761. Format of DR Multiuser DOS AUX device parameter block:
  8762. Offset    Size    Description    (Table 2157)
  8763.  00h    BYTE    function (00h get, 01h set)
  8764.  01h    BYTE    baud rate (see #2159) FFh = don't change/unknown
  8765.  02h    BYTE    parity (see #2158)
  8766.  03h    BYTE    stop bits (00h one, 01h 1.5, 02h two, FFh unknown/don't change)
  8767.  04h    BYTE    data bits (05h-08h or FFh unknown/don't change)
  8768.  05h    BYTE    handshake (00h none, 01h DTS/DSR, 02h RTS/CTS, 04h XON/XOFF,
  8769.         FFh unknown/don't change)
  8770.  06h    BYTE    XON character, FFh unknown/don't change
  8771.  07h    BYTE    XOFF character, FFh unknown/don't change
  8772.  
  8773. (Table 2158)
  8774. Values for parity:
  8775.  00h    none
  8776.  01h    odd
  8777.  02h    none
  8778.  03h    even
  8779.  04h    stick parity bit
  8780.  FFh    don't change/unknown
  8781.  
  8782. (Table 2159)
  8783. Values for baud rate:
  8784.  00h    50 baud
  8785.  01h    62.5 baud
  8786.  02h    75 baud
  8787.  03h    110 baud
  8788.  04h    134.5 baud
  8789.  05h    150 baud
  8790.  06h    200 baud
  8791.  07h    300 baud
  8792.  08h    600 baud
  8793.  09h    1200 baud
  8794.  0Ah    1800 baud
  8795.  0Bh    2000 baud
  8796.  0Ch    2400 baud
  8797.  0Dh    3600 baud
  8798.  0Eh    4800 baud
  8799.  0Fh    7200 baud
  8800.  10h    9600 baud
  8801.  11h    19200 baud
  8802.  12h    38400 baud
  8803.  13h    56000 baud
  8804.  14h    76800 baud
  8805.  15h    115200 baud
  8806. --------O-E0----CLB1-------------------------
  8807. INT E0 - DR Multiuser DOS - "A_CONTROL" - GET/SET AUX CONTROL PARAMETERS
  8808.     CL = B1h
  8809.     DS:DX -> AUX device control block (see #2160)
  8810. Return: AX = status
  8811.         0000h successful
  8812.         control block updated
  8813.         FFFFh failed
  8814.         CX = error code
  8815. SeeAlso: INT E0/CL=B0h,INT E0/CL=B2h
  8816.  
  8817. Format of DR Multiuser DOS AUX device control block:
  8818. Offset    Size    Description    (Table 2160)
  8819.  00h    BYTE    function (00h get, 01h set)
  8820.  01h    BYTE    DTR state (00h low, 01h high, FFh unknown/don't change)
  8821.  02h    BYTE    RTS state (00h low, 01h high, FFh unknown/don't change)
  8822.  03h    BYTE    DSR state (00h low, 01h high, FFh unknown/don't change)
  8823.  04h    BYTE    CTS state (00h low, 01h high, FFh unknown/don't change)
  8824.  05h    BYTE    DCD state (00h low, 01h high, FFh unknown/don't change)
  8825.  06h    BYTE    RI state (00h inactive, 01h active, FFh unknown/don't change)
  8826. --------O-E0----CLB2-------------------------
  8827. INT E0 - DR Multiuser DOS - "A_BREAK" - SEND BREAK TO AUX DEVICE
  8828.     CL = B2h
  8829.     DX = duration of break in system ticks (0001h-FFFFh)
  8830. Return: AX = status
  8831.         0000h successful
  8832.         break signal completed
  8833.         FFFFh failed
  8834.         CX = error code
  8835. Note:    if the AUX device is currently owned by another process, this call will
  8836.       block until the device becomes available
  8837. SeeAlso: INT E0/CL=A5h,INT E0/CL=B1h
  8838. --------O-E0----CLBD-------------------------
  8839. INT E0 - DR Multiuser DOS - "P_DELAY" - DELAY EXECUTION
  8840.     CL = BDh
  8841.     DX = delay in system ticks
  8842. Return: after the delay elapses
  8843. Notes:    the length of a system tick is installation-dependent (typically
  8844.       1/50 or 1/60 second); the length may be determined by reading the
  8845.       TICKSPERSEC value from the system data segment
  8846.     the actual delay before the process is rescheduled to run may be up to
  8847.       one tick longer than requested; the delay between rescheduling and
  8848.       actual execution cannot be predicted if higher-priority processes
  8849.       are awaiting a turn at the CPU
  8850. SeeAlso: INT 15/AH=86h,INT 1A/AX=FF01h,INT 2F/AX=1224h,INT 62/AX=0096h
  8851. --------g-E00000-----------------------------
  8852. INT E0 - PCROBOTS v1.41 - "SWAPTASK" - END CURRENT ROBOT'S TURN
  8853.     AX = 0000h
  8854. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  8855.       which specially-written .COM or .EXE programs form robots battling
  8856.       each other in a user-defined arena
  8857. --------g-E00001-----------------------------
  8858. INT E0 - PCROBOTS v1.41 - "MOVEMENT" - START MOVING
  8859.     AX = 0001h
  8860.     BX = speed (0-maximum for robot)
  8861.     CX = direction (0-359 degrees)
  8862. Notes:    the speed will change to the specified value at the maximum
  8863.       acceleration the robot is capable of; if the robot is already moving
  8864.       faster than its maximum maneuverability speed, it will not be able
  8865.       to change direction
  8866.     this call also terminates the current robot's turn
  8867. SeeAlso: AX=0000h,AX=0002h,AX=0003h
  8868. --------g-E00002-----------------------------
  8869. INT E0 - PCROBOTS v1.41 - "SCAN" - SCAN FOR OTHER ROBOTS IN THE GIVEN DIRECTION
  8870.     AX = 0002h
  8871.     BX = direction (0-359 degrees)
  8872.     CX = resolution (0-45 degrees)
  8873. Return: AX = status
  8874.         FFFFh if nothing detected
  8875.         else robot ID (0-19)
  8876.         BX = range to detected robot
  8877. Notes:    the scan searches within CX degrees to either side of the specified
  8878.       direction
  8879.     the scanner will see right through walls, but shells will not pass
  8880.       through walls
  8881.     this call also terminates the current robot's turn
  8882. SeeAlso: AX=0000h,AX=0001h,AX=0003h
  8883. --------g-E00003-----------------------------
  8884. INT E0 - PCROBOTS v1.41 - "SHOOT" - FIRE A SHELL AT ANOTHER ROBOT
  8885.     AX = 0003h
  8886.     BX = direction (0-359 degrees)
  8887.     CX = range (0-700)
  8888. Return: AX = status (0000h not fired, else ID of shell fired)
  8889. Notes:    up to seven shells may be in flight for a robot at one time; the cannon
  8890.       takes 50 ticks to reload
  8891.     this call also terminates the current robot's turn
  8892. SeeAlso: AX=0000h,AX=0001h,AX=0002h,AX=002Ch
  8893. --------g-E00010-----------------------------
  8894. INT E0 - PCROBOTS v1.41 - "GETXY" - GET ROBOT'S CURRENT POSITION
  8895.     AX = 0010h
  8896. Return: BX = current X coordinate (0-999)
  8897.     CX = current Y coordinate (0-999)
  8898. --------g-E00011-----------------------------
  8899. INT E0 - PCROBOTS v1.41 - "TRANSMIT" - SEND DATA TO ANOTHER ROBOT
  8900.     AX = 0011h
  8901.     BX = target robot ID
  8902.     CX = data to be sent
  8903. Return: AX = status (0000h data could not be sent, 0001h data sent)
  8904. Note:    this call costs one unit of battery power
  8905. --------g-E00012-----------------------------
  8906. INT E0 - PCROBOTS v1.41 - "RECEIVE" - GET DATA FROM OTHER ROBOTS
  8907.     AX = 0012h
  8908. Return: AX = status
  8909.         0000h no data available
  8910.         0001h data retrieved
  8911.         BX = sender's ID
  8912.         CX = data
  8913. Note:    each robot has a 20-word receive FIFO; if the FIFO is full, other
  8914.       robots will be unable to send more data until some is read
  8915. --------g-E00013-----------------------------
  8916. INT E0 - PCROBOTS v1.41 - "DAMAGE" - DETERMINE HOW MUCH DAMAGE SUSTAINED
  8917.     AX = 0013h
  8918. Return: BX = damage status
  8919. Note:    the initial value depends on configuration, but is typically 100; as
  8920.       the robot is damaged, it decreases
  8921. --------g-E00014-----------------------------
  8922. INT E0 - PCROBOTS v1.41 - "SPEED" - DETERMINE HOW FAST ROBOT IS MOVING
  8923.     AX = 0014h
  8924. Return: BX = current speed
  8925. --------g-E00015-----------------------------
  8926. INT E0 - PCROBOTS v1.41 - "BATTERY" - DETERMINE HOW MUCH BATTERY POWER LEFT
  8927.     AX = 0015h
  8928. Return: BX = current battery charge
  8929. Note:    the battery starts off with 1000 units of charge, and is constantly
  8930.       being charged by solar panels and constantly discharged by motion;
  8931.       the battery is charged at 4 units per turn and discharged at
  8932.       0.1*speed units per turn.
  8933. --------g-E00016-----------------------------
  8934. INT E0 - PCROBOTS v1.41 - "TICKS" - DETERMINE HOW LONG SINCE GAME STARTED
  8935.     AX = 0016h
  8936. Return: BX:CX = number of game ticks elapsed (not related to real time)
  8937. --------g-E00017-----------------------------
  8938. INT E0 - PCROBOTS v1.41 - "L_SIN" - GET SCALED SINE OF AN ANGLE
  8939.     AX = 0017h
  8940.     BX = angle (0-359 degrees)
  8941. Return: BX:CX = 100000*sine of angle
  8942. SeeAlso: AX=0018h,AX=0019h,AX=001Ah,AX=001Bh
  8943. --------g-E00018-----------------------------
  8944. INT E0 - PCROBOTS v1.41 - "L_COS" - GET SCALED COSINE OF AN ANGLE
  8945.     AX = 0018h
  8946.     BX = angle (0-359 degrees)
  8947. Return: BX:CX = 100000*cosine of angle
  8948. SeeAlso: AX=0017h,AX=0019h,AX=001Ah
  8949. --------g-E00019-----------------------------
  8950. INT E0 - PCROBOTS v1.41 - "L_TAN" - GET SCALED TANGENT OF AN ANGLE
  8951.     AX = 0019h
  8952.     BX = angle (0-359 degrees)
  8953. Return: BX:CX = 100000*tangent of angle
  8954. SeeAlso: AX=0017h,AX=0018h,AX=001Ah
  8955. --------g-E0001A-----------------------------
  8956. INT E0 - PCROBOTS v1.41 - "L_ATAN" - GET ANGLE GIVEN SCALED TANGENT
  8957.     AX = 001Ah
  8958.     BX:CX = 100000*tangent of an angle
  8959. Return: AX = angle (-90 to +90 degrees)
  8960. SeeAlso: AX=0017h,AX=0018h,AX=0019h
  8961. --------g-E0001B-----------------------------
  8962. INT E0 - PCROBOTS v1.41 - "SQRT" - DETERMINE SQUARE ROOT OF A NUMBER 
  8963.     AX = 001Bh
  8964.     BX:CX = value
  8965. Return: BX:CX = square root
  8966. SeeAlso: AX=0017h
  8967. --------g-E0001C-----------------------------
  8968. INT E0 - PCROBOTS v1.41 - "SET_PATTERN" - SPECIFY ROBOT'S DISPLAY IMAGE
  8969.     AX = 001Ch
  8970.     BX:CX -> pattern array
  8971. Note:    the pattern array consists of five bytes, the low five bits of each
  8972.       specifying the bit pattern for one line of the robot's screen display
  8973. --------g-E0001D-----------------------------
  8974. INT E0 - PCROBOTS v1.41 - "DEBUG_FLAG" - SET/CLEAR MARKERS NEXT TO ROBOT'S NAME
  8975.     AX = 001Dh
  8976.     BX = flag number (0 or 1)
  8977.     CX = new value (0 reset, 1 set)
  8978. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  8979.       which specially-written .COM or .EXE programs form robots battling
  8980.       each other in a user-defined arena
  8981. Note:    the two flag markers may be used for any purpose, typically for
  8982.       debugging to provide a visual display of progress
  8983. --------g-E0001E-----------------------------
  8984. INT E0 - PCROBOTS v1.41 - "BUY_ARMOUR" - BUY OR SELL ARMOR FOR ROBOT
  8985.     AX = 001Eh
  8986.     BX = number of armor units to buy (negative to sell)
  8987. Note:    each armor unit is worth 50 battery units; the robot's armor rating
  8988.       will not go above its initial rating, so attempts to purchase more
  8989.       will waste battery units
  8990. SeeAlso: AX=001Fh
  8991. --------g-E0001F-----------------------------
  8992. INT E0 - PCROBOTS v1.41 - "BUY_SHELLS" - BUY ADDITIONAL CANNON SHELLS
  8993.     AX = 001Fh
  8994.     BX = number of shells to buy
  8995. Note:    each shell costs ten battery units
  8996. SeeAlso: AX=001Eh,AX=0020h
  8997. --------g-E00020-----------------------------
  8998. INT E0 - PCROBOTS v1.41 - "SHELLS LEFT" - DETERMINE HOW MANY SHELLS ROBOT HAS
  8999.     AX = 0020h
  9000. Return: BX = number of shells remaining
  9001. SeeAlso: AX=001Fh
  9002. --------g-E00021-----------------------------
  9003. INT E0 - PCROBOTS v1.41 - "GET LOCAL MAP"
  9004.     AX = 0021h
  9005.     BX:CX -> 81-byte buffer for map
  9006. Return: buffer filled with 9x9 area of map centered on robot's position
  9007.  
  9008. (Table 2161)
  9009. Values for PCROBOTS map squares:
  9010.  2Eh '.' empty square
  9011.  44h 'D' damaging trap
  9012.  52h 'R' refueling point
  9013.  58h 'X' wall
  9014. --------g-E00022-----------------------------
  9015. INT E0 - PCROBOTS v1.41 - "INVISIBILITY" - CONTROL ROBOT'S INVISIBILITY DEVICE
  9016.     AX = 0022h
  9017.     BX = new state (0000h become visible, 0001h become invisible)
  9018. Notes:    this function has no effect if the robot is not capable of invisibility
  9019.     the robot can only stay invisible for 100 turns, after which it will
  9020.       automatically become visible; it must also be remain visible for
  9021.       as many turns as it was invisible before it can turn invisible
  9022.       again
  9023. SeeAlso: AX=0024h,AX=0080h
  9024. --------g-E00023-----------------------------
  9025. INT E0 - PCROBOTS v1.41 - "GET_SHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  9026.     AX = 0023h
  9027. Return: BX = status of last shell to land
  9028.         0000h missed completely
  9029.         0001h hit a wall
  9030.         0002h hit a robot within 50-square radius
  9031.         0003h hit a robot within 25-square radius
  9032.         0004h hit a robot within 5-square radius
  9033. --------g-E00024-----------------------------
  9034. INT E0 - PCROBOTS v1.41 - "IS_INVISIBLE" - DETERMINE WHETHER ROBOT IS INVISIBLE
  9035.     AX = 0024h
  9036. Return: BX = visibility (0000h visible, 0001h invisible)
  9037. SeeAlso: AX=0022h,AX=0080h
  9038. --------g-E00025-----------------------------
  9039. INT E0 - PCROBOTS v1.41 - "L_ATAN2" - GET ARCTANGENT
  9040.     AX = 0025h
  9041.     BX = Y
  9042.     CX = X
  9043. Return: AX = angle (arctangent of Y/X)
  9044. --------g-E00026-----------------------------
  9045. INT E0 - PCROBOTS v1.41 - "GET_ROBOT_ID" - DETERMINE CURRENT ROBOT'S IDENTIFIER
  9046.     AX = 0026h
  9047. Return: AX = robot ID
  9048. --------g-E00027-----------------------------
  9049. INT E0 - PCROBOTS v1.41 - "REGISTER_IFF" - REGISTER FRIEND/FOE IDENT STRING
  9050.     AX = 0027h
  9051.     BX:CX = ASCIZ IFF string
  9052. Note:    the IFF string may only be set once
  9053. SeeAlso: AX=0028h,AX=0029h
  9054. --------g-E00028-----------------------------
  9055. INT E0 - PCROBOTS v1.41 - "CHECK_IFF" - QUERY FRIEND/FOE IDENTIFICATION STRING
  9056.     AX = 0028h
  9057.     BX = robot ID to test
  9058. Return: AX = status
  9059.         0000h IFF strings match
  9060.         0001h IFF strings differ or invalid robot ID
  9061. SeeAlso: AX=0027h
  9062. --------g-E00029-----------------------------
  9063. INT E0 - PCROBOTS v1.41 - "REGISTER_NAME" - SPECIFY ROBOT'S NAME
  9064.     AX = 0029h
  9065.     BX:CX -> ASCIZ name string
  9066. Note:    the name may only be set once
  9067. SeeAlso: AX=0027h,AX=002Ah
  9068. --------g-E0002A-----------------------------
  9069. INT E0 - PCROBOTS v1.41 - "FIND_NAME" - SEARCH FOR ROBOT WITH GIVEN NAME
  9070.     AX = 002Ah
  9071.     BX:CX -> ASCIZ name string
  9072.     DX = first ID to check
  9073. Return: AX = robot ID or FFFFh if no robot with specified name
  9074. SeeAlso: AX=0028h,AX=0029h,AX=002Bh
  9075. --------g-E0002B-----------------------------
  9076. INT E0 - PCROBOTS v1.41 - "GET_TEAM_ID" - DETERMINE TEAM MEMBERSHIP OF ROBOT
  9077.     AX = 002Bh
  9078. Return: AX = team ID (0-2) or FFFFh if 'loner'
  9079. SeeAlso: AX=0029h
  9080. --------g-E0002C-----------------------------
  9081. INT E0 - PCROBOTS v1.41 - "GET_ASHELL_STATUS" - FIND OUT WHAT HAPPENED TO SHELL
  9082.     AX = 002Ch
  9083.     BX = shell ID
  9084. Return: AX = status
  9085.         0000h missed completely
  9086.         0001h hit a wall
  9087.         0002h hit a robot within a 50-square radius
  9088.         0003h hit a robot within a 25-square radius
  9089.         0004h hit a robot within a 5-square radius
  9090.         0005h shell not known (too old or not yet fired)
  9091.         0006h shell still in flight
  9092. SeeAlso: AX=0003h
  9093. --------g-E0002D-----------------------------
  9094. INT E0 - PCROBOTS v1.41 - "REGISTER_X" - SELECT AUTOMATIC X POSITION UPDATES
  9095.     AX = 002Dh
  9096.     BX:CX -> X word variable
  9097. Return: AX = status (0001h OK, 0000h problem with address)
  9098. Note:    after this call, PCROBOTS will automatically update the specified
  9099.       word whenever the robot moves
  9100. SeeAlso: AX=002Eh
  9101. --------g-E0002E-----------------------------
  9102. INT E0 - PCROBOTS v1.41 - "REGISTER_Y" - SELECT AUTOMATIC Y POSITION UPDATES
  9103.     AX = 002Eh
  9104.     BX:CX -> Y word variable
  9105. Return: AX = status (0001h OK, 0000h problem with address)
  9106. Note:    after this call, PCROBOTS will automatically update the specified
  9107.       word whenever the robot moves
  9108. SeeAlso: AX=002Dh
  9109. --------g-E00080-----------------------------
  9110. INT E0 - PCROBOTS v1.41 - "CONFIGURE" - CUSTOMIZE ROBOT
  9111.     AX = 0080h
  9112.     BX = basic configuration (see #2162)
  9113.     CX = advanced configuration (see #2163)
  9114. Return: AX = status (0001h OK, 0000h not first call in program)
  9115. Program: PCROBOTS is P.D. Smith's adaptation of Tom Poindexter's CROBOTS, in
  9116.       which specially-written .COM or .EXE programs form robots battling
  9117.       each other in a user-defined arena
  9118. Notes:    a maximum of ten points may be allocated to the robot; if you attempt
  9119.       to allocate more, some items will be given a value of zero.  If this
  9120.       function is not called, each attribute is set to the default value
  9121.       of 2.
  9122.     if the invisibility option is chosen, the robot will start with only
  9123.       900 cannon shells instead of the default 1000
  9124.  
  9125. Bitfields for PCROBOTS basic configuration:
  9126. Bit(s)    Description    (Table 2162)
  9127.  0-3    maximum speed (0-4 = 50,75,100,150,200)
  9128.  4-7    maneuverability (0-4 = 20%,35%,50%,75%,100%)
  9129.  8-11    cannon range (0-4 = 300,500,700,1000,1500)
  9130.  12-15    robot armor (0-4 = 50,75,100,150,200)
  9131.  
  9132. Bitfields for PCROBOTS advanced configuration:
  9133. Bit(s)    Description    (Table 2163)
  9134.  0-2    robot acceleration (0-4 = 5,7,10,15,20)
  9135.  3    capable of invisibility
  9136. --------r-E1---------------------------------
  9137. INT E1 - IBM ROM BASIC - used while in interpreter
  9138. Notes:    called by ROM BASIC
  9139.     BASIC.COM/BASICA.COM do not restore vector on termination
  9140. --------N-E1---------------------------------
  9141. INT E1 - PC Cluster Disk Server Information
  9142. SeeAlso: INT E2
  9143. --------r-E2---------------------------------
  9144. INT E2 - IBM ROM BASIC - used while in interpreter
  9145. Notes:    called by ROM BASIC
  9146.     BASIC.COM/BASICA.COM do not restore vector on termination
  9147. --------N-E2---------------------------------
  9148. INT E2 - PC Cluster Program
  9149. --------r-E3---------------------------------
  9150. INT E3 - IBM ROM BASIC - used while in interpreter
  9151. Notes:    called by ROM BASIC
  9152.     BASIC.COM/BASICA.COM do not restore vector on termination
  9153. --------r-E40005-----------------------------
  9154. INT E4 - Logitech Modula v2.0 - MonitorEntry
  9155.     AX = 0005h
  9156.     BX = priority
  9157. SeeAlso: AX=0006h
  9158. --------r-E40006-----------------------------
  9159. INT E4 - Logitech Modula v2.0 - MonitorExit
  9160.     AX = 0006h
  9161. SeeAlso: AX=0005h
  9162. --------r-E4---------------------------------
  9163. INT E4 - IBM ROM BASIC - used while in interpreter
  9164. Notes:    called by ROM BASIC
  9165.     BASIC.COM/BASICA.COM do not restore vector on termination
  9166. --------r-E5---------------------------------
  9167. INT E5 - IBM ROM BASIC - used while in interpreter
  9168. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9169.     BASIC.COM/BASICA.COM do not restore vector on termination
  9170. --------r-E6---------------------------------
  9171. INT E6 - IBM ROM BASIC - used while in interpreter
  9172. Notes:    called by ROM BASIC
  9173.     BASIC.COM/BASICA.COM do not restore vector on termination
  9174. --------r-E7---------------------------------
  9175. INT E7 - IBM ROM BASIC - used while in interpreter
  9176. Notes:    called by ROM BASIC
  9177.     BASIC.COM/BASICA.COM do not restore vector on termination
  9178. --------r-E8---------------------------------
  9179. INT E8 - IBM ROM BASIC - used while in interpreter
  9180. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9181.     BASIC.COM/BASICA.COM do not restore vector on termination
  9182. --------r-E9---------------------------------
  9183. INT E9 - IBM ROM BASIC - used while in interpreter
  9184. Notes:    called by ROM BASIC
  9185.     BASIC.COM/BASICA.COM do not restore vector on termination
  9186. --------r-EA---------------------------------
  9187. INT EA - IBM ROM BASIC - used while in interpreter
  9188. Notes:    called by ROM BASIC
  9189.     BASIC.COM/BASICA.COM do not restore vector on termination
  9190. --------r-EB---------------------------------
  9191. INT EB - IBM ROM BASIC - used while in interpreter
  9192. Notes:    called by ROM BASIC
  9193.     BASIC.COM/BASICA.COM do not restore vector on termination
  9194. --------r-EC---------------------------------
  9195. INT EC - IBM ROM BASIC - used while in interpreter
  9196. Notes:    called by ROM BASIC
  9197.     BASIC.COM/BASICA.COM do not restore vector on termination
  9198. --------N-EC---------------------------------
  9199. INT EC - used by Alloy NTNX
  9200. --------r-EC---------------------------------
  9201. INT EC - Exact - RUNTIME INTERFACE MULTIPLEXOR
  9202.     AX = function number (0000h to 0140h)
  9203.     STACK:    DWORD address to return to
  9204.         any arguments required by function
  9205. Return: STACK:    return address popped, but otherwise unchanged
  9206. Desc:    this is the interface from applications to the runtime system by Exact
  9207.       Automatisering B.V. of the Netherlands.  By using this interrupt,
  9208.       it can provide DLL-style capabilities under MS-DOS.
  9209. Note:    the interrupt handler removes the return address and flags placed on
  9210.       the stack by the INT EC, then jumps to the appropriate function
  9211. --------r-ED---------------------------------
  9212. INT ED - IBM ROM BASIC - used while in interpreter
  9213. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9214.     BASIC.COM/BASICA.COM do not restore vector on termination
  9215.     INT 80 through INT ED are modified but not restored by Direct Access
  9216.       v4.0, and may be left dangling by other programs written with the
  9217.       same version of compiled BASIC
  9218. SeeAlso: INT EC"BASIC",INT EE"BASIC"
  9219. --------r-EE---------------------------------
  9220. INT EE - IBM ROM BASIC - used while in interpreter
  9221. Notes:    called by ROM BASIC, but pointed at IRET by BASIC.COM/BASICA.COM
  9222.     BASIC.COM/BASICA.COM do not restore vector on termination
  9223. SeeAlso: INT ED"BASIC",INT EE"BASIC"
  9224. --------r-EF---------------------------------
  9225. INT EF - BASIC - ORIGINAL INT 09 VECTOR
  9226. Note:    BASIC.COM/BASICA.COM do not restore vector on termination
  9227. SeeAlso: INT EE"BASIC",INT F0"BASIC"
  9228. --------O-EF----CX0473-----------------------
  9229. INT EF - GEM - INTERFACE
  9230.     CX = 0473h
  9231.     DS:DX -> GEM parameter block
  9232. --------r-F0---------------------------------
  9233. INT F0 - BASICA.COM, GWBASIC, compiled BASIC - ORIGINAL INT 08 VECTOR
  9234. Note:    BASICA.COM does not restore vector on termination
  9235. SeeAlso: INT EF"BASIC"
  9236. --------*-F1---------------------------------
  9237. INT F1 - reserved for user interrupt
  9238. --------s-F1---------------------------------
  9239. INT F1 - SPEECH.COM - CONVERT TEXT STRING TO SPEECH
  9240.     DS:BX -> '$'-terminated text string
  9241. Program: SPEECH.COM is a resident text-to-speech converter by Douglas Sisco
  9242. --------s-F1---------------------------------
  9243. INT F1 - Andy C. McGuire SPEECH.COM/SAY.COM
  9244. SeeAlso: INT F2"SPEECH"
  9245. --------U-F1---------------------------------
  9246. INT F1 - AQUEDUCT, PIPELINE - GET DATA AREA ADDRESS
  9247. Return: AX:BX -> data area
  9248. Program: AQUEDUCT and PIPELINE are TSRs by James W. Birdsall to connect COM1
  9249.       and COM2 in software
  9250. Note:    The installation check consists of testing for the following signature
  9251.       immediately preceding the interrupt handler: "JWBtvv" where 't' is
  9252.       either "A" for AQUEDUCT or "P" for PIPELINE and "vv" is a two-digit
  9253.       version number
  9254. Index:    installation check;AQUEDUCT|installation check;PIPELINE
  9255. --------N-F1---------------------------------
  9256. INT F1 - NetWare Remote Boot - INSTALLATION CHECK (NOT A VECTOR!)
  9257. Note:    if this vector contains the value 5774654Eh ("NetW"), the remote boot
  9258.       BIOS extension is active, and access to the floppy disk is redirected
  9259.       to an image file in the server's SYS:LOGIN directory
  9260. --------v-F1---------------------------------
  9261. INT F1 - VIRUS - "Violetta" - ???
  9262. Note:    used but not chained by virus
  9263. SeeAlso: INT E0"VIRUS",INT FF"VIRUS"
  9264. --------*-F2---------------------------------
  9265. INT F2 - reserved for user interrupt
  9266. --------s-F2---------------------------------
  9267. INT F2 - Andy C. McGuire SPEECH.COM/SAY.COM
  9268. SeeAlso: INT F1"SPEECH"
  9269. ----------F2---------------------------------
  9270. INT F2 - ICCTSR 1.0 - ImageCapture COLOR Developer's Kit - API
  9271.     AH = function number (see #2164)
  9272.     ???
  9273. Return: ???
  9274. Program: ImageCapture is a product of International Computers
  9275. SeeAlso: INT F3"ICCTSR"
  9276.  
  9277. (Table 2164)
  9278. Values for ImageCapture function:
  9279.  01h    power up
  9280.  02h    power down
  9281.  03h    set controls
  9282.  04h    capture image
  9283.  05h    display image
  9284.  06h    read file
  9285.  07h    write file
  9286.  08h    write array
  9287.  09h    read pixel
  9288.  0Ah    write pixel
  9289.  0Bh    check if VGA present
  9290.  0Ch    set video mode
  9291.  0Dh    check for keystroke
  9292.  0Eh    delay
  9293. --------*-F3---------------------------------
  9294. INT F3 - reserved for user interrupt
  9295. --------s-F3---------------------------------
  9296. INT F3 - SoundBlaster - POINTER TO ECHO VALUE
  9297. Note:    this is not a vector, but a pointer to a DWORD containing the echo
  9298.       value selected with SET-ECHO.EXE
  9299. SeeAlso: INT 2F/AX=FBFBh
  9300. ----------F3---------------------------------
  9301. INT F3 - ICCTSR 1.0 - HANDSHAKE ID VECTOR
  9302. Program: ImageCapture is a product of International Computers
  9303. SeeAlso: INT F2"ICCTSR"
  9304. --------*-F4---------------------------------
  9305. INT F4 - reserved for user interrupt
  9306. --------T-F4---------------------------------
  9307. INT F4 - DoubleDOS - GIVE UP REST OF CURRENT CLOCK TICK AND ALL OF NEXT TICK
  9308. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT FE"DoubleDOS"
  9309. --------*-F5---------------------------------
  9310. INT F5 - reserved for user interrupt
  9311. --------T-F5---------------------------------
  9312. INT F5 - DoubleDOS - ???
  9313. --------*-F6---------------------------------
  9314. INT F6 - reserved for user interrupt
  9315. --------T-F6---------------------------------
  9316. INT F6 - DoubleDOS - ???
  9317. --------*-F7---------------------------------
  9318. INT F7 - reserved for user interrupt
  9319. --------T-F7---------------------------------
  9320. INT F7 - DoubleDOS - ???
  9321. ----------F700-------------------------------
  9322. INT F7 - FSBBS 2.0 - CONFIGURATION RECORD
  9323.     AH = 00h
  9324.     AL = function
  9325.         00h get configuration record
  9326.         Return: DS:DX -> configuration record
  9327.         01h set configuration record
  9328.         02h get path for option
  9329.         DS:DX -> option name
  9330.         Return: DS:DX -> path
  9331.         03h determine whether configuration record set
  9332.         Return: AX = status
  9333.                 0000h set
  9334.                 0001h not yet set
  9335.         04h get link state
  9336.         Return: AX = state
  9337.                 0000h unlinked
  9338.                 0001h linked
  9339. Notes:    this information is preliminary and still subject to change
  9340.     all of the INT F7 calls for FSBBS are used for interprogram
  9341.       communication between the BBS kernel and the programs it spawns
  9342. SeeAlso: AH=01h
  9343. ----------F701-------------------------------
  9344. INT F7 - FSBBS 2.0 - USER RECORD
  9345.     AH = 01h
  9346.     AL = function
  9347.         00h get user record for user currently online
  9348.         Return: DS:DX -> user record
  9349.         01h set user record
  9350.         DS:DX -> user record
  9351. SeeAlso: AH=00h,AH=02h
  9352. ----------F702-------------------------------
  9353. INT F7 - FSBBS 2.0 - GET ACCOUNT NAME
  9354.     AH = 02h
  9355. Return: DS:DX -> 8-character blank-padded account name
  9356. SeeAlso: AH=01h
  9357. ----------F703-------------------------------
  9358. INT F7 - FSBBS 2.0 - TERMINAL NUMBER
  9359.     AH = 03h
  9360.     AL = function
  9361.         00h get terminal index number
  9362.         Return: DX = index number
  9363.         01h set terminal index number
  9364.         DX = terminal index
  9365. ----------F704-------------------------------
  9366. INT F7 - FSBBS 2.0 - PASSDATA BUFFER
  9367.     AH = 04h
  9368.     AL = function
  9369.         00h get PassData buffer contents
  9370.         DS:DX -> buffer for PassData contents
  9371.         01h set PassData contents
  9372.         DS:DX -> buffer containing new PassData
  9373.         CH = length of data in buffer
  9374. ----------F705-------------------------------
  9375. INT F7 - FSBBS 2.0 - TIMER FUNCTIONS
  9376.     AH = 05h
  9377.     AL = function
  9378.         00h get time remaining
  9379.         Return: DX = number of minutes remaining
  9380.         01h get current time
  9381.         Return: DS:DX -> 8-character time string
  9382.         02h increment time
  9383.         DX = number of additional minutes
  9384.         03h decrement time
  9385.         DX = number of minutes
  9386. SeeAlso: AH=06h
  9387. ----------F706-------------------------------
  9388. INT F7 - FSBBS 2.0 - FUNCTION AVAILABILITY
  9389.     AH = 06h
  9390.     AL = function
  9391.         00h determine whether function is available
  9392.         DX = index of function
  9393.         01h set function availability
  9394.         DX = index of function
  9395.         ???
  9396. SeeAlso: AH=05h,AH=07h
  9397. ----------F707-------------------------------
  9398. INT F7 - FSBBS 2.0 - DUMP FUNCTIONS
  9399.     AH = 07h
  9400.     AL = function
  9401.         00h get current dump mode
  9402.         Return: DL = mode
  9403.         01h set dump mode
  9404.         DL = mode
  9405. SeeAlso: AH=06h
  9406. --------*-F8---------------------------------
  9407. INT F8 - reserved for user interrupt
  9408. --------h-F8---------------------------------
  9409. INT F8 - TANDY??? - 100 HZ INTERRUPT
  9410. Note:    this vector is not used on the Tandy 1000TL
  9411. SeeAlso: INT FA"USART"
  9412. --------T-F8---------------------------------
  9413. INT F8 - DoubleDOS - ???
  9414. --------*-F9---------------------------------
  9415. INT F9 - reserved for user interrupt
  9416. --------T-F9---------------------------------
  9417. INT F9 - DoubleDOS - ???
  9418. --------*-FA---------------------------------
  9419. INT FA - reserved for user interrupt
  9420. --------h-FA---------------------------------
  9421. INT FA - TANDY??? - SERIAL PORT USART INTERRUPT
  9422. Note:    this vector is not used on the Tandy 1000TL
  9423. SeeAlso: INT F8"100 HZ",INT FB"USART"
  9424. --------T-FA---------------------------------
  9425. INT FA - DoubleDOS - TURN OFF TIMESHARING
  9426. SeeAlso: INT 21/AH=EAh"DoubleDOS",INT FB"DoubleDOS"
  9427. --------*-FB---------------------------------
  9428. INT FB - reserved for user interrupt
  9429. --------h-FB---------------------------------
  9430. INT FB - TANDY??? - KEYBOARD USART RECEIVE INTERRUPT
  9431. SeeAlso: INT FA"USART"
  9432. --------T-FB---------------------------------
  9433. INT FB - DoubleDOS - TURN ON TIMESHARING
  9434. SeeAlso: INT 21/AH=EBh"DoubleDOS",INT FA"DoubleDOS"
  9435. --------*-FC---------------------------------
  9436. INT FC - reserved for user interrupt
  9437. --------T-FC---------------------------------
  9438. INT FC - DoubleDOS - GET CURRENT SCREEN BUFFER ADDRESS
  9439. Return: ES = segment of display buffer
  9440. Desc:    determine the address of the virtual screen to which the program
  9441.       should write instead of the actual video memory, so that the
  9442.       multitasked programs do not interfere with each other's output
  9443. Note:    the display buffer may be moved if multitasking is enabled
  9444. SeeAlso: INT 21/AH=ECh"DoubleDOS",INT FB"DoubleDOS"
  9445. --------*-FD---------------------------------
  9446. INT FD - reserved for user interrupt
  9447. --------T-FD---------------------------------
  9448. INT FD - DoubleDOS - ???
  9449. --------S-FD---------------------------------
  9450. INT FD - TFPCX - INSTALLATION CHECK
  9451.     AH = function (see separate entries below)
  9452. Program: TFPCX is an interface between modem and terminal program for packet-
  9453.       radio communications
  9454. Notes:    the installation check consists of testing for the string "N5NX" three
  9455.       bytes beyond the interrupt handler; INT FD is the default, but may
  9456.       be changed, so the full installation check consists of scanning
  9457.       for the signature
  9458.     TFPCX returns AX=FFFFh on any unsupported function call
  9459. SeeAlso: AH=01h,AH=03h,AH=FEh
  9460. --------S-FD01-------------------------------
  9461. INT FD - TFPCX - TEST FOR CHARACTER WAITING
  9462.     AH = 01h
  9463. Return: AX = status
  9464.         0000h no characters waiting
  9465.         0001h character available for input
  9466. Program: TFPCX is an interface between modem and terminal program for packet-
  9467.       radio communications
  9468. SeeAlso: AH=02h
  9469. --------S-FD02-------------------------------
  9470. INT FD - TFPCX - GET CHARACTER
  9471.     AH = 02h
  9472. Return: AL = character
  9473. Notes:    this call is only allowed if AH=01h indicated that a character is
  9474.       available
  9475.     all available characters should be read before sending any additional
  9476.       characters
  9477. SeeAlso: AH=01h,AH=03h
  9478. --------S-FD03-------------------------------
  9479. INT FD - TFPCX - OUTPUT CHARACTER
  9480.     AH = 03h
  9481.     AL = character to send
  9482. SeeAlso: AH=02h
  9483. --------S-FDFE-------------------------------
  9484. INT FD - TFPCX - GET VERSION
  9485.     AH = FEh
  9486. Return: AH = major version
  9487.     AL = minor version
  9488. Program: TFPCX is an interface between modem and terminal program for packet-
  9489.       radio communications
  9490. SeeAlso: AH=01h,AH=03h
  9491. --------B-FE---------------------------------
  9492. INT FE - AT/XT286/PS50+ - destroyed by return from protected mode
  9493. Note:    the ROM BIOS uses 0030h:0100h as the initial stack on startup, which
  9494.       is the last fourth of the interrupt vector table.  If the processor
  9495.       is returned to real mode via a hardware reset (the only possibility
  9496.       on an 80286, though there are a number of ways of generating one),
  9497.       then the BIOS startup code stacks three words on its scratch stack
  9498.       before determining that a return to real mode has been requested.
  9499.       As a result, INT FE and INT FF are corrupted.
  9500. SeeAlso: INT FF"XT286"
  9501. --------T-FE---------------------------------
  9502. INT FE - DoubleDOS - GIVE UP TIME
  9503.     AL = number of 55ms time slices to give away
  9504. Return: after other program (if active) has run
  9505. SeeAlso: INT 21/AH=EEh"DoubleDOS",INT F4"DoubleDOS"
  9506. --------G-FE---------------------------------
  9507. INT FE - Turbo Debugger 8086 v2.5+ - OVERLAY MANAGER
  9508. SeeAlso: INT 3F
  9509. --------B-FF---------------------------------
  9510. INT FF - AT/XT286/PS50+ - destroyed by return from protected mode
  9511. Note:    (see INT FE"XT286")
  9512. SeeAlso: INT FE"XT286"
  9513. --------b-FF---------------------------------
  9514. INT FF - Z100 - WARM BOOT
  9515. SeeAlso: INT 40"Z100"
  9516. --------Q-FF---------------------------------
  9517. INT FF U - QEMM-386.SYS v6.0+ - internal
  9518. Notes:    requires that a byte in the conventional-memory stub be set to the
  9519.       desired function number (00h through 0Ch)
  9520.  
  9521. (Table 2165)
  9522. Values for QEMM internal functions:
  9523.  00h    reflect back to Virtual86-mode interrupt handler (default)
  9524.  01h    ???
  9525.  02h    access DR7???
  9526.  03h    QPI upcall (see INT 67/AH=3Fh)
  9527.  04h    ???
  9528.  05h    ???
  9529.  06h    INT 15/AH=87h
  9530.  07h    EMS services (see INT 67/AH=40h-5Dh)
  9531.  08h    ???
  9532.  09h    QEMM exception handler
  9533.  0Ah    XMS services (see INT 2F/AX=4310h)
  9534.  0Bh    Virtual DMA Services (see INT 4B/AX=8102h)
  9535.  0Ch    ???
  9536. --------v-FF---------------------------------
  9537. INT FF - VIRUS - "Violetta" - ???
  9538. Note:    used but not chained by virus
  9539. SeeAlso: INT E0"VIRUS",INT F1"VIRUS"
  9540. --------!---Admin----------------------------
  9541. Highest Table Number = 2176
  9542. --------!---FILELIST-------------------------
  9543. Please redistribute all of the files comprising the interrupt list (listed at
  9544. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  9545. trio of archives named INTER41A through INTER41C (preferably the original
  9546. authenticated PKZIP archives), and the utility programs in a fourth archive
  9547. called INTER41D.ZIP
  9548.  
  9549. This compilation is Copyright (c) 1989,1990,1991,1992,1993,1994 Ralf Brown
  9550. --------!---CONTACT_INFO---------------------
  9551. Internet: ralf@telerama.lm.com
  9552. UUCP: {uunet,harvard}!telerama.lm.com!ralf
  9553. FIDO: Ralf Brown 1:129/26.1
  9554.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  9555.     unless you address it to me)
  9556. CIS:  >INTERNET:ralf@telerama.lm.com
  9557.